关于智能合约的问题,我们有很多白皮书可以看,BTS、ETH、智能坊、小蚁,等等。但是,从来没有一个白皮书把问题的本质讲清楚,每个白皮书表面上看都很高大上,说我们要实现什么,要实现什么,牛逼啊!但是,我们却总是觉得似懂非懂,或者总觉得哪里不对劲。
那么,本文将用最简单的语言来讨论什么是智能合约,以及有哪些方式可以实现它,每种方式都有哪些利弊。
什么是智能合约?
Wiki上是这样说的:
Smart contracts are computer protocols that facilitate, verify, or enforce the negotiation or performance of a contract, or that obviate the need for a contractual clause. 智能合约是方便、验证和执行合同,或者消除合同条款的计算机协议。
这太不好理解了,所以,我们举个最简单的交易例子,李雷(卖方)和韩梅梅(买方)要交易一辆汽车。传统的做法是这样的:
签个合同约定,韩梅梅什么时间打款,李雷什么时间交车。
智能合约可以这样做:
构建一笔交易,包含两部分:(1)韩梅梅发送1 BTC(约定的价格)给李雷;(2)李雷发送CAR1234(车的编号)给韩梅梅。然后,李雷和韩梅梅分别签名,广播交易,等交易被确认后就完成了。
即打款和交车同时进行,用户可以抛弃或简化合同。当然,买卖是最简单的功能,智能合约理论上可以完成复杂得多的功能:租赁、借贷,等等。
智能合约的前提条件
实现智能合约有三个硬性的前提条件:
- 必须有货币参与。没有货币一切交易都是空谈,所以无论是使用法币,还是使用加密数字货币,总之,必须有货币。
- 资产必须数字化。那么,如何把一辆车数字化呢?答案是给它一把密码学锁。我们现在用的车都是物理锁,所以交付车实际上是交付车钥匙。想象一下,有一天车的锁变成了密码学公钥,而只有持私钥的人才能打开车。很科幻,是不是?但这是可以实现的。
- 资产必须联网且绝对信任某个数据库。装有物理锁的车,交易的时候是交付车钥匙。但是,装有密码学锁的车,在交易的时候,显然不能交付私钥给对方。因为那样没用,原持有者可以备份私钥。那么如何交易呢?答案是,给车换锁,即把车锁换成对方的公钥即可。这时候还会面临一个问题,车怎么知道交易完成,需要换锁呢?这就要求车必须随时能够联网查询某个数据库(可以是区块链,但不一定非要是区块链),而且绝对信任这个数据库,一旦数据发生变化,自动更新车锁。
以上3条应该在不远的将来都能够实现。
智能合约的实践方法
根据智能合约使用的货币,其实践方法可以有如下三种:
- 基于法币。比如,我们可以建立一个新平台,所有数字资产都在这个平台上管理,平台上使用法币交易。实际上,这个平台现在已经有了——淘宝,但是现在还缺的是物联网建设和计算机协议(代码)。这个平台是中心化的,但它一样可以实现智能合约,它的优势是不需要使用区块链,所以可以实现秒确认。它的劣势是,过于中心化,将来你所有的资产都归淘宝管理,你是否愿意?
- 基于比特币。比如,侧链。我们可以在一个侧链上建立去中心化淘宝,你可以首先从主链上往侧链上充值,就相当于你把现金充到淘宝账户;然后购买数字资产,数字资产的所属权由侧链区块链管理。不同的侧链可以管理不同的数字资产,真正实现去中心化。但是它的劣势也很明显,因为每次交易都要确认6次,比较低效。
- 基于新发行的数字币(二代币)。上述通过比特币实现的场景,同样可以依赖二代币实现。
实现智能合约的最关键因素是货币
我个人认为,实现智能合约的两个技术问题:物联网建设和计算机协议(代码)最终都不是问题。物联网建设是迟早的事,而计算机协议(代码)通过不断的发展和试错也肯定不会是问题。
因此,决定智能合约系统能否成功的最关键因素是货币。比如,你可以把一个运行完美的智能合约系统建立在津巴布韦币上,但是,然并卵,不可能有人会去用它。因为,连货币系统都不知道哪天会崩溃,还考虑什么智能合约呢?
为何二代币会失败?
基于法币和比特币的智能合约系统,成功的可能性都比较高。唯独基于二代币的智能合约系统终将走向失败,原因如下:
- 货币太差。二代币多采用POS分发机制,而 POS 的不公平分发强烈抑制了新人和小散,不适合作为货币。这个问题长期有争论,本文篇幅有限不详细论述。举个例子,虽然@星空 是万币侯,但是现在他要多得到一枚比特币,跟我要得到一枚比特币,所付出的代价一样,要么出钱买,要么花钱买矿机挖,这就是公平。而 POS 币的大户获得一枚新币的难度要比小散小得多,因此,市场也是不认可 POS 币(看看市值就知道了)。更奇葩的 BTS 又是分叉,又是增发,谁会敢用基于这种货币的系统呢?(BTS声称自己是去中心化股票,其实这是它的忽悠手段,BTS 就是货币,因为它是交易媒介,而且一个智能合约系统没有货币也是玩不转的。)总之,货币是成败的关键,在这一点上,比特币是完胜二代币,因此基于比特币的智能合约侧链,也会完胜二代币的智能合约系统。
- 代码开源。另外一个对二代币的不利因素是,代码必须开源,否则没人敢用。但是开源,就意味着比特币侧链都可以 COPY。这对二代币非常不利,因为比特币的用户群和算力保障,是二代币没法COPY的。
- 系统复杂。最后一个原因是,二代币的系统过于复杂,越复杂的系统越容易崩溃。比特币会把复杂的功能都放在侧链上,从而保持主链的简洁高效。
为何要尝试二代币?
其实,二代币的创始人都是聪明人,他们也很清楚自己的项目没有成功的可能性,那么他们为什么仍然要去尝试呢?
答案是:可以牟利!
现在你明白为什么没有一个二代币白皮书把这个问题讲清楚了吗?
答案是:说得简单清楚,就没法蒙人啦!
2代币,就是很“2”的“代币”。 |