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



  • 原创: Dave Kajpust 蓝狐笔记
    链接:https://mp.weixin.qq.com/s/qHNHQOnnGWZOpUdlUO5rjA

    前言:区块链的扩展性是限制它走向主流人群的主要障碍。本文主要聚焦解释侧链模式和跨链模式的扩展性解决方案。它们分别是如何来解决扩展性问题的?它们又有什么局限?本文仅代表作者观点。本文文作者Dave Kajpust,来源于medium.com,有蓝狐笔记社群“Leo”翻译。

    接上一篇《区块链扩展之路:Plasma和Cosmos(一)》
    链接:https://bbs.onedev.club/topic/55/区块链扩展之路-plasma和cosmos-一

    Cosmos

    Cosmos是从不同的互补的角度来解决扩展性问题的。Plasma使用单个验证者来生产区块,提供许多链下交易。Cosmos是去中心化的公共网络,有很多验证者,因此,它无法达到单个验证者的交易速度。

    然而,Cosmos引入BPOS(Bonded Proof of Stake的共识协议),也称之为Tendermint。这个共识协议相对于PoW来说,性能有了提升,同时具有抗审查属性,这是单个验证者所不具备的。Cosmos network还旨在实现区块链的互操作性,它也是第一个发布这种功能的平台。

    有一些常用的术语用来描述扩展性,定义如下:

    Layer 1垂直扩展—— 主要指区块链基础层的扩展。比如比特币基础层是由POW矿工来保证安全。为了获得更细的颗粒度,Layer 1垂直扩展涉及基础层协议的更改。增加区块大小是垂直扩展的一个案例。把共识算法从POW最长链算法改为Tendermint BPOS也是一个案例。

    Layer 1 横向扩展—— 主要指通过与基础层区块链相连接的扩展。这些区块链的协议允许它们与其他区块链进行通信和传输信息。用双向锚定的侧链相连模式是一个例子。可以把Cosmos看作是有效的侧链框架,可以在它上面构建独立的区块链。

    Layer 2 扩展(链下扩展)——Layer 2 主要指抽象地位于基础层之上的层。它的安全性依赖于基础层的安全性。第2层的状态通过检查点检查进入基础层,这允许很多的交易在基础层之外完成。例子有支付通道、闪电网络、雷电网络、Plasma。

    0_1540170135587_cb7c289e-1ba7-4ed2-a4b3-cb1822917ca8-image.png

    (Layer 1 提升了区块链基础层的扩展性。Layer 2 的扩展在Layer 1之上。Layer 2的安全性始终依赖于Layer 1协议。)

    区块链可互操作网络的协议允许区块链更容易成为彼此的侧链。这使得水平扩展成为可能。Cosmos允许区块链开发者启动他们自己的区块链,称为“zone”,以连接区块链路由“Hubs”。如果单个zone或区块链满负荷运转,你可以启动另外一个zone来有效提升应用的运行能力。来看看Cosmos是如何在网络中使用Hubs和Zones。

    剖析Cosmos运作之道

    Hub和Spoke模型旨在连接不同的区块链,它是以有组织、但去中心化方式来实现。如果以太坊主网交易拥堵,它可以通过 Layer 2 解决方案,比如Plasma来实现扩展。或者,它可以用安全方式连接到一个完全不同的区块链,并将以太坊网络的一些负载分配到新连接的区块链上。Cosmos使用这种方法创建了一个去中心化的连接区块链网络。Hubs 和Zones 是这个网络两个组成部分。

    ![0_1540170262866_0340e85d-c882-49f4-b9f2-73a18ba268c2-image.png](正在上传 100%)
    (网络路由路径的可视化,它遵循Hub和Spoke的连通性模型。Hub是地图上的黑点,它们有很多的连接。)

    Hubs和Zones

    Cosmos Hubs和Zones在白皮书上描述最清楚,本文在这里做简要阐述:

    Cosmos Hubs—— Hub是一个区块链,它的主要功能是充当Zones的路由器。它支持zones之间的路由信息以实现互操作性,同时为连接到Hub的所有区块链保持不变性状态。Hubs也是多资产的分布式账本,用户可以在其中持有tokens。这使得Hubs成为专门的状态机,而以太坊则是通用的状态机。

    因此,以太坊有智能合约能力,而Cosmos Hub不具备这个能力。然而,在Cosmos上构建去中心化应用的关键是使用Cosmos-SDK来构建,你的专用状态机可以在其自己的区块链上运行,也就是所谓的“zone”。

    Cosmos Zones—— 一个zone是一个独立的区块链,可以与Hub交换消息。zone的主要功能是充当应用程序专用的区块链,专门为应用开发者服务。通过发布“梅克尔证明”作为信息已经发送和接收的证明,将信息包从一个zone传递到另外一个zone。一个zone会跟踪自身的状态,以及它所连接的Hub的状态。Peg zone是一种特殊类型的zone,它用于连接现有的实时区块链网络,实时区块链网络没有交易结算最终性进入Cosmos网络。

    在启动网络后,使用Cosmos-SDK构建的Zones最初将由Tendermint作为共识引擎支持。但在路线图背后,有计划允许交换任何可能的共识协议,并将这些区块链连接到Cosmos网络。

    Tendermint、PoS以及验证者

    Cosmos网络的区块链要求最终性进行彼此交互。最终性是一种保证,保证区块链的状态将不会逆转。在POW,你只能获得概率性的交易最终性。

    Tendermint是一种PBFT共识协议,可以提供最终性。Cosmos技术堆栈支持由Cosmos-SDK构建区块链,Cosmos-SDK得到Tendermint共识协议和网络协议支持。作为开发者,你只需创建你的状态机应用程序。然后,你就可以把你的区块链连接到Cosmos网络,并进入其网络内每个区块链的流动性。Tendermint也提升了扩展性,因为它的协议使用了需要许可的签名,而不是无需许可的哈希来达成协议。

    Tendermint的确定性协议保证了两个关键属性:可用性和安全性。网络的验证者自己先付出以提供100%的正常运行时间,这样来保证可用性,并且对正确的交易进行投票。如果他们违反协议,他们将通过消减他们的Atoms来使其失去货币价值。因此,Cosmos网络的最终用户依赖于PoS激励体系来确保验证者是好的行为人。

    Cosmos如何能扩展应用程序?

    Tendermint共识和Hub及Spoke 架构都为专用于应用程序的状态机提供优化的扩展,同时也提供区块链的互操作性。来看看提升扩展的一些方法。

    使用链间通信的多Hub架构

    Hub和Spoke架构要求区块链具有智能合约的能力,允许执行链间通信协议。区块链间通信协议允许在区块链之间交换任何消息。

    在推出Cosmos网络之后,IBC消息将主要包含用于交换数字资产的数据。但它也可以交换消息,以便在其他区块链上进行合约调用,以及可以做其他你能想到的事情。链间通信协议为开发者提供了直接的方法,便于构建可以跟其他的区块链通信的区块链。

    Cosmos Hub将会成为第一个Hub,也有其他团队在致力于做二级Hubs,这些Hubs会通过链间通信进行沟通。IRIS网络是致力于连接到Cosmos网络的Hub。这打开了扩展性的潜力,也显示出在壮大去中心化网络过程中,开源代码是多么重要。这个多Hub架构是由分布式的开源开发者们构建,它赋予了Cosmos世界固有的去中心化属性。

    0_1540170809209_f5cd63d1-ba91-4aa8-8ea9-e26be48f35a2-image.png
    (多Hub网络在每个hub间建立良好连接。每个zone必须连接到hub,但通常来说,zone之间的连接不是必须的。)

    使用Cosmos SDK构建 Plasma侧链

    Cosmos SDK是Cosmos 技术堆栈的一部分,开发者可以利用这个框架构建新的区块链应用程序。甚至Plasma侧链也可以用SDK构建。尽管Plasma智能合约可用Solidity编写,但侧链代码可以用Cosmos SDK编写。一旦创建了侧链,用SDK构建无尽的Plasma侧链会变得容易。这类似于第一个ERC-20代币很难创建,但现在很容易找到和使用有效的ERC-20代码。

    Ethermint

    以太坊虚拟机是可以使用Comos SDK与链间通信连接的虚拟机案例。使用SDK,开发者可以用Tendermint BPOS达成共识,而不是依赖于最长链的POW。事实证明,已经可以超过200tps,Cosmos的核心开发者致力于通过Ethermint来实现这一目标。

    这让开发者有机会在不同的EVM上运行他们的应用程序。对于那些已经在以太坊主网上构建自己平台的团队来说,这提供了一个更高交易速度和全新平台的可替代选择。对他们来说,之前的平台上运行应用程序可能过慢或过于昂贵。

    专用于应用的区块链

    SDK让构建专用于应用的区块链变得容易。预测市场、拍卖市场以及其他专门的应用可能更适合使用专属自己的区块链,而不是试图把它们都塞进一个平台,如以太坊主网。

    创建属于自己应用的专用区块链给开发者们更大的权力。即使是基于通用平台(如以太坊)构建的成功项目,如果gas价格太高,项目也可能因为使用产品太贵而选择放弃使用。相反,如果他们可以创建专属于运行自己应用的专用区块链。这可以极大提高性能(不用担心被其他程序所堵塞),同时也可以减少攻击面。

    Cosmos的不足

    基于Cosmos-SDK的区块链运行具有多个Tendermint共识的验证者,理论上,应该比单个验证者的Plasma链吞吐量更低。然而,Plasma交易延时高,这是因为它要等待根链的确认。

    此外,“slashing”并不会保护用户免于状态机错误,且这也不能完全阻止验证者从用户处窃取财产。这意味着,在Cosmos v1.0版本中,如果zone执行者有恶意行为,目前还没有协议层面的惩罚。当然,值得注意的是,Cosmos会在发布不久后推出共享安全。如果连接到网络的zone有恶意行为者,用户在这个zone的任何数字资产都可能受到攻击。目前防止这种情况发生的方法是确保Cosmos网络的利益相关者保持关注并且信任连接到网络的每个zone。

    可扩展的未来之路

    区块链空间面临扩展性的挑战,很多项目致力于解决这个问题。虽然本文聚焦于以太坊和Cosmos,但几乎每个区块链都面临类似的扩展性问题。

    Plasma致力于改进layer2,它使用UTXO状态扩展高吞吐量的应用。Plasma背后的研究者们将继续微调他们的机制,并致力于大规模退出的设计,这证明是有利于所有利益相关者的安全的,同时支持有更多状态的应用程序。

    Cosmos则试图改进layer1水平扩展,通过在具有高度特定状态机的区块链之间交换任意消息来优化。Tendermint提供 layer1垂直扩展,以比POW最长链协议更快地达成共识。使用Cosmos-SDK,他们提供所有构建区块,以在Cosmos网络上实现连接。你要做的是,设计和执行你高级的应用程序逻辑。

    将来,Layer1和Layer2扩展会被一起使用,都用来扩展商用级别的应用。有一天,我们也许可以看到Cosmos Hub与使用Tendermint 共识的EVM zone连接,而其中有Plasma子链也可连接在一起。

    在未来很多年,扩展将继续是区块链领域的热门话题。Cosmos和Plasma提出的解决方案仅仅只是开始。