第十五讲 张治谈“区块链的诞生及运转”:以太坊Plasma方案(
大家好!今天我们继续讲以太坊。国庆期间以太坊的新闻很多,其中一个是以太坊马上要进行一次硬分叉,代号“君士坦丁堡”,另一件事是以太坊即将扩容的方案——“Plasma”,是对以太坊非常好的扩容、提升效率的方案,也是V神重点推的方案。今天就来聊一聊Plasma方案。
一-雷电网络与闪电网络-
01原理
谈到扩容,比较不错的实现方案还有“雷电网络”,它与Plasma有一定的相似之处,但基于的原理并不一样。
雷电网络与比特币的闪电网络非常相似,原理上是一样的,都是首先在链下建立一个点对点的网络,在这个网络中进行交易时速度非常快,是瞬间完成的,因为它不需要共识。
在闪电网络中,因为比特币没有智能合约的概念,交易双方首先要把一定量的数字加密货币打入到一个独立的交易通道中,并使用多重签名机制锁定预存在交易通道中的加密货币,保证交易通道打开是安全的,而后双方就可以在通道内进行无限制的小额交易。
雷电网络较比特币更为方便,因为它是建立在以太坊上的,交易双方采用智能合约的方式创建的交易通道,并将一定量代币预存入智能合约并锁定,同时提交各自的签名到智能合约。同样的,将双方的交易转移到链下的点对点的网络中进行,直至一方提出关闭通道或到达设定关闭时间,交易通道就会自动关闭,并自动结算双方余额。通过以太坊的智能合约来完成这件事相对更加容易。
此外,雷电网络比闪电网络更好的地方是它还可以处理“改变状态”的交易,而不只是代币的转移交易,比如智能合约的调用。
02雷电网络扩容存在的问题
雷电网络实际上是在提高交易的速度,将大量的交易转移到链下的网络中,而不占用主网共识资源。
这种方案与闪电网络存在着类似的问题,如容易丢失代币或因交易通道的节点有问题导致交易不能成功。
雷电网络只能从提高交易速度上来提高效率,而除此之外,还需要提高单位时间内能处理的交易数量,从这个角度对区块链进行扩容,这种扩容就是Plasma方案要做的事情。
二-Plasma扩容方案-
Plasma方案是由闪电网络的作者与V神共同提出来的。
Plasma克服了闪电网络的一些缺点,另一方面它是更大规模的一种扩容方案。它的主体思想是采用主链+子链的方式来扩容,也就是在主链的某一个区块位置分支出一个子链,而这个子链又可以作为新的子链的父链,最终会形成一个树状的网络。
原本的区块链思想是所有交易均在主链上进行共识确认,而现在就可以把一些交易放到子链上进行,而子链上的交易过多的话,可以再放到下面一层子链上进行,这将是一个递归的过程。
每个子链上都有独有的共识机制和共识节点,子链间是互相不干扰的做共识的,所以子链可以并行处理交易,这样单位时间内能够处理的交易就会变得非常多。通过Plasma方案处理的交易大概为每秒22000+笔交易左右,较原来以太坊每秒15笔左右交易的性能扩展是非常多的,比起EOS宣称的标准都是不差的。
三 -Plasma实现原理-
Plasma也是通过智能合约实现的。
它在一个父链上创建一系列的智能合约,每一个智能合约在创建的时候就锚定了一个子链,这个子链上每个账户的代币的余额取决于这个账户在它的父链上的智能合约里面充值进去了多少余额。即如果账户A在父链的智能合约上充值一笔代币,那么子链上相应的账户A就会得到一笔同样金额的代币。同时,通过智能合约锁定这笔代币在父链上。
当客户端发起多笔交易的时候,可以自由选择在不同的子链上去执行,通过对其他的智能合约充值,把一个账户的金额转移到其他的子链上去,相当于把主链上账户的金额进行了分散的处理。
为了分散规模,每一个子链上参与的共识节点不会太多,所以出块速度非常快,交易得到确认速度也会非常快,再加上多条子链都是可以并行处理交易的,所以交易的并发量特别大。通过这样的方式即可同时提高交易处理的速度和规模。
这个方案非常适合做去中心化的交易所的提速。原本的去中心化交易所如果构建在以太网主链上,它的性能会非常低,但如果通过Plasma方案来处理,其交易性能会得到大幅度的提高,如去中心化交易所OMG(OmiseGo)就选择了Plasma方案作为它底层的技术方案实现性能提升。
四-Plasma方案中主链的作用-
Plasma方案中,交易都转移到了子链上,那么主链的作用是什么?实际上主链是作为监控者保证子链上进行的交易是准确无误的,一旦出现问题,主链会作为最终的裁决者去裁决出问题的区块,进行丢弃或是回撤。
主链是如何进行监控的?在Plasma方案中,每一个子链都会把它所产生的区块信息提交给它上面的父链,然后一层一层递归上去,最终在主链上把交易的信息打包成主链上的区块保存下来。注意,子链提供的仅是交易信息而非子链区块上记录的交易数据,也就是说提交的是保存在其区块头部的哈希值。那么主链上就存储了所有子链上交易的哈希值信息,包括所有交易产生的区块的区块头记录的哈希值信息。这样当子链上的区块产生问题时,在主链上就可以找到记录,从而达到主链作为监控者的目的。
具体来说,当发现子链写的块有问题,即出块节点作恶,写了虚假的交易信息或是做了双花的动作,被其他参与验证的节点发现了,或是被发起交易的账户发现区块记录的交易数据不正确,那么就可以立刻发起请求回撤的申请,而父链必须马上开始对其验证,同时停止该子链的所有交易。此时子链上后面所有的交易也都不再进行下去,并一起回撤。
回撤请求的仲裁将在父链级别以上去进行。仲裁时,打包区块的节点和发现区块有错的节点或交易人可以自己进行举证来自证其说,这个过程会持续一段时间,在这段时间内,原本想通过这个子链进行的交易可以转移到别的子链上去进行,已经回撤的交易金额也可以在父链的智能合约中提取出来,因为子链与父链中的智能合约是锚定的,如果有些交易被回撤了,自然父链上的智能合约结算的交易余额也会回撤到没有做这些交易前的状态。这些动作都是安全的。如果最后证明记录的交易没有问题,那么这个区块最终还会得到确认,子链可以继续运转下去。
五-Plasma方案中作恶惩罚机制-
在Plasma方案中产生出来的子链所采用的是POS机制,如果节点想参与子链的共识出块,就必须要质押一定数额的ETH,假如记账节点在子链上作恶,一旦发生这种行为,那么所质押的代币就要被没收掉,对于乱提交回撤请求的节点或账户同样会有相应的处罚措施。通过这种机制来保证子链上的共识节点不去作恶,也保证不会有人随意浪费资源提交这种回撤的请求。
那么由谁来发现子链上的这种错误?发起交易的人会去主动查看交易有没有正确地记录在链上,另外其他还有很多节点,如果愿意的话都可以作为子链的观察者。这些节点可以不参与子链的共识,但是它仍然可以去监控子链上的区块(意味着它可以接收在这个子链上广播的交易),一旦发现了区块记录的数据有问题,就可以发起回撤请求。这个制度就保证了做监控的节点数量比真正子链上做共识的节点还要多,就可以更多地对在子链上参与共识的节点进行监督。
正常情况下子链是主动提交信息给父链让其打包的,只有在发生了作恶事件,有人提出回撤申请的时候父链才会真正去检查那些已经保存在父链上的子链上的区块信息。
而子链只有在父链也记录了自己的区块头的信息后,子链上产生的区块才算是真正被确认。如果子链区块头的信息还没有被保存在自己的父链上,那么实际上所生成的区块还是有被撤销的可能性的。这也保证了子链上的区块在共识节点比较少的情况下,保证其安全。
六-Plasma扩展功能-
Plasma的扩容实际上是一种数据扩容,此外它还是一种计算上的扩容,当然从现有的资料上看还没有说明只在以太坊上进行智能合约的交易是否可以使用Plasma方案实现,但是从原理上看,它也可以去做这件事。
比如一个计算很复杂,在主链上计算需要花很长时间,而把这个计算的过程分发到子链上进行,就可以把原本一个很复杂的计算过程转化为很简单的计算过程。
在2018年上半年,Plasma MVP实验方案已经运转较为良好,现在正准备正式上线,届时可以看到Plasma对以太坊的促进和改变。
Plasma方案现在由Matter团队提供,他们在提供Plasma基础实验方案的同时,还提供了一系列其他的的辅助工具和应用,甚至还提供了很多其他的相关解决方案,如KYC、AML,这些我们会在以后的分享中提到,今天的分享就到这里。
彩蛋
1、转发文章到朋友圈,送50 DRCT(不许设置权限、删除,截图发群秘,未进群的小伙伴请先加群秘入群)
2、本篇文章内留言,超过50个赞,送500 DRCT(留言限高质量提问、精彩观点分享、参考资料推荐)
以上两项活动时间截止本周三20:00。
3、Q&A、大神考核环节:
小伙伴可在授课公众号文章内留言提问。
DRC精选问题,周三晚8点直播解惑,并开展线上互动Q&A,随后将迎来大神考核,根据课程内容出三道题,每个社区群全部答对的最快的前三名小伙伴将平分600 DRCT。