智能合約
- 智能合約是在區塊鏈上運行的應用或者程式,通常情況下,智能合約是一組具有特定規則的數字化協議,且這些協議能夠強制化執行,這些規則由計算機代碼預先定義,所有節點會復制和執行這些計算機原始碼,
- 智能合約不需要依靠雙方互相信任的前提,只需要雙方根據事先協商好的內容形成合約,在特定的觸發條件下執行合約,省略了對于第三方中介的需求,從而降低了運營的成本,
- 簡單的講,智能合約是一個確定性的計劃,當滿足某些條件的時候,則會執行特定的任務,因此,智能合約系統通常遵循“if...then...”的條件陳述句,智能,僅僅體現在它可以自動執行,不需要人工參與,
- 再次精簡:當我們設定銀行自動還款,這樣每到還款日,銀行賬戶會自動從余額中扣除固定的金額轉給信用卡,如果銀行賬戶錢數不夠那么付款就會失敗,將會觸發另外一套作業流程,智能合約也依據這個邏輯自動化執行,除了智能合約是部署在區塊鏈上,由多方運行,而不是單方控制,
智能合約的特征
- 分布式,智能合約在以太坊網路的所有節點中被復制和分發,這種方式與基于中心化服務器的其他解決方案區別顯著,
- 一致性,在滿足要求的情況下,智能合約僅執行其預先設計的操作,而且,無論任何節點執行,結果都是一致的,
- 自動化,智能合約可以自動執行各種任務,就像自動執行程式一樣,但是,在大多數情況下,如果未觸發智能合約,它將保持“休眠”狀態,并且不會執行任何操作,
- 不可篡改,智能合約一經部署,則無法更改,只有預先實作了特定功能,才能執行“洗掉”,因此,我們可以說智能合約可以提供防篡改程式,
- 定制化,在部署之前,智能合約可以通過多種不同方式進行編碼,因此,它可用于創建許多不同的分布式應用程式,這與以太坊具有圖靈完備的區塊鏈特征相關,
- 無需信任,兩方或多方可以通過智能合約進行互動,而無需相互了解或取得信任,此外,區塊鏈技術可確保資料準確無誤,
- 透明性,由于智能合約基于公有區塊鏈,因此其源代碼不僅不可篡改,而且對任何人都是透明的,
智能合約更改或者洗掉
- 以太坊智能合約一經部署,則無法再繼續添加新功能,但是,如果其合約創建者在代碼中預留了名為SELFDESTRUCT的函式,那么將來可以“洗掉”智能合約,也可以用新的合約替換它,如果未在合約代碼中預留該函式,則它們將無法被洗掉,
- 值得注意的是,所謂的可升級智能合約支持開發人員在不可篡改方面擁有更大的靈活性,有許多方法可以創建可升級的智能合約,每個合約都可具有不同程度的復雜性,
- 舉一個簡單的例子,我們假設將智能合約分為多個較小的合約,其中一些被設計為不可變更的,而另一些則啟用了“洗掉”功能,這意味著可以洗掉和替換部分代碼(智能合約),而其他功能保持不變,
局限性
- 智能合約由人工撰寫的計算機代碼組成,這也帶來了許多風險,代碼容易受到攻擊和漏洞的影響,理想情況下,它們應由經驗豐富的程式員撰寫和部署,特別是涉及敏感資訊和大量資金時,
- 除此之外,有人認為中心化的系統也可以提供智能合約的大部分解決方案和功能,主要區別在于智能合約在分布式的點對點網路中運行,而不是運行在中心化服務器上,因為它們基于區塊鏈系統,所以它們往往是不可篡改的,
- 在某些情況下,智能合約的不可篡改性優勢明顯,但其他情況下卻很糟糕,例如,由于其智能合約代碼存在缺陷,名為“The DAO”的分布式自治組織(DAO)在2016年被黑客攻擊時,損失高達數百萬枚以太幣(ETH),由于他們的智能合約是不可變更的,開發人員無法修復代碼,這最終導致出現了硬分叉,誕生了第二個以太坊鏈,簡而言之,一條鏈進行“回退”,并將資金返還給了合法的所有者(這是當前以太坊區塊鏈的一部分),而另一條鏈決定不受此次攻擊影響,堅持區塊鏈上發生的事情永遠不可改變(這個鏈現在稱為以太坊經典),需要注意的是,造成該問題并不是以太坊區塊鏈的原因,它是由智能合約的錯誤執行所引發的,
- 智能合約的另一個限制與其不確定的法律地位有關,智能合約在大多數國家仍處于灰色地帶,且不適應當前的法律監管框架,例如,許多合約都要求交易雙方彼此實名認證且超過18歲,但區塊鏈技術提供的匿名性,加上缺乏中間人,可能會影響這些要求,雖然有潛在的解決方案,但目前看,智能合約的法律可執行性是一項真正的挑戰,尤其是在沒有邊際的分布式網路中,
圖片

參考鏈接
- 一篇文章讓你了解什么是智能合約
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183352.html
標籤:其他
