麻省理工学院研究人员开发了一种新型加密货币,它能显著减少用户加入网络和验证交易时所涉及的数据量,相比现在流行的加密货币,减少幅度最多可达 99%。这意味着网络扩展性将大大提高。
根据麻省理工学院官方新闻发布,在一篇即将于下月在网络与分布式系统安全研讨会(Network and Distributed System Security Symposium)上展示的论文中,MIT 研究人员提出了 Vault,这种加密货币让用户仅需下载部分交易数据就可以加入这个网络。
(来源:MIT News)
在实验中,与比特币相比,用户加入 Vault 网络及验证交易时所需下载的相关数据量减少了99%,与以太坊相比则是减少 90%。重要的是,Vault 依然确保所有节点都验证所有的交易,提供与现有各加密货币相同的安全性。
该论文共同作者、计算机科学与人工智能实验室(CSAIL)研究生 Derek Leung 表示,目前许多加密货币在新用户加入网络和存储方面遇到了瓶颈,而 Vault 的主要目标是为越来越多的用户提供更好的可扩展性。
以传统加密货币而言,用户必须竞争解出方程来验证区块,进而获取相应的奖励。在这种模式下,随着网络的扩展,整个系统的速度就会变慢。
以比特币为例,随着比特币的账户超过 2200 万个,其对存储的要求也愈发地高。2018 年时,若一个用户想加入比特币网络,则必须下载高达 150G 的数据。此外还需要存储所有的账户余额,才能帮助验证新的用户,并确保交易者有足够的资金余额。这就大大减慢了比特币网络的速度。
Vault 是搭建在一个名为 Algorand 的新型加密货币网络之上,后者是由图灵奖得主、MIT 教授 Silvio Micali 所发明。
Algorand 使用 “权益证明”(proof-of-stake)的概念来更高效地验证区块,并使新用户更容易加入。对于每一个区块,都有一个相应的 “验证代理人委员会”(a representative verification committee)负责。拥有更多“股份”(stake)或者金钱的人,越有可能被选为代理人以验证交易。用户所需验证的是每一笔交易凭证,而非交易本身。
不过 Algorand 的每个块都包含着验证当前交易凭证所需的部分关键信息,这意味着新用户必须从链中的第一个区块开始,连同其凭证,按顺序依次验证每个区块,这可能非常耗时。
为了加快这一过程,研究人员根据一个区块之前的几百至 1 千个区块,给出每个区块新的凭证验证信息——称为“面包屑”(breadcrumb)。当一个新用户加入时,他们只需将一个早期区块的面包屑与 1 千个区块之后的面包屑相匹配,而后者再与另一个位于它 1 千个区块之后的面包屑相匹配,依此类推。
正如 Leung 在解释 Vault 的机理时所讲到的,Vault 的论文题目一语双关。它既是你可以存储金钱的地方,即金库,也是可以使你在加入网络时“跃过区块”(vault over blocks)的区块链。当你需要验证交易时,只需用使用很久之前的一个区块来验证很久之后的一个区块,并跳过中间所有的块。这可以大大降低对带宽的占用,节省很多时间。
为了降低数据存储的容量要求,研究人员在设计 Vault 时采用了新型的“分片”(sharding)技术。这种技术将交易数据在整个网络上分成多个更小的部分,或者碎片,使得个人用户只需运行少量数据以验证交易。
为了能够安全地运用分片技术,Vault 使用了一种二进制的数据结构——默克尔树(Merkle tree)。二进制树状结构原理大概是:一个头部的节点(top node),延伸出两个分支成为子节点(children node),这两个子节点又各自延伸出两个新的分支,形成新的子节点,以此类推。
当需要验证交易的时候,网络会将两个子节点组合以获取其父节点(parent node)的哈希值,重复这个动作,往上推进,直到将所有节点的哈希值汇入”根哈希“(root hash)。如果汇合后的哈希值,与根哈希数值匹配,那么交易就完成了验证。尽管只需验证最终的数值,但对于传统加密货币的用户来说,他们必须存储整个树状结构的数据。
在 Vault 中,研究人员将默克尔树划分为数个碎片(separate shards),并将其分发给多组用户。每个用户只需存储其所持那部分账户的余额信息,以及根哈希值。而这每个碎片都可以使用户验证整个网络上的交易,而无需存储全部树状结构的数据。
此外,研究人员还设计了一种新的方案,使网络可以识别和废弃那些在指定时间内没有余额的碎片账户;当用户在 Vault 存储账户数据时,网络会忽略那些旧的、空的账户。相比之下,传统的加密货币会保留所有的空账户,这增加了数据的存储量,却没有真正的用途,因为后者是不需要进行验证的。