今年五月,BCH进行了一次重大网络升级,重新开放了部分操作码(OP-code),使得在BCH链上建立智能合约成为可能。很多新人可能对智能合约还是不太理解,那么,到底什么是智能合约呢?
我们先来温习一下区块链以及“信任”这个概念,然后再来谈一谈“合约”。理解了“信任”和“合约”,就能理解智能合约。
一、什么是“信任或不需要信任的(trustless)”
第一次看到“比特币”这个字眼,你脑海里肯定会出现一块……“硬币”的图像。我们谈论加密货币时,脑海里总会想到相关物品——数字黄金或者数字白银,因为这些图像容易理解,但这会让我们常常忘记一些隐藏的事实。所以,我们需要换一种思维方式来思考。
区块链是一块数据石头
石头在人类历史上是种相当有用的材料。英语里面有这么一句谚语“set it in stone”(刻在石头上)。
比如:
“我检查了这份合同,看起来不错,我们来敲定它,set it in stone!”
“不要高兴太早,还没有set it in stone。”
这句谚语依然有现代意义,因为在物质世界里,石头拥有一些有趣的性质:
当你在石头上刻完字,物理上而言你就永久改变了它,没法改回去。
如果你后面想“擦除”什么,会留下明显痕迹。你在上面所作的任何更改都是相当透明的,或者说具有防篡改(可证明)的性质。
这些规则对于所有石头都适用。石头是中立的,遵循物理规律,不受人影响。它不在乎你是国王还是农民——对每个人它都态度一致。
鉴于以上这些性质,我们高度信任石头。
例如,我们不会说“我们来在沙子上签下合同”这种话。石头可以在今后当作证据,石头等于可靠的证明——不是什么材料都可以用做证明。
本质上,区块链就是这种材料:通过加密和去中心化特殊处理后,它具有永久、透明和中立的性质。不管你把什么加进去,一张货品清单还是一句“我爱你”,不管什么,把它放进区块链,就被永久保存了。把东西放进区块链,就像把字刻在石头上,两者都能让信任更易建立。
与古代不同的是,现在我们可以在数据上做到这一点,这一点非常特别。
把区块链想象为一块你可以刻字(不单单是货币)的石头有助于我们理解它深远广阔的潜力。现在,我们可以谈谈“合约”。
二、“合约”是什么意思?
“合约”这个词语意义很广泛,看到它我们首先会想到法律文件、律师之类的东西。对于合约有种比较好的解释:某种能自动执行的东西。听起来很不明确,关于自动化执行也没什么新鲜东西可讲。
智能合约的祖先
我们可以用自动贩卖机来举个例子。自动贩卖机能按照指令完成买卖,自动运行,而自动贩卖机的历史已有好几十年了!
某天下午,你站在一台自动贩卖机面前,它对你说:“如果你给我3块钱,按下这个按钮,就能得到一罐可乐。” 当然,自动贩卖机一般不会说话,不过互动的过程就是这样的。你可以称之为一种简单协定(agreement)。你投进钱,按下按钮,“叮咚”一声,可乐到手。
不过你没注意到的是,整件事情实际上是一段事先编(写)入机器的小程序(“合约”),在你按下按钮(“签名”)时开始运行。这段程序可能是这样的:
计算机程序有点像合约。程序要发表声明,建立条款(如果你这么做……就可以…….if....then....),而且它就像你信任的人一样会承担自己的责任和义务!
所以,合约就是程序,一段人类和机器都可以阅读的代码。
现在你肯定对于智能合约更加困惑了,不过不用担心,它没什么特别的,这种程序就像自动贩卖机一样,在我们的日常生活里随处可见。如果智能合约仅仅是“if……then”这样的代码,那有什么好值得关注的,创新之处在哪里?
自动贩卖机2.0
某个蓝天白云晴空万里的下午,你在街角发现了一台前所未见的自动贩卖机。你刚走过去,机器说:“如果你放进来1000块钱,我会给你5000块。”
肯定是某个慈善富豪把机器放在这里的,要么就是他脑袋有病。不管怎样,1000换5000,傻子都知道要这么做。
这机器和我们前面提到的那台老可乐贩卖机一样的逻辑,一样的“if-then”程序。除了筹码不一样。你打开钱包,但突然,你犹豫了。到底是谁把这台机器放在这里?如果它吞掉我的钱该怎么办?1000块可不是小数目,你存了好长时间。买一罐可乐你可不会这样想来想去,现在你认识到也许自动贩卖机没那么简单。
你开始思考“信任”这个问题。
我们怎么才能知道这台机器有足够的钱吐出它承诺的5000块?
我们怎么才能知道代码会运行?
有没有什么办法能公开、透明地验证这行代码?
结论: 合约就是传统程序与区块链的结合
5000块钱自动贩卖机只是一个极端、理论化的例子,它没有涉及到信任扩展的问题。在一个人们匿名联系的广阔数字世界里——信任成为了一件微妙、棘手的事情。我们通常依赖第三方和中介来解决信任问题。我们必须这么做,特别是在交易比可乐昂贵得多的东西时,像一些新奇的金融项目,或者直接就是“价值”和“所有权”本身。
那么,如果可以把传统的编程自动化和数据石头的信任属性结合在一起……那就是智能合约!一段拥有特殊支持的代码。
但请记住,我们早已实现了计算和执行,但是从未在数字石头上以中立、可证明、可信任的方式实现过,智能合约帮我们实现了这个目标。
译者Aaron点评:BCH是智能合约的未来
可扩展性是智能合约目前最大的问题
谈到智能合约,自然离不开ETH。ETH的创造者V神当前最头疼的问题就是ETH的扩容问题。当前ETH每秒能够处理的交易大概是13笔,但这并不包括那些更昂贵的智能合约交易。通过估算,如果要在链上运行达千万用户的dapp,ETH需要扩容250倍,运行一个Facebook则要求扩容25000倍,远远超过当前ETH的处理极限。可以这样说,可扩展性将是智能合约面临的最大瓶颈。同理,即便现在有人在BTC运行了图灵机,每秒仅能处理7笔交易的1MB小水管又能撑得住什么样的智能合约应用呢?
BCH的智能合约潜力
那么谁又能给智能合约更大的发展潜力呢,答案自然是采用大区块路线的BCH。
比特币现金在今年5月15日的硬分叉中,添加部分被禁用或新增的操作码,同时也将OP_RETURN数据载体大小增加到220字节,这将使BCH具备更强大的系统处理能力,为上线智能合约打下基础,也促进了BCH成为图灵完备的语言。
BCH自诞生之日起,就采用的是大区块路线,未来还有上线1TB区块的计划,已远远超出了日常交易的需求,为基于BCH的智能合约的大规模流畅应用做好准备。BCH大区块上线智能合约,将会给社会带来极具影响力的变革。
网友评论