关于公共区块链和私有区块链

作者:Vitalik Buterin 2015.8.7

在过去一年里,“私有区块链 “的概念在更广泛的区块链技术讨论中变得非常流行。从本质上讲,与其拥有一个完全公开的、不受控制的网络和状态机,由加密经济学(如工作证明、股权证明)来保障,还可以创建一个访问权限控制更严格的系统,修改甚至阅读区块链状态的权利被限制在少数用户身上,同时仍然保持区块链提供的许多种部分真实性和去中心化的保证。这种系统一直是金融机构关注的主要焦点,并在一定程度上导致了一些人的反击 ,他们认为认为这方面发展要么损害了去中心化,要么是害怕被淘汰的中间人试图保持相关性的绝望行为(或者干脆犯了使用比特币以外的区块链的罪行)。然而,对于那些仅仅因为想弄清楚如何最好地服务于人类,甚至追求服务于客户这一更简单的目标而参与这场斗争的人来说,这两种风格之间有什么实际区别呢?

首先,眼前的选择究竟是什么?概括地说,类似区块链的数据库应用一般有三类。

  • *公共区块链*:公共区块链是世界上任何人都可以阅读的区块链,世界上任何人都可以向其发送交易,并期望看到它们被纳入,如果它们是有效的,世界上任何人都可以参与/共识过程/(决定哪些区块被添加到链上以及当前状态是什么的过程)作为中心化或准中心化信任的替代,公共区块链由加密经济学提供保障–(经济激励和使用工作证明或股权证明等机制的加密验证相结合,遵循一个一般原则,即某人在共识过程中的影响程度与他们能够带来的经济资源数量成正比)。这些区块链通常被认为是 “完全去中心化的”。
  • *集团区块链(Consortium blockchains)*:集团区块链是指共识过程由一组预先选定的节点控制的区块链;例如,人们可以想象一个由15家金融机构组成的集团,每家都经营一个节点,其中10家必须在每个区块上签名,以使区块成为有效。读取区块链的权利可能是公开的,也可能只限于参与者,还有一些混合途径,如区块的根哈希值是公开的,同时还有一个API,允许公众成员进行有限的查询,并获得区块链状态的某些部分的加密证明。这些区块链可被视为 “部分去中心化”。
  • *完全私有的区块链*:完全私有的区块链是一种区块链,其写入权限保持集中在一个组织。读取权限可以是公开的,也可以限制在任意的范围内。可能的应用包括单一公司内部的数据库管理、审计等,因此在许多情况下可能根本不需要公开可读性,尽管在其他情况下需要公开审计。

总的来说,到目前为止,很少有人强调集团区块链和完全私有的区块链之间的区别,尽管它很重要:前者提供了公共区块链提供的"低信任度要求 “和私有区块链的 “高度依赖于信任单一实体 “模式之间的混合体,而后者可以更准确地描述为一个传统的中心化系统,附加一定程度的加密审计性。然而,在某种程度上,关注集团而不是私人是有道理的:除了复制的状态机功能外,区块链在完全私有的背景下的基本价值是加密认证,而且没有理由相信这种认证规定的最佳格式应该由一系列包含Merkle树根的哈希链接数据包组成;广义零知识证明技术提供了关于应用程序可以为其用户提供加密保证的类型的更广泛的令人兴奋的可能性。一般来说,我甚至会认为,在企业金融领域,与私有区块链相比,广义的零知识证明技术被大大/低估了。

因此,现在我将专注于更简单的 “私人与公共 “区块链讨论。一般来说,认为有 “一种真正的方式 “来做区块链的想法是完全错误的,两类都有各自的优点和缺点。

首先,私人区块链。与公共区块链相比,它们有很多优势。

  1. 运行私有区块链的集团或公司可以很容易地,如果需要的话,改变区块链的规则,恢复交易,修改余额,等等。在某些情况下,例如国家土地登记处,这种功能是必要的;不可能允许存在一个可怕的海盗罗伯茨可以对一块明显可见的土地拥有合法所有权的系统,因此,试图创建一个政府无法控制的土地登记处,实际上会很快演变成一个不被政府本身承认的登记处。当然,人们可以争辩说,通过给政府提供合同的后门钥匙,人们可以在公共区块链上做到这一点;对此的反驳是,这种方法基本上是Rube Goldbergian,而不是拥有私人区块链的更有效途径,尽管反过来也有一个部分反驳,我将在后面描述。
  2. 验证者是已知的,所以任何由中国的一些矿工合谋而产生的51%的攻击风险都不适用。
  3. 交易更便宜,因为它们只需要由几个可以信任的具有非常高的处理能力的节点进行验证,而不需要由一万台笔记本电脑进行验证。这是目前一个非常重要的问题,因为公共区块链的交易费用往往超过0.01美元/tx,但必须注意的是,从长远来看,随着可扩展区块链技术有望将公共区块链的成本降低到最佳效率的私有区块链系统的一两个数量级之内,这一点可能会发生变化。
  4. 可以相信节点的连接性非常好,而且故障可以通过人工干预迅速修复,允许使用共识算法,在更短的区块时间后提供最终结果。公共区块链技术的改进,如以太坊1.0的uncle概念和后来的股权证明,可以使公共区块链更接近 “即时确认 “的理想(例如,在15秒后提供完全的最终结果,而不是像比特币那样在两小时后提供99.9999%的最终结果),但即使如此,私有区块链仍将永远更快,延迟差异将永远不会消失,因为不幸的是,根据摩尔定律,光速不会每两年增加两倍。
  5. 如果阅读权限受到限制,私有区块链可以提供更高水平的,嗯,隐私。

鉴于这一切,看起来私有区块链无疑是机构的更好选择。然而,即使在机构背景下,公共区块链仍然有很多价值,事实上,这种价值在很大程度上在于公共区块链的倡导者一直在宣传的哲学美德,其中最主要的就是自由、中立和开放。公共区块链的优势一般可分为两大类。

  1. 公共区块链提供了一种保护应用程序的用户不受开发者影响的方法,确立了有些事情即使是应用程序的开发者也无权去做。从一个天真的角度来看,可能很难理解为什么一个应用程序的开发者愿意自愿放弃权力,束缚自己。然而,更先进的经济分析提供了两个理由,用Thomas Schelling的话说,弱点可以是一种优势。首先,如果你明确地让自己更难或不可能做某些事情,那么其他人将更有可能信任你并与你进行互动,因为他们相信这些事情不太可能发生在他们身上。第二,如果你个人被另一个实体胁迫或施压,那么说 “即使我想做,我也没有能力做这件事 “是一个重要的谈判筹码,因为它阻止了那个实体试图强迫你去做。应用程序开发者面临的压力或胁迫的一个主要类别是政府的压力或胁迫,因此 “抵制审查制度 “与这种论点紧密相连。
  2. 公共区块链是开放的,因此有可能被非常多的实体使用并获得一些网络效应。举一个特别的例子,考虑域名托管的情况。目前,如果A想把域名卖给B,有一个标准的对手方风险问题需要解决:如果A先发,B可能不会发钱,如果B先发,那么A可能不会发域名。为了解决这个问题,我们有中心化托管中介机构,但这些机构收取百分之三到六的费用。然而,如果我们在区块链上有一个域名系统,在同一区块链上有一个货币,那么我们可以通过智能合约将成本削减到接近零:A可以将域名发送给一个程序,该程序立即将其发送给第一个给该程序送钱的人,并且该程序是可信的,因为它运行在公共区块链上。请注意,为了使其有效地运转,来自完全不同行业的两个完全异质的资产类别必须在同一个数据库上–这种情况不容易发生在私人区块链上。这一类中另一个类似的例子是土地登记和产权保险,尽管需要注意的是,另一条实现互操作性的途径是拥有一条公有链可以验证的私有链,而,btcrelay式,并进行跨链交易。

在某些情况下,这些优势是不需要的,但在其他情况下,它们是相当强大的–强大到值得延长3倍的确认时间和为一笔交易支付0.03美元(或者,一旦可扩展性技术发挥作用,为一笔交易支付0.0003美元)。请注意,通过在公共区块链上创建私人管理的智能合约,或在公共和私人区块链之间创建跨链交换层,人们可以实现这些属性的多种混合组合。对于一个特定行业来说,最佳的解决方案在很大程度上取决于你的具体行业是什么。在某些情况下,公共的显然更好;在其他情况下,某种程度的私人控制是完全必要的。正如现实世界中经常发生的那样,这看情况。