找政府?找有公信力的大企業?找社會達賢?都不適合,因為不管你找誰,這些傢伙都有誘因竄改程式碼而中飽私囊,反正有錢的地方就有紛爭,有人的地方就有江湖,在缺乏適合平臺的狀況下,Nick Szabo 的理想自然很難實現了。
「透明」有什麼用?
在一些運作機制不透明的產業,譬如線上博奕,人們很難相信程式不會偏袒莊家,畢竟後端的程式碼都掌握在博弈廠商的伺服器上,但如果改用區塊鏈的智慧合約就不一樣了,其程式運作邏輯都可以供公開檢視,玩家不用擔心被莊家坑。
還有一個例子是數位廣告,廠商把錢交給數位廣告代理商後,最後只會得到一些報表,內容可能包含廣告被投放在哪裡/花了多少錢/多少瀏覽/多少點選等資料,但事實上,報表是真是假,廠商根本無從得知。舉個例子,代理商可以唬爛廠商他把預算投放在A、B、C 平臺,但事實上只投了A 平臺,或是宣稱投了100萬廣告費,但實際上只花了50 萬,且數位廣告牽涉DMP、AD exchange、AD Network 等中間商,中間的利潤分配非常不透明,如果用區塊鏈的智慧合約,把程式程式碼公開讓大家檢視,就可以解決這個問題。
「去中心化」有什麼用?
講去中心化之前,先補充個觀念,事實上所有牽涉「非實物交付」的價值轉移,都需要透過第三方作為信任中心,舉個例子,假設我要把一棟房子轉交給其他人,我不可能手捧著房子給他,所以我會先簽房契,然後再拿房契到地政事務所登記,這個例子中,地政事務所就是作為信任中心的「第三方」,也就是紀錄價值轉移的「帳本管理者」,它記錄了所有房產的所有權狀態及轉移歷史。
轉帳也是一樣,轉帳實務上沒有牽涉任何紙鈔或硬幣的轉移,你必須信任銀行不會做假帳,才能安心使用銀行的轉帳系統。
如果地政事務所或是銀行出錯,甚至是想要作惡,使用者就會被暴露在極高的風險當中,我們之所以信任類似銀行這樣的帳本管理者,是因為背後有國家、法律在支撐起整個社會的信任體系,在臺灣這種幸福的國家,這個信任是相對有保障的,但在一些金融體系和法治觀念比較落後的國家,銀行很容易就破產,官商勾結的情況也比較嚴重,今天你的房產還是你的,明天可能就莫名其妙變成別人的了,這時候區塊鏈作為去中心化的資產轉移系統,就有其應用價值。
那有什麼應用的例子呢?假設今天有一個富翁,富翁的金庫存了一千萬美元等值的黃金,他想在死後把金庫的密碼告訴給他的女兒,但是他擔心遺產信託的單位會侵吞密碼,這時他可以寫一個智慧合約,他每2 周至少會跟智慧合約互動一次,這樣智慧合約就知道:「富翁還活著」,如果他掛了,自然就會停止互動,2 周後智慧合約就會自動把密碼傳送給女兒知道,這個做法除了可以確保遺產一定會轉給他女兒之外,富翁還省下了找遺產信託& 找律師寫遺囑的費用。
這只是一個簡單的例子,任何「信任基礎薄弱」、「非實物交付」的資產轉移,都是區塊鏈的智慧合約可以發揮的地方。
「自動化」有什麼用?
相信很多人在媒體上看過智慧合約的自動化程式,可省下人力與紙張成本等說法。
心思再稍微細膩一點的讀者,可能會想——「疑?中心化的程式不也可以省人力或紙張的成本嗎?這有什麼好稀奇的?」
譬如隨便一個電商系統,只要廠商從金流商那邊收到「使用者已付款」的資訊,系統就自動pass 訂單資訊到倉庫,然後由倉庫統一出貨,中間的運作邏輯都由程式控制,一樣可以省人力或紙張成本。
所以區塊鏈的智慧合約在「自動化」上,有比一般系統更獨到之處嗎?
答案是有的。
區塊鏈本身就是一個分散式的資料庫,因為參與者都維護相同的資料庫,而且還有資料不可被篡改的特性,所以可以解決「跨系統溝通的信任問題」。
在「電商系統」例子中,如果以功能區分的話,大致可以分成四個單位:
· 銀行(負責提供金流的infrastructure)
· 金流商(負責介接銀行,提供payment gateway)
· 電商系統(負責處理訂單資訊)
· 倉儲系統(負責處理出貨)
這四個傢伙,他們中間存在信任問題嗎?
銀行會有誘因跟金流商撒謊,說某信用卡額度不足的客戶刷卡成功嗎?電商系統會跟倉儲系統亂報訂單資訊嗎?應該不會吧!幹嘛自己人打自己人啊!
所以在以上例子中,各方系統開放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. 區塊鏈的智慧合約可提供「可信賴」、「可跨系統溝通」的自動化機制,適合用在資訊需與多方確認的應用場景。(如供應鏈金融)