版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

Drawio
zoom1
simple0
inComment0
pageId7439200
custContentId9732521
lbox1
diagramDisplayNamestargate_arch2.drawio
contentVer5
revision5
baseUrlhttps://starcoin.atlassian.net/wiki
diagramNamestargate_arch2.drawio
pCenter0
width825.5
links
tbstyle
height246

整体上分为三层,

  1. Layer1 通过 PoW 共识保证安全(Security)和无准入(Permissionless)。这部分已经实现。

  2. Layer2 通过 PoS 共识给 Layer1 提供终局性(Finality),同时给 Rollup 的 Accumulator 提供去中心化能力。 Rollup 方案可以让网络整体的 TPS 提高到 10~100 倍。

  3. Layer3 通过状态通道(State Channel)以及 DAppChain ,将不同的应用的共识隔离在应用的局部网络中,可提供无限的扩展能力。

Rollup

Rollup 是一种相对成熟的扩容机制,一些项目已经实现,在 Rollup 中有几个角色:

  1. 累加器(Accumulator),在其他项目中叫定序器(Sequencer)或者聚合器(Aggregator)。它主要的功能是给交易排序,并且定期将 Layer2 的交易提交到 Layer1 。Stargate 的 Rollup 方案中,它不仅仅提供排序,同时会将交易哈希进行累加,用于提供交易的顺序证明。累加器同时也要执行交易,并且定时将每个交易执行之后的状态树的根哈希提交到 Layer1。

  2. 状态提供者(State Provider),按照累加器提供的交易顺序,执行交易,给第三方提供状态查询接口。

  3. 交验者(Verifier),执行交易并和累加器提交到 Layer1 的状态树的根哈希进行比较,如果发现累加器作弊则向 Layer1 提交欺诈证明。

Stargate 的 Rollup 方案相对于其他的 Rollup 方案有几个差异点:

  1. 累加器复用 Layer1 的 PoS 共识机制,实现去中心化以及高可用。

  2. 通过累加器的顺序证明,以及富状态交易的验证机制,让钱包客户端也具有验证交易的能力,从而承担校验者的能力。

  3. 如果数据可用性也由钱包客户端来保证,则累加器可以只给 Layer1 提交 Layer2 交易的哈希,这样 Rollup 可以将吞吐再提升一个量级。

Rollup 依然依赖 Layer1 的全局共识,所以受限于 Layer1 的吞吐能力。它的主要目标是降低 Layer1 的计算成本,将状态维护在链下,通过乐观挑战机制保证安全,给用户可以即时确认交易状态,提供类似互联网应用的体验。同时也为 Layer3 的扩展方案打好基础。

State Channel

状态通道(State Channel) ,或者叫支付通道(Payment Channel),也是一种比较成熟的扩容方案。它的思路是双方各自抵押一部分资产在链上,然后在链下维护一个两个参与方的局部共识状态,每次变更都需要双方确认。但为了解决单方不合作难题,任何一方都可以单方在链上发起关闭通道的交易,等待一个挑战期后,通道自动解除。

Stargate 中的 State Channel 方案和其他状态通道有几个差异点:

  1. State Channel 中可以执行合约,这样通道不仅仅用来转账,还可以执行一些复杂的,有状态累计的合约。

  2. 因为它可以执行合约,所以也可以支付任意类型的 Token。

  3. 构建在 Layer2 之上,而不是 Layer1 之上,主要是要依赖 Layer2 的即时确认能力,降低建立通道的成本。

这样 Starcoin/Stargate P2P 网络中的任意两个节点,都可以将自己的 P2P 连接升级为状态通道,然后通过状态通道进行数据传输和流式计费。

DAppService

基于 Stargate 框架搭建的通过 StateChannel 网络提供付费的 RPC 服务。

DAppChain

基于 Stargete 框架搭建的,包含一个子共识机制的 DApp Chain。它的核心逻辑由合约写成,并且注册到 Layer2 中,注册时需要抵押一定数额的链上资产。用户可以将资产从 Layer2 转移到 DAppChain 中,在 DAppChain 中执行合约。它的安全也受 Layer2 约束,但因为它是一个局部共识,Layer2 并不知道它的所有交易,所以安全性比 Rollup 方案要低。如果用户遇到欺诈,可向 Layer1 提交欺诈证明,Layer1 会对 DApp 进行惩罚,但惩罚的上限以 DApp 的注册抵押资产为上限。

Drawio
zoom1
simple0
inComment0
pageId7439200
custContentId9602084
lbox1
diagramDisplayNameStargate-arch.drawio
contentVer2
revision7
baseUrlhttps://starcoin.atlassian.net/wiki
diagramNameUntitled Diagram.drawio
pCenter0
width1031
links
tbstyle
height751

整体概览架构如上图,

  1. Layer1 与 Layer2 Layer2,Layer3 以及用户的终端钱包,都在同一个 P2P 网络中,都通过 P2P 网络进行通信。

  2. 终端钱包有自己在 P2P 网络中的身份,可以执行和验证交易,可以存储交易历史,如果发现 Layer2 节点作弊可以直接提交 Layer1 仲裁。

  3. 不同的 DApp,比如 X DApp, Y DApp 可选择不同的 Layer2 方案接入到 Starcoin 网络。

...

  1. 充分发挥终端的价值。

  2. 状态通道在基础的通信层发挥作用,给节点运营方提供激励。

Layer2 的节点角色:

  1. Accumulator : 或者叫 Sequencer,负责给 Layer2 的交易排序,并且进行累加(Accumulator ),必要时提供交易顺序证明。

  2. StateProvider: 负责执行 Layer2 的交易,维护状态树,给应用提供状态查询,定时将状态树的 Root 提交到 Layer1。

  3. Verifier: 负责验证 Accumulator 提交的交易顺序以及 StateProvider 的状态,向 Layer1 提交欺诈证明。

这三种角色在不同的 Layer2 方案中可以组合合并。

Layer2 合约

每个 Layer2 在 Layer1 中需要通过合约定义:

代码块
languagerust
module Layer2{
   struct Layer2Info<T> has key,store{
      state_root: vector<u8>,
      validators: vector<address>,
      quorum:u64,
      public:bool,
   }
  
}

module StateChannel{
   public fun update_state_root(&mut Layer2Info<T>, root: vector<u8>, multi_signatures: vector<u8>){
      //check the multi_signatures is match the validators 
   }
}

Layer2 不同方案的区别

...

状态通道

...

Rollup

...

SubChain

...

Accumulator

...

参与方

...

发起者

...

validators

...

StateProvider

...

参与方

...

发起者

...

validators

...

Verifier

...

参与方

...

任何人

...

validators 以及用户

...

StateRoot 更新限制

...

参与方签名超过 quorum

...

发起者

...

validators 签名超过 quorum

...

StateRoot 更新策略

...

按需更新

...

批量交易更新

...

按需更新

...

不协作问题

...

单方发起通道关闭,等待一个超时时间后进入 finality

...

超过时间不更新后进入关闭状态

...

取决于 subchain validator 的准入机制

...

作弊仲裁

...

参与方

...

Verifer 或者用户

...

路线图

Drawio
zoom1
simple0
inComment0
pageId7439200
custContentId11043102
lbox1
diagramDisplayNamestargate-roadmap.drawio
contentVer5
revision5
baseUrlhttps://starcoin.atlassian.net/wiki
diagramNamestargate-roadmap.drawio
pCenter0
width1881
links
tbstyle
height1700.530029296875

...