Plasma —— 以太坊扩容新方案

2018-12-23  本文已影响0人  Nino_Lau

相关工作

Plasma: Scalable Autonomous Smart Contracts -- [Article]


Plasma 背景

随着区块链技术的发展,主链需要非常巨大的计算能力才能完成工作证明。如果采用集中式计算,需要耗费相当长的时间来完成,大大降低了区块链系统的执行效率,以太坊的扩容问题亟待解决。分布式计算下方中央的工作,将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。

Plasma 应运而生。作为一种以太坊扩容方案,对以太坊主链可扩展性的提高通过将大量交易和计算下放到侧链来实现。其基本思想是将所有交易都被触及的共享账簿区块链,转换成一个用户可以私下交换消息的模型;使用 P2P 支付渠道和 Ethereum 的存款网络来保存来自区块链系统的担保;节点之间通信以促进传输,与 Ethereum 区块链通信以管理存款。Plasma 本质上是一系列运行在以太坊主链上的智能合约,只需处理少量来自侧链的请求,海量的交易和计算都在侧链上完成。不同于以太坊主链目前使用的 POW 共识算法,侧链将使用 POS 等更高的共识机制。因此,侧链提供了可扩展性,而主链保证了安全性和去中心化。


Plasma 架构

类似哈希表,Plasma实际上用一个“链中链”来支撑分布式扩容、以太坊的中央工作卸载。

image

如图是 Plasma 架构,最底层是主区块链,是合约和支付的判决层,合约本身在主链上。Plasma 链上包含了当前账本的状态,可以在主链上清算和赎回(如果存在欺诈将允许资金的赎回)。Plasma 提供了一种链嵌套的结构,实现资金的可扩容的存取。闪电网络又基于其上,支持即时支付。

image

更详细来说:节点自身被激励去运行一个链;每个节点都可以创建一个自定义的 Plasma 链;Plasma 是一系列的智能合约,允许在主链里有许多的区块链;主链可以强制 Plasma 链中的状态,是全局计算的强制检查者,计算和惩罚那些存在欺诈的行为;许多的 Plasma 的区块链可以并存,且有他们独自的商业逻辑和合约术语;Plasma 将会由 EVM 智能合约组成,并直接在以太坊上运行;Plasma 执行次数不多,却能代表大量计算得到的金融账本实体。

Plasma 的核心部分由以下几部分构成::


Plasma 区块链

多方通道可以代表他人持有某个状态,这个框架被称为一个 Plasma 区块链。Plasma 链支持存取资金,通过在欺诈证明中提供状态转换证明。


链中链

Plasma 是一系列运行在根区块链(Mainnet Ethereum区块链)之上的契约。根网络契约只处理来自子区块链的少量提交,而子区块链在大多数情况下都能进行非常大的计算。子链门会把自己的提交定期地根区块链广播。根区块链就如同是最高法院,所有下级法院都要从它那里获得权力。并非所有数据都传播给所有各方,各方负责定期监控他们感兴趣的特定链,并惩罚欺诈行为。在发生攻击时,参与者可以迅速而廉价地从子链大量退出到根链。

Plasma区块链层级排布在树中,将会最大化数据可用性、安全性,并可以最小化成本。挖掘只在根上进行,并且具有充分的安全性,安全性和证明从根链流动。

image

每个子区块链都有它的 token 作为验证激励,并在其受欺诈时用做保护。一旦发现欺诈,就会失去其保证金。

image

区块转移图:如图为Plasma的层级排布。参与者可以集体将其资金到其他链上,以免其父链是一个欺诈链。当出现攻击行为的时候,子区块的提交被广播至父链或者根链。


权益证明 PoS

当我们发现一个区块时,我们很自然地会觉得他是最长的那条链,但也不是非常确定它是不是最长的。为保证它是最长的,我们要附加自己的块并广播给网络中的参与者,来增大它的机率。区块扣留攻击在这种机制中的问题被无限放大。关于区块扣留问题的可以参考我博客的这个文章或者论文“Proof-of-Work ” Proves Not to Work version 0.2Majority Is Not Enough: Bitcoin Mining Is Vulnerable

文章中提供的解决方案是允许权益所有者在主链或父Plasma链中发布一个新区块的提交哈希。

image

MapReduce 分治

之所以我把 Plasma 视作是一个分布式区块链,主要原因还是说到了 MapReduce。我在大二云计算课上实现了一个关于 PageRank 算法的 Hadoop 程序,发现这个思想跟 MapReduce 分治如出一辙。

MapReduce 是一种编程模型,用于大规模数据集的并行运算。概念"Map"和"Reduce",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。下图为 Plasma 的 MapReduce 模型。

image 左侧蓝色虚线是 Plasma 从父节点传递到子节点的消息。子节点必须在 image

节点仅仅需要关注那些它希望执行的数据。如果经济行为或者计算发生在其它的 Plasma 链上,它不需要执行。


欺诈证明

欺诈证明(智能契约逻辑)强制执行,检查子区块链中的所有状态。欺诈证明确保了所有状态转换都是有效的。此外,这些欺诈证明还强制执行了一个交互式协议的资金提取。

image

区块4通过前一个块的数据和第4个块中的Merkel证明是欺诈的。

image

Alice 有所有区块的数据,所以在主链上提交了一个欺诈证明。第4个区块从而变得无效并回滚,无效区块提交者失去了在智能合约中的押金从而得到了惩罚。在某些设置的时间以后,区块将确定下来。应该通过完整的校验区块确保在没有欺诈的区块上继续建立区块。


Plasma 资金变动


总结与感想

随着一些其他的以太坊扩容问题的发现,许多方案应运而生,如 Casper、Sharding、Raiden Network。作为一个新颖的以太坊扩容方案,一些公司已经宣布他们将使用 Plasma。读完 Plasma 白皮书,十分佩服这个团队的能力,同时也质疑这个框架的“大众友好性”,编写一个安全可靠的智能合约将是一个艰巨的任务。

新技术带了新挑战,“链中链”这个新形式的产生势必带来很多新问题,同时推动区块链技术的研究,以太坊技术问题的领域也将更加浩渺。


参考资料

喝水不忘挖井人”,这里感谢为我带来灵感的参考


更多资源

您可以从这些地方获得在线资源和我其他关于 Plasma 的工作:


上一篇 下一篇

猜你喜欢

热点阅读