翻译:子轩 校对:Neo MA
2018年8月,美国国家标准与技术研究院(NIST)发布了"Blockchain Technology Overview"一文,较为全面、客观地梳理了区块链技术。文章颇具价值,μNEST将其译成中文,以飨读者,并用十期进行系列连载。本期为系列连载的第八期,从四个方面介绍了关于区块链技术的局限和误解:不可篡改性、用户参与治理、数字化之外、区块链之死。
7.区块链的局限与误解
对新技术过分夸大和过度使用的趋势愈发明显,很多项目都尝试引入那些并非必要的新技术。新技术未被完全掌握、存在对技术的诸多误解,以及担心错失良机(译者注:即FOMO)都会导致上述情况的发生,而区块链技术也未能幸免。本节列举了区块链技术的一些局限和误解。
7.1不可篡改性
大多数关于区块链技术的出版物都将区块链账本描述为不可篡改的,这严格来说并不正确。不易被篡改的特性是区块链金融交易中被信任的原因之一,但这不代表完全的一成不变,在一些情况下区块链是可以被更改的。接下来我们将列举几种打破区块链账本不可篡改性的方式。
由区块组成的链本身并不是完全不可篡改的。在一些区块链实现中,最新发布的或“尾部”区块是可以被(更长的且带有不同“尾部”区块的链)取代的。如前文所说,当多条链相互竞争时,大多数区块链网络的策略是选择最长的链(包含了大部分的工作量)。如果两条链相互竞争但各自尾部区块的序列并不相同,那么较长的一条将获胜。这并不意味着被取代区块中的交易就丢失了,这些交易可能被记录在其他区块中或是返回到待确定交易池中。尾部区块的弱不可篡改性解释了为什么用户会选择在等待几个区块生成后才认为交易是有效的。
对公链网络而言,选择更长的链并替换区块内的交易可能是51%算力攻击的结果。方法很简单,攻击者只要获得足够的资源来超过网络中其他用户生成区块的速度即可(只要拥有超过51%的资源用来发布新块)。考虑到有些区块链的规模(译者注:比如比特币),这种攻击的成本高昂,只有国家级攻击者才有可能发起(几乎不是出于经济利益考虑)。执行此类攻击技术上并不难实现(例如,只是在出块时选择性地把某些交易包含或者剔除),只是太贵了。
相比之下,许可链网络就不用对这种攻击太过担心。所有者或用户联盟有权决定出块节点加入或退出网络,此举保证了对区块链的控制力。所有者或联盟可以强制出块节点开展公平协作,因此也不太可能在网络中出现链与链之间的竞争。通常用户会签署附加合同,其中列举了行为不当的条款以及申明了采取合法措施的权力。当行为不当的情况得到了有效控制,这意味着所有者或联盟可以按照自己的意愿,通过合法的方式替换任意数量的区块。
7.2用户参与区块链治理
区块链网络通过主导并控制规则、实践、程序等要素实现治理。通常人们会误认为区块链是无需控制权和所有权的系统。叫嚣“没有人控制一个区块链”严格来说是不正确的。许可链由所有者或联盟建立和运作,并对区块链网络进行治理。公链通常由用户、出块节点和软件开发者共同治理,他们在不同程度上影响了区块链的发展方向。
软件开发者提供网络所用的区块链软件。绝大多数区块链技术都是开源的,可以进行检查源代码和独立编译,甚至可以开发独立但兼容的软件来绕过开发者发布的预编译软件。但不是所有用户都有能力做这样的事情,所以区块链软件的开发者在治理中承担了大比重的角色。开发者主要基于社区的利益开展行动并对社区负责。2013年比特币开发者发布了最受用户欢迎的一个版本,但该版本存在缺陷并导致了链的分叉,开发者不得不在新旧两个版本中进行抉择。无论怎么选都会有一条链被放弃,这意味着一些用户的交易将失效,最终开发者决定恢复老版本并成功控制了比特币区块链的发展。
这是一个非预期的分叉,而开发者是可以有针对性的对区块链软件进行升级以改变区块链的协议或格式。被足够数量的用户采纳后分叉就可以被成功创建了,这些由软件升级造成的分叉会在用户间进行足够的讨论和协调。对于公链来说,这些“用户”通常是出块节点(或者说“矿工”)。在所有用户使用升级后的软件并在新的“主”链上继续记录交易前,通常会经过一段长时间的讨论和部署。
在公链网络中虽然开发者通常对链有很大的影响力,但用户可以不安装升级后的软件,以此拒绝开发者提出的改动建议。在用户中,出块节点通常有较大控制权,因为他们创建并发布新块。用户群通常会采纳,虽然不是必须地,出块节点发布的区块。有趣的是,在公链上,这种出块节点直接对区块链网络治理的副作用是,一部分用户为了留在主分叉上必须被迫接受改动并升级,否则会面临被边缘化的风险。
对许可链而言,区块链网络的控制和治理被所有者或联盟主导。联盟可以决定谁可以加入网络、何时将成员移出网络、为智能合约编写代码规则等。
总的来说,软件开发者、出块节点和用户各自承担区块链网络治理的任务。
7.3数字化之外
区块链网络在数字化系统中运转良好,但需要和现实世界互动时就遇到了一些问题(通常称为预言机问题)。区块链网络可以记录现实世界中人工录入也可以记录传感器的输入,但无法判断输入数据的真实性。传感器可能因为误动作而产生数据误差,人工录入也可能导致信息失真(有意或无意)。这些问题并非区块链所独有,在数字化系统中也普遍存在。对匿名的区块链网络而言,处理外部数字网络中的数据偏差尤其成问题。
例如,在一笔由加密货币支付的现实交易中,如果不借助外部传感器或人工录入,仅在区块链网络内无法判断物品是否已被装货。
许多项目试图解决“预言机问题”并创造可靠的机制,从而通过精确可信的途径获取外部数据。“Oraclize”就提供了一种获取互联网API数据并转换成区块链可读的字节/操作码。对攻击者来说,这是一个单点故障,即使在去中心化应用的大环境中这些项目也可能是中心化的。一些像MineableOracle Contract一样的项目利用区块链技术,通过共识模型和经济激励来确保预言机的数据获取。
7.4区块链之死
传统的中心化系统不断被创建、关闭,区块链网络的命运也并无二致。由于区块链是分布式的,因此有可能出现当区块链“网络关闭”时,却永远未被完全关闭的情况,有一些节点仍可能留在区块链上继续运行。
因为缺少足够多数量的出块节点来维护区块链的安全,恶意用户可以轻而易举地凌驾于剩余的少量出块节点之上并对任意数量的区块进行重置和替代,因此僵尸区块链不适合用来保存历史纪录。
上期内容回顾:
https://mp.weixin.qq.com/s/MTWKUNvQQ6dB9f_tVqJhzQ
联系我们
Homepage:iotee.io
Facebook:NESTchain
Twitter:@miuNEST
Telegram:@miuNEST
Reddit:r/miuNEST
Medium:μNEST
Steemit:μNEST
微信公众号二维码