磨链社区-分享整理
群内分享
干货:什么是闪电网络,为什么它能够解决比特币的可扩展性问题?
干货:破解遗传算法——CryptoPups旺财,基于以太坊的区块链游戏-HiBlock社区
科技部认定的独角兽名单来了!共164家-建议关注,一年后看是否有区块链相关独角兽企业出现。
ethereum源码解读的系列文章--社区成员-刘一痕分享
中国首个区块链排行榜发布 50家企业榜上有名
V神:区块链跨链技术大规模应用将在一到两年内爆发 |区块链捕手
TrueBit白皮书解读
群内讨论
1.关于网易星球:里面需要完成一些任务,获得原力值(即挖矿力),每天会不定期生产一些黑钻,最近他们推出黑钻竞拍,具体规则需要到27号竞拍上线才知道。感觉类似积分系统,个人理解不同,目前各种区块链游戏猫、游戏狗,建议了解技术实现,参考群内分享。
磨链(mochain)计划各学习小组动态
计划具体内容(负责人)进度
2.以太坊入门到精通tower上新建计划14个小模块开始解读(盖盖)3.25出第一版整理内容、门户逐步更新
3.以太坊项目实践磨链社区-以太坊实战在线课程(虞双齐)每周六在线课程、目前已出2期
5.bitcoinbitcoin自问自答-深入挖掘bitcoin疑问(陈烨)3.25前整理计划
6.超级账本整理安排在线课程和内容分享(南瓜地、宣章炯)3月底前整理计划课程
7.IPFS磨链社区官网-已更新两期分享内容(陈德君)持续进行中
9.区块基础tower上新建计划、gitbook上定期分享整理内容(金明杰)持续进行中
10.区块链相关政策解读与商业应用跟踪磨链社区官网-在每日分享更新相关内容(种法辉)持续进行中
TrueBit白皮书解读
作者:元家昕-磨链社区(原文链接-群内分享8)
以太坊可以被描述为一个使用区块链的分布式全球计算机。它允许开发者把代码上传到区块链中,矿工共同执行并确保结果的正确性,作为报酬,开发者需要付出一定量的以太币,称为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有利可图,从而维持生态圈健康运作。
磨链(mochain)学习小组清单
计划具体内容
1.白皮书、黄皮书解读(并入2)以太坊、超级账本等相关白皮书黄皮书解读,分享自己理解,整理讨论输出
2.以太坊入门到精通深入以太坊运行原理、对相关模块定位到源码解读。
3.以太坊项目实践包括环境搭建,开发环境搭建,及相关实践开发
4.以太坊课程设计,相关以太坊内容整理以太坊课程、包括智能合约基础、编写、开发。
5.bitcoinbitcoin相关内容,比特币自问自答
6.超级账本超级账本相关内容。具体待细化
7.IPFS相关内容IPFS filecoin相关内容
8.DAGDAG,字节雪球相关内容
9.区块链基础知识包括密码学、算法、共识机制、P2P网络等相关内容
10.区块链相关政策解读与商业应用跟踪区块链相关政策解读与商业应用跟踪内容,包括最新新闻信息分析分享
11.挖矿相关挖矿原理、挖矿相关内容
12.EOS相关EOS相关内容
13.区块链技术文档翻译区块链技术文档翻译,以太坊,solidity,truffle,超级账本等相关文档
PS:想加入学习小组,请加磨链组织者微信(jackyjin09)。欢迎每一位区块链技术爱好者加入磨链,一块琢磨区块链技术
关于磨链
“磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨区块链技术,联系笔者微信(jackyjin09)。
你可以在这里找到我们:
磨链社区公众号:
磨链社区:http://mochain.info
Github : https://github.com/mochain
Gitter 聊天: https://gitter.im/mochain
知识星球: https://t.zsxq.com/M3BMVZN
知乎:https://www.zhihu.com/people/mochain
(持续更新中)
网友评论