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