logo

新手教學

投資理財

區塊百科

賽道專題

幣種分析

優惠福利

市場週報

活動優惠搜尋

NEW EVENT

最新活動

OKX

幣安

web3 community

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

HOT ARTICLES

熱門文章

    Featured Articles

    專題精選

    PolitiFi
    BTC
    Meme 迷因幣
    AI
    DeFi
    DePIN

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

      東東

      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 入圈,認為區塊鏈是下個世代的網路,期待區塊鏈與加密貨幣普及到日常生活的那一天。

      RECOMMENDED ARTICLES

      推薦文章

      #

      基礎知識

      #

      區塊鏈轉帳

      #

      新手教學

      加密貨幣怎麼轉帳最便宜?各鏈手續費 Gas Fee 即時查詢教學

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

      每日幣研 市場週報

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

      訂閱週報

      logo

      首頁

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

      HK

      TW

      ©台灣每日幣研版權所有