【新手幣看】淺談智能合約,到底哪裡「智能」,又哪裡「合約」?

還在摸索區塊鏈的初學者們,對於「智能合約」這四個字一定不陌生,從字面上來理解,就是「智能化的合約形式」。但它並沒有你想像的那麼簡單,不過也沒那麼困難,看下去就對了。

前言

其實智能合約這個概念早在 1997 年就被提出來,當時由技術專家尼克薩博 ( Nick Szabo ) 提出,他也將之稱為「上帝協議」,他在筆記中寫道:

這是一種由可信任的第三方所控制的完美協議,就如同上帝與眾生同在。所有人都會將記錄發給上帝,上帝計算並返回結果。上帝擁有自由裁量權,沒人可以看到其他人的內容。

簡單來說就是去除掉了中心人的位置,由「去信任化」的第三方來做來收集、處理、傳遞信息。你們可能又會有疑問,怎麼過了這麼久智能合約到現今才被拿出來廣泛討論及使用呢?

智能合約概念

其實智能合約的概念相當簡單,它就好像一個自動化的程序,你輸入 X 經過設定好的智能合約會跑出 Y,用飲料機來比喻,你投入 X=投入10+按下奶茶,Y=飲料機會自動跑出奶茶,就是這麼簡單。

之所以會到現今才漸漸有人使用是因為,剛剛的例子只是一台飲料機,而最初 Nick Szabo 最初的想法是創造一個能讓大家自動化互相轉移價值的軟件,在當時並沒有適合乘載這個軟件的平台,就好比這需要用到「超級無敵大的飲料機」。

接著,由中本聰所提出的白皮書中的概念,區塊鏈誕生了!並且在 2013 由一個 13 歲的天才—Vitalik Buterin 提出了新一代的區塊鏈,人稱 V 神的他已以太坊作為智能合約的平台,任何人都能在上面使用智能合約,且以太坊這個大飲料機是由所有人的共識機制組成的去中心化平台。

說到這裡各位可能還沒辦法理解區塊鏈對智能合約的重要,簡單的介紹幾個點:

  1. 「不可竄改」,智能合約部署上區塊鏈沒有被改動的風險,能維持合約的公正性。
  2. 「透明性」,在鏈上的資料都是公開的,合約參與者可自己審查代碼是否有問題。
  3. 「自動化」,區塊鏈中是由礦工來運行,一般情況下,執行合約的效力是絕對的。
  4. 「去中心化」,正是區塊鏈所導出的這個概念,讓智能合約能夠在沒有任何外力下,做到去除信任。

智能合約應用

目前已知的應用在相當多的領域使用,例如金融貸款、管理系統、銀行系統、保險、房地產及物聯網等。甚至遊戲也會使用到智能合約,想像一下你喜歡玩賭博遊戲,你是否偶爾會覺得遊戲公司都私底下作弊騙錢呢?有了透明性的支援,這個問題也就迎刃而解。

另外並不是去中化機構才能使用智能合約,像銀行、電商這種中心機構,也能夠使用來簡化繁雜的程序,不僅如此,加入了區塊鏈的元素還能做到跨系統之間的整合,資料透過區塊鏈上鏈,以及透過智能合約來跑程序。例如:跟銀行借錢,資料 = 你的戶頭金額;智能合約 = 銀行審核、匯款。

面臨的困境

不同的智能合約能夠運用到簡單到複雜的例子中,如下圖:

但我們剛也提到了當一開始的合約程式碼設定好了,就沒有辦法做更改,那假如最一開始輸入的 X 是錯誤的呢,假設一瓶奶茶變為5元該怎麼辦?

這裡不得不提到何謂「 Oracle」,如果說區塊鏈是一座孤島,因為在上面的數據沒法與現實數據交流,那智能合約就是通往孤島的高速公路,而 Oracle 則是那連接上公速公路的交流道,讓平面道路的車子能夠通行。

總結來說,智能合約始終來自於人,也是必須使用手動輸入,除非哪天AI取代了人類(希望不要有那天),所以目前避免輸入X產生錯誤的問題還正在被解決中,也有相關的項目是在做這塊的:ChainLinnk. 有機會再來跟大家做介紹。

衍伸閱讀


立即加入獲得最完整的金融科技資訊、區塊鏈新知、業界實例!