跳到主要內容

Token Explorer:ArcBlock 有望成為區塊鏈 3.0 開放鏈接入協議的標竿

Haiyan
專訪訪談

作者: Haiyan

媒體: Token Explorer(bitansuo.com)

robert

近日,ArcBlock 創辦人兼 CEO Robert Mao 接受了 Token Explorer 的採訪。Token Explorer 是一家在中國成立、致力於區塊鏈技術研究、項目評級以及其他產業活動的媒體公司。

Token Explorer: 你能談談 ArcBlock 的構想是如何產生的嗎?

Robert: 我在 2013 年就接觸到了比特幣和區塊鏈,並立刻被它廣泛的應用前景所啟發。我希望能更深入地參與這項技術,因為這與我的背景天然契合,所以我參與了比特幣挖礦。當時區塊鏈概念還處於萌芽階段,並未被充分理解,這對比特幣價格造成了顯著而不利的影響,也讓人們對比特幣作為貨幣的潛力產生了懷疑。最終,人們開始探究比特幣背後的技術,並發現了它的潛力。

這是美國區塊鏈技術發展的一個轉折點。2013 年之前,區塊鏈大多只適用於促進加密貨幣市場。隨著人們認識到區塊鏈用途的多樣性,越來越多公司,尤其是金融機構,開始向區塊鏈產業投入大量資源。然而,到 2016 年底,我們發現現有的區塊鏈應用市場仍然留下了一個巨大且尚未被填補的缺口。

我常常說,今天的區塊鏈技術就像 1993 年的網際網路技術。為什麼特別是 1993 年?因為 1993 年是網際網路發展史上的一個分水嶺。TCP/IP 協議簇以及其他基礎協議都已經達到非常成熟的階段,但網路從業者仍不確定哪一種協議最終會成為通用標準。這種環境催生了像 Cisco 這樣的公司去開發網際網路基礎設施的迫切市場需求,從而讓 AOL 和 Netscape 這樣的公司最終使普通用戶能夠接入網際網路。

正是在這種精神下,我們創立了 ArcBlock;我們希望 ArcBlock 能在這個關鍵時期、也就是區塊鏈發展時代,扮演同樣重要的角色,推動區塊鏈從 2.0 邁向 3.0。

Token Explorer: 你們官網目前只列出了四位核心團隊成員,但我們從其他資料中也知道你們已經新增了數十位技術人員。你們 2018 年的團隊發展計劃是什麼?

Robert: 我們的團隊成長速度相對較快。這個專案最初只有四人的團隊,不久之後就開始吸引更多成員加入。此外,我們的代幣銷售進展順利,為我們提供了更多團隊建設資源,也讓擴張速度大大加快。

由於我們本質上是一個計算生態系統,因此我們需要同時處理技術問題和特定的商業組件,而這些也都會影響開發者體驗和使用者體驗。我們的團隊設計也相對去中心化。因此,在 2018 年,我們計劃把團隊劃分為多個小型中心,每個中心各自聚焦不同方向並承擔主要責任:

我們計劃將西雅圖辦公室建立為核心研發基地,專注於計算平台本身的開發。我們選擇西雅圖是因為這裡是「計算之都」。這裡有大量技術人才。我們的西雅圖辦公室將把核心技術團隊擴充到大約 25 人。

在都柏林,我們計劃組建一支不超過 10 人的技術團隊,由 Flavien(首席科學家)領導。這支團隊將負責高性能區塊鏈技術的研發。

我們還會在上海組建一支更大的團隊,主要聚焦於開發者和使用者體驗。

Token Explorer: 根據 ArcBlock 路線圖的描述,第一個去中心化消費級應用將於 2018 年第二季度上線。你預期哪些類型的應用會運行在 ArcBlock 上?它特別適合某一類應用嗎?

Robert: 對於第一個 Dapp 的上線,我們希望給社群帶來一點驚喜。我可以說,前幾個上線的應用可能會屬於教育類。作為一個計算平台,我們希望 ArcBlock 能被應用到不同產業。我相信未來會出現各式各樣的 ArcBlock 應用。總體來說,ArcBlock 的設計目標是促進非金融類應用的開發。

Token Explorer: ArcBlock 對開發者有激勵政策嗎?

Robert: 當然。ArcBlock 本質上是一個開發平台,所以我們始終把重點放在開發者身上。

例如,如果開發者希望參與名額極其有限的代幣銷售,我們會優先考慮他們。即使某位候選人是 VIP 投資者,我也會說:「抱歉,我們的名額非常有限。」但如果候選人是開發者,即使只是普通開發者,我們也願意給他們機會參與。我們已經為未來的開發者社群分配了 32% 的代幣,這是一個相當可觀的比例。

到 2018 年底,我們的系統可能還不夠成熟,或許還無法向社群開發者開放。不過,我們可以邀請一些親密合作夥伴提前體驗系統。

此外,我們計劃在 2019 年舉辦首屆開發者大會。這將是一個里程碑式的活動,能擴大我們的開發者群體,並促進更多人參與 ArcBlock 的開發。

Token Explorer: ArcBlock 的白皮書提到,現有底層區塊鏈存在一些核心問題,例如性能不佳、介面不友善、成本高,以及平台鎖定風險。這些問題能否通過對現有平台的升級和改進來解決?

Robert: 是的,我們相信現有主流區塊鏈已經意識到這些問題,並開始著手解決。ArcBlock 的目的不是因為現有區塊鏈有問題就去創建一條新的區塊鏈。相反,我們會與現有主流區塊鏈合作,並與它們共同成長。

作為一個應用平台,我們主要聚焦於實現開放鏈接入協議。目前,大多數底層區塊鏈平台通常都選擇自己作為中心。當開發者進入某條鏈時,就必須被鎖定在該鏈的協議之中。開發者會覺得這很受限制,而我們想改變這一點。

許多人把區塊鏈的力量描述為無所不能:它什麼都能做。然而,我們認為區塊鏈有邊界。我們不僅需要承認區塊鏈的能力,也要承認它的不足。真正對消費者友善的區塊鏈應用,應該結合鏈上與鏈下兩種能力。像 Ethereum 或 Hyperledger 這類底層技術支援平台,多半關注的是區塊鏈本身如何提升性能、解決平台問題,但作為完整的應用體驗,還有許多鏈下層面的事情值得我們關注。這套 UX 框架就是 ArcBlock 的指導原則。

Token Explorer: 為了解決平台鎖定問題,我們可能需要先解決其他問題,例如各平台的應用(後端服務、手機端)和介面互動、鏈資料遷移問題,以及移植相容性問題。ArcBlock 是否已經在這些方面探索過解法?

Robert: 社群對平台鎖定問題提出過一些批評。我認為這些評論是合理的。他們的主要觀點是,如果使用者選擇 ArcBlock,實際上還是會被鎖定在 ArcBlock 的開放鏈中。

Open Chain Access protocol

Open Chain Access Protocol 本質上是抽象區塊鏈協議的接入層。一旦你定義了一層抽象,就意味著使用者也會受限於這層抽象。為了解決這個問題,我們的做法是把開放鏈接入協議的程式碼貢獻給開源社群。也就是說,雖然它是我們創建的,但我們不控制它。任何人都可以貢獻程式碼。使用者受約束的是一個公開的開源協議,而不是一個完全由公司控制的平台。

此外,從計算機技術發展的角度來看,還有不少事情需要一個統一的抽象層來解決。我們的開放鏈接入協議與資料庫系統中的開放資料庫互連非常相似。在資料庫發展早期,每個資料庫都有不同的 API、不同的資料查詢語言,以及不同的資料操作語言。正因如此,才誕生了名為 SQL 的統一中間語言。如果你想從資料庫中獲得最佳效能,首先需要找到資料庫的原生介面。SQL 扮演的就是「語言」中的中介角色。

今天,當你部署需要資料庫的應用時,你會發現大多數資料庫都支援 SQL,而 SQL 已經成為標準。不過,當我們形成共識之後,我們也會發現,對某些事情來說,一個更抽象的中間層仍然最有效。因此,我們相信未來即使我們的開放鏈接入協議沒有成為黃金標準,某種類似的東西也會成為主流。我並不確定某一條特定區塊鏈(例如 Ethereum 或 Hyperledger)會成為那個標準。ArcBlock 更中立,而且我相信,也更有可能被主流接納。

Token Explorer: Open Chain Access Protocol 定義了三個層級的 API。要解決跨鏈問題,主要是處理第 1 層和第 2 層,這兩層只會產生簡單的查詢適配。可行性會很高,但功能會相對簡單。為了增強這兩層 API 的功能,實作方式與目前的跨鏈協議專案相似。ArcBlock Open Chain Access Protocol 是否是解決非唯讀介面一致性問題的好方案?

Robert: 這是個很好的問題。正如你所說,ArcBlock 將 API 分成三個層級,這是經過深入思考後設計的:

  • 第 1 層:通用鏈 API。幾乎所有區塊鏈都具有最基本的通用屬性。
  • 第 2 層:通用鏈資料 API。在第 2 層,我們不再思考區塊鏈本身,而是考慮大多數區塊鏈應用所需要的是哪一系列抽象。因此,在第 2 層 API 中,會有一些區塊鏈功能無法完全實現。
  • 第 3 層:原生鏈 API。由於需要定義抽象介面,某些特定區塊鏈模型的原生特性勢必會被犧牲。在這種情況下,如果只提供第 1 層和第 2 層 API,會讓很多區塊鏈的原生屬性完全無用,進而失去一部分開放介面使用者,因此我們支援第 3 層介面。

我們在設計這三個層級的 API 時做了大量研究,也借鑑了 ODBC 標準的設計實踐。事實上,ODBC 的設計也被劃分為三個層級。

我們與目前的跨鏈協議有著根本差異。據我目前的理解,現在大多數跨鏈方案都屬於相對低層級的協議。它們試圖實現某種程度的互聯與互操作。我們的開放鏈接入協議並不是為了解決區塊鏈之間的互通問題。我們在 ArcBlock 中運行跨鏈應用,但這裡的跨鏈應用是指它們都透過開放鏈協議存取不同的網路。這些區塊鏈並不是透過我們的協議介面直接互動,因此那些跨鏈協議可以滿足某些不同需求,並納入額外的設計開發複雜度。

我們的開放鏈接入協議在設計上更務實。我們認為大多數應用即使有跨鏈需求,也是在應用層面發生。所以我們不需要把問題複雜化。我們只需要為應用提供一種統一的方法,讓它們能存取不同的協議或不同的區塊鏈。任何設計都必然有取捨,而 ArcBlock 的設計更多是從應用本身的角度出發,而不是從跨鏈需求出發。

Token Explorer: ArcBlock 想提供一個免費的區塊鏈。然而在目前的區塊鏈世界裡,費用越低,就越容易受到攻擊。ArcBlock 有什麼防禦措施嗎?

Robert: 我們已經考慮過這一點。在區塊鏈的架構設計中,每個使用者都可以成為一個節點。每個節點都可以依照協議規則廣播交易。礦工節點會把這些交易打包成區塊,這就帶來了某些惡意節點透過垃圾交易攻擊消耗系統能力的風險。

在目前的區塊鏈中,終端用戶無法發布大量惡意交易資訊,因此很難形成有效的攻擊效果。ArcBlock 是一個應用框架。如果發生垃圾交易攻擊,基本上只能由運行在 ArcBlock 上的伺服器應用發起。

在我們的設計中,終端用戶不需要付費,但這不代表系統中的應用本身不會產生成本。這些成本將由應用提供者支付。就像遊戲開發者開發一款免費遊戲一樣,遊戲對終端用戶免費,以獲得更多吸引力,但伺服器仍然需要付費。除非開發某個應用的目的就是產生大量無效交易,否則不可能形成垃圾交易攻擊。

白皮書中有一個細節沒有提到,但在這裡很相關,那就是 ArcBlock 系統中的應用提供者需要支付一定數量的 ABT 作為押金。如果它在系統中造成破壞性行為,不僅應用可能會被移除,提供者也可能會失去這筆押金。這個機制是為了防止應用提供者發起惡意應用來破壞系統。

Token Explorer: 系統更新,例如區塊鏈去中心化服務,一直以來都是棘手的問題。Blocklet 是 ArcBlock 的核心組件,承擔了許多功能,尤其是鏈外服務的適配。Blocklet 是否可能需要頻繁更新?是否有更好的更新分發方案?

Blocklet

Robert: Blocklet 本身是一個需要頻繁更新的微服務,但這個問題可以透過支援多版本運行來解決,也就是讓伺服器同時支援多個不同版本的 Blocklet 運作。在我們的設計中,開發者可以很輕鬆地持續更新它。多版本支援是我們整個框架的重要組成部分,也是我們核心的基礎功能之一。

Token Explorer: 微服務架構更常用於中心化伺服器,但 ArcBlock 卻用這種架構來建構去中心化服務。不同微服務之間會有共識和一致性問題嗎?

Robert: 當然會有挑戰。不過,中心化與去中心化之間的界線其實很難定義。比如說:某家銀行開發了一個應用。這個應用分布在許多不同的資料中心中。有些資料中心在 AWS 上,有些在 Azure 上。從一個角度看,這是一種非常去中心化的設計,因為它的系統並不是集中在同一台實體設備上,甚至可能是異質的。但從另一個角度看,它又是一個中心化服務,因為它是由某個銀行組織所控制的。

Token Explorer: ArcBlock 的智慧合約是實作在 blocklet 中嗎?

Robert: 我們對智慧合約的概念與目前 Ethereum 的智慧合約有些不同。Ethereum 的 EVM 可以保證程式碼執行的一致性,這在某些情況下非常重要,但在另一些情況下則不一定。

一個合約往往需要許多外部觸發條件。以 Oracle 為例,一旦合約被外部資料觸發,合約在執行上一致性就會失去。雖然程式碼是一致的,但每次執行時外部條件可能會變化或出現異常。

我們的 blocklet 本身其實是一個框架。如果某個應用使用 Ethereum 作為底層核心鏈,而它的合約強調自身計算的一致性,那麼合約本身就應該原生存在鏈上。但如果應用有很多外部觸發條件,那麼我們更傾向把合約放在 blocklet 中,而不是放到鏈上,因為如果放到鏈上,它可能無法執行原本的目的,也可能受到性能問題影響。

最終的智慧合約可以實作在 blocklet 中,也可以實作在底層鏈上;這主要取決於業務本身的定位、功能和設計。

Token Explorer: 再次感謝你回答我們所有問題。你還有什麼想補充的嗎?

Robert: 這次訪談確實有助於社群了解我們究竟在做什麼,以及我們是如何做的。我們非常期待能與一群相信我們所做事情的社群成員一起,把這些想法真正變成現實。

鏈接: https://mp.weixin.qq.com/s/9kEjYzIFFuZ1nvwu8p8OiA