跳到主要內容

雷鋒網:所謂區塊鏈3.0的真正所指

温晓桦、吴阳煜
專訪

作者: 溫曉樺、吳陽煜

媒體: 雷鋒網

日期: 2018 年 2 月 16 日

在現有云計算的平臺之上,抽象出一層專門為區塊鏈來做的服務平臺。這是我們對區塊鏈 3.0 的設計和實現。

技術與行業資源積累到一定程度時,轉折點也如期而至。經過一系列技術建設者的持續投入,區塊鏈 3.0 進入了公眾視域,蓄勢待發。

雷鋒網 AI 金融評論報道,經過 2017 年中旬各區塊鏈專案圍繞底層設施建設的技術產品宣佈的更新後,如今區塊鏈行業中圍繞 3.0 即應用落地階段的更多技術建設正逐步完善,比如資料庫、跨鏈價值交換協議、面向數字交易所的第三方清算、PaaS 服務等。

定位於降低去中心化應用(Dapp)開發門檻的區塊鏈創新專案“區塊基石”(ArcBlock),就是在這樣的大環境下推出的。該專案於 2018 年 2 月 4 日,在美國,19 分鐘之內完成 ICO 公售。

據介紹,本質上來說,ArcBlock 是一個專門用於開發和部署去中心化區塊鏈應用的服務平臺,類似如今雲端計算的 PaaS 平臺,其透過搭建一個去中心化的區塊鏈應用的開發框架,為開發者提供開發工具、分享自身開發的應用的功能模組,來實現降低 Dapp 開發門檻的作用。開發者以支付代幣的方式獲取使用平臺上的資源。

跨協議相容,降低開發試錯風險

要知道,目前區塊鏈要成為大規模應用的技術,還面臨著很多困難,除了效能限制、交易費用高昂等擺在應用開發者面前的門檻,比如,ArcBlock 白皮書指出:

  • “平臺鎖定”。由於區塊鏈技術尚未制定統一的標準,目前底層設施也還處於角逐“主鏈”的階段,所以 Dapp 開發面臨著較高的平臺“鎖定”風險:開發者一開始就面臨支援哪種區塊鏈技術的艱難選擇,應用的設計和程式碼被底層平臺“鎖定”,未來難以更換,且無法支援多種不同底層鏈技術來提供最佳使用者體驗。
  • 除此之外,使用者使用門檻也高。由於幾乎所有區塊鏈應用都需要使用者在自己的計算機端執行一個“節點”或至少安裝一個“輕節點”才能使用, 學習使用成本高昂導致大部分區塊鏈應用都侷限在極客範圍。舉個簡單的例子,目前虛擬貨幣投資者千千萬,但會用數字錢包的有多少呢?冒志鴻指出,“要實現普及,區塊鏈應用必須降低使用者門檻,讓使用者感覺不到區塊鏈的存在。”

因此,ArcBlock 平臺的開發主要針對上述困難做支援:讓應用可以連線多種不同的區塊鏈協議,一定程度降低或消除現存區塊鏈技術的“平臺鎖定”風險;架構微服務化和採用無伺服器計算,提高開發效率和體驗;打通鏈上和鏈下的連線,提高區塊鏈執行效率……

具體的平臺實現手段,冒志鴻向雷鋒網 AI 金融評論介紹稱,ArcBlock 平臺的核心部件和體系包括去中心化訪問協議 (雲節點)、開放鏈訪問協議、基石程式和構件(Blocklet Components),還有代幣經濟服務體系:

  • “開放鏈訪問協議”(Open Chain Access Protocol)——這使得應用可以透過它連線多種不同的區塊鏈協議,比如以太坊(Etheruem)、超級賬本(Hyperledger)等。這是一個開源的協議,作為訪問下層區塊鏈的抽象介面層,類似於在資料應用中的 ODBC 或 JDBC 在和各種不同資料庫之間的關係一樣,讓各種應用可以在不同的區塊鏈上工作。在切換不同的底層區塊鏈、或者使用多條不同協議的區塊鏈的時候,開發者甚至不需要更改業務邏輯程式碼。

也就是說,理想狀態下,你還可以將同一套應用方案部署在不同的底層協議之上。基於這個特性,開發者將擁有方便評估不同區塊鏈協議的自由。到那時候,底層的優劣將高下立見。

  • 基石程式是由社群成員受代幣激勵建立貢獻的主要服務或部件,是執行各種應用的無伺服器計算架構元件。 你可以採用 Blocklet 來實現區塊鏈上的智慧合約、外部事務觸發器,訪問外部的資源,如檔案、資料庫等其他資料來源,以及完全和鏈無關的業務邏輯。透過“開放鏈訪問協議”,Blocklet 可以和區塊鏈通訊。

值得一提的是,Blocklet 不止是連線區塊鏈協議,也可以訪問任何外部資料來源,因此它能完成鏈上和鏈下的兩種計算方式並且將它們聯絡起來。

此前,為了解決區塊鏈應用效能底下的困境,有人提出將資料於鏈下處理,交易和決策環節放在鏈上。Blocklet 的通訊功能,不僅能夠提高區塊鏈應用可行性,還使得傳統企業利用區塊鏈做資料交易提供了便捷直觀的手段。

  • 最後一點是 ArcBlock 的內在激勵機制驅動的功能模組和應用市場,該平臺憑藉此機制來形成一個生態體系。ArcBlock 裡的“礦工”可以提供的,不僅僅是計算資源,而且可以提供的是可重用的模組、新的服務甚至是可以直接部署使用的應用。這些提供功能和應用的“礦工”在自己的服務被使用時就會獲得代幣獎勵,從而形成一個能夠不斷完善、自我成長的服務平臺。

冒志鴻強調,“ArcBlock 服務平臺並不只是我們單獨建立的,而是由整個社群一起來開發建立的,我們只是最初推動的一群人而已。”

區塊鏈 3.0 選擇雲節點設計,對抗區塊鏈“原教旨主義”

據介紹,ArcBlock 被設計成雲端計算環境原生平臺。當然,在測試和開發環境下,它也可以執行在單機上。

在 ArcBlock 中,一個區塊鏈節點是一個“邏輯上的計算機”,它可能是一臺或多臺虛擬機器,或者一組雲端計算資源共同組合形成的“邏輯上的計算機”。

但這種設計看起來有點分散式,但也有點集中。

“這種設計使得 ArcBlock 和很多‘原教旨主義’的區塊鏈平臺有些格格不入,然而這才是我們認為的未來。”

按照冒志鴻的說法,在電腦科學裡面有一個像笑話一樣的定理——任何電腦科學的事情都可以透過增加一個抽象的 layer 來實現。“你可以認為 ArcBlock 就是建立在 Cloud computer 以上的 Layer 上來考慮區塊鏈,這也是我們對區塊鏈 3.0 的設計和實現。”冒志鴻表示,“我們認為在過去、早期的區塊鏈的時候,更多是一個 P2P 的設計,其中每一個節點都是物理上比較相對獨立的機器。”

其實物理上說它是個獨立的機器,其實也已經被打破,現在的礦場雖然有很多臺機器,有可能是成千上萬臺機器,但實際上它可能代表的只有幾個節點,你可以認為礦場是某種形式的雲端計算,只不過它是專門為挖礦而生的一個雲端計算服務。

所以,ArcBlock3.0 相當於選擇在現有云計算的平臺之上,抽象出一層專門為區塊鏈來做的服務平臺。“這種設計使得 ArcBlock 把區塊鏈技術、去中心化應用的概念推向一個新高度。”

“一個完整的應用服務,最典型的或者是最容易、最合適的設計就是雲端計算的提供方式,因為這些應用的提供商、開發商不需要去關心機器、節點放在哪裡,如何去維護這些機器和節點,這些事情本來都不是開發者需要或者願意擔心的。”

冒志鴻解釋稱,“另外,從終端使用者的角度來講,使用者不需要知道什麼是節點,以及更加不應該讓終端使用者需要執行一個節點才能使用區塊鏈,這些事情我們都應該幫他們搞定。”

“我相信這也是未來的主流設計的方式,我們只是最早宣佈用這種方式來設計的人。即便今天開起來不符合原教旨主義的想法,但我認為這符合未來趨勢。”

區塊鏈 3.0 的理想和風險

“我們試圖建一個是被社群運維的平臺,而不是被一家大公司控制的平臺。”冒志鴻稱,未來,透過一系列模組支援,ArcBlock 目標要讓企業透過區塊鏈開發,將現有業務的資料、使用者、商業邏輯等應用在區塊鏈驅動的新應用之中。

但當下,高興之餘冒志鴻也指出了 ArcBlock 面臨的潛在風險,“我們最大的風險是能不能得到社群的支援,也就是我們是不是能真正跟開發者社群建立起來形成一個完整的生態系統。”這是指,“比較懂行、懂技術的開發者瞭解 ArcBlock,覺得一看就明白,但是不一定能做出來。”

這與整個區塊鏈行業的技術鏈條、工程化能力相關。有開發者也對雷鋒網 AI 金融評論表示,ArcBlock 這樣的平臺,大規模應用也許要在 5 年之後。

不過,對此冒志鴻表示:“ArcBlock 第一階段的開發進度已經超過 80%,在 2018 年上半年就能落地。”

在公售開始前一晚,雷鋒網 AI 金融評論與 ArcBlock CEO 冒志鴻進行了一次越洋對話。關於平臺的特性、實現細節,我們可以從對話中找到更多答案:

ArcBlock 的實現細節

AI 金融評論:開放鏈訪問協議的執行,它和跨鏈技術相比有什麼不一樣呢?

冒志鴻:開放鏈訪問協議目的就是提供一個區塊鏈的訪問抽象層,這個抽象層因為足夠抽象,可以訪問多種不同底層區塊鏈的協議。所以,透過這個開放鏈訪問層,我們可以在一定程度的時間應用這一層的跨鏈,也就是說應用可以透過開放鏈訪問層去訪問多種不同的區塊鏈協議。

但是現在市場上還有一些更加底層的跨鏈技術,它們讓兩個區塊鏈之間直接進行繫結或者直接進行比較底層的資料交換或者呼叫,而開放鏈訪問協議不考慮兩個不同的區塊鏈或者兩個不同的區塊鏈協議之間的溝通,當然一切都是從應用這個角度來處理。

如果要類比,比如把區塊鏈類比成一種資料庫,開放鏈訪問協議就好比是一個應用,可以連線兩個不同的資料庫,但這兩個資料庫之間並不相容和通訊,一致性完全靠應用維護。

如果要做跨鏈,就相當於在歷史上曾經談過的異構資料庫,不過在學術上做了很多研究之後,我們可以這樣說——異構資料庫在商業上幾乎完全失敗了。因為今天沒有看到任何一個異構資料庫擴散,它是一種技術理想主義。

不是說一個完全的跨鏈底層協議可能最終會失敗,但是從類比的角度來講,難度非常高,挑戰非常大,開放鏈訪問協議是實用主義設計,它能解決 90%以上的問題。

AI 金融評論:開發者應用具體繫結到一個區塊鏈協議上的時候,不同的區塊鏈有不同的技術特性,在 ArcBlock 的開放鏈訪問協議上實現應用,既能體現某個區塊鏈的技術特性,又能滿足在跨鏈之間的部署,是怎麼樣能夠做到的呢?

冒志鴻:比如說在開放鏈訪問協議裡面有定了三個不同層次的 API。

其中最基礎的是 level 1 的 API,它其實是個非常小的子集,因為區塊鏈有些最基礎的特點可以被抽象出來。

level 2 比較有趣,我們並沒有從今天的區塊鏈來考慮,而是從做一個區塊鏈的應用需要什麼來考慮。所以,level 2 的 API 是一個完全站在應用角度考慮的 API 集,這樣的話不同的區塊鏈就需要能適配 level 2 定義的介面,這就必然會導致 level 2 的介面由於某一些區塊鏈實現不了。不過這個也不要緊,因為 API 裡面就設計了能讓你查詢這個結構,下面的鏈不能實現。

level 3 就是讓程式可以繞過 API 的限制直接訪問底層提供的介面,所以 level3 是底層不同的,看起來都是 level 3,但是可能實現會區別很大。

一個應用如果確保只用 level 1 或者是 level 2 的話,那這個應用得就特別好,幾乎不修改就可以換各種底層鏈。但是 level 3 的介面用得越多的話,就意味著你的上層協議還是會越多繫結在下面具體鏈的基礎上。

如果用 level1 和 level2 的話,還需要做定製化設計。因為鏈式配器的這層已經幫你把這個事情處理了。如果用了 level 3,毫無疑問,用了具體原生的特性,這個應用必然會跟下層區塊鏈的距離會有一定程度的繫結。

AI 金融評論:Blocklet 執行應用的無伺服器計算架構元件,怎麼理解它作為這個平臺的核心基礎所發揮的作用呢?

冒志鴻:它是個微服務的架構,而同時又支援 Serverless 方式來開發 Blocklet。這兩者沒有必然聯絡,但是略有點區別——微服務是一對功能單一的服務,不是把一堆功能放在一個服務裡面。所以,一個完整的應用通常會有很多服務來協調。

舉個例子,比如說用 ArcBlock 來設計,一個最終的應用可能在背後有好多個甚至十幾個、幾十個服務,每個服務基本上只幹一件事情。我們的設計原則是—— 一次只做一個事情,但是把這個事情做好。

Serverless 有相當多的服務是短暫型服務,而且負荷可能很不均衡。舉個例子,假設用區塊鏈做一個知識分享相關的應用,那麼其中一些操作是非常少發生的,比如修改密碼、名稱、圖示;但是給文章點贊,給文章支付小費等行為可能會不斷地發生。

所以,在這樣的情況下,有些服務的執行量就可能非常大,另外一些執行量就很小,而且有很多服務運營很短暫。無伺服器的設計,使得開發者以函式的形式或者一小片任務的形式來觸發一件事情,就像微信用完即走。

這種設計對開發者來說,首先是更低的成本,如果你的計算資源是以毫秒級來計費的,當一些功能不需要執行時,就不需要付費了。

AI 金融評論:無服務計算興起的時候,就有人說它執行程式碼以毫秒級計費的方式會有很高的經濟成本,那麼 ArcBlock 在這方面的收費手段是什麼樣的?消費水平是什麼樣的呢?

冒志鴻:說它有很高的經濟成本其實這句話不是完全正確,它對相對來講規模不大的應用,對小規模的應用是更經濟的,但是對超大規模的應用,我相信其實是不夠經濟或者是最多是一樣經濟的。因為任何無伺服器的系統後面有一個框架來支援,那個框架仍然帶著服務,只不過就是無伺服器這個框架做了更合理的排程,讓你的應用不是那麼繁忙的時候,就把你置換出去,讓別的應用來執行。如果說你的應用非常開放,每時每刻都在執行你的運用的話,那麼這種情況下,通常來說應該是更貴的。

我們自己的計費模式和礦工利益分配機制將在我們基礎服務全部推出後的下一階段才推出,因此現階段無法透露會便宜到什麼程度。另外可以肯定的是,這些服務費用一定也是一個市場驅動的動態機制,生態越繁榮就會越便宜。。

開發者培育:無傾向性

AI 金融評論:那其實現在公鏈平臺都意識到要為開發者考慮,降低開發者的門檻,不過做法都不一樣,你怎麼評估這個市場現象呢?

冒志鴻:我相信任何一個公鏈,每一個區塊鏈技術,他們都必然會提供各種程度的開發者企業的支援和周邊的支援,但區別就在於具體某一個公鏈技術往往帶有自己很強的原生特性,這可能是出於戰略的考慮,所以這個恰恰也是我們 ArcBlock 給自己的定位,我們不去做一條新的公鏈,而是非常清楚地把自己定位在一個對開發者有好開發工具的角度。

因為我們處於這樣一個相對獨立的狀態,而不是站在底層某一個特定的技術,而這個技術要跟另外一個類似的技術去競爭的角度出發的。

舉個具體的例子,像以太坊和 EOS 他們在競爭的時候,他們就會出現相對尷尬的局面,比如說以太坊的智慧合約一種方法做,EOS 是用另外一種方法做,每家都有自己非常明確的戰略性的意義,因為它在考慮這個開發工具,首先要考慮戰略上是不是對自己有利,其次才是考慮能不能提高開發者的利益。

而站在我們的角度來講,我們就沒有任何因為戰略而繫結企業的問題,我們一切都是考慮怎樣讓開發者更容易使用,就是這個區別。

一個同時經歷過區塊鏈 2.0 和 3.0 濫觴的技術人

AI 金融評論:說起“區塊鏈 3.0”的概念,是什麼樣的技術自信,讓你們覺得你們可以創造區塊鏈 3.0 時代呢?

冒志鴻:區塊鏈是 1.0、2.0、3.0,其實並不是我們發明的,而是在一、兩年之前,最早提出這個概念的是一本書,叫《區塊鏈技術:新經濟的藍圖》,這本書第一次提出了 1.0、2.0、3.0 籠統的劃分。這個劃分出來之後,越來越多人往這個概念裡面添磚加瓦。

現在被大家普遍認可的認為區塊鏈 1.0 屬於區塊鏈本身的設計,即只為承載數字貨幣而設計,舉個例子,就是比特幣。區塊鏈 2.0 通常是指這上面開始開發除了承載貨幣之外的屬性,獲得一些額外的程式碼,典型的例子是染色幣,被認為是第一個區塊鏈 2.0。現在典型的代表就是以太坊,它在區塊鏈上面放程式碼,這個程式碼是(智慧)合約。

區塊鏈 3.0 最初的定義專注的是一個完整的應用,現在從我們的角度來看,我們認為區塊鏈 3.0 一個標誌性的變化應該是區塊鏈行業應用的落地,也就是區塊鏈應用能被普通的使用者、廣泛的大眾所接受。直到區塊鏈 3.0 技術出現之前,雖然媒體、公眾都已經對數字貨幣熱火朝天,但是真正我可以說 90%或者是 95%以上的人都不知道究竟數字貨幣是什麼,也無法掌握如何去使用和合理地來管理自己的數字資產。

區塊鏈 3.0 上各種各樣的玩家,無論是在做什麼,最本質的區別是能把區塊鏈的應用真正落到讓普通使用者也能使用的狀態。

AI 金融評論:順著這個話題,剛才提到染色幣是區塊鏈 2.0 的開始,那麼現在到了 3.0,作為一個 2.0 和 3.0 的見證者,你是如何判斷技術的節點以及怎麼去認識這個轉折性意義的呢?

冒志鴻:如果說 2.0,其實是 ArcBlock 的首席科學家 Flavien Charlon,他是染色幣技術的最主要的推動者,我代他講一下。染色幣的轉折點非常明顯,因為在染色幣之前,染色幣核心的概念非常簡單,就是在比特幣的網路上,利用比特幣區塊鏈的特點,在上面把空餘的欄位定義成資料的格式,這樣使得比特幣區塊鏈可以不但用於支援比特幣支撐,還可以用於一些其他的應用。

這個節點非常清晰,有了染色幣這個技術之後,比特幣一下子就可以承載一系列的業務。雖然染色幣出現得比較早,當時還比較原始,但是其實在染色幣時代他們所聯想到的各種區塊鏈可以開展的業務,我可以說現在 80%、90%都在染色幣時代都已經想過了。

包括像現在的 ICO——發行自己新的代幣,用代幣來處理各種各樣的場景,那都是在染色幣時代的想法。

對照網際網路:區塊鏈是站在前人的肩膀之上做服務

AI 金融評論::關於 ArcBlock 元件是面向雲端計算時代設計的這一點,這個設計和今天的分散式計算有什麼區別和聯絡呢?

冒志鴻:有非常大的聯絡,因為本質上來講,分散式計算是一個談了幾十年的概念,今天的 ArcBlock 都是建立在前人的基礎之上。比如說比特幣,它就是建立在 P2P 的網路之上,今天所謂的區塊鏈,基礎都是 P2P,P2P 就是一種最典型的分散式計算。所以,區塊鏈、雲端計算都和分散式計算有著千絲萬縷的聯絡。

原文連結: https://www.leiphone.com/news/201802/Iyt1js3Q8KHpRIZx.html