那些年,你所誤解的智能合約(上)
理解智能合約的價值、限制及應用
在上一篇文章(區塊鏈真能改變世界?細談區塊鏈應用落地的六大挑戰)中,有讀者提到所謂的智能合約,事實上也能以中心化的系統運作(譬如微信的小程序),那為什麼還需要去中心化、區塊鏈的智能合約?
這得從智能合約的起源說起。
智能合約的起源
智能合約一詞是由學者 Nick Szabo 於1994 年所提出,他倡議可將交易條款以程式自動化處理,為了闡釋智能合約的概念,他舉了自動販賣機當例子:
如果使用者投入 10 元且按 A 按鈕,販賣機就掉出乖乖
如果使用者投入 20 元且按 B 按鈕,販賣機就掉出咖啡
如果使用者投入 30 元且按 C 按鈕,販賣機就掉出泡麵
這很好理解,當使用者跟自動販賣機互動時,只要滿足特定條件,就會有相對應的價值轉移產生(錢換各種零食),這一切都透過電腦的軟硬體自動化執行,無須藉由第三者的協助,這就是智能合約的概念。
事實上剛讀到這段智能合約的起源時,我跟上面那位讀者一樣,頓時丈二金剛摸不著頭腦——智能合約這東西很稀奇?啊不是現在就有了嗎?
如果以自動販賣機的這個概念為基礎延伸下去,
- ATM 是智能合約(我驗證身份就可以領錢)
- 在 iTunes 上買專輯也是智能合約(我付錢拿電子專輯)
- 在線上遊戲買虛寶也是智能合約(我付錢拿虛寶)
後來了解更多之後,才發現這樣的想法是剛好被 Nick Szabo 的舉例給綁住了,自動販賣機只是一個讓大家理解「條件滿足就自動執行」的例子,事實上,Nick Szabo 所設想的應該是一個平台,能夠讓人們透過某種共通的軟體工具,讓大家可以把交易的條件表達成自動執行的程式碼,做到自動化的「價值轉移」。
如果只看自動販賣機的例子的話,智能合約的確可以用中心化的系統來處理,但要實現 Nick Szabo 的理想,必須要有一個平台用來儲存程式代碼並運行程式,問題來了,既然牽涉到「價值轉移」,就攸關大家的利益,那平台到底該由來誰運行?
找政府?找有公信力的大企業?找社會達賢?都不適合,因為不管你找誰,這些傢伙都有誘因竄改程式碼而中飽私囊,反正有錢的地方就有紛爭,有人的地方就有江湖,在缺乏適合平台的狀況下,Nick Szabo 的理想自然很難實現了。
區塊鏈2.0以太坊的出現,為智能合約提供了合適的平台。
接下來的故事大家應該就很清楚了,2013 年俄國天才少年 Vitalik Buterin 提出了新一代的區塊鏈——以太坊作為運行智能合約的平台,一下子把區塊鏈從原本的 P2P 電子現金傳輸機制(比特幣),躍升為去中心化的「世界電腦」這個等級,開啟了區塊鏈 2.0 的時代。
智能合約的起源
為什麼區塊鏈適合作為智能合約的平台?主要理由有三:
一、智能合約部署上區塊鏈後,就無法被修改,避免了合約被竄改的風險。
二、智能合約在區塊鏈上是公開的,合約參與者可審查代碼是否有問題。
三、只要條件滿足,無人能阻止區塊鏈執行智能合約,執行效力是絕對的。
以上的三點,讓區塊鏈的智能合約可具備「透明」、「去中心化」、「自動化」的特性。
區塊鏈的智能合約具備「透明」、「去中心化」、「自動化」的特性。
「透明」有什麼用?
在一些運作機制不透明的產業,譬如線上博奕,人們很難相信程式不會偏袒莊家,畢竟後端的代碼都掌握在博弈廠商的伺服器上,但如果改用區塊鏈的智能合約就不一樣了,其程式運作邏輯都可以供公開檢視,玩家不用擔心被莊家坑。
還有一個例子是數位廣告,廠商把錢交給數位廣告代理商後,最後只會得到一些報表,內容可能包含廣告被投放在哪裡/花了多少錢/多少瀏覽/多少點擊等數據,但事實上,報表是真是假,廠商根本無從得知。舉個例子,代理商可以唬爛廠商他把預算投放在 A、B、C 平台,但事實上只投了 A 平台,或是宣稱投了 100萬廣告費,但實際上只花了 50 萬,且數位廣告牽涉 DMP、AD exchange、AD Network 等中間商,中間的利潤分配非常不透明,如果用區塊鏈的智能合約,把程式代碼公開讓大家檢視,就可以解決這個問題。
「去中心化」有什麼用?
講去中心化之前,先補充個觀念,事實上所有牽涉「非實物交付」的價值轉移,都需要透過第三方作為信任中心,舉個例子,假設我要把一棟房子轉交給其他人,我不可能手捧著房子給他,所以我會先簽房契,然後再拿房契到地政事務所登記,這個例子中,地政事務所就是作為信任中心的「第三方」,也就是紀錄價值轉移的「帳本管理者」,它記錄了所有房產的所有權狀態及轉移歷史。
轉帳也是一樣,轉帳實務上沒有牽涉任何紙鈔或硬幣的轉移,你必須信任銀行不會做假帳,才能安心使用銀行的轉帳系統。
如果地政事務所或是銀行出錯,甚至是想要作惡,用戶就會被暴露在極高的風險當中,我們之所以信任類似銀行這樣的帳本管理者,是因為背後有國家、法律在支撐起整個社會的信任體系,在台灣這種幸福的國家,這個信任是相對有保障的,但在一些金融體系和法治觀念比較落後的國家,銀行很容易就破產,官商勾結的情況也比較嚴重,今天你的房產還是你的,明天可能就莫名其妙變成別人的了,這時候區塊鏈作為去中心化的資產轉移系統,就有其應用價值。
那有什麼應用的例子呢?假設今天有一個富翁,富翁的金庫存了一千萬美元等值的黃金,他想在死後把金庫的密碼告訴給他的女兒,但是他擔心遺產信託的單位會侵吞密碼,這時他可以寫一個智能合約,他每 2 週至少會跟智能合約互動一次,這樣智能合約就知道:「富翁還活著」,如果他掛了,自然就會停止互動,2 週後智能合約就會自動把密碼傳送給女兒知道,這個做法除了可以確保遺產一定會轉給他女兒之外,富翁還省下了找遺產信託 & 找律師寫遺囑的費用。
這只是一個簡單的例子,任何「信任基礎薄弱」、「非實物交付」的資產轉移,都是區塊鏈的智能合約可以發揮的地方。
「自動化」有什麼用?
相信很多人在媒體上看過智能合約的自動化程序,可省下人力與紙張成本等說法。
心思再稍微細膩一點的讀者,可能會想——「疑?中心化的程式不也可以省人力或紙張的成本嗎?這有什麼好稀奇的?」
譬如隨便一個電商系統,只要廠商從金流商那邊收到「使用者已付款」的資訊,系統就自動 pass 訂單資訊到倉庫,然後由倉庫統一出貨,中間的運作邏輯都由程式控制,一樣可以省人力或紙張成本。
所以區塊鏈的智能合約在「自動化」上,有比一般系統更獨到之處嗎?
答案是有的。
區塊鏈本身就是一個分散式的數據庫,因為參與者都維護相同的數據庫,而且還有數據不可被篡改的特性,所以可以解決「跨系統溝通的信任問題」。
在「電商系統」例子中,如果以功能區分的話,大致可以分成四個單位:
1 . 銀行(負責提供金流的 infrastructure)
2 . 金流商(負責介接銀行,提供 payment gateway)
3 . 電商系統(負責處理訂單資訊)
4 . 倉儲系統(負責處理出貨)
這四個傢伙,他們中間存在信任問題嗎?
銀行會有誘因跟金流商撒謊,説某信用卡額度不足的客戶刷卡成功嗎?電商系統會跟倉儲系統亂報訂單資訊嗎?應該不會吧!幹嘛自己人打自己人啊!
所以在以上例子中,各方系統開放 API ,讓不同系統可以互相溝通就好了,用不到區塊鏈的智能合約。
那在怎樣的狀況下,會比較適合區塊鏈?
供應鏈金融是很適合的應用場景,簡單介紹一下供應鏈金融的運作方式——通常供應商出貨給廠商之後,不會收到即時的現金(越大牌的廠商,賒帳期間越長),而是收到廠商發的「應收帳款」的證明,約定好在幾個月後付錢,但這會造成供應商現金流上很大的壓力,這時候解法有二:
1)供應商用「應收帳款證明」作為抵押品,跟銀行借錢,減輕週轉壓力。
2)供應商用「應收帳款證明」作為約當現金(cash equivalents),跟更上游的供應商叫貨。
這個時候問題就來了,不管是銀行,還是更上游的供應商,一定都會擔心這個「應收帳款證明」是假的,所以銀行和供應商會去向廠商確保「應收帳款證明」的真實性,但這麼一來稽核的成本就很高,需要有一個可信賴的協作平台,讓大家可以安心地交換資料。
這個時候,廠商、各級供應商跟銀行,就可以組成聯盟鏈,把各自互動的數據寫入區塊鏈中,資訊都透過電子簽章加密,以確保資訊的真實性。
舉「借錢」為例,智能合約的運作步驟如下:
1 . 供應商以「應收帳款證明」做擔保向銀行提出借錢的請求
2 . 銀行透過聯盟鏈的權限,向廠商提出查詢請求。(上鏈資訊:附上「供應商和銀行電子簽章」的「查詢請求」)
3 . 廠商檢查「應收帳款證明」的真實性,將查詢結果回傳給銀行。(上鏈資訊:附上「廠商電子簽章」的「查詢結果」)
4 . 銀行確認應收帳款為真&貸款金額沒有超過應收帳款後,放款給供應商。
5–1 . 如果供應商準時繳清貸款,結束貸款合約。
5–2 . 如果供應商付不出貸款,銀行就請廠商代償款項,結束貸款合約。
以上智能合約的設計,最大限度的保留了各方參與者的資料隱私,只把最必要的資訊——「應收帳款的真實性」上鏈,而步驟 1 、4、 5 的資訊就沒必要上鏈。而由於上鏈後的資訊不可篡改,且互動紀錄都附有各方的電子簽章,降低了參與者作惡的風險。
所以總結來說,區塊鏈的智能合約可提供「可信賴」、「可跨系統溝通」的自動化機制,這才是區塊鏈智能合約在自動化上的價值所在。
結論
我們總結一下整篇文章的內容:
1 . Nick Szabo 提出的智能合約,並非一定要去中心化,中心化的智能合約一樣能運作。
2 . 要達到 Nick Szabo 「通用型智能合約」的理想,需要一個去中心化的平台,區塊鏈正是 perfect match。
3 . 區塊鏈的智能合約是透明的,適合用在運作機制不透明的產業。(如線上博奕)。
4 . 區塊鏈的智能合約是去中心化的,適合用在「信任基礎薄弱」、「非實物交付」的資產轉移場景。(如金庫密碼轉移)
5 . 區塊鏈的智能合約可提供「可信賴」、「可跨系統溝通」的自動化機制,適合用在資訊需與多方確認的應用場景。(如供應鏈金融)
這篇我們講完了智能合約的起源與價值,下一篇會講區塊鏈智能合約實際應用會面臨到的問題,大家下次見囉!
(本文轉載自Benson Sun的Medium,並經過作者同意後轉載,大家可以點擊下方作者頭像前往他的網頁喔!)