div#pop_ad { opacity: 0; }

作者 | 张 问
编辑 | 杨舒芳
EOS的生态已经开始扩张,但是最近一段时间出现了种种问题,而这些问题的本质之一在于EOS的治理没有完善。在BM的第二版宪法中,他提出了代码的意图就是法律,而这个代码的意图的另一个名字,就是李嘉图合约,这究竟是什么东西?和之前的智能合约有什么关系?
这个事情,我们需要分几步来看。智能合约,先了解一下。
什么是合约
合约,就是合同,我们很常见了。让两方或者多方之间,在未来一段时间内有联系的东西。比如前几天沸沸扬扬的租房合同,小明要住老王的房子,要做的就是付租金。那租房合同,就是连接小明和老王的纽带,而更重要的是,这二位之间,是要有一些信任的。
而智能合约,就是一种能让电脑看懂的合约。合约里所有的条件都写成代码,然后自动执行。我们还说租房的问题,假如合约上写的是小明给老王5000块,一个月后,小明会去住老王的房子。我们把合约写成代码,当代码执行的时候,就开始自动判断条件成不成立,小明付没付款?没有,不执行。付了,那到没到一个月?到了,那赶紧执行。
那智能合约有什么过人之处?用代码最重要的意义,就是人们不再需要信任的成本了。只要代码是对的,那合约肯定会自动判断条件,自动执行。我们只看代码,什么自如,蛋壳,不需要第三方了,代码就像三体人,不会说谎。
信任的问题解决了,又引来了新的问题,你怎么确定代码执行的结果就是写代码的人想要的结果?换句话说,代码有bug,怎么办?
我们刚才的举例,很简单,几行代码就能搞定,但是实际上,合约可能会非常复杂,因为条件非常多,产生出来的结果的可能性就非常的多。在代码完成后,我们可能会测试一下,看看能不能跑起来,但是要测试出每一种结果几乎是不可能的。前一阵的EOSBet被黑客攻击就是一个最好的例子。
EOSBet是一个博彩游戏,比大小,不过需要用EOS来玩,有一个聪明的哥们,发现了代码的漏洞。他自己做了一个假的EOS,游戏里并没有检测出来。这就意味着,他凭空造出了钱,拿去赌博。输了就输了,没损失,赢了的话,赢回来的是真钱。
我们先假设,这确实是个漏洞。写代码的人是不想让大家这么玩的,但是他没有检测出这个结果,这就尴尬了。他不提前说的话,没有人知道这位码农是怎么想的,也就是说,谁都不了解代码到底想要什么样的结果,那怎么办?

添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc