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