登录 注册 发布

小蜜蜂

区块链扩展之路:Plasma和Cosmos(一)



推荐

小蜜蜂为你精心推荐。

前言:区块链的扩展性是限制它走向主流人群的主要障碍它们分别是如何来解决扩展性问题的?它们又有什么局限?本文仅代表作者观点。

本文文作者Dave Kajpust,来源于medium.com,有蓝狐笔记社群“Leo”翻译

区块链的扩展性可能是当今区块链领域最重要的问题它为去中心化应用提供了构建商业化规模的机会,提供了与中心化应用竞争的机会。

不幸的是,很少有人真正懂得如何实现扩展,扩展方面也没有很多详细的细节解释

本文试图解释区块链的扩展性问题,方式是通过对两个不同的扩展解决方案:Cosmos和Plasma进行详细解释Cosmos的技术堆栈则不同,它不是直接的扩展解决方案,它是跨链解决方案,它试图解决很多区块链的挑战,扩展性也是其中之一

突破扩展性

很重要的是要明白一点,提升了区块链的扩展性会涉及到去中心化和安全方面的平衡。

Vlad Zamfir给“不可能三角”极佳的可视化:

(不可能三角考虑了容错共识协议中的扩展性、去中心化和安全)

比如,比特币为了去中心化和安全牺牲了扩展性。

但,最近几年开始,越来越多的团队开始探索区块链的可扩展解决方案

接下来,通过分解为两个较小问题来探究扩展性

吞吐量(TPS)

吞吐量是指在固定时间内传输的数据量,通常用TPS(每秒交易量)来表示

增加吞吐量的一个方法是增加区块大小然而,它确实需要更多的处理能力,因为在相同时间内要处理更多的交易。

吞吐量的增加会导致网络更加中心化,原因是吞吐量增加会消除一些节点,这些节点无法提升必要的CPU处理能力。

如果我们仔细观察比特币和以太坊的吞吐量,可以看到它们都是高延时的网络。

下面是一些有助于它的设计选择:

l 经过大量优化,使审查和拜占庭容错变得昂贵

l 尤其是比特币,开发者试图让运行一个全节点的成本保持在较低的水平,尽可能让网络保持无须许可

l 在同步模型下,它们有一个利于实时的分叉选择规则

这些设计选择使得两个网络保持了去中心化和安全,与此同时,也保持了较低的吞吐量相比之下,很多新区块链协议试图提升吞吐量,但它们通常会牺牲安全或去中心化

延迟(达成共识的时间)

比特币最长链POW算法依赖于同步的假设,假设平均需要10分钟才能达成共识

我们会简要介绍比特币的延迟,以此来解释网络是如何达成共识的。

你可以把出块时间从10分钟降至5分钟,这样,你把吞吐量有效地提升了两倍。

10分钟出块可以提供足够的时间来向网络的所有节点广播新产生的区块。

选择这个区块时间,是因为网络的优点是尽可能快地将新区块广播到其他节点。

接下来,我们会阐述Plasma扩展的技术路线,它会为去中心化网络增加什么能力

Plasma

Plasma于2017年8月由Joseph Poon和Vitalk Buterin首次提出侧链的安全由底层根链来保障,一旦Plasma用户发觉恶意的节点行为,他们可以退出侧链

这是Layer 2的解决方案,可以提高扩展性,潜在的tps可达到1000以上

Plasma是如何工作的

首先,我们需要定义Plasma是什么有三种不同的Plasma概念经常被提及:

l 最初白皮书中阐释的Plasma

l 最小可行的Plasma(MVP)

l Plasma 现金

l 还有其他Plasma,比如Plasma Debit,其他可行的Plasma,这也是目前活跃的设计领域

Plasma使用密码学和博弈理论,目的是为了允许个人能够在Plasma区块链上进行可靠的交易。

Plasma应该被看作为一组设计原则,它可以让你构建你的大规模可扩展的去中心化应用

Plasma背后的主要设计原则是保证用户具有与主链同样水平的安全,与此同时,它还可以提供远高于主链吞吐量的侧链如果用户发觉在Plasma链上的任何恶意行为,他们可以离开Plasma链,并在主链上恢复资产

目前大多数Plasma设计都有一个验证者验证者可以审查在Plasma链上的用户,但用户能够退出侧链并恢复其资产。

由于这种隐含的信任,Plasma的设计允许它扩展到1000tps

为了比较,像比特币这样的网络具有抗审查能力,因为1000个节点很难串通。

现在,让我们看看初始白皮书中的Plasma

白皮书上的Plasma

最初的白皮书上把Plasma描述为一种扩展设计,试图把区块链扩展到每秒数千次状态更新

为了达成目标,有一个Plasma智能合约存储在以太坊主网从主网角度,这个智能合约并无特殊,也不用对以太坊核心协议做任何升级。

Plasma智能合约基本上将整个子链连接到主网,充当桥梁作用通过提交最新梅克尔证明,子链的每个区块都记录在主网的Plasma智能合约上,这在之后用来验证子链上的数据。

这可在子链上实现1000tps,而只需将单个区块哈希提交到主链

 (Plasma组成区块链树。

在Plasma链上的每个交易都要求用户签名确认,确认他们在区块中看到了交易,并且交易已经被包含在主链然后,确认将被签名并且包含在另外一个区块中,证明双方已有数据可用性

确认签名允许保证双方都已经看到交易,并且没有信息被扣压然而,数据被Plasma子链验证者扣压是可能的,这要求用户定期在线如果出现这样的行为,所有的利益相关者必须能够“大规模退出”子链关于Plasma子链的大规模退出,还没有详细的描述,我们会在此处阐释

当利益相关者注意到子链的恶意行为,开始退出Plasma 区块链,停止交易。

这个过程设计的目标是,将质押在主网Plasma智能合约上的Ether退还给真正的所有者。

要达成这一点,所有Plasma侧链token将兑换为原始质押存款,正是这些质押资金在以太坊主网上创建了它们。

然而,这个退出过程涉及到每个Plasma账户执行至少一次主网交易一个有10,000个账户的Plasma链要耗费很长时间达成大规模退出,同时耗费大量gas。

毋庸置疑,这就是Plasma设计领域变得有意思的地方

作为第一步,Vitalik提出了一个简单的Plasma可行方案,称为最小可行Plasma

最小可行Plasma(MVP)

最小可行MVP是Plasma的精简版Plasma智能合约包含如下数据结构:

l 智能合约的所有者

l Plasma区块列表

l UTXO(未消费交易输出)位置

有了这些数据结构,我们还需要根据交易排序执行优先退出。

这也意味着,在大规模退出发生时,UTXO交易将在主网上重放,重放会根据它们在Plasma链出现的顺序进行,直到所有资金都返还这会确保没有利益相关者可以跳出伪造区块并在退出时候偷走Ether。

在MVP中有三个利益相关者:

l 以太坊主网矿工

l Plasma验证者,称为“操作者”(他们维持Plasma子链的运行,以获得费用)

l 在主网Plasma智能合约上抵押Ether的用户

通过这种MVP的设置,我们只是进行简单的token转移,并不具备通用智能合约能力token不能被双花,不能被扣压,并且总是可以通过Plasma退出回兑到根链

我们甚至可以运行一个MVP链,只有一个POA Plasma验证者,并保证安全退出未来,Plasma Cash的设计专门考虑了不可兑换Token,比如ERC-721 token标准

Plasma Cash(现金)

不可兑换的token类似于你口袋中的现金你口袋中的每张美元钞票都有一个系列号,这让它独一无二,每个ERC-721token也有唯一的标识符。

这意味着,在存储数据的梅克尔树中,只有一个token有效的位置任何其他人试图把该token退回到主链都很容易受到token真正所有者的挑战。

为了激励良好行为,每个Plasma链用户在加入时都会提出退出存款如果他们试图退出不属于自己的资金,一旦被发现,他们会失去所有的存款,转给挑战者。

Plasma Cash 所有者只需跟踪他们独特代币的数据,而不是整个区块链状态两种设计都要求用户在检查点期间至少登录一次,以确保没有其他利益相关者试图错误地退出其token。

总的来说,Plasma Cash对需要简单UTXO状态的高吞吐量应用来说,具有良好的前景

Plasma如何实现应用的扩展?

可以想到一些应用,它们有高吞吐量和UTXO状态,比如去中心化交易所和通用支付

去中心化交易所

多年来,中心化交易所被黑客攻击过很多次。

Plasma具有高吞吐量,这让它成为构建去中心化交易所的有力竞争者,这些去中心化交易所可以连接到主链,由此移除对中心化交易所的需求

目前也有去中心化交易所,比如IDEX,也有去中心化交易协议,比如0X,它们目前受制于以太坊吞吐量。

然而,构建一个Plasma去中心化交易所并不是简单去中心化交易所,比如IDEX,它在以太坊主网有很多智能合约和状态对象,这允许它运行,并且为了构建一个能运转的DEX很可能需要智能合约的支持

目前,Plasma相关的大多数想法都集中在有简单UTXO状态的高吞吐量应用上因此0X和IDEX交易所还无法在Plasma上运行,直到它能支持更多复杂状态对象进行大规模退出。

特别是,一个交易所需要一个订单簿以最好的价格来匹配订单它也需要做市商、交易者来给平台提供流动性,且还涉及到多种token,需要数百万数千万美元此外,交易者希望可以从平台中快速提款,这也受制于Plasma挑战期的局限。

支付

支付更适合Plasma MVP和Plasma Cash但要记住,在Plasma,每次转移的速度仍受限于根链的最终时间

除了微支付,任何一群用户之间,如果需要经常发生重复和昂贵的以太坊主网交易,他们也可以使用Plasma链以节省费用如果我们希望用区块链来处理购买咖啡这样的微支付场景,我们必须找到一种可扩展的方法

Plasma的局限

截止到现在,想让Plasma链拥有完整的EVM能力是不现实的,也不是正确方法

我们必须保持简单,其中一个理由是因为智能合约的所有权性质一个智能合约可以包含许多不同的功能和状态变量,这些变量由不同个人所拥有

这会在大规模退出时带来问题,因为它要求保证Plasma链的安全任何从状态A到状态B的有效状态转移将会导致任何状态A的退出无效由此,子链智能合约的每个单一状态都需要有明确的所有权,否则,大规模退出总是可以被阻止的

在Plasma链上拥有复杂智能合约是可能的,但它们必须是受约束的智能合约尽管如此,随着研究的深入,Plasma智能合约应该最终支持更复杂状态

大规模退出非常关键,因为即使你设计了一个非常安全的Plasma链,仍然有必要存在一个高效的方法来处理从Plasma到主链的交易。

大规模退出如果花费太长时间或太昂贵,都将是不可接受的,因为它会把用户的资金置于危险之中

白皮书中描绘的确认签名也是有限的这样的用户体验很糟糕,因为每一方不得不提交另一个确认交易以确认原始交易然而,Plasma Cash和更多可行的Plasma目标在于解决这个问题。

对于Plasma退出,它也要求用户每个检查点在线一次,这是一种设计约束,它可能会让一部分用户不想忍受麻烦

---未完待续---

------

风险警示:蓝狐笔记所有文章都不构成投资推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策

愿你的年轻的岁月如同小蜜蜂一样勤奋,愿你生活如同蜂蜜一样甜蜜。

482

评论