頁面上次更新: 2023年9月19日
智慧型合約簡介
智慧型合約是以太坊應用層的基本構成要素。 這些合約是儲存在區塊鏈上的電腦程式,其跟從「條件式」的設計邏輯,且保證依程式碼所定義的規則來執行,程式碼一經建立即無法變更。
Nick Szabo 率先提出「智慧型合約」一詞。 他在 1994 年撰寫了這個概念(opens in a new tab),並在 1996 年撰寫了《探索智慧型合約可以做什麼》(opens in a new tab)。
Szabo 預見了一個無需可信的中介,即能以自動化加密安全流程實現交易和業務功能的數位拍賣市場。 以太坊上的智慧型合約讓此一願景付諸實踐。
傳統合約內的信任
傳統合約最大的問題之一是需要值得信賴的個人來監督合約執行結果。
例如:
Alice 和 Bob 進行一場自行車比賽。 Alice 和 Bob 打賭 10 美金,賭她會鸁。 而 Bob 堅信自己會鸁得比賽,因此同意打賭。 結果,Alice 把 Bob 遠遠抛在身後,她顯然鸁了。 但 Bob 拒絕支付賭注,聲稱 Alice 一定是做弊。
這個搞笑的範例說明 了非智慧型協議會發生的問題。 即使已符合協議的條件(亦即,你是比賽的獲勝者),你還得相信對方會履行協議(也就是支付賭注)。
數位自動販賣機
用簡單的比喻來說,智慧型合約就像一台自動販賣機,只要按下特定的按鍵,就保證會得到預先設定好的商品。
- 你選擇一個商品
- 販賣機顯示價格
- 你付款給販賣機
- 販賣機確認你是否投入正確的金額
- 自動販賣機掉出你要的商品
自動販賣機只在所有需求都符合時,才會掉出你想要的商品。 如果你沒選擇商品或是投入足額的錢,自動販賣機便不會掉出你要的商品。
自動執行
智慧型合約的主要好處在於當特定條件成立時,它便會確切執行非模糊的程式碼。 你不需要等真人來詮釋或協調結果。 這消除了可信中介的需求。
例如,你可以撰寫為孩子代管資金的智慧型合約,讓他們過了特定日期後才能提領該資金。 如果他們想在到期日前提領資金,智慧型合約便不會執行。 你也可以撰寫一份智慧型合約,當你付錢給汽車經銷商後,合約便會自動發給你一張數位版的車輛所有權證明。
可預測的結果
傳統合約的模糊之處在於它們有賴於真人自行詮釋和履約。 舉例來說,兩名法官可能會對同一張合保持不同見解,這就造成判決不一致,繼而產生不同結果。 智慧型合約消除了這種可能性。 相反地,智慧型合約依合約程式碼內所寫條件準確執行。 準確的意思是指,只要提供相同的條件,智慧型合約就會產生相同的結果。
公開的記錄
智慧型合約對於審計和追蹤也非常有用。 由於以太坊的智慧型合約寫在公共區塊鏈上,因此任何人都能立即追蹤資產的傳送和其他相關資訊。 舉例來說,你可以查閱某人是否把錢轉到你的地址了。
隱私保護
智慧型合約也可以保護你的隱私權。 由於以太坊是匿名網 路(你進行的交易公開綁定唯一的加密地址,而非綁定個人身分),因而可以保護隱私不受監視。
公開可見的條款
最後,如同傳統合約,你可以在簽名同意前檢查智慧型合約裡的內容,或與合約互動。 智慧型合約的透明度擔保每個人都可以審閱它。
智慧型合約使用案例
基本上,智慧型合約可以做到所有電腦程式都能做到的事。
它們可以執行計算、創建貨幣、儲存資料、鑄造非同質化代幣、傳送通訊內容,甚至產生圖形。 以下是一些真實世界流行的範例:
想透過視覺方式學習?
觀看 Finematics 講解智慧型合約:
了解更多
- 智慧型合約將如何改變世界(opens in a new tab)
- 智慧型合約:將取代律師的區塊鏈技術(opens in a new tab)
- 適用於開發者的智慧型合約
- 學習撰寫智慧型合約
- 精通以太坊 ─ 智慧型合約是什麼?(opens in a new tab)