logo

新手教學

投資理財

區塊百科

賽道專題

幣種分析

優惠福利

市場週報

活動優惠搜尋

NEW EVENT

最新活動

幣安

web3 community

加入每日幣研 Telegram 群組,即時掌握幣圈最新資訊

HOT ARTICLES

熱門文章

    什麼是智能合約?與加密貨幣的關係?

    東東

    2023/06/12

    只要看過一些加密貨幣相關領域的文章,一定常常看到一個詞:智能合約 (Smart Contract)。

    智能合約是什麼意思?英文直譯是聰明的合約,是這樣嗎?

    智能合約:由程式自動執行的合約

    智能合約最直接的解釋,就是當只需要情況符合制定合約條件,以及把這些條件寫好程式並布置在系統環境裡,接著就會由系統自動執行的合法。

    不需要經過人,合約條件被制定之後,再由程式自動判定是否符合條件,如果是的話。一旦條件符合由程式自動執行。

    舉例來說:

    1.當我們在一台自動販賣機買飲料,投進 50 元硬幣,選擇了 30 元的飲料,系統自動判定我們付的款大於我們選擇的飲料價格,於是放行讓飲料被投下來,同時找錢給我們。

    2.當我們到無人化管理採用車牌掃描的停車場停車,要離開的時候,系統掃描車牌,偵測到我們共有多少停車費要繳,是否已經完成繳交?判定已完成就打開閘門讓我們出去,判定尚未繳費就不打開閘門,並在顯示器上顯示繳費提醒。

    當我們在一台自動販賣機買飲料,投進 50 元硬幣,選擇了 30 元的飲料,系統自動判定我們付的款大於我們選擇的飲料價格,於是放行讓飲料被投下來,同時找錢給我們。

    或是當我們到無人化管理採用車牌掃描的停車場停車,要離開的時候,系統掃描車牌,偵測到我們共有多少停車費要繳,是否已經完成繳交?判定已完成就打開閘門讓我們出去,判定尚未繳費就不打開閘門,並在顯示器上顯示繳費提醒。

    這兩個案例比較簡單,實際上會使用智能合約的情況更複雜,牽涉到更複雜的條件認定和資源調用。

    智能合約有什麼用?可以用在哪些地方?

    任何需要判定、驗證、執行的事,如果不想用人力來做,都可能是智能合約可以派上用場的時候。

    舉幾個生活中會遇到的情況為例:

    智能合約用途 一、保險理賠

    購買保險時,保險條款中會註明理賠條件和理賠金額。現階段的理賠基本上是由人力操作,理賠事件發生時由當事人準備相關證明,向保險公司申請理賠,保險公司審核是否符合條件,然後撥款理賠。

    理賠是需要判定、驗證、執行的事情。如果有智能合約,當我們在醫院被診斷出某些疾病,或是警察局已經建立車禍報案,不須當事人申請理賠,條件一成立就觸發合約,自動判定並驗證與執行,理賠金額自動匯款到當事人帳戶。

    智能合約用途 二、銀行貸款

    向銀行申請貸款時,銀行會審核我們的條件,判定我們的資格,驗證我們的資料,依據條件決定貸款額度和還款條件,現階段也是多由人力操作。

    這也是需要判定、驗證、執行的事情。假設由智能合約來操作,系統根據我們提供的相關資料,自動判定可以提供的貸款額度和條件,接著當我們完成抵押設定,自動驗證相關資料,通過後自動執行貸款撥款,中間可以省下大量人力與人為失誤可能。

    智能合約用途 三、NFT 智能合約鑄造

    幣圈在前一兩年最火紅的議題之一就是 NFT,先不討論 NFT 到底是什麼又為什麼紅,簡單描述 NFT 鑄造為什麼會需要智能合約。

    熱門項目發行的 NFT 非常搶手,完全供不應求,於是項目方通常會設定一些條件,符合條件的才有鑄造 NFT 的資格。通常是用所謂白名單的方式,符合條件就可以被加入白名單,名單中的錢包地址才可以鑄造 NFT。

    又是一個需要判定、驗證、執行的情況,判定你是否在白名單上?你的錢包中是否有足夠鑄造 NFT 的費用?都符合才執行。

    為什麼智能合約跟區塊鏈有關?

    智能合約的概念很早以前就有人提出,大約在 90 年代由 Nick Szabo 所提出,只是當時的環境條件還做不到,直到比特幣誕生,區塊鏈的概念出現。

    如果只是非常簡單的任務,例如前述的自動販賣機出飲料及找錢或停車場開關閘門,這不會有太多問題。但如果是更複雜的合約,牽涉到更多方,需要驗證多方資訊,調動多種資源的時候,要讓程式自動執行就會有個大問題,就是誰也不信任誰。

    保險公司不信任申請人提供的資料,於是需要人工審核,銀行不信任申請人提供的證明,於是需要人工審核。不同組織之間彼此不一定信任彼此提供的資料或訊息,就需要花費大量時間審核。

    信任是個大問題,要讓程式自動執行合約並不難,難的是如何在不信任彼此的情況下讓程式自動執行?

    智能合約優點:排除人手操作的「信任」風險

    這就是「去信任化」的問題。如何讓參與的各方相互之間不需要信任依然可以運作?

    區塊鏈的三大特性:去中心化、公開透明、不可竄改,一個運作良好的區塊鏈,本身就可以提供信任,當信任由區塊鏈本身提供,就能做到去信任化,這也是區塊鏈技術的重大價值所在。不需要信任彼此,信任這條鏈的運作機制即可。

    雖然說比特幣是第一條成功的區塊鏈網路,但當時的比特幣區塊鏈還不具備執行智能合約的條件,直到以太坊出現。

    第一條可以運行智能合約的區塊鏈:以太坊 Ethereum

    比特幣網路的設計,主要是為了記帳,記比特幣的帳。以太坊則不一樣,它一開始就是為了讓人在上面運作智能合約而設計的區塊鏈。

    突然間真的可以運行智能合約了,人們開始摸索這到底可以拿來幹嘛用,而後第一個火爆應用出現,也孕育了 2017 那年的幣圈大牛市,這個火爆的智能合約應用就是 ICO。

    延伸閱讀:什麼是 ICO 初次代幣發行

    雖然許多當時的知名項目如今已經殞落,但這確實開啟了加密貨幣領域野蠻生長的時代。像以太坊這種主要用來運作智能合約的區塊鏈,人們稱它為平台公鏈,也有人直接簡稱公鏈,這類平台公鏈後來愈來愈多,百花齊放,不只有跟以太坊一樣的 Layer 1 公鏈,也有後來因應擴容需求而生的 Layer 2 公鏈。

    先不用搞懂差異也沒關係,先知道平台公鏈指的就是設計來運作智能合約的區塊鏈就好。有如此多的公鏈蓬勃發展,也意味著人們對於智能合約的需求龐大。

    智能合約的優缺點

    透過區塊鏈的技術,來做到去信任化,讓智能合約得以順利運行,這樣的智能合約有什麼優缺點呢?

    智能合約的優點:安全、高效、可客製化

    區塊鏈是去中心化運作的一種網路,運作良好的區塊鏈本身安全性就很高,又透過程式自動執行減少人力消耗,合約執行效率也很高,同時智能合約就是由程式碼構成,可以完全依據需求客製化設計與修改。

    智能合約的缺點:門檻較高、不能逆轉

    也因為區塊鏈是去中心化的運作,跟中心化方式相比,有時候的進入門檻更高,維護成本也更高,要準備的資源更多,跟直接用人力執行相比,需要有人去寫出對應的程式碼,整體的門檻較高。

    雖然智能合約的程式可以客製化修改,但那畢竟是針對未來,針對已經發生的事情,程式怎麼寫就是怎麼做,這是不可逆的。不能在事後講人情、套關係,沒有事後修改的彈性。

    儘管智能合約似乎很智能,但確實不是所有事情都適合透過智能合約來處理。

    智能合約範例

    最後的最後,來一段簡短的智能合約範例示意,希望能對智能合約有更立體的了解。但這畢竟是寫給非程式背景的人看的,只能算是個智能合約範例的示意圖。

    智能合約範例

    Solidity 是一種用來開發以太坊上 (EVM 上) 智能合約的程式語言,這段範例示意來自 ethereum / solidity Github

    這段程式中的第一行說的是這段程式碼是根據 GPL 版本 3.0,第二行說的是指定由 0.4.16 或更高版本的 Solidity 語言來撰寫,但排除版本 0.9.0。

    程式實際寫起來當然不太可能這麼短,更實際的情況例如以下這張圖,這段合約寫的創建與發送最基本形式的加密貨幣,如果是更複雜的功能寫起來就會更長。

    智能合約範例

    對於非程式背景的人來說要學習與理解這些並不容易,在區塊鏈的發展中,開源文化一直是重要的推進力量,目前有許多項目都把自己的程式碼開源在 Github 網站上,裏頭也有許多智能合約教學與討論,如果有相關需求的建議可以好好研究一下這個網站。

    智能合約詐騙風險

    如今,智能合約通常是指運作在區塊鏈上的一套程序或應用,也因為幣圈還在一個

    相對早期的階段,整體環境還在發展中,相關的規範也還不夠成熟,這領域充斥著大量詐騙。

    詐騙你的不是智能合約,而是背後那個寫出智能合約的人。

    目前常見的幾種詐騙方式,基本上可以統整為一種:假的!

    用假的網站、客服、服務騙你,騙你的帳號密碼,騙你的私鑰或助記詞,跟智能合約相關的詐騙方式,就是騙你的合約授權。

    當我們使用例如錢包等工具,在區塊鏈上做相關操作時,需要授權智能合約去操作你錢包中的資產。詐騙方式就是利用假的網站,或是假的幣,讓你誤以為那是真的,然後授權對方的合約去操作你錢包中的加密貨幣。

    針對這種詐騙的破解方式,就是務必小心確認是否來到真的網站,授權合約時仔細檢查授權內容是否有問題,遇到任何新項目,多利用 coinmarketcap 或是 coingecko 網站反覆確認真偽。

    或另外一種情況是,它本來是真的,但後來被駭了變成假的。假設我們過去曾經授權過這個智能合約,因為現在它已被惡意的人給掌握,就可能會造成資產損失。

    針對這種情況的破解方式,則是記得要去移除授權,把過去曾經給過這個智能合約的授權給移除,對方就沒有辦法動用你錢包中的資產了。

    延伸閱讀:撤銷智能合約授權|如何在 Metamask 取消授權?| 工具介紹

    最後總結:所以智能合約到底是什麼?有什麼用?

    記得這幾句話就好:

    智能合約是由程式自動執行的合約,通常是指運作在區塊鏈上的程序或應用程式,由區塊鏈的運作機制來提供安全性,解決信任問題。智能合約有優點也有缺點,並不是所有東西都適合用智能合約來運作。

    而對於幣圈中的你來說,切記要小心詐騙,不要授權給錯誤的智能合約去操作你錢包中的資產喔~

    加密貨幣入門教學系列




    延伸閱讀:

    【ETH】以太坊/以太幣新手入門,2.0四大更新技術看未來前景

    DApp是什麼|從3個方向理解DApp,我也能自行開發嗎? - 每日幣研 

    黑暗之手舞動:揭開虛擬貨幣詐騙帝國的幕後操作!

    東東

    加密貨幣愛好者 | 2017 入圈,認為區塊鏈是下個世代的網路,期待區塊鏈與加密貨幣普及到日常生活的那一天。

    智能合約:由程式自動執行的合約

    每日幣研 市場週報

    每週兩則電子報,全方位從總體經濟、鏈上數據、融資近況、項目動向快速解讀加密貨幣市場

    訂閱週報

    logo

    首頁

    全部文章關於我們聯絡我們網站聲明 隱私權政策

    HK

    TW

    ©台灣每日幣研版權所有