亚瑟•布赖特曼(Arthur Breitman)和凯思琳•布赖特曼(Kathleen Breitman)分别是区块链平台Tezos的CEO和COO。在创立Tezos之前,Arthur曾在高盛集团和摩根史坦利担任副总裁。Kathleen则是R3区块链联盟的高级战略合作伙伴。
在这篇文章中,两人提供了他们对智能合约开发中面临的问题提出了观点和看法,提出了智能合约获得主流使用所面临的三个障碍。
智能合约拥有很大的希望成为区块链的“杀手应用”。
如果你不熟悉,那么我告诉你——智能合约就是一种计算机程序,可以在一种区块链上自动执行合约条款。原则上讲,智能合约可以具有多种用途,例如无线服务合约、公寓和酒店租金、自由职业者工作合同、自动支付等任何你想要消除中间商的地方。
随着目前top10加密货币的市值总和超过170亿美元,通过添加智能合约能力,现有区块链资产都有很大的机会来提升灵活性和实用性。
显然,智能合约技术还为传统市场带来了巨大的好处。
例如,智能合约在OTC衍生品市场的使用案例,因为该市场每年的名义价值高达700万亿美元,所以即使只有一小部分市场转移到智能合约,那么也意味着庞大的成本节约。
不过,智能合约在兑现承诺之前,技术平台需要对这种技术进行更深入的开发。
以下便是2107年智能合约可以赢得我们信任的三种方式:
1.提供正式验证(Formal Verification)能力
众所周知,要想代码完全按照我们的思路运行这是一件非常困难的事情。
所有的软件都很容易出现bug或者遭受各种攻击——但是对于智能合约来说,这还关乎到具有现实价值的资产。所以我们需要一种更好的方式来确保这些合约是强大的和安全的。一种方式就是使用正式验证(Formal Verification)——一种用于检验代码是否会按照计划运行的数学方法。
智能合约的实施理应使用一种容易检验的语言来完成。因此,功能性语言,如Haskell和OCaml,在这里要比C/C++、Java和JavaScript更适合用于编写智能合约代码,因为它们的结构更易于推理和正式验证。
虽然熟悉JavaScript的程序员更多一些,不过对于智能合约来说,我们的重点需要从易用性转向安全性。
不过要记住,正式验证(FV)存在一些限制。它并不是完全自动化的,仍旧需要一些人类技能。
同时,FV只能证明我们想检查的属性;如果你检查的地方不对,那么就仍旧可能会留有漏洞。不过,如果正确实施,这会是迈向争取方向的一步。
2.确保透明性,让代码以备检查
目前智能合约的最大规模实验就是The DAO,这个虚拟化投资工具筹集了超过1.5亿美元的资金——但最终却沦为了攻击的受害者,其账户丢失了价值近5000万美元资金。
当安全研究人员开始分析The DAO时,要理解它究竟正在做什么是非常困难的,因为The DAO的字节码(虚拟机代码)在区块链上都是可见的,根本不清楚部署了哪个版本的源代码。
智能合约代码需要是透明的,并且无漏洞,这样我们就可以准确地知道当我们进入某个协议时我们签署了什么——并且同时代码错误也更容易被发现。实现这一点的方法之一是使用一种解释语言,而不是编译语言,这样的话,真实的代码就可以在区块链上可见,能够很容易检查。
此外,字节码需要准确规划到源代码,而这需要编译器本身进行认证。
3.提供一种清晰的治理机制
因为智能合约被存储在区块链上,因此按照定义来讲,其代码是不可更改的——这就意味着,在完美状况下,智能合约代码不可以更改。
但是世上不存在完美的软件。智能合约的底层平台肯定会发生变化,这就可能会影响到智能合约代码的执行。区块链如何处理这些变化对于这个平台的信任度来说至关重要。
如果没有清晰的治理模式,那么就无法确保智能合约稳如泰山,而开发者或其他人就可能滥用权力改变游戏规则。
当然,区块链的脆弱性很大程度上取决于社区对权力的滥用程度。所以,未来的区块链应该从一开始就制定一种清晰的治理原则,那么所有的协议更改都将以一种可预测的方式来进行,没有人会不知情。
一旦我们做到上述三点,智能合约将会腾飞并成为我们目前日常所使用的很多合约的基础,能处理各种各样的事情,从电费单,到宠物狗保姆,再到房东协议等等,将会让我们的生活更加方便简单。
就像互联网一样,普通人不会思考它背后的技术,我们只想知道如何运行它。