unitimes.media 全球视角,独到见解
背景
以太坊旨在成为一个安全、易用、由一套共同的经济协议约束、可供数十亿人使用的分布式互联网,致力于构建此基础架构并扩大以太坊容量的项目通常称为扩容方案。
2017年8月,Vitalik Buterin和Joseph Poon发表《Plasma:自主智能合约》一文,宣布将Plasma作为以太坊新扩容方案。
什么是Plasma
Plasma是一种以扩容解决方案,它使用子链向根链(即以太坊)报告的方式来增加交易吞吐量。本质上是存在于区块链上的区块链,由一系列智能合约组成。
AMA
上周五,Unitimes成功举办第一期微信群AMA活动——“揭秘以太坊最新侧链技术Plasma”。我们有幸邀请到了OmiseGo Plasma 的核心开发者David Knott作为嘉宾来为大家分享有关Plasma的问题。
本次AMA分为两个环节:
固定问答环节——
Untimes根据Plasma现状,以及和David本人协商,拟定出了9个问题。
以下为问答具体内容:
Q 1. 你是一个热爱大自然、喜欢冒险的人,请问这种性格是如何成就现在的你的? David:我对自然和冒险的热爱让我有机会接触到不同的经历和视角,也同时让我对于整个世界和生活在其中人们的思想和感受有了更透彻的感悟。创造能够让来自不同背景的人有机会赢得奖励的平台是最初吸引我进入以太坊领域的原因之一,也是我今天仍在以太坊生态系统工作的原因之一。 Q 2. 能跟我们分享一下你最初接触区块链和以太坊生态系统,到现在开始研究Plasma的历程吗? David:我在大学里学习经济学,但决定辍学去学习编程。后来我深陷于Ruby on Rails (Ruby on Rails:使用Ruby 语言编写的Web 应用开发框架)。之后我学习了以太坊的知识,并开始编写 Solidity 智能合约。
但是因为对以太坊虚拟机(EVM)不够了解,经常受到限制,所以我决定深入底层架构的层面去学习它是如何运作的。我开始为一些python 以太坊代码库写代码,最终致力于以太坊 Vyper 语言的研究工作。
在与其他研究者共事过程中,我对机制设计越来越感兴趣,并也想为之贡献自己的力量。大约在那个时候,我接触到了OmiseGO,这让我有机会研究Plasma。
注:在github上为开源项目做贡献是学习和熟悉以太坊生态系统的绝佳方法。 Q 3. 请你用简单的语言解释一下 Plasma 如何解决区块链扩展性问题。 David:Plasma 体系可以看作是一个法庭系统。以OMG网络为例,以太坊是最高法院,负责为整个网络提供安全性保障。
当一切运行顺利时,OMG网络将作为下级法院运行,而且不需要以太坊的参与。但是,如果 Plasma 的某个子链怀有恶意,所有在该子链上存有价值或状态的用户都可以向上级法院(即以太坊)提交交易,在以太坊上保管自己的资金。 Q OmiseGO是基于Plasma 结构设计的去中心化交易所。Plasma如何做到支持一个可扩展的、完全在链上的交易所,同时保证其安全性? David:Plasma架构将允许OMG网络拥有支持DEX所需的带宽,同时保证其安全性。它通过定期向以太坊网络发送状态简况(区块根,block roots)来实现这一点,因此以太坊可以在子链变得怀有恶意时充当仲裁者。
我现在最紧迫的任务是创建Plasma智能合约的实现标准来推进Plasma 项目, 从而使各个项目能够借助Plasma继续前行,而不是重新发明创造。
概括地说,区块链技术还很年轻,因此拥有跨学科的技能将非常有价值。如果研究人员能够专注于创建可重复使用的基本体和标准,就不仅可以帮助自己的项目,也可以帮助整个生态系统发展。在我看来,最具交集的三个领域是密码学、分布式系统和加密经济学。 Q 5. Plasma Cash是什么,为什么它要求的数据校验更少? David:Plasma Cash 需要更少的数据校验是因为为了保障用户的资金,每个用户只需要验证他们自己的数据,而不需要验证子链上的每个状态转变。这是通过将Plasma 子链中所有的价值表现为类似于现金的不可替代代币 (NTFs) 来实现的。
NFTs 是一种非常有用的价值表征形式,因为NFTs允许以太坊智能合约只关注与特定用户相关联的离散值(discrete values),而Plasma MVP 则是将所有在以太坊智能合约中存储的资金集中在一起。
有趣的是,相比于Plasma MVP,Plasma Cash 的时间限制也更少。 Q 6. Plasma 需要一些链下的中心化系统或者预言机来探测和处理根链的网络堵塞问题吗? David:如果一条 Plasma MVP 链变成恶意的,用户必须在一定的时间内退出以太坊来保证安全。换句话说, Plasma MVP 需要以太坊是随时可用的,但是以太坊要用于许多不同的事情,而且交易成本的多少是基于交易需求而定的。
追踪以太坊交易成本(又名网络堵塞级别) 的一个方法是在以太坊上有一个中心化的预言机来通知 Plasma 智能合约。但这存在引入单一故障点的风险,因此并不是一个可行的选择。
鉴于此,我们将通过让一组人(a group of stakers)提交关于以太坊交易成本的信息来对此进行改进,由于所提交的信息是基于以太坊区块根(Ethereum block roots)中所包含的信息,因此这些信息将是可验证的,而且以太坊智能合约已经能够访问这些区块根。我们将使用这个游戏来证明网络堵塞信息是正确的,
就像这篇文章中描绘的Truebit 游戏: https://people.cs.uchicago.edu/~teutsch/papers/truebit.pdf Q 7. 快速撤回和大量撤回是什么意思?两者有什么不同? 快速撤回是一种将根链撤回周期从至少一周缩短到几分钟的方法。通过允许想要撤回交易的用户向流动性提供者(liquidity provider)交一小笔退出费来进行撤回操作。然后,流动性提供者等待退出被处理,最初要撤回的用户便得以撤回。由于价值是不稳定的,所以这一点尤其重要,许多用户并不愿意承担等待一周的风险。
大量撤回允许通过一个以太坊交易来撤回多个 UTXOs(即未使用交易输出,Unspent Transaction Output)。撤回负责人从 UTXO 所有者那里收集签名并汇总,然后该撤回负责人向以太坊提交一笔大量撤回的交易,从而发出有关哪些 UTXOs 正在被撤回的信号,同时提交能够证明这些正在被撤回的 UTXOs 的总价值的默克尔树证明。在一段时间后,如果没有人对大量撤回提出任何异议,则这些撤回将被处理,这时大量撤回的参与者就可以索回他们的资金。 Q 8. 我们怎么才能在 Plasma 上实现更快的经济最终确定(economic finality)? David:子链是由根链保护的,因此,如果想要完成某笔交易,用户必须首先将该笔交易提交至子链上,等待该笔交易被打包到子链区块中,然后等待子链区块根(the child chain block root)提交到根链(即我们正在使用的以太坊网络),最后等待根链上的最终确定。这个过程只需要几分钟。
但是子链上的共识可以执行有担保的副签(bonded countersigning)来加快整个过程,本质上是将责任从用户转移到子链的共识上。
如果子链的共识是单个的操作员,那么当 Alice 向子链提交交易时,她会让该操作员立即签署她的交易来保证最终完成交易操作。
如果不成功的话,Alice 会从该操作员那里得到大于她从该笔交易中损失的价值并(该笔交易没能被打包上链)。有了这个结构,Alice 在子链上的交易上几乎可以立即获得经济上的最终确定。 Q 9. Plasma的架构是怎样和以太坊交互的?Plasma的使用又将如何影响以太坊? David:OMG网络的Plasma架构将通过智能合约根植到以太坊中。用户将通过以太坊的Plasma 智能合约向OMG网络进行存款和取款。
如果一切正常工作,只有子链的区块根(child chain block roots)需要定期提交至以太坊上。由于每个区块都包含许多笔交易,所以将区块提交至以太坊上的成本是由子链交易费用支付的。 自由问答环节—— 固定问答环节结束后,参与此次AMA的成员可以自由提问。以下为Unitimes从群成员的提问中精选的几个问答:
Q 1. 你对用经济激励针对子链有什么看法? David:如今已有OMG代币用来支持OMG网络子链,经济激励对于子链来说至关重要。数据不可用是个很大的问题,因为根链无法知晓子链的共识是否保留了区块,它只能看到子链的根块。因此,我们必须要用经济激励来解决这个问题,OMG代币就是其中之一。 Q 2. 我最近有了解一些关于用Plasma链上智能合约进行链下确认的讨论。我有个问题:即使STARK机制是用来缓解主链的工作量,如果Plasma用户数量很庞大的话,对于Plasma操作人员来说计算负荷还是很大。这样会导致一个我们不愿意看到的多中心化结果,从而将小型操作员排除在外吗?如果发生了这种情况,你打算如何来解决呢? David:在设计这些系统的时候,把小型操作员考虑在内;在可能的情况下,甚至要把整个平台考虑进去都是非常重要的。由于Plasma算法用的越来越多,它无法支持每个操作员来运营整条链,所以我们最可能转向分片解决方案。 Q 3. 可以用Plasma运营EVM吗?我们可以在Plasma上编写智能合约吗? David:目前还不行。EVM的状态转变太复杂了,而且EVM的成本很高。 Q 4. 我想问一个关于Plasma可用性的问题。你是否考虑过在检测到阻止攻击并且每个用户都退出之后的恢复协议? David:是的,我们想了很多。每个人都能收回资金,这很好,但这只是开始。如果一个子链断裂却没有恢复机制的话,那么这要么导致依赖子链的企业离线,要么不得不支付昂贵的以太坊交易费用。我们现在正在研究的解决方案是让人们向智能合约提交Plasma链块,然后让退出的用户指定Plasma ID。 Q 5. 每个人都能提交根块吗?如果很多用户提交了同一个区块怎么办? David:每人只能提交他们自己的Plasma链的根块。如果子链的共识想要提交同一个根块,这当然可以,但是这可能会造成强制退出。 Q 6. 我之前有从Eric Olszewski那里听到过Plasma Credit,你有参与到这个项目中吗?如果有的话,你能简单的说说吗?谢谢。 David:我知道这个项目,但是没有参与进去。据我所知,它是来扩展Plasma Cash的方案。
◆ ◆ ◆ ◆ ◆
以上是本次AMA的全部内容,非常感谢社群成员对Unitimes的大力支持,更感谢凌晨5点隔着15个小时时差参加此次AMA的David。
看了以上内容,大家对Plasma还有其它疑问吗?欢迎在文末留言评论!
|