链下扩容之状态通道
Posted real_metrix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链下扩容之状态通道相关的知识,希望对你有一定的参考价值。
本文将会不定期更新
是什么
状态通道的思想非常简单,在 A 和 B 之间存在 x 次交易(区块链中的交易只一系列的指令和代码,并非日常中所说的交易),我们只将第一次和最后一次的数据上链,其余的事务都是在链下进行的。显然链下的运算比链上的运算快得多。
具体来说,在交易开始的时候,参与者会将自己的当前 Ethereum 状态(通常是 ETH deposite 的方式)锁定在一个多签名合约中,这个锁定的步骤作为开启链下交易通道的第一步,之后便可以执行多个链下交易,链下交易并不上链,而所谓链下交易和你平时进行网络操作没有区别,当最后一步时,双方都承认此间发生的所有交易,于是将最后一个解锁的交易上链。整个过程中仅有第一步和最后一步上链。
(状态通道过程)
为什么使用
可以看到,状态通道适合于那种非必要更新非常平凡的,交易双方个数都明了的情况。多次强调的链下交易,使得速度得到极大的提升。上链次数少,也是的交易费用非常便宜。
然后状态通道并非完美的,其实从上面的例子可以看出,在交易进行的过程中,比如,李四突然因网络问题断线,那么张三很可能篡改中间交易的记录,因为这是链下的。所以这导致双方必须实时在线,或者你至少要委托其他人来帮助你时刻监视网络。
小例子
在这里我们举一个小例子(由以太坊官网的小例子改编过来),来体会一下状态通道的魅力。比如张三和李四下象棋比赛,首先双方签署一份比赛的协议(协议中包含了胜利者的奖金,比赛的规则,注意事项等)。然后双方开始下棋。最终每个人会赢的棋局,于是将最后的结果公布出来。
其实在整个比赛中,最重要的步骤就是第一步双方签署一分比赛协议和最后一步将谁胜谁负公布出来,而至于中间的每一步棋怎么下,这并不是最重要的。所以如果这个比赛要上链的话,只需要对第一步和最后一步上链。
状态通道与交易通道
这个的区别就更简单了,只要将状态通道简化成只接受金钱交易的模型,状态通道就退化成了交易通道。或者说状态通道是交易通道的超集。此处的交易就是只金钱的交易。
延伸阅读
一文说清“链上”和“链下”
Difference between SideChains and State Channels
General State Channel Networks:状态通道原始论文
以上是关于链下扩容之状态通道的主要内容,如果未能解决你的问题,请参考以下文章