· 《文理两开花》主播 · 肖小跑: 《羊群的共识》作者,金融行业从业者及连续创业者,播客《墙裂坛》主播,公众号“肖小跑”主理人。 王玮: 数学和计算机学霸,兼通技术与金融。若干年前“all-in”区块链领域,成为区块链行业知名意见领袖之一。 “智能合约”这四个字似乎也是个“模因”了:这是一个在金融 科技 业界、甚至所有和 科技 、数字化相关行业中都会听到的概念——一个“听起来很厉害但并不知道到底是什么”或者“不知道厉害在哪儿”的模因,反正这四个字代表了“ 科技 进步”,都“智能”了还能不厉害么? 但它到底是什么?能做什么?不能做什么?迫切需要智能合约专家用小白和文科生都能听懂的语言来除魅。 正好最近在现实世界的金融市场上,也发生了几件有趣的事:俄罗斯债券违约、还有金属市场上的“镍逼空事件”——所以我们干脆做一个案例分析,现场来看看智能合约到底能不能解决这些现实世界中头疼的问题。 · 本期提纲 · 1、365度全景式“除魅”智能合约:它到底“智能”在哪儿?是一段代码?一份合同?还是一个机器人? 2、它只能解决虚拟世界的问题,还是也能用于现实世界? 3、俄罗斯债券违约:如果用了智能合约,结果会不同吗? 4、如果主权债放在智能合约上会不同吗?智能合约能解决“信用”问题吗? 5、镍逼空事件和LME“硬分叉”:如果LME采用智能合约来自动执行,结果会不同吗? 6、区块链上的“硬分叉”和现实世界中的“硬分叉”(取消交易)有什么不同? 7、“投票”+“冷静期”的设定能避免“多数人的暴政”吗? · 文字稿 · 小跑 02:48 “智能合约”(smart contract)这四个字好像已经变成一个“模因”了。 它是金融 科技 业界、甚至更广泛的跟 科技 、数字化相关的行业,都会听到的一个概念——反正这四个字就代表了 科技 进步、代表智能。 但它依然是一个“听起来很厉害,但不知道到底是什么”,或者“不知道到底厉害在哪儿”的概念。大部分人,包括我在内对它也是一知半解。所以今天请王玮老师用小白和文科生都能听懂的语言,给大家“除魅”一下智能合约。 另外,正好最近现实世界的金融市场上,发生了几件很有意思的事——包括俄罗斯债券违约、镍逼空事件。今天干脆拿这两件事来做一个案例分析, 来看看智能合约到底能不能解决这些现实世界中的头疼问题。 先请王玮老师给大家解释一下: 智能合约它到底“智能”在哪儿? 王玮 04:26 智能合约如今不管在区块链、DeFi、还是未来的web3领域,都是最重要的核心。比特币出来时,大家都说区块链是“分布式账本”;自从以太坊诞生,大家慢慢看到智能合约在web3.0甚至metaverse领域,作用越来越大,重要性也越来越高。 我先从发生在身边的一个小故事说起。我有一位师妹,是大学计算机系教授,去年问了一个问题:区块链我都能理解,但有一个问题没想明白——智能合约到底“智能”在哪儿呢? 之所以这么问,她一定是把“智能合约”理解为“智能代码”了。因为是搞技术的,她一定是跟别的代码比较,默认“智能合约”应该比别的代码更“智能”,才配叫“智能合约”。 我的答案是: 不要把它跟计算机代码相比,而是跟现实世界当中的“合同”相比——它是一段智能的“合同”,而不是智能的“代码”, 就好理解了。把它跟代码比较,有点侮辱“智能”这个词。但跟日常经济活动中签的合同来比,逻辑就比较贴切了。 那跟合同来比,它智能在哪儿呢? 我们日常的合同有几个特征:第一,有签署的双方或多方;第二,它有合同的条款,什么情况下执行什么条件做什么事情;第三,有合同标的物,一手交钱一手交货,合同约定了提供什么商品或者服务,付多少钱;第四,合同大概还有个编号,有个标识记录这是哪份合同,哪年哪月哪日签的,谁跟谁签的等等;第五,要有一个管理手段,签署多方要各持一份,防止某方把条款改掉。这五个特征基本代表了日常执行合同的最基本条件。 从这个角度,智能合约就好理解了。 比如以太坊的智能合约: 第一,它的代码和存储的数据,其实相当于合同条款达到什么条件、怎么自动执行——大家可能都知道智能合约的这个特点。第二,它还能够让“签署双方各执一份”这件事在链上实现,签署双方都能访问到区块链的时候,其实就是都能看到合同副本,而副本不是自己能掌握或篡改的,而是链上存储的。 这就很有意思了:中本聪发明区块链,是为了防止“双花”比特币这种纯数字资产的,结果到了智能合约时代,以太坊一下子赋予了它“帮助合同所有方存储无数副本、保证不被篡改”的神奇能力。区块链是全球化的分布式存储,它能够让世界上任意多的人来共同签署和执行一个合同,而不会让有被篡改的危险——这件事在传统领域做不到。因为技术的限制,你没法让任意无数人同时签署一份合同。 第三,智能合约的每一段代码都有一个对应的“地址”,执行这段代码的入口,这个入口可以理解为合同的编号,唯一的标识。 第四,智能合约本身还能够拥有“其他的财产”。 我们日常的合同只是一张纸,一个附属品,财产仍然在人的掌控之中——合同就算约定了镍的交割,纸怎么能控制镍的移动呢?而智能合约本身却能掌控财产。合同一定要有“标的物”,有“钱”有“货”,这个标的物是可以受到智能合约所控制的,相当于是被它“所拥有”的。在这种情况下,所谓的“自动执行”才有保障,它拥有对资产的全部执行权。 小跑 11:30 相当于司法执法合二为一。 王玮 11:33 对。所以有签订方、有无数可靠的备份、有自动执行能力、有可以找到的地址和入口、还有对于合同标的物的控制权——从这个角度,它确实比普通的合同要“智能”的多。 小跑 12:04 其实特别理解王老师师妹的想法,毕竟都是理科生,大家可能天然会从代码角度来理解。但作为非技术背景的普通人,我反而没有理解的这层障碍。 一看到“智能合约”这四个字,没有代码背景的人,天然就会先把它想象成一个合同,一个不用人来执行的“聪明的合同”。在现实世界中,比如我跟老板签了合同,但是他每个月不给我往账户里发工资,我也没办法。 另外,智能合约建在区块链上,就是说跟我签合同的人,我不用认识也行。我们之前没有做过买卖,没有建立过任何信任关系,其实也能签——因为区块链保证了“人手一份”且不能改。 这有点像我们讨论过的SWIFT——它实现了“信息”和“账户”合二为一;而智能合约是实现了合同的“内容”和“执行”合二为一,一旦建立了,执行就不用太担心了,智能合约会自动给我发工资,不用再信任老板。 可是,仔细再想的话,好像又有点琢磨不透。如果它的执行是自动的,那出了问题该怎么办呢? 我们订立传统合同时,会有后续发展过程中修改条款的情况,或者出现特殊情况导致合同不能按照订立时的条款来执行——如果出了差错,智能合约还是会不管不顾的执行下去吗? 如果真是这样,大家在“签”智能合约,按启动键的一刹那可能就要再想想了——只要一按,后面就没有改的余地了,对吗? 王玮 15:00 先说第一个问题:智能合约最大的价值就是能让世界上相互不认识、或者没有过任何协作关系的人,能立刻签署、执行这个合约,获得结果——这跟区块链的特征是一脉相承的。 很早我们在介绍区块链时,会强调它的一个特征——能让全世界本来没有任何协作关系的人,开始转账交易。中本聪发明的防止“双花”,就是为实现——我们虽然不认识,但我转账给你,你知道这笔转账一定是真实的,而不会出现任何问题。智能合约就继承了这个特点,不会因为咱俩不认识、或者你耍赖而导致合约执行不了。 但如果是这样,签订了合同一定能执行,就意味着它肯定不会变。那我又怎么敢随便签? 这一点倒是要从技术角度看了—— 智能合约是可以“变”的,“变”从技术角度讲,跟一个软件系统的升级没有太大区别。 如果你一定要改变某个条款,就相当于原来的作废,新的合同重签。智能合约也是一样,相当于你把代码升级, 现在是版本1.0,过两天我来了个1.1版,换掉1.0版——我们从现在开始执行1.1版——这是没问题的。但是问题又来了,谁有权利来做这件事呢?如果是合同签订双方都有权利改合同,就没任何意义了,完全实现不了。 智能合约其实相当于在一个“市场”上,合约由一个第三方来创建,然后大家分为甲方乙方丙方,在合约上去签署和执行。 之所以敢签署,是因为我作为甲方,相信乙方丙方丁方改不了这个合约,必须执行。第三方就是合约发布和创建方,它是有权利来升级合约代码的。这样一个机制,有点像建立一个“卖场”, 里边的买卖双方在卖场里签合约,做买卖,但改变不了卖场的规则——只有卖场的构建者有权利来改。这也是一种必要性。 这种必要性会带来什么问题吗? 肯定也有。比如,第三方有“监守自盗”的危险,如果他发现改动合约对自己有利,也可以去篡改合约,导致签订者的损失。就算他不是出于私利,而是想改进合约的执行效率,或者改善条款,但大家是否都同意? 我们常举的例子:一个“借贷”智能合约可以规定一个利率算法,比如说年化5%;如果调整成为年化30%——表面上看,利率是借贷双方互相支付的成本,跟规则制定方的利益没有直接的关系;但也不能因为是中立方,就可以随便瞎改规则, 于是你需要给买卖双方一个“缓冲期”或者“冷静期”,或者一种投票的机制,可以让参与者共同决定。如果接受,投票通过,就可以修改规则。 如果参与者不接受,你还要改的话,那么你给我个冷却期,我要退场。所以最终整个逻辑还是完备的,还是要引入第三方的制约机制。我觉得这一点跟现有金融市场的一些规则也很类似。 小跑 20:42 这就是为什么需要专家解读。如果只看这四个字,会觉得就是个冷冰冰自动执行的代码;但实际上背后还有一系列规则,而且这些规则大部分是可以映射到现实世界的。比如刚才的例子就很像一个“仲裁机制”。 既然如此,我们就在现实世界中找几个案例,分析一下在现实世界中出了问题的、让人挠头的情况,放在智能合约上,结果会不会不同? 我找了两个:一个是俄罗斯违约,一个是镍逼空。 先从俄罗斯开始。俄罗斯其实是个经常违约的国家,它主权债的违约次数是很频繁的:1918年沙皇帝国债券违约,1998年俄罗斯布雷迪债券几乎违约,最近俄乌战争,又把它带进另一个违约危险时期。 3月16号这一天俄罗斯两只美元债,要付1亿多美元的利息;付息前一个礼拜大家就开始担心,因为俄乌已经开打,它到底还有没有能力支付?如果支付用什么币种?用卢布吗?当时已经贬值20%。 结果是没有违约,危机暂时解除了。3月18号俄罗斯财政部已经还了,虽然晚了一天,不过仍然在30天宽限期内。但事情还没完,4月还有20多亿美元的本金偿还。所以到现在为止,会不会发生违约还是一个巨大的问号。 通常一个国家不愿意违约自己的主权债,主要原因是如果违约,市场会以某种方式惩罚你,比如失去信用,被评级机构贬为垃圾债,导致投资者在很长一段时间内不愿意碰,你就很难在市场上找钱。 但是一个国家违约的可能性实在太多了。上个世纪大量主权债的发行,其实都是为了资助战争,一旦战争爆发,肯定是要违约——因为钱都要拿去打仗。俄罗斯现在就是这么个情况,而且更棘手——不管是被动制裁,还是大家主动制裁,显然投资者已经不愿意碰了。俄罗斯基本与世界隔绝,也不能再失去更多信用,因为它几乎已经没有信用了;外汇储备被冻结,就算想还,去哪儿找美元、硬通货呢? 所以在这种情况下,“违约”这两个字究竟意味着什么? 在现实世界中,作为政府的债主,你其实是很难冻结或者强制出售一个国家资产的。这是一个信心加耐心的 游戏 ,如果你有本事在一个足够长的时间内,不停骚扰这个国家的政府,年复一年穷追猛打,就像当年保罗辛格为了追债,干脆把阿根廷的船给劫了。俄罗斯这个战斗民族不一样, 历史 经验表明,即使是最坚决的债权人,俄罗斯人也有足够的能力胜过,以死猪不怕开水烫的心态挡住所有追债。 这次还有个很有意思的地方: 这笔主权债中有一个条款,叫做“pari passu”——“一视同仁”原则。这是一个古老条款,一个多世纪前大家就用在债务合同中。它要求债务人对所有债权人要平等对待,不能厚此薄彼,只要跟其中任一个债主谈妥了,也要给予所有其他债主相同的偿还待遇。 自从保罗辛格利用了这个条款,向阿根廷政府讨债成功,之后大部分国家在发行主权债务时便删除了此条款——防止这些“钉子户”追债时再利用这个条款。 但是俄罗斯这笔债中却没有删除——要么是战斗民族太傲慢,觉得自己永远不会被起诉;要么就是忘了。 尽管如此,条款中关于“未来偿还“的字眼却神奇的消失了——是故意,也许是笔误,反正结果变成了:发行时会遵守“一视同仁”原则,所有债主都一样,但并不意味着“未来”还是一样的。 这个例子告诉我们,债券市场是一个完全由“样本文件”主导的“copy & paste”交易,很少有人真的会看多达几百页的条款——但魔鬼也就在这里,人为的“调整”、“违约”空间太多了。 如果债发行在智能合约上,是不是就不会出现这种情况了? 王玮 28:09 这个案例特别有意思。本来还有点担心,因为区块链也好、智能合约也好,其实最不适合迎来解决债的问题。不过听了俄罗斯债务里的很多细节,又有好解决的地方了。 首先,“债务”这个东西,是一个典型的“信用”过程。从本质上,我把金融分为“信用过程”和“计算过程”两个部分。区块链、智能合约、DeFi等等,其实解决的是“计算性过程”的部分,而“债”是典型的“信用过程”。 实际上, “债券违约”这件事是最不适合于用智能合约去解决的。或者说,智能合约、区块链这些技术对于“债券违约”是最无能为力的——因为违约就是个信用丧失的过程, 就算用智能合约来写债务合约,但还债的过程涉及到还债主体,你需要把资产放入智能合约才能执行;不放进来,就执行不了。 这就回到最关键的一点:智能合约能保证自动执行的前提,是合约本身对标的物有“控制权”。但如果我未来才要还的钱——本金甚至是利息都要放在智能合约里,被它所控制,那我现在“借”钱干嘛呢?还得倒贴往里面放点利息。 在DeFi领域里,我们也看到非常多的项目和创业者,试图用智能合约来解决一个债务市场的问题,或者创建信用产品。其实没问题, 因为智能合约背后还可以有一套其他的保障机制,比如投票等等;最终把“信用”部分转化为其他的保障机制,还是有可能的。 信用的“执行部分”不可能转化为代码层面的保障机制,但这不代表智能合约不能对债务市场有所改进。 在俄罗斯债务例子中,它把“一视同仁”条款中的“未来”字眼去掉,这是它的权利,没有办法控制;买债的人一不留神,没注意到改动就买了——这一点其实在智能合约层面可以有所改进。 首先, 智能合约作为代码规则写进来,天然就有“一视同仁”的条款,因为代码是人人都可以执行的。只要有地址,有代码固化在里面,天下人都可以执行,所以默认一定是会“一视同仁”的,你要是想不“一视同仁”,反而要去做很多手脚。 关于“债券市场是一个以模板为基础,copy & paste的市场”——让我想起了过去几年,很多DeFi智能合约领域的“微创新”,也是把某些智能合约的代码全盘拷贝过来,然后改上两三个字。 但是你会发现在这种情况下,智能合约反而有价值了。为什么呢? 因为智能合约是精确的代码。一个审计机构是可以轻而易举找到改动之处的。几行代码的不同,意味着结果有什么差别,是可以精确推导和判断出来的。而在传统市场,因为自然语言是不精确的,就算让律师去审,我们也不知道这几句话改动的背后,是不是还隐含其他含义?或者导致什么意想不到的后果。 智能合约的审计机构是整个生态中非常重要的一方。这些机构往往是一些智能合约开发高手,或者白帽子黑客。他们的作用很像现实世界中的律师事务所,专门负责去审合同、审合约代码。 所以总结一下:智能合约不能解决债务的所有问题,但是它在债务的执行、和条款分析层面,仍有很大的作用。 小跑 35:47 所以我现在觉得可能俄罗斯这个案例,甚至整个主权债放在智能合约上,可能不太现实。因为对于本来就有意“不执行”的一方,可能根本不会签了。 这就引出了第二个案例:前些时候闹得沸沸扬扬的镍逼仓事件。 大概复盘一下:三八妇女节那天,市场上演了一个 历史 性的事件,我们在LME(伦敦金属交易所)市场上见证了史诗级的空头挤压。镍价创了有史以来最极端的价格波动,3月7日暴涨76%,达到每吨5万多美元;紧接着第二天突破一吨10万美元的关口。 这是一个明显的逼空。被逼仓的是青山——全球最大的镍生产商,在俄乌战争之前押错了方向。15万吨的镍空头头寸,其中5万吨是和摩根大通的OTC(场外)头寸;也就是说此刻青山已经欠JP大概10亿美金的保证金。 对于OTC的场外交易,其实大家还是有商量余地的,如果极端情况发生,各方会首先场外协商解决方法。这一次爆仓后,青山的经济上先向交易所垫付了保证金,不然清算会出现巨大问题。谈判的结果空头头寸先保留,之后LME“创造了 历史 ”,取消了交易,并且把镍的交易一直停到3月中旬。 从那一刻起,从全球市场的角度,LME的“信用”和“中立性”就出现了巨大的问号——突如其来的停牌影响了几千笔的交易,市场上其他参与方损失巨大。 这个案例,智能合约有可能在哪些环节会发生一些作用呢? 王玮 42:10 其实刚才在介绍智能合约的时候也提到了:我们确实可以“干预”智能合约,它并不是真的100%不能变。 从这个角度讲,LME的这种干预也可以算是“干预”的一种情况。但这里确实有一些问题:第一,智能合约的“干预”,必须要通过“有权限的人”去升级代码;或者直接去修改智能合约当中的参数来实现。这跟一个中心化的体系把交易“回滚”、“取消”还是有区别的。 智能合约的干预,不管是代码升级还是参数调整,它也只能是“向后干预”,改未来的规则,不能倒退回过去的某个阶段——区块链是不支持这种干预方式的。 当然,并不是说“向后干预”完全不能出现。举个例子,大家可能都听说过以太坊的DAO攻击事件, 为此以太坊发生了“硬分叉”——这确确实实是“回滚”,在以太坊的 历史 上就发生过这么一次。但是这次“回滚”的结果,是同时产生了ETC和ETH这两条链。 所以,在“计算性”的体系下,就算想要“回滚”,也不是100%的滚,因为仍然有人可以选择去执行那些没有被你“回滚”的合约。 但这在现实世界中没办法发生。 因为不可能有另一个平行世界的人,选择继续去成交被逼空的那些单,因为交易所只有一家,回滚就是回滚了,不会硬分叉出来两个交易所。 现实世界无法分叉,无法分叉出两个青山、两个俄罗斯、一吨镍变成二吨——两个平行世界中各一吨。这是物理世界决定的。所以智能合约、区块链这套体系,只能针对“纯数字资产”才有所谓的“保障执行”能力。 那LME这种“停止交易”、“取消交易”的情况,在智能合约领域能不能做到? 客观的说,也可以做到。一般可以通过两个手段: 第一个是投票。相当于LME的股东集体来投票,投票结果决定是否允许回滚,投票不通过就不能改。 这就是为什么现在的加密领域会推行“token economics”(通证经济学)体系,这是一套类似于股权的模型,投票结果可以绑定智能合约,自动执行结果。 第二,投票意味着什么?数字世界里的投票,是个“刚性”的结果——51%的人同意就改,但这不会引起“多数人的暴政”吗?49%的人不同意,也只能接受吗?投票不能解决问题怎么办? 答案是设定 “冷静期”或者“过渡期”——几天、几小时都可以。就算投票通过,也只能冷静期之后才能执行。不想玩的,就在这段时间内从系统里退出。改规则没有问题,但要给我离开的自由——这是最基本的自由了。 LME的做法,就是典型的“中心化”系统的弊端——就算要改规则,第一能不能让大家投个票?受到规则影响的人,起码要给一个发言的机会。第二,就算投票通过,也要给一些时间之后再改。 如果用智能合约来实现,并且遵守刚才的那套治理规则,它的信用程度肯定更高。所以从这个角度讲,智能合约在维护一个公平高效、更高信任的市场规则,是会有比较大用途的。 小跑 50:51 是的。虚拟世界中的一些机制也可以用到现实世界。 但是这些投票、冷静期等等规则有多大可实施性呢? 比如多数人的暴政。如果大家突然意识到有“多数人暴政”的可能性,比如我仇富,反正大家都是市场的韭菜,我们以数量取胜,联合起来投票,把大户账户里的钱全都转到我们账户来——如果真的按投票结果来自动执行,不是相当于“合理抢劫”吗? 但是如果设了冷静期,15天之后再正式“执行打劫”,大户肯定会离开,总不能等着被打劫。可是大户都已经离开了,我15天之后还打劫谁呢?整个 游戏 就没有存在的意义了? 王玮 52:17 这就是区块链和加密货币的一个核心理念——就是你的行为要有经济上的合理性。 如果小散这么做,就是损人不利己。不仅没有得到钱,唯一的结果是毁灭了这个平台的价值、信用。在这种情况下,你会发现小散也没有那么傻,他们知道自己投这个票是没有意义的。 这就回到中本聪写比特币白皮书中提到的,你可以51%的算力攻击,把比特币全拿到自己手里,但是比特币也因此归零了——你买的那些机器成本也回不来了,这对你有什么好处呢? 所以某种意义上, “经济模型”是区块链领域最核心的“模因”。我们维护的这套经济模型的合理性,导致攻击是没有意义、不合理的。 小跑 54:11 我现在觉得其实任何规则和机制,虽然看起来像是补救措施, 但实际上它发挥最大作用的时间——还是在事情发生之前。 大家的行为会在博弈影响下,自动找到一个最理性、“守规矩才能价值最大化”的结果来走。也就是说好的事前设计,会导致一个理性的结果。 王玮 55:13 智能合约和区块链最核心的价值,其实是“维护规则的有效性”。更适用于平台经济、或者双边市场的逻辑。 区块链和智能合约的创造者,是规则的制定者和维护者,本身并不一定是参与方。而参与方是世界上互不认识的人,共同参与 游戏 。 如果两个人认识、签一个合同、互换了合同文本、以及后续都有意愿保障执行——那这个场景下,智能合约没有太大意义。 小跑 56:55 非常同意。大家可能有各种通关升级办法,但是整个 游戏 规则大框架是可以用智能合约改进的。 — End — 播客《文理两开花》