智能合約

智能合約是 1990s 年代由尼克薩博提出的理念,幾乎與互聯網同齡。因爲缺乏可信的執行環境,智能合約並無被應用到實際產業中,自比特幣誕生後,人們認識到比特幣的底層技術區塊鏈天生能夠爲智能合約提供可信的執行環境,以太坊首先看到了區塊鏈和智能合約的契合,發佈了白皮書《以太坊:下一代智能合約和去中心化應用平臺》,並一直致力於將以太坊打形成最佳智能合約平臺,因此比特幣引領區塊鏈,以太坊復活智能合約。數據庫

怎樣向還沒有接觸過比特幣理念的人介紹以太坊及智能合約在金融合約方面的應用?下面是一種嘗試。首先介紹區塊鏈,解釋它爲何值得人們的信任,其次介紹智能合約,而後介紹以太坊系統,最後介紹智能合約與金融合約的結合。安全

比特幣的共識機制

比特幣的核心技術區塊鏈能夠理解成可複製、共享的帳本。網絡

比特幣的最核心創新:它教會世界如何在不須要信任第三方的狀況下遠距離轉移價值。區塊鏈

人們固然能夠面對面地轉移實體紙幣,可是,在比特幣出現之前,咱們作不到:在不須要信任中心化第三方機構(郵局、銀行等)的狀況,遠距離向某人轉移價值。spa

就好像銀行和支付系統的傳統轉帳模式的基礎設施被重構爲點對點支付網絡。這種轉變以下圖所示:設計

比特幣打開了點對點的電子價值轉移模式的大門,徹底不一樣於如今的銀行系統、中央銀行和支付系統。 可是,上面的圖並無解釋比特幣是怎樣實現點對點價值轉移的。3d

答案是:比特幣系統創建在「可複製、共享的帳本」之上。比特幣網絡中的每一個參與者(徹底節點)擁有一個完整的交易帳本的副本,這一系統的神奇之處在於:它是如何作到使每一個人的副本與其餘人的副本保持一致的。教程

因此,正確的示意圖應該是下圖,每一個參與者都可以從相同的可複製、共享的帳本中獲取信息。token

比特幣和其它去中心化共識系統的竅門在於:它們怎樣保證每一個有一個帳本的副本,並使每一個人確信本身的帳本與別人的帳本是同步的。接口

若是每一個人擁有的帳本的副本是相同的,那麼人們就再也不須要一箇中心化的機構記錄誰擁有什麼。當你的帳本更新,記錄一筆新的資產全部權變更時,其餘人的帳本也會發生相同的變更。

智能合約

智能合約程序不僅是一個能夠自動執行的計算機程序:它本身就是一個系統參與者。它對接收到的信息進行迴應,它能夠接收和儲存價值,也能夠向外發送信息和價值。

這個程序就像一個能夠被信任的人,能夠臨時保管資產,老是按照事先的規則執行操做。

下面這個示意圖就是一個智能合約模型:一段代碼(智能合約),被部署在分享的、複製的帳本上,它能夠維持本身的狀態,控制本身的資產和對接收到的外界信息或者資產進行迴應。

智能合約模型:它是運行在可複製、共享的帳本上的計算機程序,能夠處理信息,接收、儲存和發送價值。

以太坊系統

以太坊項目借鑑了比特幣區塊鏈的技術,對它的應用範圍進行了擴展。若是說比特幣是利用區塊鏈技術的專用計算器,那麼以太坊就是利用區塊鏈技術的通用計算機。簡單地講,以太坊 = 區塊鏈 + 智能合約。

與比特幣相比,以太坊最大的不一樣點是:它能夠支持更增強大的腳本語言(用技術語言講就是圖靈完備的腳本語言),容許開發者在上面開發任意應用,實現任意智能合約,這也是以太坊的最強大之處。做爲平臺,以太坊能夠類比於蘋果的應用商店,任何開發者均可以在上面開發應用,並出售給用戶。

以太坊智能合約的金融應用

每一類金融合約均可以程序代碼的形式寫成智能合約。

差價合約

金融衍生品是「智能合約」的最廣泛的應用,也是最易於用代碼實現的之一。實現金融合約的主要挑戰是它們中的大部分須要參照一個外部的價格發佈器;例如,一個需求很是大的應用是一個用來對衝以太幣(或其它密碼學貨幣)相對美圓價格波動的智能合約,但該合約須要知道以太幣相對美圓的價格。最簡單的方法是 經過由某特定機構(例如納斯達克)維護的「數據提供「合約進行,該合約的設計使得該機構可以根據須要更新合約,並提供一個接口使得其它合約可以經過發送一 個消息給該合約以獲取包含價格信息的回覆。

當這些關鍵要素都齊備,對衝合約看起來會是下面的樣子:

等待A輸入1000以太幣。

等待B 輸入1000以太幣。

經過查詢數據提供合約,將1000以太幣的美圓價值,例如,x美圓,記錄至存儲器。

30天后,容許A或B「從新激活「合約以發送價值x美圓的以太幣(從新查詢數據提供合約,以獲取新價格並計算)給A並將剩餘的以太幣發送給B。

代幣系統(token system)

區塊鏈上代幣系統有不少應用,從表明如美圓或黃金等資產的子貨幣到公司股票,單獨的代幣表明智能資產,安全的不可僞造的優惠券,甚至與傳統價值徹底沒有聯繫的用來進行積分獎勵的代幣系統。在以太坊中實施代幣系統容易得讓人吃驚。關鍵的一點是理解,全部的貨幣或者代幣系統,從根本上來講是一個帶有以下操做的數據庫:從A中減去X單位並把X單位加到B上,前提條件是(1)A在交易以前有至少X單位以及(2)交易被A批准。實施一個代幣系統就是把這樣一個邏輯實施到一個合約中去。

儲蓄錢包

假設Alice想確保她的資金安全,但她擔憂丟失或者被黑客盜走私鑰。她把以太幣放到和Bob簽定的一個合約裏,以下所示,這合同是一個銀行:

Alice單獨天天最多可提取1%的資金。

Bob單獨天天最多可提取1%的資金,但Alice能夠用她的私鑰建立一個交易取消Bob的提現權限。

Alice 和 Bob 一塊兒能夠任意提取資金。

通常來說,天天1%對Alice足夠了,若是Alice想提現更多她能夠聯繫Bob尋求幫助。若是Alice的私鑰被盜,她能夠當即找到Bob把她 的資金轉移到一個新合同裏。若是她弄丟了她的私鑰,Bob能夠慢慢地把錢提出。若是Bob表現出了惡意,她能夠關掉他的提現權限。

做物保險

一我的能夠很容易地以天氣狀況而不是任何價格指數做爲數據輸入來建立一個金融衍生品合約。若是一個愛荷華的農民購買了一個基於愛荷華的降雨狀況進行反向賠付的金融衍生品,那麼若是遇到乾旱,該農民將自動地收到賠付資金而若是有足量的降雨他會很開心由於他的做物收成會很好。 多重簽名智能契約

多重簽名智能合約

比特幣容許基於多重簽名的交易合約,例如,5把私鑰裏集齊3把就可使用資金。以太坊能夠作得更細化,例如,5把私鑰裏集齊4把能夠花所有資金,若是隻3把則天天最多花10%的資金,只有2把就只能天天花0.5%的資金。

 

分享兩個教程:

1.適合區塊鏈新手的以太坊DApp開發教程

2.用區塊鏈、星際文件系統(IPFS)、Node.js和MongoDB來構建以太坊DApp電商平臺

相關文章
相關標籤/搜索