MIT 的研究人员开发了一种新的加密货币,大大减少了用户加入网络和验证交易所需的数据,与当今流行的加密货币相比,最高可达 99%。这意味着网络更具扩展性。
像比特币之类流行的加密货币都是构建于区块链上的网络,而区块链是按照一系列单个区块格式化的金融分类账,其中的每个区块都包含交易数据。这些网络是去中心化的,意味着没有银行或组织来管理资金和余额,因此,用户联合起来存储和验证交易。
但是,去中心化导致扩展方面的问题。为了加入一种加密货币,新用户必须从成百上千个单独的区块那里下载和存储所有交易数据。为了使用服务和帮助验证交易,他们还必须存储这些数据。这让处理过程速度变慢,或对某些人来说产生了毫无必要的计算。
在下个月将要举行的网络和分布式系统安全研讨会上,MIT 的研究人员将发表一篇论文,介绍 Vault 这种加密货币,用户只需下载一部分交易数据就可以加入网络。它还集成了删除占用空间的空账户的技术,只需要使用整个网络中划分和共享的最新交易数据就可以验证,从而最大限度地降低了单个用户的数据存储和处理要求。
在实验中,Vault 与比特币相比,减少了 99%的加入网络带宽要求,与以太坊相比,则减少了 90%,而以太网被认为是如今最有效率的加密货币之一。重要的是,Vault 还确保所有节点验证所有交易,提供与现有节点相同的严格安全性。
论文合著者之一的 Derek Leung 说:“目前存在很多加密货币,但是,在新用户加入系统和存储方面遇到了瓶颈。这里的主要目标是使加密货币有良好的扩展性,能为越来越多的用户服务。”他是计算科学和人工智能实验室(Computer Science and Artificial Intelligence Laboratory,简称 CSAIL)的研究生。论文的其他合著者是 CSAIL 研究人员 Yossi Gilad、电气工程和计算科学系(the Department of Electrical Engineering and Computer Science,简称 EECS)的教授 Nickolai Zeldovich 以及 2018 届校友 Adam Suhl。
Vault 与区块的比较
加密货币网络中的每个区块都包含一个时间戳,其在区块链中的位置,以及由数字和字母组成的固定长度的字符串,被称为“哈希”,本质上这就是区块的标识。每个新区块包含区块链中前一个区块的哈希值。Vault 中的区块还包含高达 1 万个交易(或 10MB 的数据),这些必须全部由用户验证。该区块链的结构,尤其是哈希链,确保对手无法在不被检测到的情况下攻击区块。
通过下载所有过去的交易数据以确保它们是安全的和最新的,新用户就可以加入加密货币网络,或“引导程序(bootsrap)”。例如,去年要加入比特币,用户需要下载 50 万个区块,总计约 150GB 的数据。用户也必须存储所有账户余额以帮助验证新用户和确保用户有足够的资金来完成交易。存储需求正变得越来越大,因为比特币的账户扩展了,目前超过了 2 千 2 百万个。
研究人员在一个被称为“Algorand”的新加密货币网络上构建了自己的系统,Algorand 是由 MIT 的工程福特教授 Silvio Micali 发明的,它是安全的、去中心化的,并且比其他加密货币有更好的扩展性。
对于传统的加密货币,用户在解验证区块的方程上竞争,第一个解得方程的获得资金。随着网络的扩展,这将减慢交易的处理。Algorand 利用“股权证明”概念以更高效地验证区块并更好地支持新用户加入。对于每个区块,选择一个代表性的验证“委员会”。网络中拥有更多资金(或股权)的用户被选中的概率更高。要加入网络,用户验证每个证书而非每个交易。
但是,每个区块都包含一些关键信息以在此之前立即验证证书,意味着新用户必须从链上的第一个区块开始,连同其证书,按顺序逐一验证,这将非常耗时。为了加快速度,研究人员根据区块其后数百个或 1 千个区块给出每个新的证书验证信息,这被称为“breadcrumb”。当新用户加入时,他们把前面一个区块的 breadcrumb 和 1 千个区块之前的 breadcrumb 进行比较。这些 breadcrumb 可以与另外 1 千个区块之前的 breadcrumb 匹配,以此类推。
Derek Leung 说道:“论文的标题是个双关语。Vault 是可以存储资金的地方,但是,在加入网络时,区块链也让你‘超’过区块。当我进行引导时,只需要一个过去的区块来验证将来的区块。我可以跳过中间的所有区块,这为我们节省了很多带宽。”
划分和丢弃
为了减少数据存储需求,研究人员用一种新颖的“分片”方案设计了 Vault。该技术把交易数据划分成更小的部分(或分片),并且在整个网络中共享这些分片,因此,单个用户只需要处理少量的数据就能验证交易。
为了实现安全地共享,Vault 使用二进制默克尔树,这是一种众所周知的数据结构 。在二叉树中,单个顶部节点分为两个“子”节点,并且,这两个子节点各自又被分为两个子节点,以此类推。
在默克尔树中,顶部节点包含一个哈希,称为根哈希。但是,默克尔树是从底部开始向上构造的。该树将底部的每个子哈希对组合起来形成其父哈希。重复该过程直到树的顶部,从每对子节点分配一个父节点,直到把一切都组合到根哈希。在加密货币中,顶部节点包含单个区块的哈希。每个底部节点包含一个哈希,表示该区块中涉及交易的账户的余额信息。该余额哈希和区块哈希是绑定在一起的。
为了验证任何一个交易,网络把两个子节点组合起来以获得父节点哈希。在树上重复处理过程。如果最终组合的哈希匹配该区块的根哈希,则交易获得验证。但是,对于传统的加密货币,用户必须存储整个树结构。
对于 Vault,研究人员把默克尔树分成片,分配给分离的用户组。每个用户账号只存储其被分配片的账户余额及根哈希。诀窍是让所有用户存储一层节点,该层节点横切整个默克尔树。当用户需要验证其分片外部的交易时,他们追溯到共同层的路径。从共同层,他们可以决定其分片外部账户的余额,并继续进行正常的验证。
Derek Leung 说:“每个网络分片负责存储大数据结构的一小片,但是这一小片允许用户验证所有网络其他部分的交易。”
此外,研究人员设计了一种新颖的方案,来识别和丢弃用户分配到的在一段时间内余额为零的分片账户。其他加密货币保留所有的空账户,这增加了数据存储的需求,但因为无需验证,而没有任何实际意义。当用户在 Vault 中存储账户数据时,会忽略这些旧的空账户。
原文链接:http://news.mit.edu/2019/vault-faster-more-efficient-cryptocurrency-0124
评论