以太坊最初的目标是“世界计算机”,但区块链的核心是安全和去中心化,当用户运行智能合约时,所有节点都有参与。这些节点通过EVM执行,而这些执行会消耗计算资源,每个计算都会收取“gas费用”。这意味着复杂的合约会收取昂贵的费用。如果合约过于复杂,显然是不适合在链上部署的。
此外,众所周知,以太坊有Gas Limits。有了Gas Limits,好处是以太坊可以防止拒绝服务攻击、鼓励交易验证等。不过,它也存在问题:以太坊链上无法执行密集型的大量计算任务。Gas Limits让处理大计算量任务不仅成本高且无法实现。想想看,有成千上万的计算机来存储和运行相同的指令。
TrueBit:链下+可验证+博弈机制
为解决这个问题,TrueBit的基本思路是:既然链上无法实现,且很昂贵,那么,就将这些大计算量的任务放到链下来完成,而将执行结果提交到链上,同时通过基于博弈的经济机制来确保其结果的可验证性。
这种解决方案可以让之前链上无法实现的计算(如机器学习等)有机会落地,同时成本上也可以接受。关于链下计算,我们之前也有介绍过Zk-Rollups和Optimistic Rollups等方案,可以参考蓝狐笔记之前的文章《一文读懂ZK Rollup和Optimistic Rollup:以太坊重要的扩展方向》。
不过TrueBit的方法不是依靠加密证明,而是依靠博弈机制来验证其是否为正确执行,也就是其结果的正确与否不是依靠数学,而是依靠验证者的多方博弈机制。
TrueBit通过构建链下的计算市场,让计算任务接单人来执行智能合约的计算任务。它没有所有节点执行的冗余和效率低下,可以节省计算费用。同时,也没有链上区块的Gas Limits,最终上链的只是执行结果。
此外,以太坊智能合约执行还存在可能的验证者困境。在以太坊区块链上,区块生产者会获得奖励,而区块验证者没有。这会激励节点花费更多资源去挖下一个区块,而不是正确地验证提议的区块。这不利于智能合约被正确执行,甚至有可能不被区块包括进来。
TrueBit引入了“可验证博弈”的机制,通过博弈机制来挑战和验证合约执行的正确性。用户通过TrueBit的界面发布执行智能合约的任务,任务的解决者提交的结算结果可以公开审计。任何第三方都可以对结果提出挑战。
任何以太坊节点都可以是仲裁者,可以裁决争议。任务的解决者和挑战者都需要质押TRU代币(TrueBit的代币,下面会有专门提及)资产。任何一方获胜都可以获得代币奖励,而计算缺乏准确性的一方则要会被处以代币消减的惩罚。进行任务解决和挑战都可以通过TrueBit OS来完成。
为了激励挑战者持续参与挑战,防止不正确的执行,TrueBit还设计了一个“强制错误”机制。TrueBit协议本身会提交不正确的智能合约结果,鼓励挑战者发现这些“错误”,让挑战者有机会获得系统给予的奖励,从而提升系统的韧性。
TrueBit的代币是TRU(注意:有好几个代币符号均为TRU,不要混淆),其代币经济服务于其可验证计算的目标。
由于TrueBit希望通过经济博弈机制来实现计算结果的可验证,因此代币经济机制在其运作中显得尤为重要。在TrueBit代币经济中,主要包括任务提出者、解决者、验证者。通过代币经济将这些角色连接起来,最终服务于TrueBit的可验证计算方案。
TrueBit本质上构建了一个链下的计算市场。任务解决者主要目的在于通过完成计算任务获得TRU代币奖励。任务解决者在TrueBit OS中持续运行,他们会对网络上发布的每个任务进行竞标,除非他们对任务进行过滤。每个任务都有一个解决者,任务提交者会从注册的任务解决者随机选择一位。
为了确保执行的正确性,任务验证者也要参与进来。为了激励验证者,任务提交者也需要给予验证者TRU代币奖励。验证者的解决方案必须与解决者的解决方案相匹配。每个任务的验证者数量没有限制,验证者费用会在这些验证者之间均分。验证者也可以设置任务的过滤,比如最低TRU奖励等。
按照Truebit的介绍,智能合约可以将其看作为黑匣子,通过黑匣子输入和输出,无须考虑以太坊区块的Gas Limits。用户可以通过TrueBit OS客户端执行所有网络交互,包括获取、存储TRU代币等。
从流程上看,首先任务提供者会将计算任务发布到TrueBit网络上,任务提供者包括:任务所有者和任务提交者。任务所有者提供需要计算的函数f、虚拟机参数、智能合约地址等。任务提交者提供适用的输入x,支付TRU代币费用等。任务所有者可以通过TrueBit OS提交任务,这种情况下,任务所有者和提交者共用一个地址。此外,任务所有者也可以部署跟任务提交者交互的智能合约。
(TrueBit网络的代币流,TrueBit)
任务提供者发布任务时,还需要指定一些经济参数:
任务解决者的代币奖励
如果任务的解决者完成任务,可以从任务提交者那里获得TRU代币奖励。
验证者的验证费用
验证费用也由任务提交者支付TRU,它会在执行任务的验证者之间进行分配。验证者费用越高,能够吸引到的验证者就越多。
最小存储费用
任务解决者和验证者需要质押一定量的TRU代币,以执行任务。
TRU代币经济机制是服务于其可验证计算市场的。而TRU代币用来衡量计算任务的价值,也是其支付媒介。
TRU用于支付任务费用
任务解决者和验证者可以通过自己的计算劳动获得相应TRU代币奖励,在TrueBit的体系中,TRU代币是整个体系运行的关键所在。
TRU用于获得相应参与者资格
任务的解决者和验证者都需要质押一定量的TRU,防止作恶。
TRU用于冷启动的补助
在特定时间内,TrueBit为了实现冷启动,TrueBit会为每个任务的参与者提供额外补助,其中包括任务的所有者、解决者以及验证者。可以在Truebit OS中运行bonus命令来检查当前补助额。
TRU的价值捕获
TRU代币会根据累计需求随时间推移创建或销毁。用户用ETH购买TRU,或retire TRU来换回ETH。
用户将ETH存入储备托管合约购买TRU,如果用户进行retire交易,则可以从托管合约提取相应的ETH。
除此之外,每个TrueBit任务也会销毁TRU代币。可以在TrueBit OS中检查任务费用命令,可以了解当前的销毁率、当前购买的代币价格、retire价格。
TRU的需求来源于TrueBiT的计算任务市场,如果以太坊上链外计算市场越大,那么,TRU的潜在需求就越大。计算任务需求方(如部署合约的应用),需要购买TRU来支付计算任务的费用;计算市场越大,任务的解决者和验证者也越多,也越需要质押更多的TRU代币来获得相应服务资格;计算任务越多,销毁的TRU也越多,也会造成TRU从流通中移出。
随着web3的到来,更多的应用可能会结合以太坊的Layer1和链外计算等,从而实现之前无法实现的dApp用例,比如去中心化视频应用、去中心化的社交应用、去中心化的机器学习市场等等。如果在web3.0时代,TrueBit能够捕获其中的链外计算市场的一部分,就有机会支撑起TRU的价值。
当然,毋庸置疑,基于以太坊的链外计算市场未来竞争一定会很激烈。TrueBit需要在解决方案上证明其成熟性,也需要在运营上获得开发者群体的广泛支持。
由于跟以太坊区块链的交互需要支付gas费用,TrueBit(公司)会对每个任务的解决者和提交者收取相应的ETH网络费用。验证者则不需要支付以太坊网络费用。此外,任务解决者地址也必须购买一次性的许可费用(支付给公司),才能加入到TrueBit网络。
最后,TrueBit的背景方面,其创始人为Jason Teutsch;以太坊基金会的Christian Reitwiessner也有参与白皮书的撰写,Christian Reitwiessner是以太坊基金会Solidity编程语言技术实施负责人。在资金资助方面,TrueBit项目获得Coinbase前联合创始人Fred Ehrsam以及Polychain Ventures机构的投资。