文章介绍了TrueBit,一种基于以太坊的扩展性去中心化计算模型。TrueBit通过构建计算市场,允许开发者在以太坊链外执行复杂计算,并在需要时通过验证脚本在链上验证结果的正确性,从而大幅提升以太坊的计算能力。
或者:“全景计算机介绍:可扩展去中心化计算的代码执行法庭”。
以太坊社区总是让我感到惊讶。很多聪明的人在可能性边缘进行工作。我们在当前版本中还没有真正触及可能性表面的深处,而我们已经看到了许多令人惊叹的新机会浮出水面。
对于不太了解的人,以太坊可以被描述为一个使用区块链技术的分布式“世界计算机”。它允许开发者将代码上传到区块链,一旦激活便执行这些代码以更改共享账本中的部分信息。换句话说,你可以对一个共享的、公共的(相对)不可更改的账本应用任意复杂的状态变化。点对点网络中的每一个节点都运行这些状态变化,而特定的计算机(矿工)则确保这些状态变化难以被逆转(通过获得补贴和费用作为奖励)。为了执行状态变化和计算,用户需要按比例支付平台的加密货币以太币。你想进行的计算越多,你需要支付的费用就越高。计算的数量用一种称为“gas”的单独单位来衡量。
当前模型中的一个问题(以太坊还年轻且新鲜)是,尽管它允许一个初步的分布式世界计算机,1)所有节点仍需运行状态变化,尽管他们没有因此得到奖励,以便反映共享账本的当前真相(被称为“验证者的困境”)& 2)它的处理速度慢,无法处理大量的计算和信息。因为所有节点都需要运行计算,而且状态变化是基于交易的排序,因此以太坊虽然是分布式的,但基本上与网络中最快的计算机一样慢。当前正在规划的扩展解决方案可以并行处理交易,并大幅提高其承载的交易数量。未来并不是网络中的所有计算机都需要运行所有状态变化。它将朝着一个新的模型发展,使网络中的计算机能更准确地合并成一个大型单一的分布式计算机。这些解决方案仍处于较远的未来,正在积极开发中。
另一个实现重大神经扩展的有趣模型是将以太坊用作计算法庭。Piper Merriam 设计了一个计算市场。当在以太坊上定期运行这些计算的费用过高时,它是最佳选择。它通过以下方式节省成本:
在这个市场中,仅需一位诚实的参与者在众多恶意参与者中就足以。它是一个非常有效的系统,通常只有在计算结果错误的情况下才会出现错误答案(考虑到EVM是确定性的并且没有随机性,这种情形似乎不太可能)或者真的有人试图作弊并希望没人关注。然而,在一个完全正常运转的市场中,主动检查很可能会发生,等到这一点,它很可能会发展到一个可以以比在以太坊上执行便宜得多的价格进行计算的局面。权衡是需要等待一段时间来继续进行后续执行,因为必须等待挑战期结束以确保100%确认。一个更高效的市场将意味着能够缩短等待时间,因为有一支验证者的队伍,随时准备挑战并迫使作弊者采取行动。这是指假设验证会首先进行的情况。如果这个计算法庭能够正常运转,它将发展成一个根本不需要运行的局面,因为通过作弊的成本使得其成为不可行。
这是一个 panopticomputer(即“全景计算机”)。
没有强制,计算机自身保持诚实,心存恐惧,因为如果它们不当行为,计算强制可能会被调动。
福柯的监狱:囚犯被一位看守监视,却不知道自己是否被监视:控制自己的行为。
计算市场的局限性在于:
因此,目前如果你想构建需要去中心化状态收敛和去中心化控制的应用,你将使用目前版本的以太坊。这是有成本的,但仍然带来了许多好处。例如,你不会真的看到它运行神经网络…… 除非…… 这就是TrueBit的作用。这是Christian Reitwießner、Jason Teutsch 和 Loi Luu 的一个提案。
这是一种令人惊叹的组合。它采用了计算市场的概念,但增加了以低于链上运行完整指令的成本验证指令的能力。换句话说,验证提交的答案是否正确的计算成本低于执行它的计算。你不需要运行整个指令就能验证提交者是否在作弊。因此,你可以验证结果,这些结果的指令要比实际可以适配在以太坊中的指令大得多。
因此,使用以太坊,用户只需将验证脚本上传到区块链。这些脚本以EVM编写,但是它可以验证任何图灵语言。例如,你可以验证C++或Rust。
它使用我们最喜欢的数据结构:默克尔树。通过二分搜索,在图灵指令集中的不同点之间,两个实体(解决者与挑战者)进行一次交互式游戏,以查看内存和状态在计算步骤之间的默克尔证明何时不再匹配,在这种情况下,它可以明确知道(考虑到哈希冲突的几率,统计上显著的可能性)哪一个作弊。验证游戏在以太坊上进行。合约在某个特定时间请求默克尔哈希,仅应用一个状态变化以查看生成的默克尔哈希是否与请求的一致。撰写这些验证脚本是进行游戏和进行中间变化所必需的。
该验证的基础可以在这篇白皮书中阅读。在此Christian Reitwießner的一篇博客文章中进行了扩展,讨论了智能合约法庭。
它使以太坊从一个慢速的分布式世界计算机变为一个巨大的可扩展计算机。它将其转变为一个庞大的去中心化数学法庭。在出现计算争议时,它通过运行验证脚本来施加压力。正如之前提到的,其美妙之处在于它只有在出错时需要运行那些验证脚本:即有人试图作弊。你只需要一位诚实的参与者就足以打败所有恶意欺骗者。
这具有革命性。它将以太坊作为新去中心化计算基础层的潜力大大提升。以下是Christian解释在以太坊上运行神经网络的可能性的一段话:
使用TrueBit项目,智能合约实际上可以请求外部程序以无信任的方式为它们执行例程,他们可以使用数 TB的数据(这对于现代深度学习是必要的):如果你将一个庞大的数据集的根哈希编码到智能合约中,它可以利用该集合训练一个神经网络(这当然也只以其根哈希存储)并基于这些数据做出决策。通过更新根哈希,数据甚至可以得到更新。只要数据对外部执行者(且至少有一个诚实的验证者)可用,系统便会持续运行。在我们进行汇聚的那一刻,智能合约实际上可以经济性地强制确保数据的可用性。
所有软件服务的边际成本降为零?
如果你对此可能性进行推测,那将相当令人眩晕…… 存在这样的潜力,即所有软件服务的边际成本降为零。区块链和以太坊引入了一个概念,即我们现在可以运行不再需要组织来维持的软件。软件一直需要人和组织的肉体壳来维持自己。我们必须围绕软件建立组织。然而,随着集体计算基础设施的出现,这种模式被彻底颠覆了。软件独立存在,并以按执行支付的模型蓬勃发展。它将始终存在,直到被执行,然后在被再次执行时休眠。这意味着,为了生存,软件代理仅需支付自身的维护费用。这个想法在比特币社区早期引发了许多讨论,关于自动驾驶汽车拥有自己的概念。因为它是一辆车,所以它不需要盈利。它只需覆盖自己的成本:服务人类。让组织来运行软件是一项昂贵的事业,与这种可能性相比,真是如此。组织中有需要喂养的人,他们有权力和贪婪等激励,使得获取比服务自身存在所需更多的钱,软件则不具备(或不需要有)。
这意味着,从经济角度来看,随着时间的推移,转向零边际成本执行的软件似乎是不可避免的。然而,目前状态下的区块链不会导致所有软件在零边际成本下运行。它仍然很慢。然而,借助TrueBit,似乎可以在零边际成本下执行任何软件服务。这个成本将是:支付市场费、其自身内部运作系统的成本以及外部参与者进行计算的成本(能源+潜在的人力)。
作为Trent McConaghy关于人工智能 DAO 的文章的一部分,我提交了一个使用futarchy和TrueBit生成艺术作品的服务的WIP版本。它所产生的艺术越好,它就能继续创作更多的艺术。在整个过程中,它并不需要支持人类。我已经开始一版更通用的版本,并需要更多的设计工作。基本的早期思路是(可能还有漏洞):
使用TLSNotary证明(由Oraclize.it实施),它甚至可以与当前的网络进行交互。通过EIP 101,智能合约只需被刺激即可,智能合约可以自负gas成本,而不是用户。
最终,这越来越朝着软件无需为其背后的人类支付的方向发展。它只需保持足够的成本,使其能够继续提供服务。
不确定性
当前的实现并不是没有不确定性。验证脚本需要编写得足够准确,以便能验证计算(这似乎是一项艰巨的任务)。
市场的一些加密经济条件也需要明确。例如,仍然需要一个超时,希望作弊者提交错误的答案时,挑战者有足够的时间到达。游戏的互动性在被迫时可能需要几个区块才能完成(不会太长)。这在某种程度上限制了计算的a整。 如果其他可扩展解决方案得到实施,游戏可能会迅速得多。此外,关于潜在的sybil攻击以提交答案的一些经济学仍然有可能受到干扰。然而,这些似乎都不是不可克服的。
# 未来
TrueBit 的潜力似乎非常具有革命性。它将以太坊变成一个去中心化的计算法庭,允许许多软件在零边际成本下运行。
从这个角度,有哪些天马行空的想法?在以太坊的支持下,可以运行神经网络,这是否会引发关于人工智能 DAO 的问题?而所有关于去中心化虚拟模拟现实的想法又如何?至少这变得更加可行。
在过去几年中,我可以用一只手数出我遇到的真正让我震惊的新技术:比特币、以太坊、IPFS(及 IPLD),现在是这个。我真的希望看到它被开发、测试和使用。
—
我是一名工程师,供职于 @ ConsenSys 。_
非常感谢 Christian Reitwie ß ner 抽出时间向我解释其中一些部分并解答我部分问题。对此深表感谢!感谢你所做的一切精彩工作。
感谢 Dave Hoover 和 Joseph Chow 的编辑/反馈。
- 原文链接: medium.com/@simondlr/an-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!