官术网_书友最值得收藏!

  • 區塊鏈+技術與實踐
  • 王小峰等主編
  • 2161字
  • 2023-09-26 18:49:59

1.2.2 智能合約的定義、原理與應用場景

比特幣的交易是可以編程的,但是比特幣腳本有很多限制,能夠編寫的程序也有限,而以太坊則更加完備(在計算機科學術語中,稱它為是圖靈完備的),可以像使用任何高級語言一樣來編寫幾乎可以做任何事情的程序(智能合約)。智能合約是代碼和數據(狀態)的集合,可以理解為在區塊鏈上可以自動執行的(由事件驅動的)、以代碼形式編寫的合同(特殊的交易)。

智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯網、點對點交易等。雖然目前除數字貨幣之外,真正落地的智能合約應用還不多,但相信未來1~3年,各種應用會遍地開花。

“智能合約”這個詞其實并不陌生,從其被提出大概已經有幾十年的歷史。籠統來說,智能合約就是一套以數字形式定義的承諾,合約參與方按規定執行合約上承諾的協議。比如我們常見的自動售貨機本質上就可以理解為一個智能合約,通過數字方式來控制合約。智能合約具有動態性和主動執行的屬性。

智能合約是指建立一套個人、機構以及財產之間的關系,是一種達成一致性認識的協定。像抵押、產權劃分這些操作都可以做成一種智能合約模型來約束人的行為。以我們常見的購買虛擬商品為例,當買家已經購買并完成付款,那么自動售貨機制就自動發貨。由此可見,只要參與者達成協定,智能合約給予參與方的權利和義務就可以像一臺計算機一樣自動執行。

從技術層面來說,智能合約的執行機制就像計算機語言的if…then條件判斷語句,某一個事件發生了,那么隨之而來另一件事就會自動發生;反之,要發生某件事的條件哪怕有一個達不到,這件事也不會發生。在某種意義上智能合約本身也是一個系統參與者,可以對接收到的信息進行回應,也可以接收和存儲一些有用信息。

要實現智能合約,首先需要使用計算機語言編寫合同中的條款,然后將編寫的程序部署到區塊鏈上去執行。從計算機用戶的角度來看,智能合約可以限定為更容易理解的智能合約代碼。智能合約最早的形式是比特幣中的擴展腳本,由于比特幣設計之初并沒有考慮智能合約,因此這種擴展腳本受到諸多限制,后來以太坊平臺設計了合約編程語言Solidity,提供了執行合約的虛擬機,進一步提升了智能合約的表述能力。而Fabric的智能合約直接采用Java、Go這些傳統編程語言編寫,功能和權限更加強大。由于區塊鏈智能合約在商業上的應用面臨法律效力問題,因此現有智能合約一般會在代碼中存儲一份相應的法律合同文本文件,以應對法律風險。目前,除了法律合同,智能合約已經應用到了更多的場景中,如數字化交易所、供應鏈、物流等。

1. 智能合約的定義

隨著區塊鏈技術的應用和發展,區塊鏈幾大關鍵技術正在快速演進,如共識算法、智能合約、跨鏈事務、隱私保護等,與用戶最相關的是能為用戶帶來價值的、運行在區塊鏈之上的智能合約。智能合約可以看作一個跨學科的復合名詞,合約取自法律上的合同概念,智能指的是能自動執行的計算機程序,智能合約就是能像計算機程序一樣自動執行的法律合同。

2. 智能合約的原理

智能合約的實現需要底層協議的支持,這個協議需要考慮諸多因素,具體的執行過程也是基于上文提到的腳本執行過程。以比特幣腳本為例,可以在腳本語言中嵌入已經達成一致協定的合約語言來進行智能資產的管理,同時來約束參與方的行為。

基于區塊鏈的智能合約需要同時具有事務處理和保存機制,事務處理無須多言,這是智能合約的根本,保存機制可以讓智能合約的執行過程有跡可查。類似于一個完備的狀態機,狀態機的每個狀態以及對于特定事件的響應都保存在區塊鏈中。當一個特定時間的觸發條件都滿足時,該合約就會自動執行。作為一個事務處理模塊,本身不會產生額外的智能合約,也不會對其合約語言進行修改,目的只是讓一組復雜的、帶有觸發條件的、達成一致協定的多種事務自動觸發執行,其流程可以簡單概括為以下幾步。

(1)共識:多方用戶或機構共同參與完成一個協定。

(2)上鏈:上述合約以區塊鏈的形式存入區塊鏈并隨全網傳播。

(3)執行:合約在區塊鏈上執行并記錄。

從比特幣到以太坊,區塊鏈架構的演變如圖1-8所示。

圖1-8 從比特幣到以太坊,區塊鏈架構的演變

3. 智能合約的應用場景

從智能合約的定義以及原理來看,生活中能使用智能合約的案例太多,房租租賃、彩票發行、購買保險、遺囑的設立等都可以采用智能合約的形式來發布。比如房屋租賃的智能合約,只有當租賃者以某種形式簽訂了租房合同并且提交了房租,智能合約系統就將入住的一些條件提供給租賃者,比如鑰匙之類的。當然,這些實現的前提需要通過互聯網工具的輔助。設立遺囑的過程也類似,立遺囑者事先設定好遺產分配機制,只要達到條件,遺囑上的事項就自動執行,這樣可以免去很多不必要的糾紛。

誠然,智能合約在具體的實施中還依然存在一些問題和挑戰,如安全性問題和意外性問題。安全性問題不僅僅是指智能合約的安全問題,同樣也是指整個區塊鏈體系的安全問題,因為智能合約的執行需要借助區塊鏈的執行,而區塊鏈的不可逆特性會在一定程度上影響智能合約的執行,比如一個誤操作的損失需要用戶自己承擔。意外性問題指的是智能合約就是一個狀態機系統,而一個復雜的狀態機,其觸發條件以及人們可以想到的那些事務可能會有缺陷,正如計算機程序語言的bug一樣,這些都是在事情發生后才可以去解決的,而這種意外的發生也很難完全避免。

主站蜘蛛池模板: 轮台县| 滦平县| 东海县| 方正县| 游戏| 门头沟区| 太仓市| 利川市| 蒲江县| 吉木萨尔县| 临城县| 卢龙县| 浮山县| 襄垣县| 周口市| 高阳县| 乌鲁木齐市| 仁怀市| 大港区| 莱州市| 托克托县| 克什克腾旗| 镇安县| 饶阳县| 五寨县| 太和县| 宁河县| 碌曲县| 玉环县| 浠水县| 陵川县| 石嘴山市| 尼木县| 福州市| 保靖县| 永清县| 三穗县| 阳新县| 尚义县| 宁国市| 安义县|