區(qū)塊鏈的本質是什么為什么企業(yè)需要用區(qū)塊鏈
我先講重點:目前很多企業(yè)/組織提出的區(qū)塊鏈應用,都不需要區(qū)塊鏈,而且不用區(qū)塊鏈可能還運作得更好。
這不是危言聳聽,在真正理解區(qū)塊鏈技術的人眼里,很多應用根本就是為了區(qū)塊鏈而區(qū)塊鏈。
那他們?yōu)槭裁匆脜^(qū)塊鏈?因為用區(qū)塊鏈就跟「創(chuàng)新」、「FinTech」等Buzzword 產生連結,瞬間潮度大增。說來可笑,區(qū)塊鏈現在對企業(yè)的貢獻更多是行銷曝光,而非實質意義上的技術創(chuàng)新。
如果目的是為了VC 眼中的估值或是媒體曝光,那用區(qū)塊鏈當然沒問題,但問題是,很多企業(yè)的決策者會被這些應用誤導,而媒體本身也沒有足夠的專業(yè)素養(yǎng)去辨別這些「區(qū)塊鏈假應用」,而對其大書特書,久而久之就越來越多奇怪的區(qū)塊鏈應用出現。
現在整個產業(yè)的當務之急,是讓企業(yè)的決策者及開發(fā)者能夠正確理解區(qū)塊鏈的價值,把區(qū)塊鏈用對地方,這正是筆者撰文的用意。
區(qū)塊鏈的本質是什么?
區(qū)塊鏈的本質是多個成員共同維護的協作型資料庫系統,比起中心化的資料庫,區(qū)塊鏈在寫入資料時,至少多了三個步驟:
· 決定由誰來寫入資料
· 把新增的資料段分給大家(廣播區(qū)塊)
· 運行共識協議,確保大家的資料庫都是一致的
就因為多了這三個步驟,在同樣的運算資源跟網路頻寬的狀況下,區(qū)塊鏈不可能比中心化的資料庫有效率。
相較中心化資料庫,區(qū)塊鏈是一種緩慢、無效率、計算上昂貴的資料庫。
如果區(qū)塊鏈注定比較慢,那為什么還這么多人討論它?原因在于,在某些應用場景中,用這種去中心化的資料庫可以解決一些信任或是資訊傳遞效率的問題。本質上,區(qū)塊鏈就是一種用「技術上的無效率」去換取「業(yè)務場景的效率」的技術。
乍看之下很難理解,我舉個例子:
假設你現在要從臺灣匯1000 美金到紐約。臺灣銀行跟紐約銀行存放的美金都是一樣的東西——都是數位型態(tài)的美金,所以理論上雙方只要把銀行帳本對一下,一邊扣1000,一邊加1000,再扣除跨國轉帳所需要的手續(xù)費,交易就結束了。
聽起來很容易,但在真實世界中狀況遠比這更復雜,由于匯款方跟收匯方的銀行的帳本往往不直接相連,我們必須仰賴SWIFT 協議透過中轉行把錢轉到指定銀行的戶頭,如下圖所示:
中轉行當然不會免費幫你做事,國際電匯每中轉一次,中轉行就需要收一次手續(xù)費,除此之外還有清算對帳的程序要走,所以即便我們身處于如此數位化的時代,跨國轉帳一直都是一件滿麻煩的事情。
一次跨國電匯平均需支付10~30 美金,要等1~3 個工作天才會真的到帳
現在我們先把所有法律跟政治問題全部擺一邊,假設現在主流貨幣不是美金而是比特幣,比特幣跨國轉帳需要多少時間& 手續(xù)費呢?
大部分的狀況下,比特幣轉帳手續(xù)費都低于1 美金,而且10 分鐘就能到帳(要安全一點就等1 小時)
比特幣是古典公鏈的代表,其共識算法是頑固到不能再頑固的PoW,可以說是最慢、最沒有效率的區(qū)塊鏈了,但在跨國匯款的情境下,依然比SWIFT 協議快上不只一個level。
這就是一個典型用「技術上的無效率」換取「業(yè)務場景的效率」的例子,因為區(qū)塊鏈的共識算法,本質上就是一種自動化對帳的程序,在技術上是比較慢沒錯,但比起銀行跨國匯款所需要牽涉到的繁瑣環(huán)節(jié)(敲匯、手動資料Key In、對帳)還是快多了。
當我們用區(qū)塊鏈的時候,一定要先捫心自問,我們到底用「技術上的無效率」到底換取了什么東西,如果一個常規(guī)的中心化資料庫,一樣也能夠滿足應用場景的需求,那我們就不需要區(qū)塊鏈。
接下來筆者想探討兩個區(qū)塊鏈常常被誤解的地方:
發(fā)幣只能用區(qū)塊鏈
筆者遇過不少企業(yè)主都想拿區(qū)塊鏈做點事,而他們不約而同都在商業(yè)模式里面加上了「XX幣」,期望自建一個閉環(huán)經濟,但奇怪的是,在區(qū)塊鏈被廣泛討論之前,他們好像就想不到這種模式,仿佛沒有區(qū)塊鏈就不能發(fā)幣一樣。
本質上,所謂的「幣」不過是被儲存在資料庫的字串,這個資料庫可以是中心化資料庫,也可以是去中心化的區(qū)塊鏈,這個字串不會因為在區(qū)塊鏈上就突然自帶價值,若中心化的點數發(fā)行機構足以被信任,那用區(qū)塊鏈發(fā)幣意義就不大。
用區(qū)塊鏈(公鏈)發(fā)幣的好處:
1. 透明公平:幣的運作邏輯(如總量限制、轉帳條件、增發(fā)條件、鎖倉期等等)可被公開審計。
2. 流動性高:天生自帶全球流動性(global liquidity),因為公鏈本就是公開大帳本,用去中心化交易所即可與全世界的公鏈用戶做P2P 交易。
3. 穩(wěn)定:如果發(fā)幣的公司倒了,幣還是繼續(xù)存在(但有沒有價值就是另一回事了)
4. 方便:比起寫一個中心化的點數系統,有時候直接在公鏈上直接用公版的智能合約發(fā)幣可能會比較方便(如ERC20),畢竟已經有各種conventional 的函式可以直接用了。
5. 互操作性:發(fā)在同一條公鏈上的幣,可以透過智能合約實現一些互操作性,譬如持有某A 幣一定數量以上的用戶,在用B 幣跟某智能合約互動時可以有一些優(yōu)惠。
但缺點也很明顯:
1. 交易速度慢:區(qū)塊鏈不可能比中心化系統快,在以太坊轉帳至少要等3分鐘才會被確認,不過用DEXON 就沒這個問題了, DEXON 可以做到2 秒內到帳(偷打廣告)。
2. 用戶門檻高:對一般大眾來說,區(qū)塊鏈的進入門檻非常高,用戶要下載錢包、學會管理自己的私鑰、知道地址是啥、知道什么是區(qū)塊確認數、知道怎么支付手續(xù)費等等,這些有的沒的規(guī)則,就連非常tool smart 的網路重度用戶都需要時間學習。
所以說,除非:
1. 你的用戶很在乎幣的運作邏輯會不會被亂改(但這似乎也意味著你根本不值得被信任?)
2. 點數有強烈的交易需求且需要全球流動性
3. 你家工程師懶得寫一套點數系統(這可能不是個理由)
4. 點數需要跟其他點數有互操作性(前提是這些點數要在同條鏈上)
不然還是別用區(qū)塊鏈發(fā)幣了,你會把用戶搞死的。
不過如果你的目的是募資,那就另當別論了,因為無知的大眾總是會覺得區(qū)塊鏈的幣就是潮,就是想買。
智能合約好像很神?
筆者在看一些區(qū)塊鏈的應用時,往往會看到「我們可以透過智能合約,實現XXX 自動化功能」類似的字眼,疑?難道不是智能合約就不能自動化嗎?
其實絕大多數的人對智能合約的理解是錯誤的,大部分的智能合約既不智能,也不是合約。
本質上,智能合約就是「被部署在區(qū)塊鏈上的程式」,跟一般程式最大的差別,在于智能合約會被每個全節(jié)點儲存并執(zhí)行,智能合約被觸發(fā)執(zhí)行完畢后,其執(zhí)行的結果(稱為state)會被存到區(qū)塊鏈上。你可以把它想像成大家一起做一模一樣的事情,得到一模一樣的結果,然后存起來,就這么簡單。
對于公鏈來說,智能合約比較接近“persistant script”,是一種一旦條件被觸發(fā),就會強制執(zhí)行的代碼。由于部署在去中心化的區(qū)塊鏈上,代碼是透明公開的,且一但部署,這段代碼就永久存在在區(qū)塊鏈上了,理論上無人能take down 這段代碼(除非hard fork) 。
對于聯盟鏈或私鏈來說,智能合約比較接近大家約定成俗做某件事情的一種慣例,說白了就是一種形式標準化的作業(yè)流程,只是用程式去實現它,好處是降低溝通成本,讓大家可以在一個封閉的環(huán)境內用同樣的協定處理特定業(yè)務,而且處理的結果是同步給大家知道的。
以上兩種「智能合約」,都不一定是真的合約,因為跟合約互動的人不見得有什么權利義務,其執(zhí)行的結果也不見得有法律保障,用合約一詞去概括解釋區(qū)塊鏈上的程式,完全就是一種定義上的誤導。連以太坊創(chuàng)辦人V 神都曾經公開懺悔,他很后悔當初采用智能合約這個詞:
所以說到底,智能合約根本沒這么神奇,中心化程式一樣也可以做到自動化,智能合約是為了達成某種特殊手段才會需要使用的程式,大家清醒點,好嗎?
區(qū)塊鏈技術的本質以及常被誤解的用途,在此篇文章筆者將嘗試提供一個泛用、易懂的框架,讓企業(yè)決策者可以判斷應用場景是否需要導入區(qū)塊鏈。其實國外已經有不少學者提出了區(qū)塊鏈的應用評估框架,像是美國標準技術研究院(NIST)就在其區(qū)塊鏈技術回顧的論文中(第42頁)提出了以下的框架:
NIST 的區(qū)塊鏈評估應用框架
其他學者提出的框架都跟NIST的大同小異,這當中NIST的框架雖然較為全面,但仍然有其局限,理由在于,這些框架都偏向把區(qū)塊鏈當作協作型資料庫(CollaboraTIve Database),但事實上區(qū)塊鏈還有其他的用途,像是博弈類DApp利用公鏈智能合約開源的特性,解決了線上賭場長久以來的信任問題——莊家可能會操縱隨機數來坑玩家,這種將程式邏輯公開換取信任的應用方式,就完全在以上框架的守備范圍之外。
正因為如此,筆者希望能設計一個包容性更大、更全面的框架給企業(yè)決策者參考。
適合區(qū)塊鏈的應用場景
以筆者研究超過上百個區(qū)塊鏈應用案例的經驗來看,區(qū)塊鏈作為一個共享帳本(Shared-ledger),其用途大致上可分為三個種類:
A. 協作型資料庫(CollaboraTIve Database)
B. 數字資產發(fā)行平臺(Digital Asset Issuing Platform)
C. 公正程式平臺(Honest Program Platform)
協作型資料庫(CollaboraTIve Database)
這個類型的應用適用NIST 的框架,不過NIST 的框架有點太復雜,我把它稍微做了簡化,如果你的應用場景有以下特性,可能就適合用區(qū)塊鏈做協作型資料庫:
1.需要儲存資料
2.有多個資料寫入者
3.沒有適合/可信任的資料儲存者
4.資料需要其他成員查核&審計正確性
5.資料一但被寫入后就不能被刪除或更新
你可能會想,什么樣的應用場景會有以上的特性?
通??缃M織的資訊交換會有這種特性,譬如國際船運就是一個典型有多方參與者(貿易商、海關、港口、物流業(yè)者),且需要頻繁驗證資訊正確性的場景。
假設你是一個貿易商,你想把貨物從臺灣賣到南美洲,因為路途遙遠,所以你花錢找了兩家船運公司來運東西,但問題來了,每家船運公司都有自己的一套追蹤系統,但只看得到自家旗下貨物的運輸狀況,所以你必須不斷打電話、寫Email 到這兩家公司,才能追蹤到貨品的完整運輸狀況。
除此之外,船運公司也需要跟其他組織溝通,譬如港口、海關、陸運業(yè)者等等。船運巨擘Maersk 就曾經估計過,把一個冷藏貨柜從東非運到歐洲需要經手大約30 個人和組織,超過200 次溝通交流才能實現,這些貿易文件處理的相關費用占了實際運輸成本的5 分之1。
這些痛點能用區(qū)塊鏈解嗎?
我們來一一檢視國際海運是否需要區(qū)塊鏈:
1.需要儲存資料
--》打勾,需要有地方能夠存貨物的運輸狀況。
2.有多個資料寫入者
--》打勾,有很多組織需要寫入貨物資料,譬如海關寫入驗貨狀況,海運業(yè)者寫入運輸到哪里等等。
3.沒有適合/可信任的資料儲存者
--》打勾,這個場景牽涉太多單位,找誰來存end to end的資料都不適合,找海運公司?找某政府海關?找某大港口?就算有人肯存,其他單位可以完全相信它不會亂來嗎?
4.資料需要其他成員查核&審計正確性
--》打勾,譬如船運公司A要接力運輸船運公司B的貨品時,A必須確認B送進港口的東西已經被海關驗過沒問題了,這時候A不能片面信任B的說詞,還必須要去跟海關再三確認才行。
5.資料一但被寫入后就不能被刪除或更新
--》打勾,貨物運輸紀錄本身是一種流水帳型的資料(log),理論上只會一直新增紀錄,不會修改過去的歷史。
Bingo!我們得到了一個合理的區(qū)塊鏈應用!
IBM與船運巨擘Maersk在2018年發(fā)起的區(qū)塊鏈專案—— TradeLens,就是一個讓各家船運公司、貿易公司都能夠共同分享、上傳資訊的協作型資料庫,讓聯盟的成員能夠掌握end to end的貨物運輸資訊,其運作方式如下圖所示:
在一次IBM 的測試中,TradeLens 可以有效減少40% 的貨物運輸時間,這聽起來很棒,但專案發(fā)展了整整一年之后,這套系統有被業(yè)界大規(guī)模采用嗎?
答案是,沒有。
之所以沒有被大規(guī)模采用,主因并非技術障礙,而是政治問題。其他船運同業(yè)并不希望加入一個由Maersk主導的計畫,他們擔心自己的權利在這個平臺無法跟Maersk平起平坐,像是世界第五大的船運公司Hapag-Lloyd就曾公開批評 TradeLens是一個不能用(unusable)的平臺,但明眼人都知道,并不是不能用,而是它不想用。
把區(qū)塊鏈拿來當協作型的資料庫,技術上并不難實現,真正難的地方是如何讓各方都愿意參與其中,TradeLens 上如果只有Maersk 一家船運公司,其存在就毫無意義,像國際海運這種由寡頭占領的市場,由任何一個寡頭出面做平臺,其他人難免會不服氣。
區(qū)塊鏈可以解決資訊傳遞效率的問題,但無法解決「誰也不服誰」的政治問題。
要避免政治問題,此種應用比較適合由獨立的第三方(譬如產業(yè)工會或是政府)來推動,像是財金資訊公司推動的金融函證區(qū)塊鏈即是如此,財金公司的股東由各大銀行跟政府組成,某種程度上可說是銀行業(yè)的集體意識,這種單位做平臺大家比較容易服氣,但改成某間銀行來主導可能就會失敗。
看完了TradeLens 的案例,我們再來看第二個誤用區(qū)塊鏈的例子——航空公司哩程系統。
有某間航空公司跟數百家餐廳、住宿業(yè)者合作,讓客戶在這些合作商家消費也可以累積航空哩程數,并且宣稱在點數系統中導入了區(qū)塊鏈技術,大幅度提升后端作業(yè)效率并減少人力核對點數成本。(這是真實案例)
這真的需要區(qū)塊鏈嗎?讓我們再套用一次框架:
1.需要儲存資料
--》打勾,需要有地方能夠存點數余額。
2.有多個資料寫入者
--》打勾,有很多合作商家需要寫入資料以更新點數余額。
3.沒有適合/可信任的資料儲存者
--》打叉,航空公司自己做一個中心化的資料庫讓合作商家串API同步點數余額狀況即可,沒有信任問題。
4.資料需要其他成員查核&審計正確性
--》打叉,這個應用場景是「一對多」而非「多對多」的關系,亦即商家A跟航空公司串接資料時,并不需要同步讓商家B知道,而且商家B也不需要審計「商家A跟航空公司串接資料」的真實性。
5.資料一但被寫入后就不能被刪除或更新
--》看狀況,如果資料庫只紀錄點數最新的余額,不管中間消費歷程,就不需要這個特性。
在「有可信任資料庫」的狀況下,單純的資料同步是不需要區(qū)塊鏈的,航空公司高管宣稱的「后端系統效率提升」,在我看起來可能只是借著區(qū)塊鏈專案的名義把原本不夠數位化的地方做得更好罷了,看起來是區(qū)塊鏈奏效,但實際上并非如此。那為什么要用區(qū)塊鏈呢?可能是為了PR 效果,也可能技術顧問公司賣區(qū)塊鏈soluTIon 可以開更高的價碼吧!誰知道呢?
實務上,協作型資料庫通常會用聯盟鏈實現,因為一些機密的資料并不適合/不需要放在公鏈上給所有人看,不過也有一些應用變體會把資料存公鏈上,譬如MIT自行研發(fā)的數位證書協議Blockcerts,就是讓所有需要發(fā)數位證書的單位,都可以透過這套協議把證書紀錄在比特幣的區(qū)塊鏈上。
以往發(fā)行數位證書的單位需要有一個后臺,讓用戶可以驗證證書的有效性,但現在用Blockcert 就只要負擔少少的資料上鏈費用,不用再雇用人開發(fā)/維護后臺,就可以安心地把證書存在區(qū)塊鏈上,而用戶也可以用Blockert 協議開發(fā)的APP 統一管理不同機構發(fā)放的數位證書,解決了數位證書管理不易的痛點。
總結一下把區(qū)塊鏈當成協作型資料庫的好處以及需要注意的地方:
好處:
1.降低跨單位資訊傳輸成本
2.解決「沒人能存資料」的問題
需要注意的地方:
1.可能會有「誰也不服誰」的政治問題,建議由第三方單位推動
2.在意資料隱私的話建議使用聯盟鏈,反之若資料適合存在公鏈上,建議不要重復造輪子,先看看是否有開源協議可以使用
上面提到區(qū)塊鏈可作為協作型資料庫,接下來要介紹另外兩種應用類別,數字資產發(fā)行平臺&公正程式平臺:
數字資產發(fā)行平臺(Digital Asset Issuing Platform)
區(qū)塊鏈很適合作為數字資產的發(fā)行平臺,如果你希望數字資產有以下特性,或許就適合用區(qū)塊鏈來發(fā)行數字資產:
1.數字資產需要跨地域、跨系統的流動性
2.數字資產需要跟其他數字資產有互操作性(前提是這些資產要發(fā)在同一條鏈上)
3.需要公開數字資產的資訊/運作邏輯以取得信任
區(qū)塊鏈本質就是一個共享大帳本,當有越來越多的資產以token的形式發(fā)行在區(qū)塊鏈上,這些token的流動性就會越來越高,而當一個資產的流動性提升,它本身價值也會被放大。
舉例來說,如果有某企業(yè)選擇用以太坊ERC20 標準發(fā)行點數,那這個點數從創(chuàng)建第一天開始就會有二級市場,用戶可以透過去中心化交易所把點數換成其他ERC20 token。如果用中心化系統發(fā)行數字資產,用戶交易「跨單位發(fā)行的數字資產」時,往往要透過一個交易清算單位,或是OTC (over the counter) 做線下交易,流動性就比較差。
除了流動性之外,另一個明顯的好處就是提升不同數字資產的互操作性(interoperability),譬如持有某A幣的用戶,每天可以分到一定數量的B幣,或是持有C幣一定數量以上的用戶,用D幣買東西的時候可以打折等等,這種數字資產之間的互動可以透過智能合約來實現,用中心化系統不是不能做,只是實作上會比區(qū)塊鏈麻煩很多,想想LINE Point如果要和樂天點數實現這種互操作性,系統上的串接會有多麻煩?
最后一點是信任,區(qū)塊鏈上數字資產的總供給量、增發(fā)邏輯、轉帳條件、持有量分布等等,都可以被公開審計。這有什么用呢?如果某游戲廠商用區(qū)塊鏈發(fā)行虛擬寶物,他可以公開虛寶的總量以證明稀缺性,甚至以程式嚴格控制虛寶總量必須低于玩家總數的千分之一等等,向玩家證明不會有虛寶通膨問題,這我稱之為「可信賴稀缺性」( proven scarcity)。
有一些開源或是帶有公益性質的項目,也比較適合用區(qū)塊鏈發(fā)幣,像是FileCoin 和BAT(Basic Attention Token )之所以采用公有鏈作為發(fā)幣的平臺,除了募資方便之外,也跟其項目本身的性質有關系,這兩個項目都是開源的項目,用中心化系統發(fā)幣未免有點奇怪,用區(qū)塊鏈發(fā)行代幣,讓代幣自行運作再適合不過。
那有沒有缺點呢?當然也是有的,如同上一篇所提到的,區(qū)塊鏈的交易速度不可能比中心化系統快,譬如ERC20 代幣的轉移就先天就受到以太坊的限制,至少要等2~3 分鐘才會到帳,如果很在意交易速度,建議可以使用速度較快的公鏈(如DEXON) 或是聯盟鏈(如幣安鏈)來發(fā)行數字資產。
另外就是上手難度的問題,要在區(qū)塊鏈上交易數字資產,必須理解私鑰、地址、交易手續(xù)費、區(qū)塊確認數等知識,對一般大眾來說太難了,需要有配套措施提供更好的UX,譬如客制化錢包、私鑰代管服務等等。
總結一下把區(qū)塊鏈當成數字資產發(fā)行平臺的好處以及需要注意的地方:
好處:
1.提升數字資產流動性
2.提升數字資產互操作性
3.可藉由公開數字資產的運作邏輯以取得信任,適合開源或是公益專案
需要注意的地方:
1.交易速度較慢,如果很在意速度建議使用DEXON或是聯盟鏈
2.上手難度高,可能需要搭配客制化錢包&私鑰代管服務降低使用門檻
公正程式平臺(Honest Program Platform)
當區(qū)塊鏈引入圖靈完備的程式語言后,就從單純處理數字貨幣的帳本變成了一臺去中心化的電腦,開發(fā)者可在其上透過智能合約實現各種更復雜的邏輯,區(qū)塊鏈的智能合約有三個特性:
1.開源
區(qū)塊鏈的智能合約代碼是公開的,每個與合約互動的人都可以檢查其代碼有沒有問題
2.不可竄改
智能合約的代碼跟交易紀錄一樣,一旦被部署在區(qū)塊鏈上之后就無法修改
3.無法被阻止
只要觸發(fā)一開始寫好的條件,智能合約就會自動執(zhí)行,理論上無人能阻止代碼運作。
(2跟3都是在區(qū)塊鏈是安全的前提下才成立,如果所有節(jié)點共謀作惡,那就不成立了。)
白話一點來說,智能合約屬于一種「下好離手」、「運作方式透明公開」的程式,在一些運作機制不透明的產業(yè),譬如線上博奕,人們很難相信程式不會偏袒莊家,畢竟后端的代碼都掌握在博弈廠商的伺服器上,但如果改用區(qū)塊鏈的智能合約就不一樣了,因為程式運作邏輯可被公開審計,玩家不用擔心莊家操縱隨機數,也可以確保莊家不會跑路,因為智能合約會保證賠付。
智能合約開源特性也可以應用在群眾募資上,群眾募資一直有個痛點— —項目方拿了錢之后交付成果不如預期,以太坊的創(chuàng)辦人Vitalik曾經提倡過一種新型態(tài)的募資方式—? DAICO,其核心概念是投資人先把錢(ETH)打進智能合約中,這些錢會按一定的速度分批釋放給項目方,如果項目方做得不好,投資人可透過代幣投票,減慢項目方領取ETH的速度,甚至在必要的時候投資人可以直接撤銷專案,把剩余存在智能合約里的錢拿回來,借此降低項目方跑路的風險,也保障投資人的權益。
由募資平臺運行中心化的程式也可以實現上述規(guī)則,只是會產生新的信任問題,募資平臺的利益跟項目方緊密掛鉤,難保募資平臺不會與項目方共謀,竄改投資人的投票結果,反觀智能合約規(guī)則透明公開,沒有造假空間,更有公信力。
把區(qū)塊鏈「公正程式平臺」特性發(fā)揮得最淋漓盡致的應用類別,莫過于近期大紅的DeFi (Decentralized Finance,分散式金融),DeFi利用智能合約開源以及分散式網路的特性,將傳統金融產品轉變?yōu)闊o需信任且透明的協議,這些協議可以在無須中介機構的情況下運行,且用戶無須準入許可,是一種人人可用、運行邏輯與數據全程公開透明的金融協議。
目前最熱門的DeFi 項目就是MakerDAO,它是一個去中心化的抵押貸款平臺,以往我們可以抵押房子來借錢,譬如抵押市價1000 萬的房子來借600 萬,以超額抵押來抵銷不履約的風險,而在MakerDAO 上我們是超額抵押「以太幣」來借「Dai」(Dai 是一種1:1 錨定美金的穩(wěn)定幣),如果抵押品價值下滑,智能合約會自動觸發(fā)清算機制,最低清算率是150%。
舉例來說,我可以抵押市價400 美元的以太幣借100 個Dai, 如果以太價格崩盤,抵押的以太幣價值從400 美元下滑到150 美元以下,這就觸發(fā)了清算機制( $100*150%=$150 ),我可以選擇抵押更多的以太幣,確保抵押品的市值保持在借款的150% 以上,或是不作為任由系統拍賣我的抵押品,而后者必須額外上繳一筆罰款。以上的這一切,都由智能合約完成,無需人力介入,這意味著更低手續(xù)費的可能性,DeFi 不但能有效降低用戶參與金融市場的成本,也讓世界上20 億無法進入正規(guī)金融體系的人,有了另一個新的選擇。
講完了好處跟應用方向,接下來講區(qū)塊鏈智能合約的限制,區(qū)塊鏈的智能合約被儲存&運行在分散式網路中,這意味著每一次代碼執(zhí)行,都必須在每個節(jié)點上被運行一次,假設網路有一萬個節(jié)點,同樣的代碼就必須被運行一萬次,因為以上的特性,所以區(qū)塊鏈的智能合約:
1.只能實現簡單的邏輯:一些需要大量運算資源的程式(譬如Deep Learning),并不適合放在智能合約里。
2.不適合應用在高頻場景:如果程式會在短時間內接受大量的request,且用戶的等待耐心時間極短(低于1秒),那就不適合用區(qū)塊鏈的智能合約實現。
還有一點必須注意的是,如果你的智能合約需要外部信息輸入,那智能合約如何取得資訊就必須考量進去,實務上一般常見的作法就是投票。
譬如我們剛剛提到,當以太幣的市價滑落時可能會觸發(fā)MakerDAO的清算機制,那么智能合約從哪里得知以太幣的市價呢?如果直接拿CoinMarketCap的價格,那似乎有點太過武斷,如果有人跟CoinMarketCap官方串通共謀,那豈不是天下大亂?為了保持去中心化的特性,MakerDAO參考了多種價格來源,并且設置了一種特別的智能合約來管理以太幣市價的source feed,而所有source feed的增刪都是由MKR (MakerDAO的治理代幣)的持有者投票決定,有興趣的讀者可以閱讀Maker DAO的官方文件。
事實上所謂的多重簽名簽包(Mutisig Wallet)本質上也是一個智能合約,大家把錢打進去,然后規(guī)定只有超過半數的參與者簽名后才能拿錢出來,這也是一種投票的概念。
總結一下把區(qū)塊鏈當成公正程式平臺的好處以及需要注意的地方:
好處:
1.可藉由公開程式的運作邏輯以取得信任
2.降低人力參與/去中介機構,可降低成本
3.條件觸發(fā)即自動執(zhí)行,無人能夠阻止
需要注意的地方:
1.只能實現簡單的邏輯,區(qū)塊鏈不適合運行太復雜的程式
2.不適合應用在高頻場景,如果程式需要高頻、低于1秒延遲的處理速度,可能用中心化的系統更為適合
3.觸發(fā)條件若需要外部信息輸入,需考量設計方式,如果信息輸入來源單一,那就失去用區(qū)塊鏈的意義了(控制輸入來源=控制程式運作)。
結論
希望能讓大家更了解區(qū)塊鏈的用途和限制。要設計出一個可以容納區(qū)塊鏈所有應用的框架,坦白講是一件很困難的事情,因為區(qū)塊鏈本身并非為了特定應用而被發(fā)明的技術,每個人看到的區(qū)塊鏈價值可能都不一樣,所以設計出的區(qū)塊鏈應用也會大異其趣。





