Æternity′s Bitcoin-NG技术实施简介


#1

​​“分布式Excel电子表格”

这就是Grumpy Old Geeks播客的主持人曾经解释过的区块链的问题,这很有趣,因为它(有点)是真的。我们将详细介绍这种“分布式Excel电子表格”的工作原理。

想象一下区块链就像一大堆形成网络的分布式计算机。为了使这个网络对我们有用,我们需要确保其中的每个参与者都收到相同的“电子表格”。提出一种在分布式网络中实现这种同步水平的算法是经典的老式计算机科学问题之一,也是最困难的问题之一。它首先出现在70年代,在分布式系统的新生发展期间。世界上一些最伟大的计算机科学家和数学家都在研究这个问题。他们的方案?共识算法。这个想法最初是在80年代提出的,但它需要花费几十年才能开发出来。然后,在00年代,它立即被集成到各种分布式和云计算网络中。

类似的一致性算法,通过解决加密谜题的功能得到增强,可以在所有区块链的核心找到。正是这种机制允许安全地更新区块链网络的状态。它跟踪并记录所有参与者之间的所有交易。相同的“电子表格”在整个区块链中分发给每个参与者,然后进行验证。在这一点上,你可能会想到自己“嗯,这听起来很简单。如果自80年代以来共识算法成为一种东西,为什么我们必须等待这么长时间才能发明区块链?

不幸的是,经典的一致性算法设置与区块链不兼容。它只有在我们了解分布式网络中的所有参与者时才有效。但是,使用区块链,我们可以动态部署不受信任的角色/主持人。他们不仅不受信任,其中一些可能是彻头彻尾的恶意。我们不了解他们的议程;他们可以欺骗我们,向一个主机介绍新信息或广播虚假信息,并将信息更正给另一个主机。 Satoshi Nakamoto关于为一致性算法添加加密拼图解决功能的想法是一种革命性的解决方案,它为我们提供了区块链的有用性。当区块链上的所有参与者都在解决相同的加密难题时,拜占庭式的威胁(https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)就不成问题。这被称为工作证明(PoW)一致性算法。

然而,尽管有其优点,但PoW还有一个主要的弱点。在Nakamoto的原始协议中,设法最快地解决加密拼图的参与者成为赢家,并且被授予确认区块链上发生的一组交易的工作。这个过程称为SHA-256散列,需要获胜的矿工在建议用新块扩展区块链之前确认整个数据块。最后,每个参与者都会收到一个新块,自行验证并使用最新的交易列表更新其“Excel电子表格”。这就是在比特币和其他PoW区块链中验证交易的方式。这是一个安全但繁琐的过程,平均需要10分钟,这远非理想。实际上,这种延迟严重限制了区块链的实际扩展。

如果我们希望在不久的将来看到任何有意义的大规模采用,我们需要在区块链上更快地进行交易并进行验证。

这就是Bitcoin-NG共识算法的用武之地

正如其名称所暗示的(NG代表下一代),这是经过验证的比特币共识协议的更新版本。比特币NG是一种通用机制,可以应用于工作证明和股权证明(PoS)区块链。例如,Waves是PoS + NG。

应用在æternity,Bitcoin-NG继承了比特币PoW模型的所有安全保证,但是它是反过来建立链(“电子表格”)本身的方法。

Bitcoin-NG不是通过包含过去事件(交易)的块构建它,而是允许临时领导者生成微块,该临时领导者几乎立即验证/签署传入的事务。

在旧的中本共识模型中,我们有一个mempool,所有交易都在等待矿工接收它们。Bitcoin-NG也会将数据发送到mempool,但是领导者会立即将其收集起来并将其打包成微块,然后立即发送。整个操作只需几秒钟,不像Nakamoto的比特币核心模型,交易进入mempool并可能在矿工拿起之前在那里停留很长时间并将其包含在他们正在建造的区块中(由于低交易费,例如)。

Bitcoin-NG证实有效,它是稳定的,并且我们刚刚在æternity实现它。

快速,安全和去中心化 - 您只能选择两个?

不同类型的区块链协议在性能上总是不同的。比特币核心目前 tps 4(每秒交易)。更多“高级”区块链声称每秒可实现数千甚至数百万的交易。

Bitcoin-NG实现了更实际的数字,大约100 + tps。虽然这确实比EOS或Zilliqa的速度慢几个数量级,但速度并不代表所有。与这些示例不同,Bitcoin-NG允许区块链保持去中心化。我们不要忘记:

真正的去中心化是公有区块链(公链)必须具备的最重要的东西。

这是保证整个系统安全的原因。更重要的是,æternity使用额外的机制,如状态通道,以大大增强交易和æpps的连续实时性能和可扩展性,而不会损害其安全性和区块链的安全性。

Bitcoin-NG已经通过Erlang实现到æternity的测试网中,Erlang是一种功能性编程语言,可以证明是开发区块链的完美选择。 Erlang和其他区块链编码语言之间的区别在于Erlang是专为可扩展的全球网络而设计的。这就是几十年来它在分布式系统中运行良好的原因。

目前,大约90%的互联网流量都是通过Erlang控制的节点。

Basically: erlang powers the internet. #CodeBEAMSTO@guieevc

Erlang于20世纪90年代由瑞典跨国网络和电信公司爱立信建立,最初应用于他们的通信软件,并且从那时起就被广泛使用。事实上,如果您了解WhatsApp,他们也会在后端使用Erlang。

是的,他们对区块链的看法是正确的 - 你不能让它们快速,安全和去中心化三者共存。你将永远被迫从3中选出2分。在可预见的未来,它会保持这种状态吗?如果我们出手,可以三者并存。

æternity协议和æpps已经开发出来,解决了这个问题。它具有独特的链式缩放(由于Bitcoin-NG)和链下缩放(通过状态通道)的组合。

æternity的目标是拥有业内最强大的区块链平台之一,具有非常可靠的链上和链下性能,同时仍然保持去中心化。

在某种程度上,æternity旨在实现看似不可能的:可扩展,去中心化的链上性能,允许快速和廉价地访问链下状态通道,进一步提高可扩展性。

请持续跟踪AE主网上线:https://www.pivotaltracker.com/n/projects/2124891