購物車

運用智能合約提升業務優勢? 一文拆解智能合約的基礎、應用及風險

2022-10-31
智能合約是什麼

「智能合約」這個詞這些年可謂相當火熱。那智能合約到底是什麼?是真的神乎其神,還是有被誇大之嫌,這篇文章就來簡要探討一下。

智能合約是什麼

智能合約這個名詞,最早是在 1994 年由電腦科學家及密碼學家 Nick Szabo 所提出,其對智能合約的定義是:

ad-banner1

智能合約的目標是為了達到現實生活中常見的「合約」條件(例如支付條款、留置權、保密性,甚至強制執行),最大限度地減少惡意和意外的情況,並最大限度地減少對可信中介的需求。相關的經濟目標包括降低欺詐損失、仲裁和執行成本以及其他交易成本。

淺顯的說「智能合約」就是用一段高度可信的電腦程式,來制定「合約」條款,在達至特定條件時可以不受干擾的執行先前約定的邏輯。

近年來區塊鏈技術的蓬勃發展,為智能合約提供了非常好的發展基礎。區塊鏈的透明性,分散性,不可更改性等特性,正好滿足了一個可信的「智能合約」存在基礎。

運作方式

智能合約中「智能」二字可能聽上去有點虛幻。其實「智能合約」就是一段部署到區塊鏈網路上的一段程式碼,區塊鏈提供了一個類似伺服器的「程式運行環境」以供智能合約執行,智能合約執行後,將運行結果反饋到區塊鏈上。從這個層面上來講,「智能合約」和傳統的程式碼並無區別。其基本構成,也就是一系列的條件判斷和數據紀錄,例如:

  • 如果當前時間是 2025 年,則這個地址可以獲得 2 ETH;
  • 如果獲得超過兩個被授權人士允許,則用戶可以提取 2 ETH

等等!

「智能合約」和傳統的程式碼的較為不同之處在於運行環境不一樣。 傳統的程式碼大多運行在中心化的伺服器中,而智能合約則是運行在去中心化的區塊鏈上。而且基於區塊鏈的不可更改性,發佈到區塊鏈上的程式碼本身不可更改(程式碼不能更改不等於程式邏輯不能更改,下文會具體分析),合約執行的過程也相對透明,任何人都可以看到和驗證合約執行結果。

實際應用

基於區塊鏈的透明性,分散性,不可更改等特性,智能合約可以被廣泛運用在眾多有著「去中心化」,「記賬」,「數據紀錄」,「邏輯判斷」需求的領域。例如金融保險、醫療保健、供應鏈、博彩、物聯網、政務處理等等行業或領域。

在金融行業, 因為銀行的一些金融活動,例如匯款等操作,在現時的銀行系統中是一個涉及到多系統,多機構的冗長過程,參與的機構眾多,各方都需要付出時間和金錢成本。利用智能合約的技術,則可以提供更快捷,透明,點對點的資金流動,大大提升金融流動效率。因此,區塊鏈和智能合約在金融行業的應用也越來越多,大到國家發行的數字人民幣,小到去中心化交易系等等,智能合約技術在金融領域得到了非常廣泛的應用。

不僅僅是金融行業,在其他領域,例如物流行業,智能合約也有著極大的「用武之地」。早在 2018 年,IT 巨頭 IBM Corp. 和全球航運公司 AP Moller-Maersk Group 推出名為 TradeLens 的基於區塊鏈創建的供應跟踪和供應鏈管理平台,而智能合約則在系統中發揮的作用至關重要。經過大量測試證明,該技術的使用能夠有效減少文書工作的成本,減少運輸時間,大大降低運營成本。

風險和局限

儘管智能合約有很好的運用前景,但智能合約的風險和局限我們也要同樣重視。

首先並不是所有場景都適合智能合約,儘管智能合約的確和普通程式一樣可以編寫業務邏輯,但是基於區塊鏈的諸多限制和特性,無論是功能性還是運行效能,智能合約尚且不能和傳統應用程式相提並論。因此,我們應該只在適合的場景下才採用智能合約技術,而不是將智能合約「神話化」,認為智能合約可以解決所有問題。

另外,智能合約編寫漏洞所導致的安全問題,也是採用智能合約時需要考量的重點。因為智能合約的邏輯,如果沒有做出特別處理,一旦發佈上區塊鏈,則無法做出程式碼層面的更改,因此如果沒有經過嚴謹測試,合約程式中的漏洞將會導致不可挽回的後果。 因為智能合約代碼疏漏導致的損失層出不窮,例如 Akutar NFT 的智能合約,就是因為將 bidIndex 錯誤的寫為totalBids 這樣一個超級簡單的人為錯誤,而導致高達 11,539 ETH,當時價值 2 億港元的資金永久封鎖在了智能合約中。

很多人都說智能合約一經發佈則不可更改程式碼或阻止程式執行,這個說法其實也並不準確。的確,智能合約的程式碼本身一經發佈則不可更改,但是一個完整的智能合約不僅僅包括程式碼本身,還有一系列的狀態變數 (state variable),這些狀態變數可以透過調用預先寫好的程式邏輯而被更改, 而且,因為狀態變數的改變,智能合約完全可以執行截然不同的邏輯。 另外現時智能合約可以透過代理合約的方式,做到「邏輯更新」動作,即「可升級智能合約」。

另外,目前有很多文章指出智能合約會自動執行,這個說法也有待斟酌。直到目前為止,基於 EVM 的區塊鏈上的智能合約只有在被調用時才會被執行。所謂「調用」,可以是一個使用者錢包,也可以是其他的智能合約,但任何調用的最初始觸發總是由使用者錢包所產生。換句話說,只要沒有人主動調用,智能合約就不會運行。儘管區塊鏈社區有類似智能合約自動運行的提案,但目前並沒有實際的標準和實現。所以對於有關「合約部署後就會自動執行」的說法並不完全準確。

結語

智能合約作為區塊鏈技術上的一大技術基礎,有著廣闊的應用前景。許多傳統行業的應用,或多或少可以使用智能合約和區塊鏈技術來簡化流程,節省成本。 隨著整個區塊鏈行業的快速發展,智能合約技術亦會不斷提升,從而逐步擴展更多應用場景。在 2022 年的今天,各大公司機構,甚至政府部門,都在逐漸研究運用區塊鏈和智能合約相關技術的可行性。 盡早踏足區塊鏈和智能合約領域,勢必會在 web 3.0 發展如火如荼的當下搶佔先機,助其業務發展。

 

Frank Shi

UD區塊鏈技術主管

.擁有深入層面區塊鏈技術知識

.致力研究及參與區塊鏈項目開發及Web3 應用未來發展