以太坊 Layer2 扩容方案之 State Channel
登链社区
2024-06-19 20:55
订阅此专栏
收藏此文章
通道区分为支付通道和状态通道,状态通道是在支付通道基础上衍生而来的。


撰文:张乐辉


一 什么是通道,为什么需要通道?


1.1 为什么需要通道?


区块链随着用户量和交易量的增加,导致交易拥堵,交易速度慢,费用较高。因此,需要增加区块链的扩展性,那么通道就是扩展方案之一。


1.2 什么是通道?


  • 第一: 通道是一种解决区块链扩容问题的方案,是一个点对点 (p2p) 网络或者协议,它允许通道双方可以进行多笔交易,将最后处理和计算的结果提交链上, 在链上进行签名验证和结算。通道区分为支付通道和状态通道,状态通道是在支付通道基础上衍生而来的
  • 第二: 通道通过链下交易,来减少与主链的直接交互,减轻主链的负担,也可以减少用户的成本
  • 第三: 每一条通道,由主链上的多签智能合约管理,要打开一个通道,双方需要在链上部署合约,然后存入一定数量的资产
  • 第四: 当通道建立时,双方创建一个初始状态,记录双方的初始余额 ( 例如,Alice 5 ETH,Bob 5 ETH)。双方对初始状态进行签名并各自保存一份签名状态。初始状态可能存储在双方的本地数据库或安全存储中
  • 第五: 当关闭通道的时候,需要双方确认最终状态,生成最终状态签名。然后提交最终状态到区块链,区块链进行签名验证和结算,正式关闭通道。


二 状态通道工作原理和流程


2.1 创建和部署多签合约,建立通道


2.1.1 部署多签合约


L1 主链需要部署多签合约来管理通道,该合约需要交易双方存入一定资金,并且锁定,直到通道关闭,结算完成,释放资金


2.1.2 存入资金


合约部署之后或者已经部署了,那么交易双方需要各存入一定数量的资金,然后资金会锁定在当前多签合约


2.2 链下交易


2.2.1 生成初始状态


当通道建立时,双方创建一个初始状态,记录双方的初始余额 ( 例如,Alice 5 ETH,Bob 5 ETH)。双方对初始状态进行签名并各自保存一份签名状态。初始状态可能存储在双方的本地数据库或安全存储中。


image.png


2.2.2 进行交易


Alice 向 Bob 支付 1 ETH。交易后,新的余额状态为:Alice 4 ETH,Bob 6 ETH。双方对新的余额状态签名确认。


image.png


2.2.3 多次交易


双方可以继续进行多次交易,每次交易后更新余额状态并签名确认。例如,Bob 向 Alice 支付 2 ETH 后,新的余额状态为:Alice 6 ETH,Bob 4 ETH。这些交易数据保存在 Alice 和 Bob 的本地,不立即提交到区块链


image.png


2.3 关闭通道


2.3.1 准备关闭通道


2.3.1.1 确认最终状态


Alice 和 Bob 需要确认当前最新的交易状态,并确保双方都同意这个状态。这个状态记录了最新的余额分配情况 ( 例如,Alice 6 ETH,Bob 4 ETH)。


2.3.1.2 生成最终状态签名


双方对最终状态进行签名,生成包含最终余额和双方签名的信息


image.png


2.3.2 提交最终状态到区块链


Alice 和 Bob 中的任何一方都可以将最终状态提交到区块链。提交的内容包括最终状态的余额分配和双方的签名。


2.3.3 验证和结算


2.3.3.1 验证签名


在区块链上验证提交的签名,确保提交的最终状态是双方认可的。验证逻辑通常包括检查签名的有效性以及签名是否匹配最终状态。


2.3.3.2 余额结算


验证通过后,智能合约按照最终状态的余额分配,将资金从多签名地址释放给双方。资金按最终状态的余额分配给 Alice 和 Bob,例如:Alice 6 ETH,Bob 4 ETH。


2.3.3.3 标记通道关闭


智能合约将通道状态标记为已关闭,防止再次提交状态。


三 为什么通道要设计成多签合约?


通道合约设计成多签合约主要是为了确保双方的资金安全,并且需要双方共同同意才能进行资金转移。这种设计提供了一层额外的安全保障,防止任何一方在没有得到对方同意的情况下独自操作资金。以下是为什么通道合约设计成多签合约的几个关键原因:


3.1 确保资金安全


在多签合约中,资金的转移需要得到多个签名的授权(通常是双方的签名)。这确保了单方面无法擅自转移资金,增强了资金的安全性。


3.2 防止欺诈


多签合约可以有效防止任何一方试图进行欺诈操作。因为任何资金的移动都需要双方签名确认,这确保了所有交易都是双方同意的。


3.3 实现链下交易的签名确认机制


多签合约允许在链下进行多次交易,每次交易后通过签名确认更新状态。最终状态在双方同意后提交到链上结算。这种机制需要双方的签名确认,确保每一步操作都是透明和被认可的。


3.4 确保通道关闭的正确性


在关闭通道时,多签合约确保最终状态的提交和结算需要双方的同意。这避免了任何一方单方面关闭通道并获取不公平的余额分配。


四 状态通道优缺点比较


4.1 优点


第一: 交易成本低,提升了交易效率第二: 数据不上链,具有较强的隐私性第三: 存在挑战期,具有较强的安全性


4.2 缺点


第一: 存在挑战期,提现速度慢第二: 链下不支持智能合约第三: 要求交易双方必须同时在线参与方需要保持连接,在线的话能够及时接收和处理交易状态更新以及参与争议解决;如果一方试图恶意关闭通道或提交错误的状态,在线的另一方可以及时介入,通过链上的争议解决机制第四: 参与主体有限一个通道一般就 2 个参与方,不能太多人参与第五: 不适用于大规模网络,扩展性较差。


参考资料
[1] 以太坊 Layer2 扩容方案之 State Channel: https://learnblockchain.cn/article/8405
[2] 以太坊 Layer2 扩容方案之 Sidechain: https://learnblockchain.cn/article/8406
[3] 以太坊 Layer2 扩容方案之 Plasma: https://learnblockchain.cn/article/8407
[4] 以太坊 Layer2 扩容方案之 Rollup: https://learnblockchain.cn/article/8408
[5] 以太坊 Layer2 扩容方案之 Validium: https://learnblockchain.cn/article/8409

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

登链社区
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开