'CryptoYC'
研究|状态通道介绍
🌿

研究|状态通道介绍

知识导图:

Etherum->Layer2->State Channels

State Channel:

作为以太坊扩容的⽅案之⼀,状态通道是⼀种⾮常⼴泛和简单的思考区块链交互的⽅式,交易在区块链之外进⾏,不会增加任何参与者的⻛险。这种想法最著名的例⼦是⽐特币⽀付通道的想法,它允许在两⽅之间直接发送即时免费的交易。

状态通道与⽐特币闪电⽹络中的⽀付通道概念⾮常相似,但它们不仅⽀持⽀付,还⽀持⼀般的“状态更新”。例如,⽤⼾可以将资⾦存⼊合约并签署代表在国际象棋游戏中进⾏的移动的状态更新。稍后,只有游戏的最终结果才会在完成后⼴播到以太坊⽹络。这允许以太坊应⽤程序将交易“移动”到 链下,从⽽提⾼整个⽹络的实⽤性。

简单来说就是⼀群⼈建了⼀个微信⽀付群,建群需要提交⼀笔质押⾦,建了群之后发⽣的交易仅需要很少的交易费,且交易确认速度很快(相对于欺诈证明⽽⾔)。最后,只有群解散时候的状态会在确认后更新⾄主链上。这个例⼦之后还会讲到。

为了更加深⼊形象了解状态通道,我们这⾥先给出通道的定义。关于状态通道与侧链的区别与联系, 将在之后开⼀篇新⽂章介绍。

Channel是什么

通道(Channel)定义描述了交易对给定交易⽅(⽤⼾)有效所需的条件。通俗来说就是智能合约的签订,打开通道意味着⽤⼾和后端就⼀个通道协议达成⼀致。通道协议指定了⼏个字段。

1. 通道所有者所有者有权打开、重新协商或关闭通道,并最终控制通道内的所有资产。重要的是,所有者的地址是⽤于发现频道的⾝份识别。所有者还可以通过智能合约发起其频道的争议。

2. 交易发起⼈列表这些是可以代表所有者从通道发起交易的地址。发件⼈列表可⽤于允许⽤⼾的多个设备(电话、笔记 本电脑等)使⽤该频道⽽⽆需共享所有者密钥。发件⼈可以完全访问整个频道余额,但他们不能修改频道。根据定义,频道所有者也是有效的发件⼈。可能有多个频道具有共同的发送者⾝份,甚⾄⼀个频道的所有者是另⼀个频道的发送者。

3. 区域因为⼀个通道总是存在于⼀个区域中。通道分配到的区域负责监管该通道,并且在进⼊或离开通道的任何事务上都需要其签名。单个区域可以负责许多不同所有者拥有的许多频道。

4. 验证器地址这是必须在接收到通道中的任何交易上签字的⾝份。Kchannels使⽤不同模式,不同模式下的验证器地址也不同,可以是区域地址,也可以是瞭望塔地址(瞭望塔相当于管理员)。

5. 评级ID它描述了与通道进⾏交易的费⽤结构(也可以没有这⼀块)。此参数允许在交易费⽤⽅⾯具有灵活性;例如,某些频道可能按“每次使⽤”⽅式收费,⽽其他频道可收取佣⾦,⽽另⼀些频道则按固定⽉费收费。在某些情况下,收件⼈甚⾄可以⽀付寄件⼈的费⽤(例如,商家⽀付其客⼾的费⽤)。费⽤旨在与Mainnet gas 费⽤、传统⾦融系统费⽤,甚⾄其他 Layer2 解决⽅案的费⽤竞争。

状态通道举例

参与者必须将以太坊的⼀部分状态(例如 ETH 存款)锁定到多重签名合约中。多重签名合约是⼀种需 要多个私钥的签名(从⽽达成⼀致)才能执⾏的合约。以这种⽅式“锁定状态”是第⼀笔交易,这样便打开了状态通道。然后,参与者可以快速⾃由地进⾏ 链下交易。交互完成后,提交最终的链上交易,“解锁状态”。

适⽤情况

  • 许多状态更新
  • 预先知道参与者数量时
  • 当参与者总是有空时

类⽐

之前使⽤微信群的例⼦,可以把整个微信⽀付想象成以太坊主⽹,建了⼀个群之后⽀付不再上传主 ⽹,⽽是⾸先由群主和各位群员商议协议。群主质押⼀笔资⾦开启群聊,在⼤家很多笔交易之后群主或者其他群员查看所有交易并把最后状态上报⾄主⽹(微信⽀付),若⽆⼈质疑交易则交易确认并解散群。这样做的好处是很多笔交易去到了链下,但是需要预先知道参与者都是谁(否则⽆法创建群聊),且群员⼀直在线(否则⽆法确认交易)。

优劣势分析

image

⼩结

状态通道的想法⽐较简单,将链上交易转为链下,只上报第⼀笔和最终交易状态⾄链上,从⽽节省费⽤,提⾼交易速度。总的来说它适合⼀群认识的⼈在线实时完成⼀些⼩额交易,听起来有点像私链的思路。

它的潜⼒跟前景不⼤,但是其简单想法于实践上很容易实现,且存在⼀定的使⽤价值。相较于Rollup来说略有劣势,相较于Plasma来说各有千秋。

参考⽂献

1. 状态通道官⽅介绍:State Channels | ethereum.org

3. Kchannels 介绍:http://docs.kchannels.io/architecture/channels

4. 状态通道其他介绍:State Channels — an explanation

5. 状态通道其他介绍:The Basics of State Channels | Understanding Ethereum Scaling