首页 > 百科知识 >

区块链到底解决了什么问题



区块链技术正在分化科技界。我多次批评当前基于区块链的解决方案大多是炒作,实质内容较少。然而,这是对真相的过度简化。区块链是一项有趣的技术,它确实解决了一个真实存在的问题。

然而,我认为在目前提出区块链的绝大多数情况下,它并没有解决人们想要解决的问题。

与盲目批评炒作不同,让我们来看看这项技术实际承诺了什么,它在未来可能有什么用途,以及它本身无法解决哪些问题。

什么是区块链

其他人已经比我更好地描述了区块链的内部工作原理。在不涉及技术细节的情况下,我仍然需要解释一种核心概念:拜占庭共识的概念。

首先,让我们考虑一下共识的含义。共识是分布式系统研究中使用的一个术语,描述的是在没有依赖中央协调的情况下,多个分布式参与者就某个状态达成一致。他们用来协商这个共享状态的唯一手段就是彼此直接发送的消息。

共识协议是设计用于在分布式系统中实现共识的消息传递方案。你需要采用的协议取决于你对系统的假设。在一个非常简单的系统中,参与者可以自由地、没有限制地互相发送消息,一个简单的共识机制可能是每个人广播他们对状态(他们的答案)的信念,然后每个参与者采纳多数决策:

在上述讨论中,我们假设所有参与者都会真诚地尽力达成共识并遵循协议。如果所有参与者都是你控制的数据中心中的机器,这通常是一个合理的假设。拜占庭共识问题扩展了这个范围:在这种情况下,我们需要假设一些参与者积极尝试欺骗和操纵系统以谋取自己的利益。

想象一下,如果上面例子中的参与者不是交换他们对食物偏好,而是交换他们对汤姆银行账户余额的了解。如果汤姆控制参与交换的其中一台机器,我们需要假设他方报告的数字并不完全真实。

拜占庭共识协议旨在在这些更加复杂的情况下实现共识。

当然,拜占庭共识协议的能力也有一定限制。如果除了你自己之外的所有参与者都合作以某种方式操纵系统,你无能为力。然而,技术上非常令人兴奋的部分是,你可以设计支持一定比例恶意参与者的系统和协议,而不会崩溃。

这就是区块链的用武之地。区块链是拜占庭共识问题的一种实例,参与者需要就一个被称为账本(你也可以称之为“区块链”)的大型事项列表达成共识。这是通过交换消息来达成共识的,这些消息旨在就下一个要追加到列表末尾的元素达成一致。

目前存在多种不同的协议尝试实现这种共识,每种协议都有其优点和缺点。最流行的方法背后的精彩思想是将网络参与与经济激励相结合。在这个领域最知名的方法是工作量证明(Proof of Work),这也是导致比特币网络具有小国能源消耗的原因。

不详细展开,工作量证明的效果是对于恶意参与者来说,操纵共识将非常昂贵:如果你想让网络相信一个替代现实,即你将硬币从右口袋发送到左口袋,而不是在朱迪给你披萨换取硬币之后将其发送给朱迪,你将被迫在攻击上花费巨额计算资源。(详见比特币白皮书)

在接下来的部分,我想简要介绍一些当前提出的区块链应用以及它们如何适应这个框架。

货币

区块链的第一个和最著名的应用是货币。比特币或以太坊是著名的例子。

在上述所描述的拜占庭共识协议的基础上构建货币需要两个额外的要素:首先,我们需要将系统维护的账本解释为一系列货币交易。例如,“汤姆支付给朱迪80欧元”可以是一个条目。通过一系列交易,你可以重新构建当前的余额。

我们需要的第二个要素是参与者向系统进行身份验证并证明交易的真实性的方式。只有鲍勃可以决定从鲍勃的账户发起支付。比特币协议通过数字签名实现了这一点,这是一种比区块链技术更古老的技术,可以与分布式共识结合使用。

实际上,像比特币、以太坊(以及像Solana这样的权益证明系统)这样的工作量证明区块链深度将货币方面整合到其协议中。它用于提供货币激励,没有这些激励,协议将无法运行。

智能合约

区块链的一个有趣应用是将合约编码为链的一部分。

上述协议中没有规定区块只能包含货币交易。我们可以利用这种灵活性,允许在这些区块中包含小型程序。这样的消息向网络的其他节点传达了这样的信息:“有另一个参与者可以与你进行交互,而这个参与者不是由一个人控制,而是由以下代码控制...”

例如,一个程序可以实现以下逻辑:一旦合约的账户余额超过100欧元,它就会将资金平均分配到汤姆和朱迪各自的账户中。这个程序现在成为系统中的虚拟参与者,一旦朱迪将必要的资金转移到该合约中,系统的新状态就需要考虑程序的执行:

例如,你可以想象一个类似Kickstarter的设置,其中一个合约承诺,如果达到了某个特定的筹款目标,为某个项目贡献的资金将会转到该项目的账户。如果未达到筹款目标,捐助者有保证能够取回他们的资金。这是通过存储在区块链上的合约来保证的,而不是通过法律合同。

需要注意的是,通过这种方式很容易表达出在同一个账本内管理的事物之间的关系。但是,将这些合约扩展到区块链范围之外的对象则不太明显,我们将在下面讨论。

关于这些合约如何工作的详细信息,可以参考易于阅读的Ethereum Whitepaper | ethereum.org。

去中心化自治组织(DAOs)

一旦接受了合约可以成为链的一部分的概念,我们可以将事情提升到更高的抽象层次:智能合约可以用来实现组织结构,如成员管理和投票。在区块链世界中,这些被称为去中心化自治组织(DAO)。在典型的DAO中,成为成员的方式是获得“代币”,这些代币给予持有者按照代币数量加权的投票权。因此,在这些模型中,“股东”可能比“成员”更合适作为类比。

投票机制本身就是一个智能合约。特别要注意的是,与链上对象相关的提案在投票成功后可以自动执行。这包括以某种方式使用组织的资金,甚至修改组织运行的智能合约的代码。

这使得在区块链的有限范围内通过代码实施法律结构和治理机制成为可能。

与链上对象无关的投票无法自动执行,但投票记录和结果将永久记录在账本上,很难伪造。

我也看到DAO承担了不同的含义,与底层技术解耦:许多支持者将其视为一种新形式的组织,因为成为成员意味着成为股东,这对透明度要求非常严格,并且可以轻松获得筹款工具。所有这些特点都很有趣。虽然这些特点也可以在没有区块链技术的情况下实现,但也许在这个历史时刻,区块链技术恰好是最直接的过渡步骤。

非同质化代币(NFTs)

非同质化代币(NFTs)是近几个月在区块链应用中备受关注的另一个方面。NFTs用于存储所有权声明。从某种意义上说,货币也是一种所有权声明:比特币网络的某个状态可能表示我拥有价值20欧元的比特币。然而,对于普通的硬币来说,我拥有哪些具体的硬币并不重要,重要的是它们的数量。

相比之下,NFT是一种独特的代币,区块链传达了我对这个独特代币的所有权。

通过上述描述的智能合约系统,实现这样的代币在概念上很简单:只需构建一个合约,存储信息“安妮拥有蒙娜丽莎”,并在适当的金额交换发生后转移这种所有权。

这个交易然后成为区块链的一部分,并可以作为无可辩驳的证据证明交易已经发生。

如果这个代币涉及到存在于区块链之外的实体(比如蒙娜丽莎),解释拥有一个代币的所有权实际上意味着什么就变得棘手了,我们稍后会看到。然而,由于区块链的不可变性,代币本身的所有权可以被无可辩驳地证明。

那么,区块链到底是什么

将区块链视为一个具有额外属性的数据库并不过分:您不需要信任一个中央实体来管理和保证该数据库的完整性。

从技术上讲,上述所有应用都可以通过一个简单的共享数据库来实现,该数据库由参与者信任的实体控制:货币的账本可以在一个可信实体的数据库上,该实体确保所有交易都被正确记录。让我们称这个实体为“银行”。

这样的实体也可以接受具有明确定义在特定情况下应该发生的合约。您还可以想象一个中央存储库,其中包含与不同人相关联的属性,作为非同质化代币的简单替代方案。例如,土地所有权登记就是这样工作的。

区块链针对问题空间中的一个非常狭窄的领域。

因此,在考虑基于区块链的解决方案时,任何提案都需要与简单的依赖可信实体的替代方案进行比较:我们通过使用区块链获得了什么?

我还需要解决一个问题,因为我确信支持区块链的人会提出这一点:区块链还提供了防篡改的内在保护。在事后很难篡改交易。即使我们原则上信任一个中央实体,也可能存在一个恶意行为者能够访问该实体并在没有任何人注意到的情况下篡改中央数据库。

虽然这是一个有效的观点,对于需要追溯性的应用来说可能是一个重要的标准,但这不能被视为区块链的独特特点。区块链具有这个属性,但在一个具有中央可信方的设置中,可以使用区块链中使用的技术(Merkle树)来建立相同的保证。

research!rsc: Transparent Logs for Skeptical Clients描述了一种使用这些技术与集中式日志结合的过程,以生成有效性证明并实现简便的审计。

Oracle问题和执行问题

区块链解决方案的一个重要局限性是链内对象与链外对象之间的差异。智能合约和非同质化代币(NFT)适用于区块链内的有界世界。如果您希望这些对象扩展到有界领域之外的现实世界,您需要一个实体来建立这种联系并执行链上编码的内容。

这个类别中的第一个子问题是Oracle问题:如果您希望智能合约基于区块链之外的信息(例如一桶石油的美元价格)触发规则,您需要一个实体将这些数据编码到链上。对于一个以零信任为基础的系统来说,这是有问题的,因为这个实体可能有动机歪曲这些信息。

第二个问题涉及到与链上未管理的对象相关的所有权声明和法律义务的执行:

非同质化代币(NFT)可能是您拥有一件艺术品的防篡改证据。然而,这件艺术品存在于区块链之外。如果我决定忽视这个所有权声明,并复制或出售那件艺术品,您需要找到一个实体来对我执行您的所有权声明。

类似地,我们上面描述了一个类似Kickstarter的DAO,如果达到了筹款目标,它会分配资金。资金的分配发生在区块链的有界世界内。然而,合约无法保证接收方实际上会将资金用于预期的目的,因为这个目的(很可能)在区块链之外。

因此,总结而言,如果您希望打破区块链的有界世界,并对现实世界做出陈述,您仍然需要依赖一个可信实体来建立这种联系。

这引出了一个问题:如果您已经信任一个中央实体来执行,那么您是否也会信任该实体来处理信息?

加密货币运动背后的一个基本理念是将经济激励与算法设计相结合。我不想排除可以找到激励结构来解决Oracle问题和执行问题的可能性。可能会想到一些解决方案(“一个自动奖励武装自卫人员执行所有权声明的智能合约”),听起来相当反乌托邦。至少我认为公平地说,我们离一个可以在没有对中央实体的任何信任的情况下运行的系统还有很长的路要走。

使用区块链的缺点是什么?

如果区块链只是简单地解决了一个约束问题——对可信实体的需求——而没有任何弊端,那么可以说,在任何需要某种形式账本的应用中,区块链都明显优于集中式方法。

然而,就像每个技术选择一样,这些决策都是权衡取舍的,区块链的好处并非毫无代价。

首先,运行共识算法会带来额外的开销。我甚至不太担心工作量证明系统常被批评的能源消耗过高问题,因为我相信目前正在开发的更高效方法足够成熟,可以作为可行的替代方案。

然而,即使是简单的非拜占庭共识协议已被证明会在比较简单的集中式应用程序上增加显著的协调开销。拜占庭共识是一个更难的问题,这意味着与共识建立相关的开销将永远存在。

其次,区块链增加了一层复杂性,这将反映在项目的整体成本上。更多的组成部分也意味着更多的安全问题,因为这意味着更多的潜在攻击点。

第三,当涉及到涉及DAO和智能合约的更复杂的区块链场景时,我们遇到了几个未解决的问题,因为这些结构与当前对软件构建方式的理解和对法律框架运作方式的理解发生冲突:

从工程角度来看,智能合约是非常难以修改的程序。如果同样的智能合约存在于可信方的中央系统中,可信方可以根据需要应用错误修复和安全更新。在智能合约上应用错误修复是一个冗长的过程,而在此过程中,已知的安全漏洞可能会公之于众,等待被利用。对于主要用于金融应用的工具来说,这并不理想。

从法律角度来看,我们当前的法律体系允许解释的空间。这就是为什么我们有法院的原因。对合同的机械理解意味着我们无法区分遵守规则的交易和利用系统中的漏洞的交易,尽管前者符合法律的字面意义,但不符合法律的精神。

区块链技术让我喜欢的地方

我想再强调一下,我的批评并不是针对技术本身,而是针对它被宣传为解决问题的万灵药,而实际上存在其他更合适的选择。技术本身非常迷人,充满了有趣的想法。区块链的一个重要特点是在算法设计和用户交互中引入货币激励的概念,这是我非常喜欢的一点。

发明一种全新的货币可能是实验这些算法的必要前提:可以将其视为避免我们当前金融体系的制衡机制的一种方式。即使没有过于严格的零信任假设,我也能看到很多潜在有趣的应用可能会出现在这些实验中。

总结

区块链确实解决了一个实际问题:在没有访问共享可信第三方的情况下跟踪记录。我确实认为在某些应用中,这种特性可能会有用。例如,在国际层面上,即使两个当事方在政治上无法就一个共享实体达成一致,也可以使用区块链建立交易记录。

然而,这也对那些仍然需要中心化可信实体的区块链项目提出了严重的质疑。你是否需要一个中心实体来执行规则?你是否需要一个可信实体来区分合法使用和诈骗行为?由国家行为者为了自己的人民利益而推出的区块链项目在这方面似乎特别可疑。

此外,这次讨论的一个重要结果是:如果有人试图向你推销私有区块链,你应该警惕!这个人很可能出于无能或恶意,并不会为你的最佳利益行事。私有区块链在本质上是一个自相矛盾的概念,你将面临拜占庭共识的所有复杂性,但却无法获得其好处,因为它仍然围绕一个可信实体进行中心化。对于你的使用情况,几乎肯定存在更好的方法。

如果你想进一步阅读,我推荐阅读以下这篇Feed,该文章介绍了Web3生态系统的承诺和问题,作者对这个主题的了解比我更深。

原文链接:What Problem Blockchains Actually Solve  The Solution Space