以太坊Layer2扩容方案之State Channel

  • 张乐辉
  • 更新于 2024-06-19 18:14
  • 阅读 240

Channel 是一种解决区块链扩容问题的方案,是一个点对点(p2p)网络或者协议,它允许通道双方可以进行多笔交易,将最后处理和计算的结果提交链上, 在链上进行签名验证和结算。通道区分为支付通道和状态通道,状态通道是在支付通道基础上衍生而来的

本系列文章: 以太坊Layer2扩容方案之State Channel 以太坊Layer2扩容方案之Sidechain 以太坊Layer2扩容方案之Plasma 以太坊Layer2扩容方案之Rollup 以太坊Layer2扩容方案之Validium

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

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
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
张乐辉
张乐辉
江湖只有他的大名,没有他的介绍。