作者| 晏文春
出品|白話區塊鏈(ID:hellobtc)
常有人問,什麼是智能合約? 那麼一定得先了解什麼是“合約”。
在日常生活中的合約(合作約定)也就是合作方之間訂立的“合同”,現在我們的生活幾乎離不開合同,往大說,工作是與公司簽訂的勞動合同,買房是與房產公司簽訂購房合同,買保險是與保險公司簽訂保險合同;往小了說,網購、定外賣、打車、買彩票都是與相關的服務提供公司簽訂了相應的合同。可以說,有人的地方就用合約。
甚至我們與人打賭,也是一種合約,但如果一旦一方抵賴,那履行合約就會變得困難。如果有一種合約,事先確定了規則,一旦觸發相關條款,合約將自動執行,無需人為乾涉,也不用擔心有人抵賴。是否存在這樣的合約呢?還真有,這便是智能合約。
01
什麼是智能合約
智能合約(Smart Contract)是上世紀90年代由密碼學家尼克·薩博提出的理念,由於當時缺乏可信的執行環境,智能合約沒有被應用和發展,直到以太坊的出現,才讓智能合約得以“復活”。
那智能合約到底是什麼呢?簡單來說智能合約就是用計算機語言取代了法律語言記錄條款並由程序自動執行的合約。換句話說,智能合約就是傳統合約的數字化版本,跑在區塊鍊網絡上,由程序自動執行。
自動售貨機、ATM取款機,在某種程度上都可以被理解為執行智能合約的機器,但這都不是真正意義上的智能合約。
02
智能合約有哪些特點?
與傳統的合約相比,智能合約有三大特點:
1、合約內容公開透明
智能合約部署在區塊鏈上,其合約內容自然是公開透明的。
2、合約內容不可篡改
同樣,因為部署在區塊鏈上原因,智能合約的內容是無法被修改的。
3、永久運行
運行在區塊鏈上的智能合約,同樣被區塊鏈上網絡節點共同維護,只要區塊鏈在,智能合約就能永久的運行下去。有種“鏈在合約就在”的兄弟情義之感。
有區塊鏈三大特點加持的智能合約,與傳統的合約相比主要有如下優勢:
1、去信任。
由於智能合約是基於區塊鏈的,合約內容公開透明、且不可篡改。代碼即法律(Code is law),交易者基於對代碼的信任,可以在不信任環境下安心、安全地進行交易。
2、經濟、高效
相比傳統合約經常會因為對合約條款理解的分歧,造成糾紛;智能合約通過計算語言很好避免了分歧,幾乎不會造成糾紛,達成共識的成本很低。在智能合約上,仲裁結果出來,立即執行生效。因此相比傳統合約,智能合約有經濟、高效的優勢。
3、無需第三方仲裁
假設熊大和熊二打賭,賭明天是否會下雨,誰輸了的一方就需要給對方100元。如果輸的人抵賴,贏了的人就得不到獎勵。為此,去找第三方仲裁機構,低效且費時費力。但如果賭約寫在智能合約上,在達成賭約之時,各自把100元打入智能合約地址,智能合約根據最終的結果,自動執行,贏的一方拿走所有的獎勵。可見,智能合約就無需第三方仲裁。
03
智能合約真的智能嗎?
上面講的都是智能合約的優點,那智能合約真的是智能且沒有缺點的嗎?其實不然,智能合約也有它的缺點。
如上文所述,智能合約不可篡改的屬性,很容易建立起信任。但同時也有不好的一面,如果智能合約存在漏洞,黑客可以利用智能合約的漏洞,為自己牟利。
舉個簡單的例子,一台自動售貨機,本來售價是5塊的飲料,由於疏忽,寫成了5毛錢,管理員發現之後,可以立刻改正。但如果這台售貨機調用的是區塊鏈上的智能合約,那麼這個錯誤將無法修改,直到裡面飲料賣完。
另一方面,智能合約本身無法獲取(感知)外部的信息,涉及到需要外部信息才能裁決合約,需要對其寫入相關信息,它才能作出裁決。比如熊大和熊二打賭明天是否下雨的例子,智能合約本身是不知道第二天是否下雨了沒,需要通過其他信息源為它提供信息,比如中央氣象台數據,喲了這個信息之後,智能合約才能做出裁決。
從上面兩點看,智能合約既不完美也不智能。
04
小結
綜上所述,關於智能合約,我們知道:
智能合約是用計算機語言取代了法律語言記錄條款、由程序自動執行的合約。部署在區塊上的它,也具備了區塊鏈的數據公開透明、不可篡改、永久運行的特點。
與傳統的合約相比,智能合約有去信任、安全、高效、無需第三方仲裁的優點。但智能合約並不完美,而且也不智能或者說它的智能程度很低。
文章中提到智能合約的執行無需第三方機構裁決,同時又提到,當執行條件涉及到外部信息時,智能合約無法感知,需要對智能合約輸入相關的信息,才能觸發智能合約去執行裁決。你覺得這兩個說法矛盾嗎?歡迎到留言區分享你的觀點。