智能合約

智能合約的定義
“一個智能合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。”
換成更加通俗的描述就是
“智能合約是一個在計算機系統上,當一定條件被滿足的情況下,可以被自動執行的合約。”

如果說區塊鏈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值、達成共識時的時間戳、以及其它描述信息;同時區塊鏈最重要的信息是帶有一組已經達成共識的合約集;收到合約集的節點,都會對每條合約進行驗證,驗證通過的合約才回最終寫入區塊鏈中,驗證的內容主要是合約參與者的私鑰簽名是否與賬戶匹配。

合約區塊鏈示意圖.jpg

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

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

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

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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容