美国计算机学会:区块链技术到底能做什么?

转载
1769 天前
6285
币世界

来源:币世界


去年,中国央行区块链研究部门发布了《区块链能做什么,不能做什么》。无独有偶,2020年美国计算机学会通讯第一期发布一篇多名技术专家联合撰写的深度调查文章《区块链到底能做什么?》。

文章认为,作为比特币运行的底层技术——区块链,一直受到技术新闻的追捧。技术新闻让人兴奋的最大噱头是区块链技术减少,甚至完全消除人们对信任的需要。这种宣传使得区块链增强了人们的想象,人们也用想象增强了区块链的能力。

事实上,信任是复杂的。区块链技术确实消除了人们对信任特定的、狭窄的依赖,但是它还需要新的假设,对于特定的用例来说,这些假设可能更好,也可能更差。因此,关于区块链技术的效率、安全性、成本等方面,一言难尽。

很明显,区块链技术需要更细致的讨论。企业高管、政府领导、投资者和研究人员经常会问以下三个问题:

  • 什么是区块链技术?
  • 它提供什么功能?
  • 有什么好应用?

《区块链到底能做什么?》一文的目标是彻底地回答这些问题,提供一个区块链技术的整体概述,它将天花乱坠的宣传与现实区分开来,并为将来讨论区块链技术的细节提供一个有用的词汇库

区块链技术属性

区块链技术概念的第一个大类是技术属性,再细分为三个关键组:共享治理和操作、可验证状态和数据恢复能力。下图1显示了它们之间的关系。


共享治理和操作

区块链技术解决了这样一种情况:某些实体(例如,个人或公司)希望参与公共系统,但不相信彼此或任何第三方单独操作系统。通过确定系统细节(治理),然后部署网络设备(称为矿工)来运行系统,每个实体都可以确保正确的操作。如果出现一小部分攻击矿工(在高度细微差别的范围内),诚实矿工可以拒绝攻击矿工所采取的恶意行动,并保留系统的正确操作。在这方面,区块链技术提供了广泛的信任,在这种信任中,矿工集体是值得信任的。这常常被给予不恰当的信任——信任仍然存在,但已被去中心化。

共享操作通过共识协议来实现,这些协议被矿工用来就系统执行哪些操作(称为事务)达成一致。这里提到的事务,有时听起来像金融交易——价值从一个账户转移到另一个——但一般来说像是一个要求:在一组交易中给出的输入上执行一个特定的功能(它本身可能存储在区块链系统中)。共享治理存在于有效处理是什么样的(例如,这个事务是由发送方进行数字签名)和系统如何运作(例如,交易中的操作大小和数量小于某个界限)。共享操作意味着每个矿工验证交易,矿工之间的共识用于确保只有正确的有效交易输出被写入到区块链系统(可以提出无效或执行不正确的交易,但会被矿工拒绝)。

区块链系统可以分为去中心化治理(免许可区块链)和联盟治理(许可区块链)两大类。

可验证状态

实体采用区块链技术,是因为他们希望他们的信任能根植于系统中(即,系统的当前状态准确地反映了共识协议在过去允许执行的交易)。为了实现这种信任,矿工将所有交易写入一个经过加密验证的只允许追加的账本,提供完整的系统来源,并允许矿工(或外部方)审计系统的当前状态和过去的操作。

包括比特币在内的许多系统中,这种账本通常被称为区块链(我们避免使用这个术语来描述账本,以免与区块链技术的整体参考相混淆)。在账本中,所有的交易都是严格有序的,在达成一致意见(只要保持一致意见)后,这种有序从未改变,交易也从未被取消。因此,从第一个区块(称为创世区块)开始,所有矿工将以相同的顺序处理所有交易,并达到整个系统的当前状态是相同的。

数据恢复能力

如果账本存储在一个单独的位置,所有各方都可以检测到数据的删除或修改,但不能保证数据可以被恢复。使用区块链技术,所有矿工之间可以复制账本内容,以解决单点故障。当确实需要恢复数据时——例如,如果某个矿工的账本损坏了,或者有新的矿工连接——可以验证复制的数据,以确保它正确地表示系统状态。

一些区块链系统试图限制任何被给的矿工需要复制的数据量,方法是对数据进行分片,以及分配矿工仅为系统的一个子集来管理和操作。这就是分片技术,数据的各个部分称之为分片。分片可以极大地减少矿工需要存储的数据量,同时还可以提高共识协议的性能,共识协议通常根据矿工的数量进行扩展。尽管如此,共识还是增加了审计整个系统的复杂性。此外,通过减少负责任何给定交易的矿工数量,分片可以减少攻击所需的矿工数量,以欺骗终端客户某个交易的存在。

区块链的功能

这里定义了在系统设计中使用区块链技术来实现的高级功能。区块链技术的三个核心功能在《上篇》中已经描述过了:

  1. 共享治理和操作;
  2. 可验证状态;
  3. 数据丢失的恢复能力。

在编码中,我们确定了11个附加功能。(在图2中,这些功能是用颜色编码的:紫色表示功能;蓝色表示技术性能;绿色表示技术元素。箭头表示目标取决于源。


出处和审核性

区块链系统提供了所有交易的完整历史,这些交易都是由协商一致流程(即完整系统出处)。矿工可以使用这些信息来审计系统,并确保系统始终遵循适当的规则。此外,非矿工可以使用这些信息来验证系统是否得到了正确的治理和操作。

如果交易用于存储有关数字或现实资源的信息,则必须将这些资源在链上标识。区块链系统的出处信息也可以用来提供这些资源的审计信息。这可以用于跟踪链外物理资产(例如,用于供应链管理)、链外数字资产(例如,受版权保护的数字媒体)或数字链上资产(例如,加密货币或数据文件)。访问控制和假名存储在区块链系统中的数据可能有一些限制,用户可以将其用作交易的输入,也可以将其作为交易的一部分进行修改。例如,只有在资产所有者批准其使用的情况下,金融资产才应该是交易的有效输入。提供此功能的一种方法是在账本中存储访问控制列表(acl),并让适当的用户向矿工证明他们的身份(例如,使用Kerberos或OAuth 2.0),作为交易验证过程的一部分。

更常见的是,区块链系统中的访问控制以密码方式实现:数据在创建时与公钥相关联,并且仅将能够证明其知识的用户授予使用或修改该数据作为交易一部分的能力。相应的私钥(例如,通过生成一个签名公钥验证的附加到数据)。可以通过将数据与新的公钥相关联来扩展或转让数据的所有权。

基于密钥(而不是基于acl)的数据所有权还有另一个优点:它允许使用匿名拥有和使用数据。然而,这需要在系统设计中仔细注意使用适当的加密技术(例如,零知识证明、混合网络或安全多方计算)来避免将真实世界的个人与其密钥和操作联系起来。这仍然是一个悬而未决的问题。

自动执行

在通用的区块链系统中,可以使用存储一组函数代码和合约初始状态的交易来部署智能合约或去中心化应用程序(DApp)。然后可以在后续交易中调用这些函数。函数本身由矿工执行,输出通过共识协议进行验证。任何实体都可以执行任何函数,但是如果调用该函数的条件不是区块链所希望的,则该函数可能被编程为失败。脚本语言的计算能力因系统而异,并且有许多细微的差别可以确保函数可以由每个矿工及时地确定地执行。比特币以其有限的脚本语言而闻名,除了金融交易,它几乎不支持其他功能,而Ethereum则致力于提供能够进行一般计算的非常详细的合约代码。

数据的可发现性

如果允许用户读取存储在区块链系统中的任何记录,则可以搜索感兴趣的记录。这种功能与只读数据库所提供的功能并无二异,但是在综述的文献中仍然经常讨论它。

挑战与局限

区块链的挑战和局限主要体现在以下几个方面:

  • 可扩展性和性能:去中心化治理的开销和POW能耗
  • 链上的正确性:所有的代码都有bug,智能合约也不例外。
  • 链下标记:链下的实物资产(现实世界的事件和信息)如何跟踪和标记?
  • 安全:去中心化的性质更易受到攻击(DDOS,分区以及妨碍共识等)
  • 隐私和匿名:用户匿名
  • 易用性:区块链系统要求用户存储,管理和保护加密密钥。众所周知,此要求对大多数用户来说是一个重大障碍。

应用案例

行业和政府可以在许多需要共享治理、可验证状态和/或数据丢失恢复能力的案例中应用区块链技术。

金融

区块链在金融方面的案例主要体现在以下几个方面:

  • 数字货币和支付:财团治理
  • 资产交易:去中心化交易
  • 市场和拍卖:使用区块链进行交易和拍卖
  • 保险与期货:以区块链作为时间基准
  • 处罚,补救措施和制裁:法律合同

数据存储和共享

区块链在数据存储和共享方面的案例主要体现在以下几个方面:

  • 资产追踪:企业之间协作的通用环境
  • 身份和密钥管理:人即资产
  • 防篡改记录存储:链下存储,链上追踪

其他案例

区块链的其它案例:

  • 共享治理:电子投票和表决
  • 公平仲裁:赌博和游戏

总结

归根结底,区块链技术并不是万能的,但是当系统的开销对于需求来说是合理时,它是一个有用的工具。如何判断自己的业务或系统是否需要区块链?一个好的开始是提出以下问题:

1. 系统是否需要共享治理?2. 系统是否需要共享操作? 如果这两个问题的答案都是否定的,那么没有必要使用区块链技术了(以及其开销);如果两个回答都是肯定的,那么区块链将是最佳选择;如果只有一个答案是肯定的——如果只需要共享治理或共享操作,而不是两者都需要——那么应该考虑另外两个问题:3.有必要审查系统中交易的出处吗?4. 是否有必要防止恶意数据删除? 如果可审核性和数据复制是关键,则应该考虑区块链技术。这是因为有意义的共享治理和操作要求矿工审计其他人的操作,并能够恢复恶意矿工可能试图删除的数据。 尽管区块链技术不能解决其支持者所声称的所有问题,但它仍然是一项有意义的技术,将继续在工业中使用,值得进一步研究和试验。