关于Massa的简介

Hei Long
Aug 8, 2022

--

2020年11月10号

目前能够实现高交易吞吐量的区块链要么是中心化的,要么是不安全的。

针对Massa,我们设计了一个新的架构,称为Blockclique,在不牺牲去中心化和安全性的情况下,将交易吞吐量扩展到每秒10,000次。我们的架构是基于多线程区块图中的交易分片建立的。在这篇博文中,我们将会介绍Blockclique的主要概念。你也可以深入研究技术文件,或者在massa.net/testnet上与实时测试网进行交互。我们期待听到您的反馈!

TL; DR

- 我们将交易分片和多线程区块图架构结合起来,并使平行区块能够进行兼容交易

- 我们将中本聪的共识规则扩展到了平行区块,允许使用 “权益证明 “达成安全和去中心化的共识。

-Blockclique架构可以每秒处理数千笔交易,与传统金融系统相当。

我们遇到了一个扩展问题

当前的区块链还不具备一定的规模。要想取代传统的金融解决办法,区块链必须能够处理与传统系统相当的交易数量。当前,在整个互联网上,比特币的交易速率仅为每秒5次交易(tx/s),而以太坊则为每秒15–20次交易。这些数据与传统的金融体系相差甚远。例如,VISA系统在2017年处理了1110亿笔交易(平均为每秒3500次 tx/s)。因此,区块链很容易变得拥挤,这从Cryptokitties的大肆宣传中可以看出。

为什么?数据结构和中本聪共识规则

区块链的局限性源于其设计本身。区块链被定义为区块树的 “最佳 “链,其中每个区块除了承载一组交易外,还引用区块树中的一个父区块。

当一个节点创建一个区块时,它将区块广播给点对点网络的其他节点,这些节点又将区块转播给其他节点,如此反复,直到大多数节点都了解这个区块。这个过程需要时间,特别是当区块很大的时候。因此,在某一给定的时刻,不同的节点可能意识到所创建区块的不同子集。因此,两个节点可能会广播两个具有相同父块的区块,即使它们是诚实的。这就是所谓的“分叉”, 这会导致两个不同的区块链起源于相同的原始区块。

由于广播延迟,节点A尚未看见由节点C所创建的区块(蓝色区块),并另外创建了一个区块(红色),这两个区块源自同一个父块(黄色)。这就导致了一个分叉。

由于替代链可能包含不同的、不兼容的交易集,所以节点必须在一个单一的公共链条上保持一致,从而达到对已执行的交易的共识。在去中心化网络中实现共识的一种优雅方式被称为中本聪共识规则。从一个节点的角度来看,这种方法是通过给区块树的每条链分配一个标准的适配度来对其进行评级,并且只通过扩展最大适配度的链来产生新的区块。最大适配度的链被称为 “区块链”:只有出现在区块链的区块中的交易才被视为已执行。

为了防止女巫攻击,适配度必须是一种难以创造或获得的东西:一种资源。在工作量证明系统(如比特币)中,一条链的适配度被定义为创建这条链的所有区块的总计算工作。在Tezos等权益证明系统中,一条链的适配度与链中区块中被投入的硬币总数有关。中本聪共识是去中心化区块链最广泛使用的共识规则,但也有很多其它的共识机制在执行。为了探索共识机制,我们建议从这里那里开始。

只要分叉发生的速度保持合理,中本聪的共识规则就能顺利地使节点集中在一个单一的共同区块链上。适合少量交易的小区块和低频率(在比特币中平均每10分钟1MB)确保了在大多数情况下,一个区块可以在另一个区块创建之前被广播到整个网络。因此,分叉率很低,共识很容易达成,但每秒处理的平均交易数量是有限的。

突破限制?

交易速率tx/s可以通过增加区块频率(创建区块的速度)或增加区块大小,这种简单的方式来适应每个区块的更多交易。然而,这只能在很小的范围内实现。

如果区块频率增长过快(例如1 MB/s)),在找到另一个区块之前,区块几乎没有时间在网络中传播:节点会产生许多不兼容的区块,导致高分叉率和共识失败。如果区块大小增加太多(例如1GB),区块广播变得太慢,分叉率变得很高,共识也会失败。

这个问题在下面的视频中得到了说明,在视频中我们模拟了一个节点网络在工作量证明的场景中发现区块。

https://massa.net/blog/post/0/media/Blockclique.mp4

一些加密货币通过改变区块大小或区块频率来提高每秒的交易数量。例如,比特币现金将区块大小增加了8倍,每秒的交易数量也增加了同样的数量。然而,这个数字仍然相当低。因此,需要依赖其它方式来显著地提高处理交易数量。

限制网络规模?

减少网络中传输区块所需时间的一种方法是限制网络规模。例如,在EOS中,仅有21个被授权的区块生产者可以进行交易,这产生了大约3000–4000 tx/s的交易速率。在Ripple中,由一家公司决定谁可以成为验证者并生产区块,因此该协议可以达到约1500 tx/s的交易速率。

然而,限制网络规模与开放的去中心化网络的理念是不兼容的,去中心化网络意味着任何节点都可以不经允许参与其中。正如以太坊开发者所做的那样,当前的区块链架构中似乎存在一个可扩展性三难问题:在去中心化、可扩展性和安全性之间进行权衡。

因此,真正的挑战是设计一个能够处理成千上万交易的区块链,同时保持完全去中心化和安全,允许成千上万的节点参与区块生产且达成共识。

改变数据结构和共识规则?

最近,已经有一些尝试通过改变数据结构和共识规则来扩展去中心化的货币。其中一项工作是实现交易分片,包括将交易分配到可以并行处理的几组(”碎片”)中,如ElasticoZilliqa。然而,在这些协议中,处理不同分片的节点必须定期在一个共同的区块链上达成一致,这限制了分片的平行性优势。

另一项工作是让让一个区块拥有多个父级,从而将区块树结构扩展为区块图结构。在[Lewenberg, 2015][Sompolinsky, 2015][Sompolinsky, 2016]中描述了第一个有向无环区块图(block DAG)结构。然而,在这些协议中,来自一个区块的交易可能与另一个平行区块的交易不兼容,因为交易本身没有分片。需要一个额外的投票过程来为交易排序并选择执行哪些交易。

Massa 中使用的 blockclique 解决方案

Blockclique是一个结合了交易分片和多线程区块有向无环图DAG的新架构。它通过并行化数据结构和调整共识规则解决了可扩展性问题。

Blockclique数据结构和共识规则

在Blockclique架构中,可以用一定数目的线程来建立区块。在一个特定的线程中创建的区块会引用每个线程中的父块。由此产生的数据结构是一个多线程的有向无环图(多线程的DAG)。

然而,如果一个地址可以通过同时在两个平行线程中执行交易,那么就可以尝试两次使用相同的货币。Blockclique可以阻止这样的重复花费,它允许一个指定的地址仅用于一个特定的线程(由地址的第一比特定义)。因此,来自一个特定线程的区块只包含输入地址属于该线程的交易。这个过程被称为交易分片。不过,交易的输出地址可以是任何地址,与输入地址的线程无关。

交易分片和区块DAG的这种组合产生了一个独特的属性:节点可以并行地创建区块,而这些区块所包含的交易在结构上是兼容的。

在这个新的区块结构中,节点仍然可以通过在同一线程中创建两个不兼容的区块,并在该线程中创建相同的父区块来在特定的线程中创建分叉。因此,我们扩展了中本聪规则,允许节点就全球范围内具有最大适用性的兼容区块集(称为 “clique”)达成共识。这个共识规则确保每个线程的行为像一个正常的区块链,并且在一个线程中发现的区块也考虑到其他线程中较早的区块,同时允许线程之间轻微的不同步。

与之前基于DAG架构的区块链相比,多线程区块DAG与交易分片和适应的共识规则允许从区块并行化中充分受益,并且不需要给某些节点提供特殊的权限。

仿真结果

我们通过仿真测试了我们的想法,并在此开放源代码。使用与以太坊类似的网络参数(平均上传带宽为32Mb/s,平均延迟为100ms,数千个节点),我们展示了,通过使用32个并行线程和一个抵御女巫攻击的权益证明机制,我们的架构可以支持高达10,000 tx/s的交易确认时间,大约为40s!

我们对这个创意进行了仿真,并将其开源。采用与以太坊相似的网络参数(32 Mb/s,平均延时100 ms,几千个结点),我们显示,我们的体系结构能够支持10,000 tx/s的交易确认时间,在40秒左右!

这一改进可以理解为:。

  • 在标准的区块链中,节点必须拥有最新的区块才能开始处理下一个区块(否则会产生分叉)。
  • 在Blockclique中,没有必要拥有所有最新的区块来进行新的工作。节点以平行线程创建区块,不会导致分叉。
  • Blockclique的架构确保了每个地址的货币借贷的顺序一致性,同时允许货币贷方轻微不同步

当然,这些结果还包含了很多别的内容。我们对大量参数进行了测试,证明我们的架构能够适应各种攻击,甚至对现有的共识方案提出了改进。如果你对更多的细节感兴趣,我们建议您阅读技术论文!

试一试吧!

- 我们的测试网已经上线! 在 https://massa.net/testnet,你会看到实时创建的区块。

- 在这个浏览器上,你也可以通过创建一个钱包,接收或发送货币来与测试网互动。

  • 如果你有一台有可靠网络的电脑,请运行一个节点 你可以按照我们Github上的步骤进行操作。

结论

我们已经证明,在多线程区块图中使用交易分片是可以解决区块链的扩展问题的。Massa实现了每秒数千笔交易,而不会危及区块链的去中心化和安全性。我们没有提到的一点是,我们的架构与智能协议是兼容的,这些智能协议可以在一个线程内实现,也可以调整为支持多线程。

我们相信Massa可以实现可扩展、安全和真正的去中心化的区块链的承诺。我们希望你和我们一样兴奋,我们很想听到你的反馈! 请到我们的TelegramDiscordReddit上发表您的想法!

--

--