DEV Community

Cover image for 智能合約 Smart Contracts 101
Unamz
Unamz

Posted on

智能合約 Smart Contracts 101

智能合約 Smart Contracts 101

什麼是智能合約

智能合約英文名為 Smart Contracts,由於區塊鏈技術與去中心化金融 DeFi 蓬勃發展,智能合約也隨之爆紅,其實智能合約起源於西元 1995 年由 Nick Szabo 這位跨領域法律專家所提出,它對於智能合約定義是:能夠讓合約參與者,可使用數位形式定義承諾並且執行協議。

智能合約與區塊鏈

智能合約可以說與區塊鏈技術密不可分,可以想成區塊鏈為智能合約的地基,傳統金融都會仰賴中介機制,確保交易信任與安全,不過區塊鏈採用了分散式帳本技術,使區塊鏈具備了不可竄改特性,因為分散式帳本技術,其原理是讓每個人都能持有一份副本,使帳本難以被竄改,就算被竄改,也可透過副本追溯與還原。

而區塊鏈本身透過了三大要角,來維持其運作機制,分別為區塊、節點與礦工,區塊的功能,主要用於放置交易紀錄資料,並透過加密運算機制,讓礦工進行不斷驗證,並開創新區塊以存放交易紀錄資料,而只要第一名完成驗證運算,取得區塊鏈帳本紀錄權利的礦工,就可以獲得報酬。

節點則為儲存整個區塊鏈資料,越多節點相對也越能夠避免資料遭到竄改,礦工則提供區塊鏈運算支援,目前主流加密貨幣如比特幣、以太幣,採用工作量證明(Proof-of-Work)機制,透過不斷讓電腦計算整條區塊鏈,讓礦工獲取獎勵,才能得以運作,不過以太幣為了解決耗能問題,則推出權益證明(Proof-of-Stake)機制,預計未來將透過持有加密貨幣獲得獎勵,藉此降低能運算對於能源消耗的問題。

當然這一些機制,每個區塊鏈在設計上多半會有些不同而調整,但用區塊鏈作為智能合約的地基,即可發展出一套去中心化金融 DeFi 生態圈,只要將合約寫入區塊中,便可避免合約資料遭竄改,並透過程式串接、嵌套各式各樣的智能合約共同運作。

智能合約 vs 傳統合約

現代的智能合約,是在區塊鏈中訂定合約,而區塊鏈則是一種採用了分散式帳本的去中心化技術,過去人們在訂製合約時,都會需要一個第三方中介機構進行搓合或者介入,如買賣房屋,我們會需要找房屋仲介媒合買賣雙方,接著在移轉資產時,還要經過許多政府機關、銀行貸款等種種程序,執行起來曠日廢時又勞民傷財。

一般如房屋買賣合約中,內容會登載了兩造雙方資訊,還有合約條款,如:須遵循的相關內容,而有的合約會有附加條款,如:收付款條件、漏水保固...等,接著是合約有效期限,雙方簽約後合約便不可任意變動,如需變動,就須將就合約作廢,重新簽立一份新約。

傳統一般合約在執行時,要經過許多人工驗證身分,與確認合約執行狀態,再進行價金移轉,還有跑許多流程、處理各式瑣碎事項,倘若可以自動化這些流程,是不是能節省許多人力物力呢?

而使用智能合約,則允許不用透過在這些第三方機構下,夠安全地進行交易,且這些交易屬於可追蹤、無法逆轉,如此一來,便能夠節省許多時間、金錢交易成本,在便利性上,可以說勝過傳統合約交易模式。

智能合約核心

其實智能合約,之所以智能,是因為它能協助我們執行這些重複又繁瑣的流程,透過程式設計,便能自動執行合約上所登載之履行項目,如時間到自動從帳戶中扣款,倘若扣款失敗,則自動執行扣款失敗通知給買方,如超過五天仍未收到款項,接著自動執行法拍程序...等類似流程都可透過程式自動執行,無須人工介入。

其實智能合約本質,可以當作它是一個電腦程式,透過這個程式,將合約邏輯寫入,並讓它自動執行即可。不過並非任何電腦、或者系統就能執行,畢竟智能合約最重要的,就是認證與不可竄改這件事情,否則隨便就能竄改、簽訂合約後反悔,最後卻毫無保障效力,豈不沒保障?

所以智能合約需要有一個基礎建設,來乘載、自動強制執行合約上程式邏輯,達成合約需求,所以當今的智能合約,多半由區塊鏈這個去中心化平台作為主體,目前龍頭為以太坊,畢竟以太坊在區塊鏈上應用相對發展成熟,且不斷進化,使用以太坊作為智能合約基礎建設,也再合適不過,當然或許過幾年,有其它區塊鏈平台崛起取而代之,成為新智能合約平台霸主也說不定。

智能合約特性

智能合約對於金流整合相對容易,使用目前以太坊內建機制,進行開發智能合約,在收、付款功能上不會有太大問題,也因為是使用以太坊這個區塊鏈,因此不像傳統金流,會需要某些特定主機維持系統運作,智能合約在以太坊區塊鏈上的節點,都可協助合約運作。

不過智能合約在以太坊寫入資料時,因為是寫入區塊鏈中區塊,這個動作會需要消耗以太坊區塊鏈中運算資源,讓礦工協助驗證、寫入資訊,於是以太坊使用了一個名為 GAS 的機制,舉凡交易、執行智能合約、支付儲存費用...等,都會需要用到,才能確保生態圈永續運作。

智能合約運作方式

目前坊間主流智能合約,主要為運作於以太坊為大宗,我們可以想成智能合約是一個達成條件,便會自動強制執行的程式,只是將現實中合約,翻譯成系統可以認得、程式得以執行樣態罷了。

智能合約驗證機制十分單純,主要透過數位簽章即可啟動並完成合約簽署,接著再將兩造雙方驗證完成的合約,寫入去中心化平台中,如以太坊這個區塊鏈內,而只要符合合約內觸發要件,如時間到自動給付利息、還款,後續便會自動執行。

智能合約安全問題

雖然智能合約就發展面來看,是如此美好,不過在便利的背後,也隱藏了風險,由於智能合約以區塊鏈作為底層,因此只要有用到區塊鏈使用者,都可以看見合約存在,萬一智能合約在撰寫上,程式若不幸有安全漏洞,便會讓大家看見,如無法於第一時間修補,便使攻擊者有機可乘。

過去就曾經發生一個名為 The DAO 去中心化組織,於 2016 年六月遭到攻擊,並被盜取價值將近五千萬美元的以太幣,而 2018 年四月 BeautyChain 智能合約出現重大漏洞,使 BitEclipse 價值大幅下跌至趨近於零,還有不少智能合約與程式開發上所產生一些問題與漏洞造成損失的案例。

這些種種,肇因於目前智能合約相對發展時間較短,因此尚有一些不足,且專業人員相對匱乏,不過只要假以時日,整個生態系漸漸成長茁壯、成熟起來,勢必相關應用會更加普及、容易上手,不再是科技狂熱者所專屬的應用。

Top comments (0)