主页 > imtoken在新手机上登录 > 采用分布式账本技术的十大障碍

采用分布式账本技术的十大障碍

imtoken在新手机上登录 2023-05-05 07:16:33

美元比特币.jpg

2009年1月,比特币的匿名创始人中本聪向全世界发布了比特币。 在接下来的几年里,这种加密货币及其底层技术,即区块链,经历了很少有人能预料到的起起落落。 一方面,它受到了世界上一些政府的推崇,有人预言“区块链”有朝一日会像“互联网”一样遍布全球。 另一方面,它已经被一些政府取缔,一些人宣告它的“漂流”和“死亡”。 比特币的价格在 2013 年底上涨至 1200 美元/BTC,但在次年徘徊在 200 美元/BTC 和 500 美元/BTC 之间,然后在 2016 年跌至 500 美元/BTC。这一年又开始稳步攀升,目前的价格是接近它的早期峰值。

多年来讨论一直集中在比特币上,随后人们开始意识到区块链的更多潜力,以太坊、Steem、Zcash等“下一代”相继推出。 更多老牌企业也意识到区块链弹性、完整性等更抽象属性的价值,并将其重新应用到特定行业,创造了更广泛的技术类别,称为分布式账本,并形成了 R3 和 Hyperledger 等行业联盟。

在众多未知数中,越来越清楚的是,分布式账本将以一种或另一种形式存在,即使它们最终可能不会像“互联网”那样。 然而,分布式账本距离今天的广泛采用还有很长的路要走,而且仍有许多重要的决定需要做出,这些决定将影响最终产品的安全性和适用性。

接下来,本文的作者列出了这条道路上的十大障碍,以及我们作为一个社区可以做什么(并且一直在做什么)来解决这些障碍。 所有观点都是作者作为该研究领域长期积极参与者的观点,作者不得不省略许多有趣的解决方案,以免将本报告变成一本大书。 这些问题的排序有点简单,从最小到最紧迫,或者更准确地说,从最广泛到最具体。 但是,如果不考虑如何解决这些障碍,就不可能广泛、有效和持久地采用分布式账本技术。

1. 可用性:为什么要使用分布式账本?

可用性是什么意思? 使用起来有什么问题? 这种情况有几种可能,比如说现在开发的分布式账本,没有特别好的接口,没有专业知识很难使用。 这在一定程度上是正确的,但人们应该预料到这些问题会随着任何新技术出现,并进一步期望它们会随着时间的推移和使用量的增加而得到解决。 (在这里,关系数据库和图形的发展,如果不完善,用户界面可以作为有用的历史记录。)

因此,一个可能更有趣的“可用性”问题是:最终用户真正想要从分布式账本中得到什么? 目前用于最终用户交互的大多数已开发密码都是已经存在了几个世纪的样式。 如果您想隐藏与某人的对话内容,请使用加密。 如果您想说服某人您说的是真的,请使用电子签名。 但是,就最终用户需求而言,分布式账本的完全公开可验证性(或问责制、不变性等)真正对应于什么?

潜在的和发展中的解决方案。 据我所知,几乎没有。 到目前为止,这方面的大部分研究都集中在更紧迫的架构问题上,稍后将对此进行讨论。 事实上,大多数最终用户可能对分布式账本的属性不感兴趣(就像他们可能对常规数据库的属性不感兴趣一样)。 然而,鉴于越来越多的用户已经在比特币等平台上进行交互,以及分布式账本的潜力,人们认为通过使用这些技术可以获得哪些具体好处仍然值得探索。

以太坊和超级账本区别_sitehqz.com 以太坊和以太坊贸易的关系_比特币以太坊eos区别

2. 治理机制:谁制定规则?

分布式账本的美妙之处在于,没有任何一个实体可以控制网络做出的决定; 例如,在比特币中,只有当网络中的大多数节点同意该操作的有效性时,才会铸造或记入硬币。 一侧转移到另一侧。 当任何一个节点变得过于强大时,这个过程就会受到危害,并且一个更大的问题笼罩在这些去中心化网络的运作上:谁首先决定哪些行为是有效的? 事实上,所有这些网络操作都按照一套既定规则运行,“制定规则的人至少与执行规则的人同等重要。”

即使是去中心化的网络也可以在制定规则的过程中产生显着的中心化。 在比特币中,新区块添加到链中的速率、参与者将交易密封到账本中的奖励以及许多其他参数都是中本聪提出的,此后一直没有改变。 以太坊目前在其网络中实施了四个所谓的“硬分叉”,其中参与者基本上必须切换到新的软件版本,以遵守一组核心开发人员创建的一组新规则。

这些日益普遍的加密货币基础设施治理机制崩溃的最有趣的影响之一是,许多人第一次意识到它的存在。 所以问题不仅在于我们不知道如何管理这些技术或治理结构是集中的,而且有点讽刺的是,我们需要更加透明地了解这些结构如何运作以及谁负责治理。

潜在的和发展中的解决方案。 几篇研究论文关注的是执行规则的实体如何维持去中心化,尽管在更普遍的分布式账本中,如何激励参与者帮助维护账本仍然是一个悬而未决的问题。 (例如,除了谷歌或其他大型证书颁发机构之外,尚不清楚是否有人愿意花费必要的资源来维护具有证书透明度的日志服务器,并且它没有为这些实体提供明确的奖励。)

在规则制定主体方面,提出的解决方案不多。 “中本聪誓言”概述了一个誓言,作者认为任何人都必须创建一个基于区块链的应用程序,但这仍然只是一个指导原则。 R3 和 Hyperledger 等广泛的分布式账本项目选择了基于联盟的方法,而 Certificate Transparency 等其他项目则选择了非常集中的方法。 然而,如第 8 项所示,尚不清楚这些方法如何相互比较,以及这些结构将如何随着这些平台的普及而演变。

3.有意义的比较:哪个更好?

正如我们所知,比特币是第一个基于区块链架构的加密货币,但它肯定不会是最后一个。 有数以千计的加密货币可供选择,每一种都有其独特的卖点。 以太坊提供了更具表现力的脚本语言并维护状态。 莱特币可以比比特币更快地创建块。 狗狗币有一只​​可爱的狗! 除了区块链,还有很多基于备选共识协议的加密货币提案,如权益证明、PBFT、两阶段委托等,以及非货币相关设置下的提案,如证书透明度、R3 Corda 和 Hyperledger Fabric,它们仍然适用于更大范围的分布式账本。

在如此日益复杂的情况下,自然而然出现的一个问题是如何区分这些方案中的哪一种是最适合给定应用的解决方案。 你需要区块链还是数据库? 也许 Excel 电子表格就足够了? 回到第 1 项,你想要的满足的本质是什么? 您需要完全公开的可验证性吗? (如果是,为什么?)即使有人可以指定所需属性的列表,也不清楚哪些平台支持哪些属性以及支持到什么程度。

以太坊和超级账本区别_比特币以太坊eos区别_sitehqz.com 以太坊和以太坊贸易的关系

潜在的和发展中的解决方案。 最近的一些研究着眼于为不同的加密货币选择不同的参数(例如,比特币每 10 分钟生成一次块,而莱特币使用 2.5 分钟的间隔)以及这些参数如何影响系统的安全性,并发现,例如,在以太坊的第 37 块和比特币的第 6 块(由于相对陈旧的块率,这两个平台)实现了针对所谓的“自私挖矿”攻击的相同级别的安全性。 这项工作特别关注基于工作量证明的加密货币,因此不会扩展到更通用的分布式账本或基于替代共识协议的加密货币(参见第 8 项示例)。

4.密钥管理:如何进行交易?

一件有趣的事:2013 年初,我在我的电脑上使用 Ubuntu 工作。 在过去的四年里,我一直在进行定期升级,但是系统已经到了线程太多影响其功能的地步,所以我决定重新安装操作系统。 考虑到我桌面上的所有内容都是受版本控制的存储库,所以我在没有备份的情况下执行了安装。 安装完成后不到五分钟,我想起了我的比特币钱包在桌面上的可怕事实。 幸运的是,我存储的比特币很少,但多年来类似的事件发生在很多人身上,他们损失了更多,公开报道的最糟糕的事件是有人丢失了 7500 个比特币。 关键是一旦钱包丢失或你的钱被盗,底层加密和交易的不可逆性意味着没有办法找回它。 在一个公开的例子中,The DAO 背后的智能合约被代码漏洞攻击,社区无能为力,只能眼睁睁地看着他们窃取所有内部资金存储(之前,一些以太坊治理开发人员讨论使用 #9 创建并提倡硬分叉修复损坏)。

虽然这些事件对相关个人造成了严重的财务影响,但他们不应该对在不受监管的加密货币的“狂野西部”世界中看到这些事件感到惊讶。 随着人们提出加密货币的更主流用途,例如将比特币钱包集成到 Linux 发行版中,人们也可能对此类钱包缺乏准备和经验,这可能会导致更严重的后果。 因此,我们需要一个更健壮的解决方案来更好地解决密钥丢失和被盗的问题。

潜在的和发展中的解决方案。 解决此问题的一种常见且有前途的比特币技术是使用多重签名以太坊和超级账本区别,其中多方将他们的公钥连接在一起以创建一个地址,其内容可以通过签名的某个子集来满足。 比如在3-3多重签名地址中,三方都需要签名,而在3-1地址中,任意一个签名即可。 2-3 多重签名地址可以说是防止密钥丢失的最佳防御措施,因为即使丢失了一个密钥,仍然可以访问存储在该地址中的资金(作为额外的好处,攻击者需要访问两个单独的密钥从该地址窃取)。

类似地,我们可以谈论秘密共享,其中密钥在没有串通的情况下在一些可信任的朋友(或设备)之间分配,但即使他们的共享密钥丢失也随时有用。 然而,对于这些解决方案,我们必须明白,如果在某些情况下它们工作的威胁是真实的(回到第 10 项),我们希望能够分发、存储和使用这些密钥。 这也是一个需要解决的悬而未决的问题,以便人们可以像以前一样轻松地重新获得丢失的资金,并且用户可以重新获得对忘记密码的帐户的访问权限。

5.敏捷性:使用哪些算法?

在许多加密货币中,规则似乎是自上而下的:比特币使用 ECDSA 而不是曲线 sec256k1,尽管这似乎是一个奇怪的选择。 比特币地址的计算方法是采用 ECDSA 公钥,执行 SHA-256,执行扩展的 RIPEMD-160,再次执行 SHA-256,并重新排列此输出的字节和扩展的 RIPEMD-160 哈希的输出,并将结果转换为 base58 字符串。 治理开发人员已经决定了一个好的权益证明协议(更多关于第 3 项,它将取代 Ethash 作为以太坊中的共识协议)。

除了这些严格规范带来的治理问题外,还存在频繁出现的破解密码原语的问题。 最终,计算机可能变得足够强大,以至于 SHA-256 不再被认为是安全的。 也许量子计算机很快就会出现,并允许任何拥有量子计算机的人伪造 ECDSA 签名。 虽然这两件事可能会发生以太坊和超级账本区别,但有足够的警告和时间让开发人员切换到更安全的选项(无论如何,问题远远超出了分布式账本本身!)。 有一种说法,即使在给用户多种选择的今天,选择仍然是使用像 TLS 这样的系统。 然而,与 TLS 一样,敏捷性可能会招来危险的攻击,因此在实施方式和支持加密原语的方式上都需要格外小心。

以太坊和超级账本区别_sitehqz.com 以太坊和以太坊贸易的关系_比特币以太坊eos区别

潜在的和发展中的解决方案。 几乎所有的加密货币都没有实现敏捷性:对于每个加密原语,都有一个这样的实例。 一个有争议的例外是以太坊,人们可以在技术上对任何加密原语进行编码,甚至通过在合约中包含自定义库代码,有些东西在智能合约中是完全不安全的。 然而,底层密码学(即用于验证网络内单个交易的点对点检查)与其他加密货币一样严格。

或许是因为他们没有受到加密货币经常遇到的意识形态思维的阻碍,以行业为主导的分布式账本要灵活得多。 例如,在 Corda 中,个人用户可以在订立合同时从可用的算法中进行选择。 在 Hyperledger Fabric 中,参与者基本上可以插入他们自己的共识协议。 在这里,能不能做到根本不是问题,而是这些不同的选项如何组合(例如,如果两个不同的共识协议就账本的两个部分达成一致意味着什么?),以及这些选项如何组合影响整个系统的安全? 有什么影响是一个值得思考的问题。

6.互操作性:它们如何相互通信?

有人认为未来会有单一账本(如“互联网”),事实上,通用平台在理论上是可能的:如果其他问题在这个列表上得到解决,并且大多数已知的分布式账本都支持账户申请. 然而,更有可能的是,不同的公司会根据他们的特定要求使用不同的分类账。 例如,需要一组固定银行同意的金融应用程序更有可能采用像 Corda 或 Hyperledger Fabric 这样的平台,而需要完全开放参与的应用程序更有可能采用像比特币或以太坊这样的平台。

为了实现广泛讨论的消除(或至少显着开放)分布式账本的特殊孤岛的问题,因此必须实现某种互操作性,或一组允许这些不同的账本相互对话的方法.

潜在的和发展中的解决方案。 在基于区块链的平台领域内,侧链的概念提供了一种将操作从一个区块链转移到另一个区块链的简单方法,即在一个分类账中发布的交易对另一个分类账产生影响。 然而,到目前为止,这些侧链的安全性研究相对较少。 因此,虽然侧链已经获得了很多关注,但它们还没有被广泛采用。

除此之外,还有许多尝试在分布式账本和现实世界数据之间提供接口,例如 Town Crier 和 Oraclize.it。 此外,Corda 和 Hyperledger Fabric 尝试在所选协议中进行模块化(参见第 5 项),这意味着它们旨在跨系统的不同用途进行互操作,但据我所知,在现有的界面交互方面几乎没有尝试解决方案。

7. 可扩展性:为什么要存储每笔交易?

可扩展性意味着很多事情。 第 10 项讨论了利用网络中增加的计算能力来扩展处理单个事务所需时间的必要性。 另一个方面是,随着系统变得越来越流行,可扩展性不应显着增加系统用户的存储负载,因为这会阻碍参与并增加进入壁垒。 然而,为了完整性,在我们期望完全公开可验证性的系统中(在第 1 项中进一步讨论),重要的是不要从账本中删除条目。 主要问题是如何在这两个(看似矛盾的)要求之间取得平衡。

sitehqz.com 以太坊和以太坊贸易的关系_以太坊和超级账本区别_比特币以太坊eos区别

在某些应用中,提供完整的可审计性很重要(例如,为了满足监管要求),我们不得不增加参与者的存储负载。 尤其是在消费者应用程序中,实际上没有必要存储每笔交易,例如,今天我们不太可能想要或需要对某人在 2010 年初购买的咖啡进行有意义的检查。 事实上,长期保留此类信息显然与用户隐私相冲突(第2条)。

此外,在稍微改变的信任模型中,“临时”用户可能比愿意“存档”的用户更愿意卸载系统的审计程序。 因此,归档用户可以存储整个分类账,而临时用户只能存储需要核对的单个交易的有效性信息。

潜在的和发展中的解决方案。 运行在智能手机上的比特币钱包的主要创新在于,按照SPV客户的想法,目前没有100G的存储空间用于构成完整比特币的账本,类似于上述的临时用户。 这些客户端从存档节点中检索并仅存储区块链上的块标头,而不是其全部内容,并依靠这些标头来检查双重支出(SPV 代表简化支付验证)。 虽然这些方法已被客户广泛采用,但他们的安全性,尤其是他们的隐私,并未得到很好的开发或理解。

另一项重大发展将有助于防止账本上的过多交易,包括闪电网络。 更一般地说,这是一项最近且越来越活跃的研究,允许两方开放支付渠道。 使用这样的通道,可以将一对成对的交易放入分类账中以打开和关闭通道,但仍然可以进行许多单独的支付。 此外,尽管这种方法看起来很有前途并引起了广泛关注,但使用此类渠道的安全和隐私方面仍未得到充分研究。

最后,另一种有前途的方法是第 1 项中讨论的分片账本。如果以某种方式实现,参与者不需要存储(甚至听到)与他们无关的交易,例如,我不不需要为每个人的早晨咖啡存储交易,只要我的。 虽然这大大降低了个人用户的存储需求,但了解存储最终单调增长的账本的实际成本非常重要。

8.成本效益:最便宜的方法是什么?

关于比特币及其基于工作量证明的共识算法有很多抱怨。 其用电量可与全国,至少与这么大的发电厂相比,可谓“环境灾难”。 虽然很多争论都被夸大了,但事实是,工作量证明确实非常昂贵,如果能以更便宜的方式达到同样的效果,那当然是件好事。

为此,大量的替代共识协议甚至替代加密货币被提出。 Peercoin、Nxt 和 Blackcoin 都在使用权益证明,而以太坊有计划向权益证明过渡(例如:硬分叉)。 Casper,在接下来的两年里使用权益证明。 英特尔的 Sawtooth Lake 平台使用依赖于其 SGX 架构的时间证明 (PoET)。 Permacoin 提议重新利用挖掘过程来执行有用的工作,例如归档重要信息。 最受欢迎的基于比特币的提案之一,Bitcoin-NG,提议单独使用工作量证明来选举一个周期性的“领导者”,然后可以快速(无需执行大量计算)证明单个交易。

如果你扩展到一般的分布式账本,替代共识协议的列表会增加并开始包括更熟悉的算法:两阶段提交、Raft、PBFT 等。这些协议往往比“证明”更有效-x”加密货币中使用的协议,但它们需要一组固定的已知参与者。 如第 8 项所述,需要一种方法来权衡取舍,对越来越多的共识协议进行有意义的比较,并了解每个协议在给定上下文中可以提供的好处。

sitehqz.com 以太坊和以太坊贸易的关系_以太坊和超级账本区别_比特币以太坊eos区别

潜在的和发展中的解决方案。 这似乎是分布式账本研究社区中探索最活跃的问题。 除了前面提到的协议之外,还有几十篇文章提出了自己的建议,都是针对前面提到的协议(尤其是权益证明,它似乎是我写这篇文章时的“圣杯”)。 因此,在这个列表中的所有项目中,这似乎是我最希望在不久的将来看到的一组可行的解决方案。

9. 隐私:如何保护数据?

大量研究关注加密货币用户的匿名性(即保护参与者的身份),但很少有研究关注他们的隐私。 例如,比特币用户在技术上是“假名”的,因为他们的链上身份与他们的真实身份没有内在联系,但每笔交易的细节——例如比特币交易量——仍然是完全透明的。 假设我们考虑更多的平台和更奇特的案例,例如将健康记录存储在分布式账本上意味着交易将包含有关患者姓名(例如他们在现实世界中的身份)、他们的年龄、医疗程序的性质和原因等信息. 虽然简单的解决方案是加密该数据并仅向必要方提供解密密钥,但事实是加密方案与所有密码原语一样,可以被破解(参见第 6 项)或被盗,因此这不能提供一个长期的隐私解决方案。

即使在匿名方面,仍有很多工作要做。 一项长期研究证明了比特币匿名性的局限性。 虽然门罗币和 Zcash 等一些新兴平台承诺会改进,但由于协议规范不完善,它们可能仍会出现一些弱点。

潜在的和发展中的解决方案。 最简单的解决方案之一是只将交易发送给那些你信任的知道相关细节的参与者,类似于我们在第 1 项中讨论的基于分片的解决方案。考虑隐私很重要,因为交易可能会在原始参与者之外共享,或者可能有必要向一位参与者隐藏某些细节,但向另一位参与者透露。

一个通用的解决方案是 Hawk,用户可以隐藏他们的交易细节,但仍然说服其他参与者该交易是有效的。 虽然有用,但 Hawk 特定于以太坊并使用相当先进的密码学,因此分布式账本一般如何实现轻量级隐私和灵活态度仍然是一个悬而未决的问题。

10. 可扩展性:我们需要完全同意吗?

可以说,完全分布式账本的最大障碍是坚持网络中的每个节点都需要就整个账本的完整状态达成一致。 除了前面提出的问题之外,这种方法(例如第 4 项)意味着分布式账本无法根据其容量处理越来越多的交易(吞吐量),同时确保用户无需等待交易延迟。 换句话说,添加到网络的计算能力越多,网络在吞吐量和延迟方面的性能就越差。 这正是由于每个节点必须就每笔交易达成一致的要求,这意味着系统中的交易越多,节点等待它们充斥网络的时间就越长。

由于完全复制违反了分布式系统最基本的属性之一,我们可能很自然地会问自己:我们为什么要这样做? 主要好处之一是,此要求启用的加密货币具有完全的公共可验证性:任何参与者都可以自己验证系统是否正常运行,例如,通过重播所有交易并确保没有违反商定的规则。 如果只有某些节点同意分类帐的某些部分,那么没有参与者可以满足可验证性。 因此,为了提高吞吐量和减少延迟,有必要避免完全复制(这通常使用分片技术完成,其中每个参与者只能看到给定分片内的交易)和至少一定程度的开放性。 在安全性和可验证性之间提供平衡。

潜在的和发展中的解决方案。 这个话题受到了相当大的关注,学术上已经建议使用某种形式的分片来解决这个问题。 同样,许多行业提案采用分片方法。 例如,在 Corda 中,参与者只需要就与其直接相关的交易达成共识即可。 在证书透明性方面,也不需要就账本的内容达成共识。 全球共识。 虽然这些方法允许更好的可扩展性,但它们也引入了完全分散的解决方案无法实现的可验证性问题。 例如,如果只有某些参与者看到某些交易,其他参与者如何知道他们的交易遵循全球规则? 在没有这样一套全球规则的情况下,我们可以满足什么有意义的完整性概念? 从这份清单列出的项目中,我们再次看到,每个平台都无法提供独特的完美解决方案,而是一套权衡——必须根据各自使用的技术进行权衡。