以太坊和智能合約在金融合約領(lǐng)域中的應(yīng)用介紹
比特幣的共識機(jī)制
比特幣的核心技術(shù)區(qū)塊鏈可以理解成可復(fù)制、共享的賬本。
比特幣的最核心創(chuàng)新:它教會(huì)世界如何在不需要信任第三方的情況下遠(yuǎn)距離轉(zhuǎn)移價(jià)值。
人們當(dāng)然可以面對面地轉(zhuǎn)移實(shí)體紙幣,但是,在比特幣出現(xiàn)以前,我們做不到:在不需要信任中心化第三方機(jī)構(gòu)(郵局、銀行等)的情況,遠(yuǎn)距離向某人轉(zhuǎn)移價(jià)值。
就好像銀行和支付系統(tǒng)的傳統(tǒng)轉(zhuǎn)賬模式的基礎(chǔ)設(shè)施被重構(gòu)為點(diǎn)對點(diǎn)支付網(wǎng)絡(luò)。這種轉(zhuǎn)變?nèi)缦聢D所示:
比特幣打開了點(diǎn)對點(diǎn)的電子價(jià)值轉(zhuǎn)移模式的大門,完全不同于現(xiàn)在的銀行系統(tǒng)、中央銀行和支付系統(tǒng)。
但是,上面的圖并沒有解釋比特幣是怎樣實(shí)現(xiàn)點(diǎn)對點(diǎn)價(jià)值轉(zhuǎn)移的。
答案是:比特幣系統(tǒng)建立在“可復(fù)制、共享的賬本”之上。比特幣網(wǎng)絡(luò)中的每個(gè)參與者(完全節(jié)點(diǎn))擁有一個(gè)完整的交易賬本的副本,這一系統(tǒng)的神奇之處在于:它是如何做到使每個(gè)人的副本與其他人的副本保持一致的。
所以,正確的示意圖應(yīng)該是下圖,每個(gè)參與者都能夠從相同的可復(fù)制、共享的賬本中獲取信息。
比特幣和其它去中心化共識系統(tǒng)的竅門在于:它們怎樣保證每個(gè)有一個(gè)賬本的副本,并使每個(gè)人確信自己的賬本與別人的賬本是同步的。
如果每個(gè)人擁有的賬本的副本是相同的,那么人們就不再需要一個(gè)中心化的機(jī)構(gòu)記錄誰擁有什么。當(dāng)你的賬本更新,記錄一筆新的資產(chǎn)所有權(quán)變動(dòng)時(shí),其他人的賬本也會(huì)發(fā)生相同的變動(dòng)。
智能合約
智能合約程序不只是一個(gè)可以自動(dòng)執(zhí)行的計(jì)算機(jī)程序:它自己就是一個(gè)系統(tǒng)參與者。它對接收到的信息進(jìn)行回應(yīng),它可以接收和儲(chǔ)存價(jià)值,也可以向外發(fā)送信息和價(jià)值。
這個(gè)程序就像一個(gè)可以被信任的人,可以臨時(shí)保管資產(chǎn),總是按照事先的規(guī)則執(zhí)行操作。
下面這個(gè)示意圖就是一個(gè)智能合約模型:一段代碼(智能合約),被部署在分享的、復(fù)制的賬本上,它可以維持自己的狀態(tài),控制自己的資產(chǎn)和對接收到的外界信息或者資產(chǎn)進(jìn)行回應(yīng)。?
智能合約模型:它是運(yùn)行在可復(fù)制、共享的賬本上的計(jì)算機(jī)程序,可以處理信息,接收、儲(chǔ)存和發(fā)送價(jià)值。
以太坊系統(tǒng)
以太坊項(xiàng)目借鑒了比特幣區(qū)塊鏈的技術(shù),對它的應(yīng)用范圍進(jìn)行了擴(kuò)展。如果說比特幣是利用區(qū)塊鏈技術(shù)的專用計(jì)算器,那么以太坊就是利用區(qū)塊鏈技術(shù)的通用計(jì)算機(jī)。簡單地講,以太坊 = 區(qū)塊鏈 + 智能合約。
與比特幣相比,以太坊最大的不同點(diǎn)是:它可以支持更加強(qiáng)大的腳本語言(用技術(shù)語言講就是圖靈完備的腳本語言),允許開發(fā)者在上面開發(fā)任意應(yīng)用,實(shí)現(xiàn)任意智能合約,這也是以太坊的最強(qiáng)大之處。作為平臺,以太坊可以類比于蘋果的應(yīng)用商店,任何開發(fā)者都可以在上面開發(fā)應(yīng)用,并出售給用戶。
每一類金融合約都可以程序代碼的形式寫成智能合約。
差價(jià)合約
金融衍生品是“智能合約”的最普遍的應(yīng)用,也是最易于用代碼實(shí)現(xiàn)的之一。實(shí)現(xiàn)金融合約的主要挑戰(zhàn)是它們中的大部分需要參照一個(gè)外部的價(jià)格發(fā)布器;例如,一個(gè)需求非常大的應(yīng)用是一個(gè)用來對沖以太幣(或其它密碼學(xué)貨幣)相對美元價(jià)格波動(dòng)的智能合約,但該合約需要知道以太幣相對美元的價(jià)格。最簡單的方法是 通過由某特定機(jī)構(gòu)(例如納斯達(dá)克)維護(hù)的“數(shù)據(jù)提供“合約進(jìn)行,該合約的設(shè)計(jì)使得該機(jī)構(gòu)能夠根據(jù)需要更新合約,并提供一個(gè)接口使得其它合約能夠通過發(fā)送一 個(gè)消息給該合約以獲取包含價(jià)格信息的回復(fù)。
當(dāng)這些關(guān)鍵要素都齊備,對沖合約看起來會(huì)是下面的樣子:
等待A輸入1000以太幣。
等待B 輸入1000以太幣。
通過查詢數(shù)據(jù)提供合約,將1000以太幣的美元價(jià)值,例如,x美元,記錄至存儲(chǔ)器。
30天后,允許A或B“重新激活“合約以發(fā)送價(jià)值x美元的以太幣(重新查詢數(shù)據(jù)提供合約,以獲取新價(jià)格并計(jì)算)給A并將剩余的以太幣發(fā)送給B。
代幣系統(tǒng)(token system)
區(qū)塊鏈上代幣系統(tǒng)有很多應(yīng)用,從代表如美元或黃金等資產(chǎn)的子貨幣到公司股票,單獨(dú)的代幣代表智能資產(chǎn),安全的不可偽造的優(yōu)惠券,甚至與傳統(tǒng)價(jià)值完全沒有聯(lián)系的用來進(jìn)行積分獎(jiǎng)勵(lì)的代幣系統(tǒng)。在以太坊中實(shí)施代幣系統(tǒng)容易得讓人吃驚。關(guān)鍵的一點(diǎn)是理解,所有的貨幣或者代幣系統(tǒng),從根本上來說是一個(gè)帶有如下操作的數(shù)據(jù)庫:從A中減去X單位并把X單位加到B上,前提條件是(1)A在交易之前有至少X單位以及(2)交易被A批準(zhǔn)。實(shí)施一個(gè)代幣系統(tǒng)就是把這樣一個(gè)邏輯實(shí)施到一個(gè)合約中去。
儲(chǔ)蓄錢包
假設(shè)Alice想確保她的資金安全,但她擔(dān)心丟失或者被黑客盜走私鑰。她把以太幣放到和Bob簽訂的一個(gè)合約里,如下所示,這合同是一個(gè)銀行:
Alice單獨(dú)每天最多可提取1%的資金。
Bob單獨(dú)每天最多可提取1%的資金,但Alice可以用她的私鑰創(chuàng)建一個(gè)交易取消Bob的提現(xiàn)權(quán)限。
Alice 和 Bob 一起可以任意提取資金。
一般來講,每天1%對Alice足夠了,如果Alice想提現(xiàn)更多她可以聯(lián)系Bob尋求幫助。如果Alice的私鑰被盜,她可以立即找到Bob把她 的資金轉(zhuǎn)移到一個(gè)新合同里。如果她弄丟了她的私鑰,Bob可以慢慢地把錢提出。如果Bob表現(xiàn)出了惡意,她可以關(guān)掉他的提現(xiàn)權(quán)限。
作物保險(xiǎn)
一個(gè)人可以很容易地以天氣情況而不是任何價(jià)格指數(shù)作為數(shù)據(jù)輸入來創(chuàng)建一個(gè)金融衍生品合約。如果一個(gè)愛荷華的農(nóng)民購買了一個(gè)基于愛荷華的降雨情況進(jìn)行反向賠付的金融衍生品,那么如果遇到干旱,該農(nóng)民將自動(dòng)地收到賠付資金而如果有足量的降雨他會(huì)很開心因?yàn)樗淖魑锸粘蓵?huì)很好。
多重簽名智能合約
比特幣允許基于多重簽名的交易合約,例如,5把私鑰里集齊3把就可以使用資金。以太坊可以做得更細(xì)化,例如,5把私鑰里集齊4把可以花全部資金,如果只3把則每天最多花10%的資金,只有2把就只能每天花0.5%的資金。