為什麼要用區塊鏈技術實現智慧合約?智慧合約與區塊鏈的關係

買賣虛擬貨幣

為什麼要用區塊鏈技術實現智慧合約?智慧合約與區塊鏈的關係,尼克•薩博關於智慧合約的工作理論遲遲沒有實現,一個重要原因是因為缺乏能夠支援可程式設計合約的數字系統和技術。區塊鏈技術的出現解決了該問題,不僅可以支援可程式設計合約,而且具有去中心化、不可篡改、過程透明可追蹤等優點,天然適合於智慧合約。因此,也可以說,智慧合約是區塊鏈技術的特性之一。

如果說區塊鏈1.0是以比特幣為代表,解決了貨幣和支付手段的去中心化問題,那麼區塊鏈2.0就是更巨集觀的對整個市場去中心化,利用區塊鏈技術來轉換許多不同的數字資產而不僅僅是比特幣,透過轉讓來建立不同資產的價值。區塊鏈技術的去中心化賬本功能可以被用來建立、確認、轉移各種不同型別的資產及合約。幾乎所有型別的金融交易都可以被改造成在區塊鏈上使用,包括股票、私募股權、眾籌、債券和其他型別的金融衍生品如期貨、期權等。

智慧合約看上去就是一段計算機執行程式,滿足可準確自動執行即可,那麼為什麼用傳統的技術為何很難實現,而需要區塊鏈技術等新技術呢?傳統技術即使透過軟體限制、效能最佳化等方法,也無法同時實現區塊鏈的特性:1是資料無法刪除、修改,只能新增,保證了歷史的可追溯,同時作惡的成本將很高,因為其作惡行為將被永遠記錄;2是去中心化,避免了中心化因素的影響。

基於區塊鏈技術的智慧合約不僅可以發揮智慧合約在成本效率方面的優勢,而且可以避免惡意行為對合約正常執行的干擾。將智慧合約以數字化的形式寫入區塊鏈中,由區塊鏈技術的特性保障儲存、讀取、執行整個過程透明可跟蹤、不可攥改。同時,由區塊鏈自帶的共識演算法構建出一套狀態機系統,使得智慧合約能夠高效地執行。

基於區塊鏈的智慧合約包括事務處理和儲存的機制,以及一個完備的狀態機,用於接受和處理各種智慧合約;並且事務的儲存和狀態處理都在區塊鏈上完成。事務主要包含需要傳送的資料;而事件則是對這些資料的描述資訊。事務及事件資訊傳入智慧合約後,合約資源集合中的資源狀態會被更新,進而觸發智慧合約進行狀態機判斷。如果自動狀態機中某個或某幾個動作的觸發條件滿足,則由狀態機根據預設資訊選擇合約動作自動執行。

智慧合約系統根據事件描述資訊中包含的觸發條件,當觸發條件滿足時,從智慧合約自動發出預設的資料資源,以及包括觸發條件的事件;整個智慧合約系統的核心就在於智慧合約以事務和事件的方式經過智慧合約模組的處理,出去還是一組事務和事件;智慧合約只是一個事務處理模組和狀態機構成的系統,它不產生智慧合約,也不會修改智慧合約;它的存在只是為了讓一組複雜的、帶有觸發條件的數字化承諾能夠按照參與者的意志,正確執行。

基於區塊鏈的智慧合約構建及執行分為如下幾步:

1、多方使用者共同參與制定一份智慧合約;

2、合約透過P2P網路擴散並存入區塊鏈;

3、區塊鏈構建的智慧合約自動執行。

下面詳細描述步驟1“多方使用者共同參與制定一份智慧合約”的過程,包括如下步驟:

(1)首先使用者必須先註冊成為區塊鏈的使用者,區塊鏈返回給使用者一對公鑰和私鑰;公鑰做為使用者在區塊鏈上的賬戶地址,私鑰做為操作該賬戶的唯一鑰匙。

(2)兩個以兩個以上的使用者根據需要,共同商定了一份承諾,承諾中包含了雙方的權利和義務;這些權利和義務以電子化的方式,程式設計機器語言;參與者分別用各自私鑰進行簽名;以確保合約的有效性。

(3)簽名後的智慧合約,將會根據其中的承諾內容,傳入區塊鏈網路中。

下面詳細描述步驟2“合約透過P2P網路擴散並存入區塊鏈”的過程,包括如下步驟:

(1)合約透過P2P的方式在區塊鏈全網中擴散,每個節點都會收到一份;區塊鏈中的驗證節點會將收到的合約先儲存到記憶體中,等待新一輪的共識時間,觸發對該份合約的共識和處理。

(2)共識時間到了,驗證節點會把最近一段時間內儲存的所有合約,一起打包成一個合約集合(set),並算出這個合約集合的Hash值,最後將這個合約集合的Hash值組裝成一個區塊結構,擴散到全網;其它驗證節點收到這個區塊結構後,會把裡面包含的合約集合的Hash取出來,與自己儲存的合約集合進行比較;同時傳送一份自己認可的合約集合給其它的驗證節點;透過這種多輪的傳送和比較;所有的驗證節點最終在規定的時間內對最新的合約集合達成一致。

(3)最新達成的合約集合會以區塊的形式擴散到全網,如下圖所示,每個區塊包含以下資訊:當前區塊的Hash值、前一區塊的Hash值、達成共識時的時間戳、以及其它描述資訊;同時區塊鏈最重要的資訊是帶有一組已經達成共識的合約集;收到合約集的節點,都會對每條合約進行驗證,驗證透過的合約才回最終寫入區塊鏈中,驗證的內容主要是合約參與者的私鑰簽名是否與賬戶匹配。

下面是步驟3“區塊鏈構建的智慧合約自動執行”的過程,包括如下步驟:

(1)智慧合約會定期檢查自動機狀態,逐條遍歷每個合約內包含的狀態機、事務以及觸發條件;將條件滿足的事務推送到待驗證的佇列中,等待共識;未滿足觸發條件的事務將繼續存放在區塊鏈上。

(2)進入最新輪驗證的事務,會擴散到每一個驗證節點,與普通區塊鏈交易或事務一樣,驗證節點首先進行簽名驗證,確保事務的有效性;驗證透過的事務會進入待共識集合,等大多數驗證節點達成共識後,事務會成功執行並通知使用者。

(3)事務執行成功後,智慧合約自帶的狀態機會判斷所屬合約的狀態,當合約包括的所有事務都順序執行完後,狀態機會將合約的狀態標記為完成,並從最新的區塊中移除該合約;反之將標記為進行中,繼續儲存在最新的區塊中等待下一輪處理,直到處理完畢;整個事務和狀態的處理都由區塊鏈底層內建的智慧合約系統自動完成,全程透明、不可攥改。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;