-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
48ff6c9
commit 4a66ddc
Showing
1 changed file
with
34 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,39 @@ | ||
dYdX 为了提升交易性能和降低成本,采用了 StarkWare 开发的 StarkEx 作为其二层扩展方案。 | ||
dYdX 为了提升交易性能和降低成本,采用了 StarkWare 开发的 StarkEx 作为其二层扩展方案。StarkEx 提供了更高效的交易处理能力,与其他扩展方案相比,其利用零知识证明技术的独特优势包括更低的 gas 费用和更高的扩展性。 | ||
|
||
**StarkEx 技术架构** | ||
|
||
StarkEx 利用 STARK(Scalable Transparent Argument of Knowledge)技术,为 dYdX 提供高效的交易处理能力。其核心组件包括: | ||
|
||
- **StarkEx 服务(StarkEx Service)**:处理用户的交易请求,并将其打包成批次。 | ||
- **SHARP(SHARed Prover)**:为每个交易批次生成有效性证明。 | ||
- **Stark 验证器(Stark Verifier)**:在以太坊主网上验证这些证明的有效性。 | ||
- **Stark 合约(Stark Contract)**:在链上管理状态更新。 | ||
|
||
用户的交易首先由 StarkEx Service 处理,随后 SHARP 生成相应的有效性证明。Stark Verifier 验证该证明后,Stark Contract 在以太坊主网上更新状态。 | ||
|
||
## Starkex 合约 | ||
dYdX: L2 Perpetual Smart Contract | ||
dYdX: L2 On-Chain Operator | ||
|
||
https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/interactions/Deposits.sol | ||
https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/interactions/Withdrawals.sol | ||
Dydx页面显示 | ||
https://dydx.l2beat.com/ | ||
转账过程 | ||
转账15USDT到 dYdX: L2 Perpetual Smart Contract(15-2022-11-15 12:10:59 PM) | ||
L2 Perpetual Smart Contract | ||
https://dashboard.tenderly.co/tx/mainnet/0x8ea3a15828fb5814091d3fc246920228c1c1480086f467978fe357f5bf3a2ac4?trace=0.8.1.1.0.7 | ||
状态确认 | ||
https://etherscan.io/tx/0x7985593db99c33fa851a196bd8b374221c6063fc654278c9d85d163c29dbcb06 | ||
https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/starkex/interactions/UpdateState.sol performUpdateState | ||
updateState(uint256[] publicInput, uint256[] applicationData) | ||
- **StarkEx 服务(StarkEx Service)**:处理用户的交易请求,并将其打包成批次,提升交易吞吐量。 | ||
- **SHARP(SHARed Prover)**:为每个交易批次生成有效性证明,确保交易的真实性和数据隐私。 | ||
- **Stark 验证器(Stark Verifier)**:在以太坊主网上验证这些证明的有效性,确保链上状态的准确性。 | ||
- **Stark 合约(Stark Contract)**:在链上管理状态更新,保障整个系统的安全性和一致性。 | ||
|
||
用户的交易首先由 StarkEx Service 处理,随后 SHARP 生成相应的有效性证明。Stark Verifier 验证该证明后,Stark Contract 在以太坊主网上更新状态,从而实现快速且安全的交易处理。 | ||
|
||
**StarkEx 合约** | ||
|
||
StarkEx 的合约设计涵盖多个模块,用于处理存款、取款和状态更新: | ||
|
||
- **Deposits.sol**:管理用户存款的合约模块,用于将资产从 L1 转移到 StarkEx 系统。 | ||
[查看代码](https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/interactions/Deposits.sol) | ||
- **Withdrawals.sol**:负责处理用户从 StarkEx 系统提取资产到 L1 的逻辑。 | ||
[查看代码](https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/interactions/Withdrawals.sol) | ||
- **UpdateState.sol**:核心合约模块之一,用于执行状态更新操作,支持高效的批量交易验证。 | ||
[查看代码](https://github.com/starkware-libs/starkex-contracts/blob/StarkExchange-v4.5/scalable-dex/contracts/src/starkex/interactions/UpdateState.sol) | ||
|
||
updateState 函数示例: | ||
```solidity | ||
updateState(uint256[] publicInput, uint256[] applicationData) | ||
``` | ||
此函数通过接收公共输入和应用数据,完成系统状态的更新。 | ||
|
||
**实际应用示例** | ||
|
||
- 在 dYdX 平台上执行交易时,用户资金被转入 **L2 Perpetual Smart Contract** 中。例如: | ||
[转账交易示例](https://dashboard.tenderly.co/tx/mainnet/0x8ea3a15828fb5814091d3fc246920228c1c1480086f467978fe357f5bf3a2ac4?trace=0.8.1.1.0.7) | ||
- 交易完成后,状态更新操作的执行记录可在以太坊区块链上验证: | ||
[状态确认交易](https://etherscan.io/tx/0x7985593db99c33fa851a196bd8b374221c6063fc654278c9d85d163c29dbcb06) | ||
|
||
更多关于 dYdX 和 StarkEx 的细节可以参考其 [状态仪表盘](https://dydx.l2beat.com/),了解实时数据与合约交互记录。 | ||
|