比特幣持續創高後的區塊鏈思維:DeFi/智慧合約(Smart Contract)的發展
作者:何孟翰 精誠資訊/恆逸教育訓練中心資深講師
前言
加密貨幣對大眾的影響已經不只是交易者對價格的關注了,除了您可能發現在momo、 PChome上的最新顯卡都是缺貨或待貨,到發現光華商廠這些顯卡不是翻倍加價賣,就是要搭載整機配合其它高毛利的產品才能用理想價格買到,到有些廠商會協助客戶客製化礦機、礦筆電,甚至有些筆電的售後服務可以開始使用這些虛擬貨幣來支付,您會發現虛擬貨幣對人們的影響已經愈來愈深入。
近期加密貨幣在特斯拉宣佈能夠使用比特幣(BTC)買自家的車之後又有一波漲勢,因此在2021年3月13日比特幣創下了波段新高,1BTC等於61283 USD,同時全美國第二大的美國銀行(Bank of America)也在相近的時刻(3月17日)發佈報告(Bitcoin’s Dirty Little Secret)<註1>,認為比特幣交易慢又不環保(因為耗電量非常高),對比特幣有些批判,但卻非常樂觀看待DeFi(Decentralized Finance)的領域發展。
DeFi的領域
關於美國銀行看待比特幣價格,能耗和易被操縱性不在本文的討論範圍,然而他們認為DeFi更值得關注,並且更有破壞性,目前的市值約只有350億USD,所以有很大的發展空間。
DeFi(Decentralized Finance)是一種可以在公開去中心化的區塊鏈上面直接面向大眾來使用的金融商品,而不是透過一個中介的媒介如銀行的這種概念。因為去中心化的原因,在原本銀行帳戶的控管情境中是使用政府所發佈的身份證字號或者社會安全認證碼,這些在DeFi上並不被需要,因此DeFi創造了一個簡單的情境:
設計一個系統,軟體能在區塊鏈上註記,讓買賣和租借之間的關係都能夠直接的端點到端點之間執行,因此交易不需要透過傳統的公司或者是仲介來執行,而是透過設計嚴謹的軟體來做為中介層。
當然要達到去中心化有許多技術和協定必須要使用在這上面,例如開放原始碼的現有加解密軟體和區塊鏈,再加上一些協定來達到買賣租借之間的協定,也就是智慧合約(Smart Contract)。
Smart Contract智慧合約
Smart contract可以想像是佈建在區塊鏈上的程式碼,因為區塊鏈上的程式碼可以被檢視,所以可以視為是公開透明,並且由於區塊鏈原生的分散記帳特性,也天生具有不可塗改的特性(雖然佈建上的是二進位碼,並且不是那麼容易的被人們直接讀取)。
智慧合約由開發團隊開發完成之後,會發送一筆交易至區塊鏈,由於去中心化的特質,礦工是分散在世界各地運作的,這些分散式的礦工看到這份合約後,就會部署到區塊鏈上。被部署之後會產生一個合約地址,會永久儲存於區塊鏈之中。以目前主流的Ethereum(以太坊)而言,開發者會使用Solidity開發原始碼,編譯成bytecode之後才能夠部署在Ethereum上,因此以太坊上的合約都是以bytecode的方式存在。
智慧合約的地址
一般區塊鏈的地址是一段公開的地址,由非對稱式加解密演算法(Public Key Cryptography)的公開鍵生成而來,一般以太坊的個人帳戶稱為(Externally Owned Account)與合約帳戶(Contract Account)都是這樣的地址。只是一般個人帳戶可以主動發送交易,而這種合約帳戶是被創建的,因此智慧合約的發動必須由個人帳戶傳送一筆接收地址為智慧合約地址的交易,讓合約被主動觸發,合約才能夠被執行。
智慧合約的發展性
由於智慧合約設計的完整性,因此許多DeFi的分散式商業行為都能夠在上面完成,然而許多時候只拘泥於該區塊鏈的原生幣(例如Ethereum主要的貨幣就是ETC,歷史高價是在30-40 USD)並不是一個太有彈性的選擇,因此在智慧合約中可以透過ERC-20的協定來發佈自己的代幣,如同以往到遊樂中心您可以拿一般流通的貨幣兌換成電玩的代幣進行遊戲一樣。
ERC-20像是比特幣或其它的加密貨幣一樣,是區塊鏈為基礎的數位資產,可以傳送與接收,最大的好處是不需要為了運行特定貨幣而重新創建一個區塊鏈,而能夠在現有的區塊鏈上藉著撰寫ERC-20規範的智慧合約,而能夠在既有的框架上創建自己的代幣,進而進行DeFi的分散式商業行為。
智慧合約的落地
上述的情境並不是遙不可期,反而以一種比您我想像更快速的方式接近所有人。因為雖然DeFi背後的區塊鏈集合了許多複雜的分散式技術、加密技術、資安技術、網路技術,然而現在已經有許多工具能夠串起區塊鏈與智慧合約,讓DeFi的情境可以在網頁上透過分散式應用程式DApp(distributed application)來實現。
因此如果有興趣,您可以參考加密錢包,這是一個網頁或手機端的應用程式,可以透過這個元件直接和區塊鏈溝通,一個最普及的實作如同MetaMask的網頁Plug-in與App,搭配remix的網頁編輯器或者是trufflesuite的框架,就可以在本地端輕鬆的透過Solidity 進行智慧合約的開發,並且使用ganache、ganache-cli(以前叫作testrpc)直覺並且快速的進行智慧合約的部署(Deploymeny),再搭配以JavaScript做為語言的 Mocha、chai等等的框架進行完整、直接的單元與功能性測試(以往智慧合約的JavaScript呼叫確實有一點繁複並且不易維護,Solidity也不是那麼明確嚴謹,然而這一兩年的新版本,不管是在Solidity 的語言或者是函式庫的呼叫上都有長足並且明確的進步)。
最後當有了穩固的智慧合約,也可以再透過Web3延伸到網頁端,由於這些技術都是非常新的網頁技術,因此您也可以搭配像是Babel、Webpack這些成熟的工具,再選取自己喜歡的前端框架如React、Vue.js或者是Angular來完成全棧式(Full Stack)的去中心化分散式應用程式的開發。
總結
由於區塊鏈原生具有加密與不可塗改的特性,對於需要嚴謹紀錄的應用,例如轉帳交易紀錄,或是食品如同咖啡豆或是鮮乳的產地履歷紀錄等等,區塊鏈可以直觀的達成原先企業需要想盡辦法達成的加密保證性。同時由於區塊鏈使用非對稱式加解密的特性,所以對於在上面所保持的數位資產也能夠有非常好的權限控管,因此像是病患、醫院與保險公司對於病歷的交換,或是不同的公司、不同的組織對於專利或者是特殊技術的授權或者是控管,甚至是政府或者是企業不同單位對於預算執行的用途與監控,都是區塊鏈可以應用的場景,未來相關領域積極使用區塊鏈並且應用去中心化技術的趨勢也將與日俱增。
學習推薦
【BCIC】區塊鏈與智慧合約實戰演練【BCFS】區塊鏈與DApp去中心化應用程式Full Stack全棧開發實戰演練
【CBP】IIB Council區塊鏈專家認證課程
<註1>參考網頁https://www.coindesk.com/bank-of-america-defi-potentially-more-disruptive-than-bitcoin
<註2>各式加密貨幣波動大,本文僅為趨勢整理分享,無任何投資推薦買賣之意,請自行留意投資風險。
<註2>各式加密貨幣波動大,本文僅為趨勢整理分享,無任何投資推薦買賣之意,請自行留意投資風險。
0 意見:
張貼留言