智能合約的定義的表達方式有很多種,在《區塊鏈社會》中,“一個智能合約是一套以數字形式定義的承諾,包括合約參與方可以在上面執行這些承諾的協議。”從本質上講,這些自動合約的工作原理類似于計算機程序的if-then語句。
上面的描述已經足夠簡單,也很容易理解。我的問題是當年尼克·薩博為什么會命名為智能合約而不是自動合約(auto contract)呢?我們知道智能合約中的智能(smart)并不是人工智能(Artificial Intelligence, AI),而是普通的“聰明的,靈活的”意思。我來猜想一下。
智能合約提出的時間是1994年,互聯網泡沫是在1995年至2001年間,在此前計算機技術還沒有得到廣泛的應用,如果有一臺售貨機,根據尼克·薩博的理念實現了自動售貨:也就是你選擇商品,將相應價值的紙幣或者硬幣放進去,然后售貨機將商品吐出來給你,如果你紙幣的面額比較大,還給你找零。這家伙怎么這么聰明呢,在1994年,那時你碰到了,說不定會上去抱著合影了。另外個人認為auto更指具體的事情,smart更抽象一下,更通用,能賦予使用這種合約的事物一種能力,所以選擇了smart。
如果從《區塊鏈社會》中的定義來理解,其實生活中很多的應用場景都能找到智能合約的影子。比如地鐵,以北京地鐵為例,北京地鐵的智能合約內容是:
6公里(含)內3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐軌道交通,每自然月內每張卡支出累計滿100元以后的乘次,價格給予8折優惠;滿150元以后的乘次,價格給予5折優惠;支出累計達到400元以后的乘次,不再享受打折優惠。
這個智能合約的雙方是地鐵公司和乘客,一起遵守的協議是上面的內容。這個合約的價值轉移就是將乘客從一個地兒帶到另外一個地兒,乘客消費的token是公交卡里的數字,token怎么來?通過法幣向地鐵公司購買(是不是類似于場外交易)。
如果是這樣,那我們生活中有很多實現了智能合約的例子。且慢,我們不能忽略了智能合約還有三個要素:自治、自足和去中心化。
自治表示合約一旦啟動就會自動運行,不需要它的發起者進行任何干預。其次,智能合約能夠自足以獲取資源,也就是說,通過提供服務或者發現資產來獲取資金,當需要時也會使用這些資金。最后,智能合約是去中心化的,它并不依賴單個中心化服務器,而是分布式的,通過網絡節點來自動運行。
我們再從這三個要素來推一下地鐵的智能合約。自治是滿足的。自足也滿足,提供乘車服務,收取指定的費用,地鐵公司可以使用這些費用來進行地鐵的運維。去中心化也滿足,一臺閘機壞了,可以換另外一臺,不影響合約的履行。
好,關于智能合約的理解,我說完了。如果你有不一樣的看法,可以留言討論。