Smart Contract

  • 智慧合約是什麼意思?

    早在20世紀90年代Nick Szabo就首次描述了智慧合約的概念。 當時,他對智慧合約定義為:能够將協定與用戶界面相結合的一種工具,從而對電腦網絡進行規範化和安全加固。 Szabo還探討了涉及到契约協定等各個領域中,智慧合約的潜在用途,例如信用體系、支付流程和版權管理。 在加密貨幣領域,我們將智慧合約定義為在區塊鏈上運行的應用或程式。 通常情况下,它們為一組具有特定規則的數位化協定,且該協定能够被強制執行。 這些規則由電腦原始程式碼預先定義,所有網絡節點會複製和執行這些電腦源碼。 實質上,區塊鏈智慧合約支持創建無需信任的協定。 這意味著執行合約的雙方可以通過區塊鏈做出承諾,而無需相互瞭解或相互信任。 合約內容經雙方確認後,如果沒達到觸發條件,合約將不會被執行。 除此之外,使用智慧合約可以消除對仲介的需求,從而顯著降低運營成本。 多年來,雖然比特幣協定也一直支持智慧合約,但智慧合約卻經乙太坊聯合創始人Vitalik Buterin之手而大受歡迎。 值得注意的是,每個區塊鏈網絡可能會提供完全不同的智慧合約。 本文將重點介紹在乙太坊虛擬機器(EV)上運行的智慧合約,這也是乙太坊區塊鏈的重要組成部分。 智慧合約是如何運行的? 簡單來說,智慧合約就是一個確定性的計畫。 當滿足某些條件時,它則執行特定任務。 囙此,智慧合約系統通常遵循“if…then…” 的條件語句。 但是,即便智慧合約成為一種主流的科技,但智慧合約既不是法定的也不是智能化的,它們只是在分佈式系統(區塊鏈)上運行的一段程式碼。 在乙太坊網絡上,當用戶(地址)在區塊鏈網絡中進行交易時,智慧合約負責執行和管理這類操作。 而非智慧合約管理的地址都稱為外部帳戶(EOA)。 囙此,智慧合約由電腦原始程式碼控制,EOA由用戶自己控制。 基本上,乙太坊智慧合約通常由合約程式碼和兩個公開金鑰組成。 一個公開金鑰是合約創建者所提供的公開金鑰,另一個公開金鑰由合約自身創建,用於充當每個智慧合約獨有的數位標識。 任何智慧合約的部署都是通過區塊鏈交易進行的,只有在EOA(或其他智慧合約)調用時才能被啟動。 但是,智慧合約首次觸發是由EOA(用戶)引起的。 主要特徵 乙太坊智慧合約通常具有以下特徵: 分佈式。 智慧合約在乙太坊網絡的所有節點中被複製和分發,這種管道與基於中心化服務器的其他解決方案區別顯著。 一致性。 在滿足要求的情况下,智慧合約僅執行其預先設計的操作。 而且,無論任何節點執行,結果都是一致的。 自動化。 智慧合約可以自動執行各種任務,就像自動執行程式一樣。 但是,在大多數情况下,如果未觸發智慧合約,它將保持“休眠”狀態,並且不會執行任何操作。 不可篡改。 智慧合約一經部署,則無法更改。 只有預先實現了特定功能,才能執行“删除”。 囙此,我們可以說智慧合約可以提供防篡改程式。 定制化。 在部署之前,智慧合約可以通過多種不同管道進行編碼。 囙此,它可用於創建許多不同的分佈式應用程序(DApps)。 這與乙太坊具有圖靈完備的區塊鏈特徵相關。 無需信任。 兩方或多方可以通過智慧合約進行互動,而無需相互瞭解或取得信任。 此外,區塊鏈科技可確保數據準確無誤。 透明性。 由於智慧合約基於公有區塊鏈,囙此其原始程式碼不僅不可篡改,而且對任何人都是透明的。 智慧合約可以被更改或删除嗎? 乙太坊智慧合約一經部署,則無法再繼續添加新功能。 但是,如果其合約創建者在程式碼中預留了名為SELFDESTRUCT的函數,那麼將來可以“删除”智慧合約,也可以用新的合約替換它。 如果未在合約程式碼中預留該函數,則它們將無法被删除。 值得注意的是,所謂的可升級智慧合約支持開發人員在不可篡改方面擁有更大的靈活性。 有許多方法可以創建可升級的智慧合約,每個合約都可具有不同程度的複雜性。 舉一個簡單的例子,我們假設將智慧合約分為多個較小的合約。 其中一些被設計為不可變更的,而另一些則啟用了“删除”功能。 這意味著可以删除和替換部分程式碼(智慧合約),而其他功能保持不變。 優勢和相關案例 作為可程式設計程式碼,智慧合約具有高度的可定制化,可以通過多種不同管道進行設計,提供不同的服務和解決方案。 作為去中心化和自動執行的程式,智慧合約可以提高透明度並降低運營成本。 根據不同的實施情況,他們還可以提高執行效率並减少商業運營費用。 智慧合約在兩方或多方間進行轉帳或資金交易時尤為實用。 換句話說,智慧合約可以針對各種應用案例進行設計。 包括創建代幣化資產、投票系統、加密錢包、分佈式交易所、遊戲和移動應用程序。 它們還可以與其他區塊鏈解決方案一起部署,這些解決方案涉及醫療保健、慈善、供應鏈、政府管理和分佈式融資(DeFi)等領域。 ERC-20 在乙太坊區塊鏈上發佈的代幣遵循ERC-20的協定標準。 該標準描述了所有基於乙太坊代幣的覈心功能。 囙此,這些數位資產通常被稱為ERC-20代幣,它們佔據了現有加密貨幣總量的很大一部分。 許多區塊鏈公司和初創公司都部署了智慧合約,以便在乙太坊網絡上發行數位代幣。 發行後,這些公司中的大多數通過初始代幣發行(ICO)來分發其ERC-20代幣。 在大多數情况下,智慧合約能够讓用戶以信任和有效的管道交換資金和分配代幣。 局限性 智慧合約由人工編寫的電腦程式碼組成。 這也帶來了許多風險,程式碼容易受到攻擊和漏洞的影響。 理想情况下,它們應由經驗豐富的程式師編寫和部署,特別是涉及敏感資訊和大量資金時。 除此之外,有人認為中心化的系統也可以提供智慧合約的大部分解決方案和功能。 主要區別在於智慧合約在分佈式的點對點網絡中運行,而不是運行在中心化服務器上。 因為它們基於區塊鏈系統,所以它們往往是不可篡改的。 在某些情况下,智慧合約的不可篡改性優勢明顯,但其他情况下卻很糟糕。 例如,由於其智慧合約程式碼存在缺陷,名為“The DAO”的分佈式自治組織(DAO)在2016年被駭客攻擊時,損失高達數百萬枚乙太幣(ETH)。 由於他們的智慧合約是不可變更的,開發人員無法修復程式碼。 這最終導致出現了硬分叉,誕生了第二個乙太坊鏈。 簡而言之,一條鏈進行“回退”,並將資金返還給了合法的所有者(這是當前乙太坊區塊鏈的一部分)。 而另一條鏈决定不受此次攻擊影響,堅持區塊鏈上發生的事情永遠不可改變(這個鏈現在稱為乙太坊經典)。 需要注意的是,造成該問題並不是乙太坊區塊鏈的原因,它是由智慧合約的錯誤執行所引發的。…

    29/01/2022
    00