時間:2023-06-10|瀏覽:264
什么是EOS智能合約?
EOSIO智能合約軟件注冊在區(qū)塊鏈上,并在EOSIO節(jié)點上實行,它完成了“合同”的詞義,在區(qū)塊鏈上存放合同的請求行為,即請求賬簿。EOS定義的智能合約包括兩個因素:代表合同的程序和執(zhí)行合同時的舉動。和BTC把UTXO記錄在區(qū)塊鏈上一樣,EOS也把所有的行為數(shù)據(jù)記錄在了區(qū)塊鏈上,但唯一的不同是EOS是一個智能合約平臺,它不僅適用于轉賬合同,還包括CPU、Bandwidth、RAM人機交易市場、投票等。因此,EOS智能合約是比特幣的擴展版本,但仍然由最基本要素構成:代表合同的程序和執(zhí)行合同時的舉動。
EOS智能合約的特點:
EOSIO智能合約由一組Action和類型定義構成。Action是特定并實現(xiàn)合同的舉動,而類型定義是特定所需的內(nèi)容和結構。開發(fā)合同時應對每一個action完成對應的actionhandler。actionhandler的參數(shù)特定了接收的參數(shù)類型和數(shù)量。當向此合同推送action時,必須推送符合要求的參數(shù)。Action主要在基于消息的通訊系統(tǒng)架構中運作??蛻舳四苁褂胏leos命令,將信息推送到nodeos來啟用Action。也可以用EOSIOsend方式(比如eosio::action::send)來啟用Action。nodeos將Action請求分發(fā)給合同的WASM代碼。該代碼全面地運作完,然后繼續(xù)解決下一個Action。EOS體系基于通信,Action便是EOS上通信的媒介。
通信模型
EOSIO適用兩種基本通信模型:內(nèi)聯(lián)(inline)通訊,如在目前交易中處理Action,和延遲(defer)通訊,如開啟一筆未來的交易。
·Inline通訊
Inline通訊是指啟用Action和被啟用Action都要實行成功(不然會一起回滾)。Inline通訊應用初始買賣相同的scope和權限并確保與當前action一起實行。能夠被稱為交易里的嵌入交易。
·Deferred通訊
Deferred通訊在概念上相當于推送一個transaction給一個賬戶。這個transaction的執(zhí)行是基于節(jié)點獨立判斷進行的,Deferred通訊難以保證信息一定成功或是失敗。
EOS智能合約的工作原理分析
智能合約由區(qū)塊鏈里的客戶共同參與制訂,適用于客戶之間的所有交易行為。協(xié)議中確定了雙方的權利與義務,開發(fā)者把這些權利與義務以電子化的形式進行編程,代碼中包含會觸發(fā)合同自動執(zhí)行的條件。一旦編號完成,這份智能合約便被上傳至區(qū)塊鏈網(wǎng)絡上,即全網(wǎng)驗證節(jié)點都會接受到合同。智能合約會定期維護存不存在相關事件和觸發(fā)條件;滿足條件的事情可能推送到待驗證的序列中。驗證節(jié)點先向該事件開展簽名驗證,以保證其實效性;等大部分驗證節(jié)點對該事件達成一致后,智能合約將成功實行,并通知客戶。成功實施的合同將移出區(qū)塊。未實施的合同則繼續(xù)等待下一輪解決,直到成功實行。
布署到以太幣上的智能合約是要耗費以太幣的。智能合約也遵照“Less is more”,邏輯應盡量地簡易。邏輯越復雜,耗費的以太幣就越多。
總之,在區(qū)塊鏈社會里,大家共同維護一個區(qū)塊鏈賬本,全部交易數(shù)據(jù)沒法篡改、不能偽造,還能減少人力查賬的出錯幾率和人工成本。隨著智能合約的普及,大家也會變得更加佛性。應對隱性的糾紛,無需自己出馬,一切代碼來定。