阿里技術人員告訴你,到底什么是區塊鏈?區塊鏈
不是所有場景都不負責任地叫區塊鏈這個本來特指數據結構的名詞。
我一直打算寫一篇介紹區塊鏈的文章,但是一直沒有下筆。原因是區塊鏈本身的內涵和外延一直在變化,另外我對區塊鏈的理解也一直在變化。
然而因為工作需要,我總是會和別人聊區塊鏈。當前區塊鏈行業的現狀是每個人對“區塊鏈”這3個字的理解都不一樣,甚至直到現在“區塊鏈”都沒有一個準確的定義。一次有效的交流需要有明確的話題,并且這個話題的含義要明確而精準,很不幸的是區塊鏈的含義非常模糊。
本文希望能理順區塊鏈這個話題,解釋一下在不同的場景下我們討論的區塊鏈到底是什么。
區塊鏈的字面含義
從字面上理解,區塊鏈就是由一個個“區塊”組成了的“鏈”表,是一種明確的數據結構,就和”二叉樹“是每個節點最多有2個分叉的樹型結構一樣簡單明了。
本身區塊鏈這三個字作為一種數據結構的名字,它的歷史使命應該就已經完成了,不需要也不應該再用這三個字來代表其他更廣泛的含義了。然而實際情況是怎么樣大家也都知道,區塊鏈這三個字被濫用到無以復加的境界。
不得不提的比特幣
提起區塊鏈就不得不說比特幣,區塊鏈這個數據結構因為被比特幣使用而出名。比特幣的定義非常明確,就是一種加密貨幣。然而很多人在嘗試深入了解比特幣時,最終都感覺云里霧里的然后放棄了,根本原因是比特幣的運行機制中有太多”不確定性“,而我們習慣于理解一個”確定性“的事物。
舉幾個比特幣運行時不確定性的例子:
轉賬提交后,不確定是否能最終成功
轉賬提交后,不確定在多長時間成功
轉賬提交后,就算交易被打包成區塊也不保證就能成功
打包出塊時,不確定下一個區塊包含哪些交易
打包出塊時,不確定下一個區塊被哪個服務器打包出來
打包出塊時,不確定同時存在多個候選區塊后哪個區塊最終能勝出
業務使用時,不確定比特幣的轉賬目的
業務使用時,不確定法定貨幣和比特幣的兌換比例
盡管比特幣在運行時有很多”不確定性“,但是從實際操作時可以人為的定一些規則或者做一些中心化的輔助系統,比如交易被打包后再等6個新區塊來盡可能保障交易的確定性,比特幣和法定貨幣的兌換可以由各個交易所去做等等。了解了比特幣的不確定性并接受了這些人為的解決方案,那比特幣其實是非常容易理解的。
最后再回歸一下主題,區塊鏈只是當前比特幣代碼實現中的一個數據結構,僅此而已。
比特幣的貨幣本質
上面提到,比特幣是一種加密貨幣,既然比特幣是貨幣就肯定有支付、清算、結算和發行等環節。比特幣的支付(轉賬)比較好理解,那比特幣是如何清算和結算的呢?
清算和結算的本質就是算賬并補個差價。就像打完麻將了要做個了結,你欠我300、我欠你200,那么你需要再給我100。在小額低頻線下場景這個沒問題,但是如果銀行間互相轉賬肯定就需要一個中心機構比如央行來負責幫各個銀行做清結算,這個銀行間賬本只有一個中心機構可以來維護,因此叫做中心化的賬本。然而比特幣顯然沒有一個中心機構來管理比特幣賬本,所以比特幣是一個分布式的賬本系統。當然比特幣也可以叫去中心化賬本,但是分布式賬本這個名詞更精準。值得一提的是區塊鏈的“去中心”論調就是由此而來的。
很多人發現了比特幣這個“分布式賬本技術”非常神奇,居然可以在一個沒有中心機構參與管理的情況下完成了一個貨幣的發行和流通,那么這個“分布式賬本技術”是否可以用在除了比特幣以外的場景呢?可以設想如果這個“分布式賬本技術”用在其他地方,這將會大大提高清結算效率并降低業務成本。
那么我們給這個“分布式賬本技術”起個名字吧? 就叫“區塊鏈”好不好?這不是瞎扯淡嗎?“區塊鏈”就只是一個數據結構名稱,為什么要把“分布式賬本技術”叫做區塊鏈呢?可以肯定的是當前行業內區塊鏈這個叫法是不精確的,但是為什么不直接叫“分布式賬本技術”也是有原因的,下面會繼續分析。
另外,附上一張我之前做的關于中心化,去(多)中心化,分布式貨幣之間的簡單關系圖,不是很嚴禁,經供參考。
比特幣的證券化
不知你是否還記得,上文在講比特幣的不確定性時提到一句話“業務使用時,不確定比特幣的轉賬目的”,進一步擴展開來講就是比特幣轉賬行為如何映射到我們現實社會中是不確定的。簡單的場景是你可以花10000個比特幣買個披薩,復雜點的比如某個公司老板可以聲稱他的比特幣地址是A,這個地址上有100個比特幣代表了這個公司100%的股份,他將這個地址A的一個比特幣轉賬給你,就代表他將公司的1%股份轉讓給你了。
歷史證明,那些嘗試打破比特幣的加密貨幣(crypto currency)屬性邊界,將比特幣“直接”引入到更通用的使用場景的行為都失敗了,具體案例可以網上查看彩色幣(coloredcoin)和相關介紹,這里不展開講。
那為什么試圖打破比特幣的加密貨幣屬性邊界的行為會失敗呢,首先我們先看看邊界在哪里,如下圖所示,貨幣(currency)、加密貨幣(crypto currency)、股票(stock)、證券(security)都有內在的獨特屬性和比較明確的邊界,你難以將加密貨幣當成股票和證券來操作,但是他們之間又有一個共同的屬性,那就是通證(Token)。一定要記住這個單詞,通證(Token),通證(Token),通證(Token)。
通證(Token)
通證可作為一切價值的載體,充滿了無窮的想象力,這才是“區塊鏈行業”炙手可熱的根本原因。上文提到為什么不可以將“分布式賬本技術”叫做“區塊鏈”,那是因為行業內大家在討論的區塊鏈其實暗含了一個等式:
區塊鏈 = 分布式賬本技術 通證
理解這個等式才能理清,到底大家都在討論的區塊鏈到底是什么。
不得不提的以太坊
通證(Token)怎么玩?在以太坊發明前,沒人知道通證怎么玩,整個行業的思維定勢還是局限在加密貨幣上,是以太坊將整個行業從加密貨幣時代帶入到通證時代。
那么加密貨幣和通證的區別是什么?舉個簡單的例子,以太幣是加密貨幣,基于以太坊智能合約發行的那些都是通證(Token),所以以太幣可以是ICO(Initial Coin Offering)出來的,那些基于以太坊智能合約發行的只能稱為ITO(Initial Token Offering)。最終一句話,要理解以太坊的價值,必須緊緊圍繞通證去思考,忘記那個叫做區塊鏈的數據結構吧。
順便一提智能合約
“Ethereum is a decentralized platform that runs smart contracts.”
以太坊的的官方網站是這么定義自己的:“以太坊是一個運行智能合約的去中心化平臺。”
首先我對將“smart contracts”翻譯成“智能合約”是持保留意見的,當前的智能合約并不智能,實際上大部分情況就僅僅是一段運行在受限環境的普通程序而已。智能這個詞語現在也被大量濫用,比如智能手機并沒有多聰明。再比如當前比較火熱的人工智能(Artificial Intelligence)也就相當于一個人工智障(Artificial Idiot),這里可能做AI的同學會表示不服氣會爭辯道:“我們AI行業當前處在弱人工智能階段,當我們發展到強人工智能階段,那可是非常革命性的!”。其實翻譯一下就是“我們當前是做的假人工智能,等我們搞出真人工智能后就非常牛逼了。” 當然了,作為一個更加不成熟的區塊鏈行業從業者,我是真的沒有什么心情去調侃AI行業的。
基于上述原因,智能合約并不智能,那些比較出名的區塊鏈相關框架都不好意思直接叫智能合約,比如Fabric中叫Chaincode,Corda中直接就叫Contracts了。
聯盟鏈和公有鏈?
我們在看區塊鏈相關入門書籍和文章時,經常會看到區塊鏈的分類,什么私有鏈、聯盟鏈、公有鏈。相信看到這里的你應該明白了,其實根本沒有什么私有鏈,聯盟鏈和公有鏈的區分也不是以是否需要授權加入來區分的。
聯盟鏈的研究重點是分布式賬本技術,目的是提高效率減少成本。
公有鏈的研究重點是通證(Token)的應用落地,目的是生產關系的革命。
下面簡單分析一下當前比較流行的聯盟鏈框架Corda和Fabric。
首先,Corda還是比較厚道的,直接聲稱自己是受區塊鏈啟發的金融業分布式賬本框架,架構中沒有使用區塊鏈這個數據結構。因為區塊鏈數據結構對分布式賬本技術來說不是必須的,只不過比特幣作為一個流行的分布式賬本案例恰巧使用了區塊鏈數據結構,僅此而已。
而Fabric就明顯是揣著明白裝糊涂了,你能從它的架構上明顯感覺到它的糾結。
既然有了背書節點,本身背書策略就可以決定賬本的修改是否合法,理論上記賬可以不需要一個專門的排序節點參與
既然背書節點是可信的,Chaincode完全可以直接以“受限的插件”形式運行在背書節點內,完全沒必要搞一個Docker鏡像去運行影響效率
排序節點做交易排序和并將交易打包成區塊鏈在一起,給人一種“區塊鏈”的感覺,其實還是那句話,我覺得區塊鏈這個數據結構在分布式賬本技術中根本就不是必須的
當然了批評不代表不喜歡,Fabric作為最流行的分布式賬本框架是當前最成熟功能最全的,也是我們一直在研究和使用的。希望Fabric在后續版本架構上能回歸初心,看清企業級分布式賬本的核心競爭力,朝著提高效率、減少成本的目標去發展。
至于公有鏈的框架就太多了,短時間根本說不完,但是抓住他們的本質,都是圍繞Token的生命周期管理,然后嘗試現實場景的應用落地去的,在技術上可以歸納為一個詞,即“面向通證架構(Token-Oriented Architecture)”,當前面向通證架構除了以太坊勉強能用且有用外,其他還處于非常早期的階段,還需要很長時間的發展,短期內也許會在游戲行業率先有突破性應用,保持關注就好。
那回歸一下主題,面向通證架構的公有鏈是否需要區塊鏈這個數據結構?如果你一直關注相關新聞,你應該聽過DAG和Hashgraph等等。答案已經很明顯了,就是面向通證架構的公有鏈也不是必須區塊鏈這個數據結構的。
這令我很尷尬,一個叫區塊鏈的行業,其實是可以完全不用區塊鏈這個數據結構的,這個命名肯定出了問題。
做個總結
為了區塊鏈行業的健康發展,減少溝通交流中的歧義,我呼吁使用更加精準的定義,而不是所有場景都不負責任地叫區塊鏈這個本來特指數據結構的名詞。
如果是利用分布式賬本技術來提高信息流轉效率降低業務成本的,就叫分布式賬本技術或者DLT; 如果是圍繞Token的應用落地的,那就叫通證架構,通證模型,通證經濟,通證革命等等。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。