分享 · 2019-06-10 0

Code Is Law:如何定制合约中的LAW

beepress4-1563188799
beepress4-1563188799-1

导 读

大家好,当下区块链生态逐渐丰富起来,尤其是以智能合约为基础的应用,区块链构建了信任基础,催生出了Defi等应用,智能合约把原本委托给中介的服务,交给代码完成。引用《分布式商业的本质》-陈菜根的话。这也契合了今天的主题Code is law。

 

对于任何一个商业体,无非是经营三种流:信息流、资金流和物流,而这背后都要有信任流做支撑。

一、实体经济时代:信息流、资金流和物流归属于中心化机构,信任锚是权力中心;

二、互联网经济时代:信息流、资金流和物流归属于商业组织,信任锚是法律和合同;

三、分布式商业时代:信息流、资金流和物流将归属于社区,信任锚变成了代码。

 

很高兴邀请到代世超Diane来做客Rebase Talk,Diane是Hydro Protocol和DDEX市场公关负责人,来和大家畅聊智能合约、Code is Law以及智能合约在Defi中应用和实现。Diane从思考事情的本质的角度给我们带来精彩的分享。下面是对Diane分享的整理:


  • 智能合约与Defi

智能合约,最早由nick szabo在1996年提出。最早在博士的论文[1]中,智能合约的提出,就是引用在金融合约抵押品的例子。但是90年代当时缺少可信的执行环境,智能合约并没有被应用到实际产业中,比特币诞生后,人们发现比特币的底层技术—区块链,天生可以为智能合约提供可信的执行环境。

以太坊看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心化应用平台》,于是,智能合约开始有生命力了。

 

比特币引领区块链,以太坊复兴智能合约。最早,大家用智能合约来承载各种理想,把一切资产和模式都搬到区块链上,用合约写个项目,发爱西欧。之后爱西欧热潮退去,经历了18年的熊市后,Defi–也就是去中心化金融,开始重新审视以太坊智能合约应用。其实智能合约,天然适合金融合约。

 

于是,除了去中心化交易所,借贷、预测市场、跨境支付、差价合约等等金融产品,都开始用智能合约去构建。由于Defi在以太坊的兴起,以太坊也似乎找到了新的自我定位:从世界计算机,到全球经济结算层。

 

世界计算机是什么?区块链+图灵完备。全球经济结算层是什么?是一个没有门槛、对任何人开放的、没有监管的、资产在全球通过链上自由流动的金融体系。因为EVM又贵又慢,无法承担世界计算机的性能。那么什么东西适合这种设定?可以接受又贵又慢?金融。金融本身低频、大额的交易,能够使以太坊目前的缺点不成为阻碍。

 

现阶段的以太坊,最适合做的就是Defi。Defi产品的本质就是一个智能合约。Defi生态的本质就是,智能合约之间的交互。目前在以太坊已经聚集了不少Defi应用,也吸引了来自红杉等风投公司的投资。

Code Is Law:如何定制合约中的LAW


2018年10月-2019年2月的4起融资[2]



  • 智能合约的本质

 

那么,智能合约的本质是什么?拆开来讲,智能合约是Smart Contract,Smart:由代码实现,执行确定性结果。这是由图灵机的特性决定的。Contract:合约是定义了各方权利和义务的,具有法律约束力的协议,底层是逻辑学。

 

智能合约和人工智能无关,但是很容易联想到一起,更确切的说法可以叫:persistent scripts持久性脚本。

 

一旦用代码写好,就可以持久运行的程序脚本。所以说,理解智能合约,应该是:智能合约是定义各方权利和义务的,可验证的计算机程序。

 

从智能合约的本质来看,这就是为什么可以说Code is law。因为用代码把各方的权利与义务提前规范好了,代码跑起来,自动运行,没有人能够去更改和作恶。也就是“去中心化”即“去信任的”的含义。不需要你去相信人性,相信代码就好啦,只需要验证了代码的公正。

 

但是,智能合约本身是有局限性的。从代码角度,写没有bug的代码是一件非常困难的事情,即使做好了所有可能的预防措施,在相当复杂的软件中也总会存在意想不到的执行路径或者可能的漏洞。



智能合约的两大局限

法律角度:法律合约也需要解释与仲裁。创建毫无漏洞法律合约是非常困难的。这就是为什么在出现争议时我们需要法庭。而计算机只会执行写好的条款,无法“人工智能”地去解决未预料的情况,区块链的不变性增加了这个问题,因为合约无法轻易修改。

 

这就引出了 智能合约的去中心化悖论。智能合约该不该升级?能升级的话,就需要管理员在智能合约留后门,留后门的智能合约是不是意味着中心化?智能合约不升级的话,又不符合软件开发的规律。

 

所以说,不要用去中心化来形容智能合约。智能合约的“去信任”来自两方面:1.自动执行写好的逻辑;2.可验证。可验证的意思是,如果有bug有人作恶,任何人在链上都可以看见。对于智能合约无法提前规定的东西,比如突发情况的争议。通过引入链上治理和博弈论来解决,使作恶成本大于诚信成本。

 

对于智能合约本身的部分,依靠第三方的安全审计来尽量避免bug。对于合约修改和升级的需求,通过设立公示期,公示升级时间和内容,再执行的方法。类似宪法修正案。

 

智能合约的去中心化悖论,是智能合约的第一个局限。

 

第二个局限,智能合约是一个封闭的系统。独立运行在链上世界,无法和真实世界产生联系。这就是为什么Defi生态需要一个预言机作为基础设施。预言机的作用是,作为链下世界和链上世界的桥梁,把真实世界的数据,打入到智能合约中,让智能合约可以引用,比如此时此刻Eth的价格。对于用户来说,现在在Defi世界里玩耍,其实是在和智能合约做交互,对人的门槛要求很高。

 

这其实是区块链世界,权利与义务的问题,去中心化,表面上扩张了每个人的权利:每个人都可以自己管理私钥,不托管资产给第三方。但同时,权利与义务对等。在code is law 的世界里,有能力承担对等义务的人又有多少?使用一个Defi产品时,还是要相信团队的代码能力和审计公司的水平。不可能说,每用一个Defi产品之前,还要自己reveiw一下合约写的靠不靠谱。所以,Defi虽然是普惠金融,但是依旧需要精英治理。

 

权利与义务的同时下放,同样带给defi产品很大的使用门槛。这也是dex为什么市场一直无法和cex相比。教会爷爷奶奶申请自己的以太坊钱包、保存私钥不是一件简单的事。当然,Defi还在早起阶段,需要基础设施、配套工具继续完善,用户越来越友好。


  • 如何定制合约中的LAW

总结一下,为Defi等产品设计智能合约时,需要注意什么?

1.DeFi项目不需要完全去中心化,只需要资金托管的去信任,该要求高效率的部分一定要做到高效,才能占领市场。而不是等着用户过来用;

2.难点不在技术,在于经济体系的设计,引入激励和防止作恶;

3.找到一个具有共识的去中心化预言机方案;

 

Diane相信,Defi对传统金融的改革是具有实际意义的。tokenize everything,trade anytime,anywhere 不只是一个愿景。

在未来,资产相关的合约都可以通过智能合约表达和执行,这是真正的普惠金融。现在门槛稍高,需要自己提升姿势水平,才能畅游Defi世界,同时,Defi的创业机会也在一个大窗口期,Diane每周都会写文章去分析,欢迎大家加微信Diane_1997,关注Diane的公众号,一起交流。


  • Q&A环节

1.有什么不错的defi分享?

答:我系统梳理过defi产品布局:https://mp.weixin.qq.com/s/XDWUjKfW-RBPZYlhH5iwXA

最近关注的是预测市场、借贷产品。



2.怎么选择预言机?

答:有的项目会自己搭建预言机系统,比如augur,基于共识,所以效率会慢。追求效率的会用中心化预言机,不够安全。目前的解决方案是第三方预言机,国外的有chainlink,国内团队有dos network。



3.如何减少合约漏洞的损失?

答:合约中的交易一旦发生,无法更改,除非发动矿工回滚交易,这就是我说的智能合约的局限性所在。你用银行卡的话,出问题,有权力机构保护你的利益。区块链世界,黑客在食物链顶端。



4.Hydro Protocol这是个什么协议?

答:hydro protocol是去中心化交易协议,为defi提供各种类开源的去中心化交易场所。地址https://hydroprotocol.io/



5.Defi如何解决跨链资产转移?

答:需要跨链基础设施,比如cosmos等。



6.去中心化交易所如何解决确认时间和扩容问题呢?

答:首先,去中心化交易所有不同的类型。一笔交易在交易所有两大环节:撮合和结算,撮合引擎放在中心服务器来做,其实就解决了交易速度和tps的问题。能达到和中心化交易所一样高的性能。



7.如何设计可升级的智能合约?

答:作为admin,给智能合约留个能升级的权限。需要升级的时候,对外公示升级内容,设计一定时间的公示期,说明公示期到,立即自动执行升级。如果有争议,通过链上治理解决。

 

参考资料

[1] http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html

[2] https://mp.weixin.qq.com/s/XDWUjKfW-RBPZYlhH5iwXA


原文始发于微信公众号(Rebase社区):Code Is Law:如何定制合约中的LAW