本篇文章2495字,读完约6分钟

民事和军事

Blockchain是密码背后的技术,也是可与虚拟现实虚拟现实相媲美的流行技术之一。但是,区块链或分布式会计技术存在设计缺陷,必须引起重视。

区块链或分布式账簿既不分发也不记录。它是通过集中处理所有交易历史记录,然后计算当前状态值而生成的。在工程或计算机科学的定义中,分布式系统通常由几个分区组成,它的挑战是通过在分区内和分区间交换数据来做出最佳的全局决策。目前,由于管理、法律、信息技术、客户偏好、地理分布、人口分布等问题,许多商业银行参与的支付系统是一个分布式系统。,不可能建立一个由中央银行建立并提供国家所有者帐户的系统。这种拥有者帐户的系统正是这些区块链拥护者所提倡的:整个系统的所有状态的副本对每个独立分区(甚至所有分区的成员)都是可见的。然而,由于高成本和预期的简化,这种用于所有用户备份的集中式系统既不实用也没有必要。事实上,互联网是一个分层的分布式系统,具有足够的冗余度来满足一些分布式系统应用的需求。例如,dns服务是一组具有严格分级控制的分散系统服务。与许多区块链和dlt倡导者不同,互联网并非没有控制其核心服务的中心,也不是没有对第三方的信任。

帐户余额包含其所有帐户的当前状态,因为影响这些状态的所有交易都已处理,并且当前状态已通过迭代方法更新。当使用区块链算法时,您可以根据自己算法的正确性选择信任所有数据的当前状态值,或者在每次有新的交易发生时从整个分类帐记录中重新计算当前状态。在这方面,计算机科学的目标是开发一种优化算法,根据输入数据快速给出最简单的结果,而不是顽固地使用多个区块链系统使用的“强力”算法。您可以信任自己的算法来迭代并只保留账单的当前状态,也可以不信任自己的算法,每次都在整个交易历史中重新计算当前状态。由于在计算开始时拥有所有的事务历史不能保证正确的当前状态,如果您不信任用于计算当前状态的迭代算法并选择信任暴力算法,您如何证明暴力算法会给出正确的答案?数学中最简单的真理是,我们应该相信我们得出结论所依据的证据,而不是回到所谓的“常识”上,沉迷于“因为从一开始就有某个地方的所有数据,所以我们可以正确地估计当前的状态。”认识到这一点是非常重要的,特别是区块链现在被视为从物联网到医疗系统甚至政府治理的“救世主”,就像在区块链诞生之前一样,算法复杂性和算法简化的研究在整个计算机科学领域都是不必要的。

那么,如何保护正确的状态估计并将其传输给每个参与者呢?用于计算当前状态的客户端数据副本必须安全可靠,否则基于这些数据的状态估计是不可信的。仅仅因为安装在计算机或智能手机上的所有客户端都可以访问该副本(即使该副本可能受到质疑),并不能保证它会给您带来不会被篡改的结果。由于数据保护涵盖了通信通道、数据传输和客户端使用的代码,保护和安全传输的过程必然非常困难。

除了“分布式”和“票据”所定义的错误之外,现有的金融体系中不存在许多区块链体系可以解决的问题。例如,区块链应用程序的一个假设是,在纯粹的点对点支付系统中,由于没有任何一方或可信方来计算和维护用户的当前余额,用户的当前余额必须根据历史交易数据来计算,这最终导致需要为每个交易中的每个人提供可验证的签名。然而,在许多使用区块链技术进行清算和结算的银行应用中,首先,不存在这些用户不信任金融机构的结算的问题。跨行交易系统已经运行了很多年,不存在区块链拥护者所认为的不信任或商业问题。当然,所有系统都改进了空,但是提高跨银行结算系统效率的正确方法是发现和定位现有系统设计问题,并通过技术手段加以解决;要么改进交易流程,要么围绕交易设计一个新流程来解决业务问题。多年来,企业级应用程序的体系结构将通过改进非最佳交易流程和采用新的信息技术来设计和构建企业级信息技术系统。通过使用最初用于解决用户之间相互信任问题的设计来解决事务处理或信息技术架构问题似乎很奇怪。此外,区块链需要在一些参与者之间建立加密的通信渠道,以防止通信内容被无权知道的其他参与者获取,这将带来一系列新的问题,无法通过最简单的系统来解决。任何设计过加密系统的人都知道,管理密钥与确保算法和相关协议的安全性同等重要。在这样的系统中加入几个私有共享协议、多重签名、同态加密和一致性算法,不可能在一群事先不信任的区块链参与者之间实现安全的密钥分发和生命周期管理。

一旦我们理解并纠正了这些区块链文献中使用的术语和定义的错误,我们就可以像分析其他交易系统一样分析区块链的应用,并认识到其安全性和体系结构中的一些设计缺陷。以下是区块链和dlt技术缺陷的简要总结:

首先,单点故障。对于像比特币这样昂贵的系统(其耗电量相当于一个小国),致命的弱点在于其安全性。用于交易签名的非对称算法和哈希算法在一定的正常使用寿命后存在缺陷。比特币、区块链的所有算法和不同的密钥长度都已被完全纳入其近8年的历史。根据区块链的算法,我们必须信任整个区块链的交易历史的不变性,以便信任当前状态的计算结果。不难看出,由于当时使用的算法或密钥长度,一些早期的比特币和区块链已经过时,因此这部分交易历史可能是伪造的,这将导致由此获得的当前状态不可信,并且这种系统设计会导致危险的单点失效状态。

第二,混合认证密钥和签名密钥。非对称密钥可用于身份验证和签名(必要时加密)。根据加密安全设计原则的要求,不同的密钥应该用于不同的目的,以避免因多用途使用密钥而导致的数据泄露。在比特币和区块链的实际操作中,还有更严重的问题:用户需要保护他们的私钥,因为私钥不仅用于验证身份(发送者和接收者的身份验证),还绑定到他们拥有的比特币上。通常,在企业系统设计中,用户可以通过回答一些安全问题从丢失的认证密钥中恢复。然而,丢失比特币或区块链的私钥意味着永久失去使用比特币的权利。

第三,垂直耦合设计不是分层架构。像区块链技术这样的复杂技术应该有层次结构设计,而不是使用垂直紧密耦合的系统架构。互联网设计有七层(现场视察模型)或四层(传输控制协议/网际协议)。这些层完全没有耦合,因此它们可以支持每一层的最大灵活性和交互性。

(作者由思晓玲和现任首席科学家王刚翻译)

标题:需重视区块链技术的设计缺陷

地址:http://www.nxxlxh.com/nczx/9800.html