智慧合約是一種只有通過區塊鏈才能實現的新技術。普通、標準的合同涵蓋了當事人之間協定的條款,且常通過法律來強制執行;智慧合約是數位化的,儲存在區塊鏈中,並使用加密程式碼強制執行協定。
換句話說,智慧合約只是軟體程式,與所有程式一樣,它們完全按照程式設計師的意圖執行。智慧合約就像程式設計應用程式一樣:「一旦出現,就去執行。」
基本上通過數學計算,智慧合約可以協商協定中的條款,自動驗證履行,甚至執行約定的條款,所有這些都不需要通過中央組織來批准。智慧合約使公證人、代理人和律師等中間人幾乎毫無意義。
智慧合約包含了有關交易的所有資訊,只有在滿足要求後才會執行結果操作。智慧合約和傳統紙質合約的區別在於智慧合約是由計算機生成的。因此,程式碼本身解釋了參與方的相關義務。
事實上,智慧合約的參與方通常是網際網路上的陌生人,受制於有約束力的數位化協定。本質上,智慧合約是一個數位合約,除非滿足要求,否則不會產生結果。
智慧合約如何運作?
很多區塊鏈網路使用的智慧合約功能類似於自動售貨機。智慧合約與自動售貨機類比:如果你向自動售貨機(類比分類賬本)轉入位元幣或其他加密貨幣,一旦輸入滿足智慧合約程式碼要求,它會自動執行雙方約定的義務。
義務以「ifthen」形式寫入程式碼,例如,「如果A完成任務1,那麼,來自於B的付款會轉給A。」通過這樣的協定,智慧合約允許各種資產交易,每個合約被複制和儲存在分散式賬本中。這樣,所有資訊都不能被篡改或破壞,資料加密確保參與者之間的完全匿名。
雖然智慧合約只能與數位生態系統的資產一起使用,不過,很多應用程式正在積極探索數位貨幣之外的世界,試圖連線「真實」世界和「數位」世界。
智慧合約根據邏輯來編寫和運作。只要滿足輸入要求,也就是說只要程式碼編寫的要求被滿足,合約中的義務將在安全和去信任的網路中得到執行。
程式語言和程式
為了編寫智慧合約,你必須使用智慧合約語言(SCL)。這些是直接編寫智慧合約或編譯成智慧合約的程式語言。Solidity是一種編寫智慧合約的程式語言,它在以太坊虛擬機器器上執行。它是一種面向合約的高階語言,其語法類似於Javascript,主要針對以太坊EVM。
以太坊虛擬機器器(EVM)是以太坊上智慧合約的執行環境。它實際上是完全隔離的,這意味著在EVM上執行的程式碼無法存取網路、檔案系統和其他程序。智慧合約對其他的智慧合約的存取權也有限,在區塊鏈網路上單獨運作。