GoNetwork 学习
off-chain state channel 与闪电网络
off-chain state channel 是一种区块链上的解决方案,目的是为了解决区块链的扩展性、高延迟。交易费用问题,它通过在用户之间建立通道进行多次交易,最终的结果再放到链上。
雷电(Radien)网络和闪电(lightening)网络都是状态通道的实现方法,不过前者是基于以太坊,后者是基于比特币。
在状态通道中转移的相当于是支票,如果要兑换支票的话还是要去银行(区块链),但是兑换的时候状态通道就会关闭,而理论上状态通道开得越久越好。创建状态通道需要先在主链上初始化一个固定的金额,之后就是通道中对这个金额的分配了。
生命周期:
- 由两个或两个以上的参与者公开的对初始状态达成一致,即一个状态通道开启。(在一笔交易中,涉及到的资金将交给交给第三方委托或者智能合约去临时封存),比如去银行开卡,你是用户,银行是服务,双方确认初始金额是0元无异议后,就开启一个通道。
- 参与方之间可以更新最近的每笔交易状态,状态本身存储在本地。
- 当参与方的任何一方将交易状态最终公布,则状态通道关闭。
参考资料:
- http://gocofe.com/2017/06/%E8%B0%88%E8%B0%88%E5%8C%BA%E5%9D%97%E9%93%BE%E4%B8%8A%E7%9A%84%E7%8A%B6%E6%80%81%E9%80%9A%E9%81%93%EF%BC%88state-channels%EF%BC%89/
- http://ethfans.org/posts/raiden-network
- https://raiden.network/faq.html
- http://www.8btc.com/ln-rn-corda
GoNetwork 白皮书
白皮书主要讲述了是其应用与商业计划,其中是基于 state channel 来实现的 scalability,mobile 部分体现在他们部署他们的解决方案到移动的游戏应用中(作为一种支付方式)
自己的思考:
GoNetwork 和雷电网络与闪电网络类似,都是基于状态通道,这的确是一种不用改变区块链本身存储结构而提高区块链扩展性的好方法,同时也加快了处理的速度,而安全性也能通过签名来实现;而把产品与游戏进行结合也是一种好的推广方法,依赖于移动端也在无形中降低了用户门槛。
不过因为状态通道的建立还是需要在主链上添加 TX,因此当真的突然产生了大量的通道可能还是会造成整个网络的拥堵,不过如果这种情况出现的概率不高的话那么不处理也不会有太大的影响。
论文
The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication
- the GHOST (Greedy Heaviest-Observed Sub-Tree) rule:产生了 fork 之后通过权衡子树来解决,而不是选择最长的区块。
这个方法通过提高区块链性能来增加可扩展性但不影响存储 - BlockChain-NG:挖出矿的成为 leader,leader 可以添加 microblock(通过时间戳来判断有效性)到链上,这些链不受 PoW 挖掘的限制,而只是被拼凑在一起。
microblock 提高了吞吐量并且降低了延迟,也同样不减少存储 - 加上支链成为有向无环图
这个方法提高了并性能力从而提高了处理速度,同样不减少存储
Bitcoin-NG: A Scalable Blockchain Protocol
即为上面所提到的
The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments
比特币的闪电网络,使用了状态通道来提高可扩展性,这个方法也减小了区块链上的存储
On Scaling Decentralized Blockchains
块大小和时间间隔的重新参数化来解决可扩展性问题,这个方法不影响存储
Notes on Scalable Blockchain Protocols
通过“采样和回退”游戏实现可伸缩的区块链共识:将交易拆分成影响区块链状态的小部分的 collations,并要求为了使交易的 collation 有效,必须通过从大型验证池随机获取的固定大小的样本的验证。
这个方法不影响存储,但是提高了速度和可扩展性
When Mobile Blockchain Meets Edge Computing: Challenges and Applications
通过使用边缘计算来将区块链运用于移动端,没有提高区块链的可扩展性也没有减少存储