区块链是安全话题吗?

再次强调,我们需要理解系统和业务如何协同工作,并坦诚地面对它们是否契合。
865 位读者喜欢这篇文章。
How OpenChain can transform the supply chain

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

区块链目前是热门话题。有各种会议、初创公司、展览、开源项目(事实上,几乎所有正在进行的区块链项目都是开源的——例如以太坊、Zcash 和比特币);我们现在只需要嬉皮士经营的区块链主题咖啡馆了。1 如果您正在寻找初步概述,维基百科的条目可能是一个不错的选择——但这并非本文的目的。

在我们深入探讨之前,有一件关于许多区块链项目的事情需要了解,那就是它们并非真正的区块链。更准确地说,它们是分布式账本。4 然而,现在,让我们将区块链和分布式账本技术放在一起讨论,并假设我们在谈论同一件事:这在目前会更容易理解,而且在大多数情况下,对于我们的讨论来说,差异并不重要。

我不打算在此深入探讨基础知识,但我们应该简要讨论加密技术和区块链之间的主要联系,那就是区块本身。为了构建一个区块——一组要放入区块链的交易——然后将其链接到区块链中,需要使用加密哈希。这是各种区块链与密码学之间最明显的关系。

然而,还有另一个同样重要的方面,那就是身份。5 现在,对于许多基于区块链的加密货币来说,使用它们的主要原因之一是在某种程度上身份并不重要。加密货币中有许多参与者可能会互相传递极小或非常大的金额,他们不需要知道彼此的身份即可进行交易。

更清楚地说,每个参与者的独特性绝对重要的——我需要确保我将钱发送给刚刚为我提供服务的实体——但是将这种独特的身份与现实生活中的特定人联系起来6不是必需的。用技术术语来说,这样的系统是匿名的。现在,如果匿名性是系统的关键部分,那么保护该属性可能对用户很重要。加密货币在这方面取得了不同程度的成功。这里的教训是,如果您计划使用加密货币并且此属性对您很重要,那么您应该认真阅读和研究。

另一方面,在许多区块链/分布式账本技术中,匿名性不是必需的属性,甚至可能是不需要的。从专业的角度来看,这些是我最感兴趣的系统类型。

特别是,我对许可型区块链感兴趣。非许可型(或无需许可型)区块链是指您无需任何人的许可即可参与的区块链。您可以看到为什么匿名性和无需许可型区块链在今天可以很好地结合:大多数(所有?)加密货币都是无需许可的。然而,许可型区块链是另一回事,它们是许多企业现在正在关注的。在这些情况下,您知道将要参与的人员或实体——或者,如果您现在不知道,您需要在他们加入您的区块链(或分布式账本)之前检查他们及其身份。这就是为什么区块链在商业领域很有趣。7 不仅仅是因为身份很有趣,尽管它确实有趣,因为如何将特定实体与身份结合起来,并确保这种绑定在系统的整个生命周期内不会被欺骗是非常困难,困难,非常困难8——但还有更多原因。

真正有趣的是,如果您正在考虑迁移到具有许可参与者的许可型区块链或分布式账本,那么您将不得不花一些时间思考信任。您不太可能使用工作量证明系统来创建区块——这在许可型系统中意义不大——那么谁来决定什么是系统其余部分应该同意的“有效”区块呢?嗯,您可以轮流选择一些(或全部)实体,或者您可以随机选择,或者您可以选举少数几个超级信任的实体。这些方案的组合也可能有效。

如果这些实体都存在于您控制的一个信任域中,那很好,但如果它们是分销商、客户、合作伙伴、其他银行、制造商、半自主无人机或商业车队中的车辆呢?您确实需要确保您在实施/部署中编码的信任关系真实地反映了您与系统中表示的实体之间的法律和现实生活中的信任关系。

问题是,一旦您部署了该系统,就可能很难回溯、调整或重置您设计的信任关系。如果您不考虑我上面提到的关于身份长期绑定的问题,那么当例如发生以下情况时,您将面临一些严重的问题:

  • 实体被欺骗
  • 实体破产
  • 实体被另一个实体收购(收购、兼并等)
  • 实体迁移到不同的司法管辖区
  • 法规或规章发生变化。

这些都是在现有法律框架内得到很好解决的问题(第一个问题可能除外),但在我们本文通常关注的系统类型中,这些问题更难管理。

请不要将上述问题与关于如何将法律协议映射到区块链/分布式账本系统中的所谓“智能合约”的问题混淆。那是另一个棘手(而且,说实话,并非不相关)的问题,但这个问题直接触及了系统是什么的核心,这也是人们在采用最新的流行语技术时需要认真思考他们真正想要实现的目标的原因。再次强调,我们需要理解系统和业务如何协同工作,并坦诚地面对它们是否契合。


1 如果您遇到其中一家,请告诉我。在评论中放一张照片或什么的。2

2 更好的是——自己开一家。确保我收到开业邀请。3

3 而且一切免费。

4 关于这个问题,网上曾有争论。我不参与。

5 还有其他方面,但我会在另一天再谈。

6 IRL = “现实生活中”。我太老派了。

7 对我而言。如果您已经读到文章的这里,我希望您也有同样的想法。

8 我将此作为读者的练习。不过,请观看它以及它所基于的电视剧。除非您不喜欢脏话,否则不要观看任何一个。

本文最初发表于Alice, Eve, and Bob—一个安全博客,并已获得许可转载。

User profile image.
自 1997 年左右以来,我一直从事开源相关工作,并且从那时起一直将 (GNU) Linux 作为我在家和工作时的主要桌面系统运行:并非总是那么容易……我是一名安全专家和架构师,Enarx 项目的联合创始人,目前是一家初创公司的 CEO,该公司从事...

4 条评论

我要以一个大胆的声明开始:如果您的用例是许可型的,那么_您描述的那种区块链是错误的工具,无论是否采用工作量证明。_

中本聪的白皮书非常出色,因为它解决了长期以来的难题:在无需许可的环境中,异步网络上的分布式共识。

许可型环境中同步和半同步网络的分布式共识早已得到解决——Paxos、Raft 和许多其他协议占据了这个领域。其中一些——例如拜占庭 Paxos——提供了比中本聪系统更严格的弹性保证。

最近,异步网络也得到了解决,Andrew Miller 的 Honey Badger BFT 协议脱颖而出 [1][2]

因此,“许可型环境中的分布式共识”领域有很多选择——而且,这些选择比您描述的具有更好的属性

您描述的协议系统是您_必须_选择一些参与者,一旦做出选择,您就必须承担他们添加的内容的后果。简而言之:选出一个独裁者,他只能在下次选举前制定一项法律。

然而,我描述的所有协议都是_适当的共识协议_——为了使转换有效(即“将区块添加到链中”,尽管这仅仅是人们可能选择的_一种表示形式_),必须有足够数量的参与者同意。在这里,该组验证_更改_,直接对法律进行投票,而不是选择独裁者。一旦条目被添加到账本中,它就真正有效了——立即生效。

中本聪式区块链的赢者通吃的性质迫使人们接受一种_较弱_的一致性概念——在这种概念中,链条的最新区块仅是临时有效的,并且随着它们被埋在后续区块之下,人们对它们的信心会增长。_这在许可型环境中是不必要的_。

然而,您提出的几乎所有担忧都_深刻地基于_正是这种有缺陷的模型——这种模型会导致信任问题、效率低下以及不确定更改何时持久。用更好的模型替换它,比为不应该做出的选择而苦恼是一个更简洁的解决方案。

作为进一步的说明,使用默克尔化链表(即区块链)本身就是账本的_次优表示形式_——关于安全日志记录的研究已经提供了更好的结构,这些结构可以抵抗默克尔化链表无法抵抗的攻击(例如截断),并且支持效率更高的验证,占用空间更少。[3]

[1] https://eprint.iacr.org/2016/199
[2] https://github.com/amiller/HoneyBadgerBFT
[3] https://eprint.iacr.org/2017/949

Mike,文章写得很好。您说得非常对,要使许可型区块链取得成功,您必须预先做好关于信任的功课。我在全球活动中编写了供应商和分销协议,必须仔细考虑各方潜在变化的细节。

另外,我认为文章中的一个词可能用错了(我自己也可能错了)。请注意这句话“在这些情况下,您知道将要参与的人员或实体——或者,如果您现在不知道,您需要在他们加入您的区块链(或分布式账本)之前检查他们及其身份。”我认为您想用“know”而不是“now”。

我也写了一篇关于区块链的文章,并且一直在寻找错别字。

谢谢,Ron。采用书面协议的方法很有意义,听起来像是迫使人们考虑可能发生的变化的好方法。

关于您的第二点,我_确实_打算将“now”与“know”一起使用。我想要表达的意思是“如果您此刻不知道,那么……”。希望这对您有帮助。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。

找到完美的开源工具

项目管理、商业智能、报告等。查看这些热门项目。

© . All rights reserved.