TrueBit白皮书解读

以太坊可以被描述为一个使用区块链的分布式全球计算机。它允许开发者把代码上传到区块链中,矿工共同执行并确保结果的正确性,作为报酬,开发者需要付出一定量的以太币,称为gas。以太坊通过全网验证的办法保证智能合约的正确执行,保证了安全性,作为代价,需要付出大量的算力,驱动这么一台巨型机器,所需gas价值不菲。

TrueBit是区块链链外扩容的方案之一,正如它的口号Fuel your imagination一样,其设计初衷是解决以太坊智能合约的gas限制。

TrueBit基本原理很简单:

用户上传自己所需执行的代码,某个外包商代为执行并赚取佣金,其它人监督代码执行的正确性,以太坊通过智能合约作为终极仲裁,奖善罚恶。造假者会获得经济惩罚,所以在绝大多数情况下,外包商会诚实的执行代码并提供正确的结果,链上节点无需完整验证,从而大大减轻了链上的计算负担,也就节省了用户的gas消耗。

流程如下:

1. 用户(下文称为Task Giver)上传需要执行的代码(下文成为任务),并提供佣金。

2.链外第三方(下文称为Solver)发现这个任务,认为佣金可以接受,执行计算任务并答公示运算结果,同时提供一笔保证金。

3.另外的第三方验证者(下文称为 Verifier)重新执行任务,如果发现Solver造假,可以发起挑战,同样需要提供一笔保证金。

4.通过链上的智能合约让Solver和Verifier玩一个验证游戏( verification game),通过Task Giver在链上提供的执行代码验证答案真伪,提供正确答案的一方获取佣金,造假的一方从保证金中支付整个验证过程所需的gas。

5.如果一段时间内没有人能提供证据证明Solver造假,Solver获得佣金。

注意在上述过程中,佣金可以设置成比正常在链上执行所需的gas少,保证金则至少设置为足以完整在链上执行该智能合约。

如果你只是想了解一下TrueBit,阅读到这里就可以结束了。


如果你想知道TrueBit真正精妙之处,现在才刚刚开始。

在这个系统中,我们仍然需要解决两个问题。

第一个问题被称为验证者困境,TrueBit设计的目标之一是要解决验证者困境问题。

我们知道,pow挖矿会对出矿的矿工给予奖励,而负责校验的矿工则没有任何收益。这在一般的交易场景下没有问题,因为校验矿工所付出的算力很有限。但是如果涉及到比较复杂的智能合约,验证矿工就面临一个两难的选择:1.老老实实地完整执行脚本会白白浪费宝贵的算力,在下一区块的竞争中输在了起跑线上;2.直接通过校验并加到链上,节省了算力,但是有站错队的可能,在后续的竞争选择了一个错误的跑道。

上述TrueBit流程里,当Solver和Verifier发生争执时,以太坊充当仲裁法庭的角色,链上需要重新执行用户提供的智能合约,此时,验证矿工同样面临上述的两难困境。

TrueBit采用的方法是计算分段,先把整个计算过程分成t段,定位出Solver和Verifier发生争议的最早一段代码,那么仲裁者只要执行这一段代码即可判别真伪,链上执行的计算可以减少为原来的1/t。

那么,接下来的问题就是怎么找到这段问题代码。TrueBit采用了分段查找的办法,我们举个栗子说明:

1.Solver选择C,把t段计算均匀分成C份,下图中我们以C=5作为例子

2.Solver把参数C和每一段计算后的图灵状态哈希后上链

3.Verifier根据C执行同样的过程,比对哈希,找到最早发生不一致的位置,比如说下图的第四段

4.递归上述流程,经过log(t)/log(C)轮协商最终定位出问题点

通过上述方法,可以有效的减少发生争议时的链上计算量,也就间接解决了矿工的验证者困境问题,当然它付出的代价是需要更长的时间解决争议。

第二个问题涉及到Verifier的生态设计

因为TrueBit的惩罚机制,绝大多数Solver都会提供正确的执行结果,这样会导致一个结果就是Verifier无利可图。Verifier在整个生态里是保证安全性的重要一环,如果没有人愿意充当这个角色,会破坏整个系统的安全性。

为了保证生态,TrueBit设计了一个称为累积奖金(jackpot)的机制。

基本原理就是,系统随机选择部分提案,要求Solver给出错误的答案(称为forced error),当有Verifier提出挑战时,Solver不会受到惩罚,而Verifier则会获得Jackpot作为奖励。

这个随机选择方法需要满足下面几个条件:

1.Task Giver不能在提交任务之前知道选择的结果,防止人为刷奖励

2.Solver不能在提交答案之前知道选择结果,防止Solver偷懒跳过正确答案的计算

3.Verifier不能在发起挑战前知道选择结果,防止Verifier选择性验证

TrueBit给出的答案就是通过两个因子来决定随机选择结果,一个因子是Solver选择的私密随机数,只有在被挑战时才会公示,另一个是Solver提交答案后下一区块的哈希。通过后者,可以保证所有人在Solver提交答案前知道选择结果,也就是上述1、2点,通过前者,可以保证上述第3点。

整个流程如下:

1.Task Giver创建任务

2.Solver执行计算,同时提供一个正确的答案和一个错误的答案,但不展示

3.两个答案上链以后,Solver根据块哈希和手中的随机数解签两个答案中的一个

3.Verifier校验Solver提供的答案,并提出挑战

4.Solver提供手上随机数证明是系统“Forced error”

5.Verifier获得Jackpot,Solver免受惩罚

Jackpot的资金来源于任务的佣金,从所有任务的佣金中抽取一部分放到奖金池子中,称为税收,每次中奖的Verifier获取池子里部分奖金。合理设置税收和中奖比例,可以保证Verifier有利可图,从而维持生态圈健康运作。税收和中奖比例高,会增加Verifier的数量,提高系统安全性,但相应的,会损害Task Giver的积极性;反之,节省Task Giver成本的同时会降低系统整体安全,最终也是一个trade-off。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 以太坊白皮书地址:https://github.com/ethereum/wiki/wiki/White-Pape...
    rectinajh阅读 17,789评论 0 46
  • 以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译:巨蟹 、少平 译者注:中文读者可以到以太坊爱...
    车圣阅读 3,722评论 1 7
  • 简介 不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊。最近在新...
    Lilymoana阅读 3,887评论 1 22
  • 【畅想篇】 我没有去到过太多地方,但看过繁华的都市,见过沙漠隔壁,望过海洋远方,寻找草原野马,置身雪域高原。世界那...
    那自叙阅读 763评论 9 10
  • 9 天界史册有载: 「皓德君四万两千零一十七年春,战神墨渊胞弟,父神之子,夜华临世。 当是时,天降祥瑞,普天同庆,...
    九皋__阅读 723评论 0 2