技術與行業資源積累到一定程度時,轉折點也如期而至。經過一系列技術建設者的持續投入,區塊鏈 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 的實現細節

開放鏈訪問協議的運行,它和跨鏈技術相比有什麼不一樣呢?

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

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

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

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

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

開發者應用具體綁定到一個區塊鏈協議上的時候,不同的區塊鏈有不同的技術特性,在 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,毫無疑問,用了具體原生的特性,這個應用必然會跟下層區塊鏈的距離會有一定程度的綁定。

Blocklet 運行應用的無服務器計算架構組建,怎麼理解它作爲這個平臺的核心基礎所發揮的作用呢?

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

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

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

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

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

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

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

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

開發者培育:無傾向性

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

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

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

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

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

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

說起“區塊鏈 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 上各種各樣的玩家,無論是在做什麼,最本質的區別是能把區塊鏈的應用真正落到讓普通用戶也能使用的狀態。

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

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

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

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

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

關於 ArcBlock 組件是面向雲計算時代設計的這一點,這個設計和今天的分佈式計算有什麼區別和聯繫呢?

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


採訪媒體:雷鋒網 AI 金融評論

作者:溫曉樺、吳陽煜