第一性原理审视——作为数据库的区块链

PATRICK MCCORRY
媒体专栏
热度: 22792

所有命名的系统本身都是数据库,具有不同程度的安全性和可审计性。但是,为了实现资产的转移,我们需要谈论桥接:)

原文标题:Blockchain as a Database (Part 1)

原文作者:PATRICK MCCORRY

原文来源:Substack

编译:Lynn,MarsBit

关于验证桥是否定义了 rollup,或者换一种说法,已经有了大量的讨论:

rollup ==? bridge。

我们应该退一步,从第一原则看问题。

  • 什么是区块链?
  • 我们如何将资产从一个数据库连接到另一个数据库?

这两个主题将在两篇博文中涉及,然后我们可以重新审视上述声明,以评估其真实与否。

什么是区块链?

区块链的目的只有一个:允许另一方计算与其他人相同的数据库的副本,并相信该数据库是有效的。

共识协议

区块链的核心是一个单一的数据库,它记录着:

  • 账户余额、
  • 智能合约代码、
  • 程序状态。

在几乎所有系统中,区块链定义了所有历史交易的总排序。

至少,在很长一段时间里,我们是这样被教导的。

它没有理由必须是一份交易清单。它很可能是一个状态差异的列表,同时还有一个零知识证明!那么——什么是区块链?

  • 区块链。 一个有序的数据“blob”列表,用于根据一套固定的规则计算数据库的副本。

让我们再重申一下区块链的唯一目的:

  • 允许用户计算数据库的一个副本。

唯一的工作是启用单个数据库的复制。

听起来很无聊,不是吗?

达成关于区块链的协议

共识协议

其中一个更难的难题:

  • 社区如何能在世界范围内达成一致,并认识到什么才是唯一真正的区块链。

如果我们都能在同一个区块链上达成一致,那么我们都可以计算出同一个数据库的副本!

下一步这就来到了共识协议的想法,其目标很简单:

  • 让一组可能是匿名的、相互不信任的各方,在一个单一的决定上达成一致

在区块链的背景下,共识协议使一方能够提出一个数据块“blob”,将其附加到区块链的顶端,并使所有其他各方同意它确实是新顶端。

这就是为什么它被称为区块链的原因,因为我们都是在一条串着区块的链子上达成协议的!

在设计和实施一个共识协议时,有许多技术挑战需要考虑:

  • 我们能否启用开放的成员资格,以便任何人都可以参与?
  • 各方达成协议的沟通复杂性是什么?
  • 是否有可能增加经济激励措施,让人们站出来参与?

我们不会专注于这些挑战,尽管这确实是一个有趣而复杂的探索话题。唯一的收获是,我们只需要一个共识协议的存在,并且它可以使所有各方就新的数据块达成协议。

一个共识协议的新实例

多年来,当然是为了追求Layer 1区块链,社区已经尝试了大量的共识协议配置:

  • 比特币的中本聪
  • 以太坊上的加斯帕(Gasper)
  • Cosmos上的Tendermint
  • Avalanche上的Snowman++

在几乎所有的情况下,进入市场的计划是推出一个新的共识协议,就数据库的更新达成一致。此外,这不仅仅是部署一个共识协议,而是所有围绕它的基础设施,以及使大多数诚实的当事人参与其中的社会方面。

如果完成它,这将是一个赫赫有名的壮举。

这给我们带来了一个有趣的问题:

  • 如果我想推出一个区块链,并最终推出一个新的数据库,我真的需要实例化一个新的共识协议吗?

你肯定想不到,答案是否定的!

重新使用现有的共识协议

区块链可以作为一个公共公告板,保证所有各方的一致性

共识协议

在进一步深入研究之前,我们需要考虑一个抽象的概念:

  • **公共布告栏。**保证了所有想要访问数据的参与者对数据的一致看法。

它是一个与电子投票协议有关的概念。一个公共委员会允许所有用户获得相同的协议笔录。用户可以拿着记录本,独立地执行它,并验证协议是否正确运行。在电子投票的情况下,它是为了检查投票协议的运行是否正确,以及所有的票数是否确实被算作统计的一部分。

这与区块链有什么关系?嗯,只要是这样:

  • 任何人都可以获得发布在公共公告板上的数据

然后,任何人都可以获得有时间戳的数据,并计算出单一数据库的副本。在实践中,许多Layer 1区块链,当然是比特币和以太坊,是非常好的公共公告板。此外,他们还让任何人都可以很容易地把数据块写到公共布告栏上!

只要把数据卷起来,然后发布到区块链系统上。

共识协议

重用现有的区块链系统被称为“rollup”。

  • rollup: 所有的数据都是由运营商卷起来的,并发布到相应的区块链上。

决定数据块的总排序和保证任何人都能访问数据的艰巨工作留给了现有的区块链系统。这不是一个新的想法。事实上,它已经存在了10年左右。作为引导新数据库的一种方式,rollup的方法已经得到了普及。

有很多例子:

  • Coloredcoins
  • MasterCoin / Omni
  • Ordinals
  • Arbitrum
  • Optimism
  • StarkEx
  • ZkSync
  • Polygon Heremez
  • Scroll

上述所有项目,以及其他项目,都在试图在比特币或以太坊的基础上启动一个新的数据库。

事实上,由于该方法的流行,有一个项目将在某天推出,名为Celestia。它专注于建立一个平台,致力于实现类似rollup的数据库。

在所有情况下,我们仍然可以将rollup视为区块链

  • 一批数据块被定期发布,
  • 它被追加到所有相关数据块的总排序中。

区块可能看起来不同,它甚至可能是一个数据臃肿的流,但总的想法是坚持一个只附加的数据结构,最终有一个总的(或者说随意)排序。

最后,无论我们是部署一个新的共识协议还是重新使用一个现有的协议,目标都是一样的:启动一个单一的数据库。

解析数据块的规则

这就需要社区站出来,执行全球商定的规则规则,特别是要对系统的操作者进行反击。

共识协议

假设所有各方都能获得相同的数据,最后的挑战是各方都同意相同的一套规则(“状态转换函数”)来解析数据块和计算数据库的副本。

一个解析数据的例子:

  • 拿一个数据blob,
  • 把它解析为一个事务,
  • 检查该事务是否可执行,
  • 在一个特定的虚拟机上执行它,
  • 将更新应用到数据库中。

这导致了加密货币的一个独特问题:

  • 我们需要在全世界范围内就解析数据的同一套规则达成共识。

在协调全世界对解析规则的共识时,我们需要评估两种情况:

  • **操作性的执行。**由所有各方同意的规则,在99.9%的时间里由各方运行的软件来执行。
  • **规则的管理。**有一个固定的过程,让所有各方提出并同意一套新的规则。

首先,几乎所有的讨论都将区块链网络的安全性与规则的日常操作执行联系起来。这是一个重要的对话,因为它关注的是软件以及所有各方如何持续执行同一套规则来保护数据库。

然而——保护区块链网络的最终后盾,特别是当操作执行出现问题时——是更新规则的过程。必须有一个过程来实现所有参与者对如何改变规则以及何时执行新规则的社会共识。

让我们更详细地探讨一下执行和治理的概念。

业务执行

我们所有的人都要不断地执行规则,并验证对数据库的每一个拟议更新。

共识协议

日常的操作执行是使计算数据库的区块链系统令人兴奋的原因!

我们只需要在以下方面达成一致:

  • 在哪里可以找到数据块的总排序
  • 用于解析数据块的规则集

就是这么简单明了。所有参与者都有机会获得数据块,执行规则,只尊重遵守规则的数据库。

不管参与者是大是小,是提案人还是在家的节点,每个人都应该对数据库的内容有信心。

再进一步说,只要所有市场参与者执行相同的规则,并且他们可以计算出相同数据库的副本,那么我们就可以让市场来决定什么应该被认为是真正的区块链。

规则的治理

所有的区块链系统都必须有一套如何解析数据和计算数据库的规则来引导。

共识协议

几乎所有的区块链系统都需要一个引导阶段

  • 中本聪的比特币核心
  • Gavin Wood的黄皮书。

更多的时候,一个项目是由一小群开发者引导的,他们决定规则,启动区块链,然后把软件(连同规则)交给更广泛的社区。

下一步是改变规则的过程

随着时间的推移,有很好的理由改变规则,例如为新功能进行软件升级或修复已知的错误。任何规则的改变都需要广泛的参与者的同意,或者换一种方式,社会共识

共识协议

有两种方法可以实现改变规则的共识:

  • **粗略的共识。**一个不透明的、定义不明确的过程。
  • **链上治理。**代币持有人的明确投票过程。

前者是粗略共识,是比特币和以太坊等区块链网络的核心。它涉及到以人为本的过程,与各个参与者达成协议,然后开发人员实施升级,并组织一个旗帜日,以便升级可以上线。

后者,即链上治理,首先由Tezos开创,使参与者能够明确地投票决定是否应该部署升级,然后为投票成功后的软件更新提供一个时间表。正如我们即将看到的,链上治理方法已经成为DAO流行的一种治理单一软件实例部署的方式。

在这两种情况下,仍然需要就拟议的升级达成协议,而且不能保证它能顺利进行:

  • **没有区块链分裂:**升级顺利执行,全世界的共识(包括市场)只接受一个具有新规则的单一数据库。
  • **区块链分裂:**如果升级是有争议的,它仍然继续进行,那么它可能会导致永久分叉,因为两个通信应用不同的规则,并计算不同的数据库,有自己的市场上限。

换句话说,治理过程提供了一个关于社区是否可能接受拟议升级的指示。我们只能在升级的旗帜日和执行之后才能确定。社区成员很有可能提出异议,无视新规则,并允许出现两个竞争性数据库。就像BTC/BCH和ETH/ETC。

作为最后的说明,有两种方法来实现新的规则变化:

  • **硬分叉。**对规则的可检测的改变,非升级的节点将拒绝。
  • **软分叉。**对规则的不可检测的改变,非升级的节点将被忽略。

硬分叉或软分叉的想法集中在非升级的软件是否能检测到规则的变化,以及它将如何回应。围绕着应该使用哪种方法很容易引起激烈的争论,因为它最终会影响到网络的抗审查能力、抵御敌意接管的能力以及用户是否可以明确选择加入规则的改变。

一个数据库的世界?

区块链网络的全部追求是建立一个开放的数据库,允许任何人读取、写入和保护它。

共识协议

在过去的14年里,社区最大的实验总是集中在如何建立一个“更好的”数据库。

已经有了一个明显的演变:

  • **托管型数据库。**复制web2的经验,但相信操作者会保护数据库的完整性和有效性。
  • **公共数据库。**允许任何人阅读数据库,但最终信任运营商来更新它。
  • **开放数据库。**允许任何人阅读、写入和保护数据库。

提供一些例子:

  • **中心化交易所。**几乎所有的交易所都实现了web2风格的数据库,任何人都不可能计算出数据库的副本。
  • **证明权威。**一些区块链系统依靠一个或多个指定的权威机构来发布新的区块,以更新数据库。任何人都可以下载区块,解析数据块,并计算出数据库的副本。他们只是没有权力提出一个新的区块。
  • **Nakamoto共识。**任何人,只要愿意使用财政资源,都可以通过发布(和投票)新区块来参与更新数据库的过程。同样,任何人都可以下载区块,解析数据块,并计算出数据库的副本。

现在——我们用“更好”这个词作为答案——因为什么是一个好的数据库是非常主观的,它取决于社区试图优化的指标:

  • 最大限度地提高能够参与共识协议的参与者?
  • 最大限度地提高可以下载数据库副本的参与者?
  • 限制谁可以在未经受信任的操作者批准的情况下写到数据库?
  • 最小化系统中的交易成本?也许同时要努力保持数据的公开性,让任何人都可以下载?
  • 什么是最容易让奶奶进行交易的?

我们可以客观地定义指标,评估一个区块链系统实现其既定目标的程度。社区将永远争论那些重要的指标,以及他们如何比竞争对手更好地实现它。然而,最终重要的是市场上的用户决定在什么上进行交易,以及他们为什么做出这个决定。

只有一个问题——我们如何将资产从一个数据库转移到另一个数据库?例如,一个典型的用户流程可能涉及:

  • **On-ramp。**在Coinbase上购买硬币,
  • **划转。**将货币从Coinbase转移到Ethereum,
  • **行动。**实验DeFi应用,
  • **划转。**将货币从Ethereum转移到Arbitrum,
  • **行动。**Experiment with DeFi applications,
  • **划转。**将货币从Arbitrum转移到Binance,
  • **链下。**提取到法币。

所有命名的系统本身都是数据库,具有不同程度的安全性和可审计性。但是,为了实现资产的转移,我们需要谈论桥接:)

这将是我们下一篇文章的重点!

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。