區塊鏈捕手:區塊鏈的發展與資料庫的發展相似

採訪者: 王延芝、劉乾坤
作者: 王延芝
編輯: 潘宇波
媒體: 區塊鏈捕手
日期: 2018年4月7日

ArcBlock 是對開發者友好的項目之一,能夠加速區塊鏈應用的開發,並讓更多人參與到區塊鏈技術的生態系統中。ArcBlock 的目標是通過推出一個服務平台,降低區塊鏈開發者和應用面臨的門檻。網易創始人丁磊的背書,讓 ArcBlock 從一開始就成為一個備受期待的項目,同時也受到了更多的審視。
最近,區塊鏈捕手採訪了 ArcBlock 的執行長冒志鴻(Robert Mao)。當人們回顧 Robert 的職業生涯時,總結了他過去是多麼「幸運」:「他比騰訊創始人馬化騰早半年開發即時通訊程式;他比聯眾早半年開發休閒遊戲;他比 Facebook 早半年開發 SNS」。但他應該被視為一個失敗者,還是一個大器晚成的天才?我們親自詢問了 Robert。我們不知道讀者是否會對他的回答感到滿意,但那些都是他發自內心的真實回答。
Robert 還表達了對技術瓶頸的解決方案,以及區塊鏈技術的未來潛力。他將區塊鏈的發展與過去資料庫技術的發展進行了類比,相信你能從中學到一些東西。

一個去中心化的團隊
區塊鏈捕手: 我們聽到很多人質疑你的能力,他們認為你過去的項目並不是很成功,而你只是匆忙投身於區塊鏈技術。實際情況是怎樣的?
Robert: 事實上,我在 2009 年就聽說了比特幣,也嘗試過挖礦。然而,當時我並沒有意識到加密貨幣背後有很大的價值。我還格式化了存有我挖到的比特幣的硬碟。
讓我重新認真對待區塊鏈技術有兩個原因:1. 我離開微軟開始自己創業,發現矽谷有很多人在談論區塊鏈;2. 微軟的一位前明星員工,也是我的前同事 Flavien Charlon,啟動了一個基於比特幣的項目,叫做 Colored Coin(彩色幣)。然而,儘管我開始更加關注區塊鏈技術,但當時我覺得它仍然是一個遠離我們日常生活的概念。我當時的理解與現在接近,但我不知道我能立即用區塊鏈做什麼。
2016 年,當我在做一個名為 Knowledge Network(知識網絡)的項目時,我們遇到了一些現實生活中的問題,例如,如何在不同的組織和用戶之間有效地共享知識。我們想到的第一個主意就是使用區塊鏈技術;然而,當我們開始實際工作時,我們發現有太多的問題需要解決。
區塊鏈捕手: 你當時遇到了哪些問題?
Robert: 第一個問題是我應該選擇哪種區塊鏈。許多開發者不知道如何在以太坊和比特幣系統之間做出選擇,如何做出正確的判斷;第二個問題是缺乏開發工具,網上的很多資訊和討論都過時了。在涉及新話題時,權威性的聲明並不多,這使得開發者更難入門。 由於整個開發環境還處於非常早期的階段,我們開始自己開發一些基礎框架。
2017 年,我意識到身邊有不少人開始從事區塊鏈相關項目。通過交流,我發現大多數人都遇到了類似的問題,他們不知道從哪裡開始,沒有足夠的工具可以使用,而現有的工具也不夠用戶友好。我們構建框架的想法啟發了他們,也得到了他們的大力支持。
此外,有一些創投建議我們專注於為區塊鏈產業構建框架。因此,我們在 2017 年做了一個重大的轉型。
區塊鏈捕手: ArcBlock 之所以獲得如此多的公眾關注,主要是因為丁磊的背書。與此同時,很多人也質疑他的背書究竟能起到什麼作用。
Robert: 事實上,是丁磊先來找我的,他想投資我們。當時,我正準備完成白皮書,並邀請了一些專家進行評審。當丁磊來找我時,他已經間接地看過這份白皮書了。顯然,內容在一定程度上對他產生了影響。
但我從未計劃向丁磊尋求資金。因為一方面,我很了解丁磊,知道他很少投資其他項目;另一方面,我認為區塊鏈與網易這樣的大企業關係不大。結果證明,丁磊不僅投資了我們,還成為了我們項目的顧問。
區塊鏈捕手: 你和丁磊交流多嗎?
Robert: 我每次回中國都會和丁磊見面。上次見到他時,我拍了一張照片並發到了網上。當我們不見面時,我會在微信上和他聊天,遇到問題時徵求他的建議。早些時候,有人質疑我們的顧問是網易的丁磊還是矽谷的丁磊。我們請丁磊為我們澄清,他說,根據他自己的經驗,不需要理會謠言,因為人們最終會發現真相。
區塊鏈捕手: 我們在 LinkedIn 上看到,ArcBlock 的核心成員之一 Flavien Charlon 還有很多其他項目在進行,他的主要角色是另一家公司的 CTO,那麼他在 ArcBlock 的角色是什麼?他還有時間和精力帶領團隊嗎?
Robert: 首先,他在 ArcBlock 的角色是首席科學家(Chief Scientist),而不是 CTO 或副總裁。所以他在這裡做的是科學家應該做的事,而不是工程師應該做的事。我們認識一段時間了,Flavien 現在至少參與了四個項目。在某種程度上,他是技術天才,但他並不是在工程層面應用技術的最合適人選。
我認為在區塊鏈時代,最重要的事情是讓每個人做他們最擅長的事。我們需要以中心化的方式管理公司嗎?不,我們不需要。對於合適的人來說,只要他以適當的方式支持項目就足夠了。Flavien 在幫助我們解決許多關於框架和功能型代幣經濟設計的關鍵問題上發揮了重要作用。因為他,我們也從彩色幣項目中學到了很多。
即使在區塊鏈產業,Flavien 所做的也不僅僅是彩色幣項目,他以後可能會做更多。ArcBlock 不會是他的最後一個項目,他目前擔任 CTO 的項目也不會是他的最終項目。
區塊鏈捕手: 你目前的團隊成員分佈在哪裡?他們如何互相協作?
Robert: 早些時候,團隊分佈在愛爾蘭、波蘭、西雅圖和許多其他地方。現在,經過重新安置,中國團隊成員位於北京或上海,美國團隊成員位於西雅圖。
我們的核心理念之一是建立一個真正的去中心化團隊。例如,當公司想成為我們的潛在合作夥伴或獲得我們的投資時,我們可以使用我們的 ArcBlock 代幣 (ABT) 投資他們的團隊,並獲得他們發行的功能型代幣。最終,因為我們一起做類似的事情,且利益一致,我們可以真正地融合進一個生態系統中。
在我們的代幣貢獻活動期間,我們接受了來自 CyberMiles 的功能型代幣 (CMT),我們也獎勵了我們的核心員工 CMT。CyberMiles 和我們自己都對這次合作感到滿意。我們認為,也許在未來,當區塊鏈公司相互合作時,不再是簽署合約或外包交易,而是創建一個由功能型代幣驅動的生態系統,可以激勵並惠及所有參與方。
除了技術之外,我們也希望在行銷和社群管理中嘗試這種方法。例如,如果有人認同我們的使命和願景,並且是社群中推廣 ArcBlock 的優秀意見領袖,只要他願意接受 ABT,我就會給他 ABT 而不是現金。 我認為這是區塊鏈產業中一種革命性的商業運作方式。
解決痛點
區塊鏈捕手: 我們的理解是,ArcBlock 將幫助開發者通過僅一套代碼就能適應各種區塊鏈。開發者真的有這種需求嗎?
Robert: 在我的理解中,區塊鏈技術就像資料庫技術。目前,幾乎 99% 的網路應用都在使用資料庫技術,而用戶甚至沒有意識到。這很可能就是區塊鏈未來的運作方式。我的應用程式由資料庫支持,但我沒有意識到資料庫的存在,也不需要知道地址或錢包。
經驗豐富的開發者不一定需要在多個區塊鏈上開發,但他們不希望被鎖定在某種特定類型的區塊鏈技術中。例如,使用以太坊或 EOS 創建應用程式有本質上的不同,所以如果以後開發者想切換到另一個公有鏈,他們必須重寫大部分代碼。
我們對以太坊和其他公有鏈將持續增長持樂觀態度。同時,我們將定義一個有用的框架和協定,就像創建一個抽象層,將特定的公有鏈與終端應用程式分離開來。 未來,當我們從一個公有鏈切換到另一個公有鏈或更換主要組件時,過程將會非常平滑。沒有程式設計師願意被綁死在某個特定的鏈上,因為這意味著要承擔更高的風險。
區塊鏈捕手: 但從另一個角度來看,讓所有開發者都使用 ArcBlock 平台,是否也是一種「平台鎖定」?
Robert: 不鎖定任何東西是不可能的。讓我打個比方,鎖定在 JAVA 上總比鎖定在 8086 匯編上要好。我們將開發一個開源協定,並分享該協定,以便許多公有鏈可以在此協定上運行。我們被鎖定在開放鏈取用協定(Open Chain Access Protocol)上,但我們沒有被鎖定在任何特定的公有鏈上。
區塊鏈捕手: 一位經驗豐富的開發者學習如何使用 ArcBlock 需要多長時間?
Robert: 人們覺得學習像以太坊這樣的區塊鏈技術很難,是因為這項技術被神祕化了,而且沒有足夠的權威學習材料。如果我們有官方的學習指南,開發者最多只需要幾週時間就能使用以太坊開發應用程式。當已經有網路協定時,開發者只需要一兩週時間就能夠從事底層開發。
ArcBlock 的目標是讓開發者能夠在一兩週內通過 Blocklet 開發應用程式, Blocklet 是一個用於運行各種類型應用程式的無伺服器運算架構組件。該架構中包含特定的組件。當你有一個有用的框架時,你會覺得開發應用程式容易得多,但這並不意味著你真正理解了背後的技術。
區塊鏈捕手: 區塊鏈的另一個痛點是效率低。即使人們使用 ArcBlock 開發應用程式,應用程式仍然運行在公有鏈上。應用程式會受到這些公有鏈效率的影響嗎?
Robert: 當我第一次接觸以太坊時,對它有一個誤解。我認為如果以太坊想成為世界電腦,為什麼效率這麼低。
但當你以我們思考資料庫的方式來思考區塊鏈時,你就會明白效率的瓶頸在於資料庫部分。像淘寶這樣擁有海量電子商務數據的公司仍然能保持高效,是因為他們的系統框架設計旨在防止資料庫瓶頸影響任何操作。有一系列操作可以緩解資料庫組件性能低下的問題,例如架構、快取或資料庫分片。
所以如果整個架構設計得當,即使公有鏈不夠高效,應用程式仍然可以流暢運行。 在我看來,EOS 聲稱的 1,000,000 TPS 在今天的技術下很可能是不可行的。即使在理論上,使用今天的設備也不會很快實現。然而,這並不意味著基於 EOS 的應用程式不能達到高 TPS。
例如,大多數當前的資料庫應用程式都是關於讀取的,因此寫入效率低下不會影響讀取。除非應用程式的每個操作都需要在公有鏈上寫入,否則公有鏈沒有必要達到極高的 TPS。
區塊鏈捕手: ArcBlock 能否代替公有鏈支持應用程式的高 TPS?
Robert: 在 ArcBlock 的架構中,Blocklet 是一個非常高效的微服務架構。例如,如果我們應用 ArcBlock 來運行基於以太坊的遊戲 CryptoKitties(謎戀貓),很可能唯一運行在以太坊上的部分是 ERC721,也就是 CryptoKitties 的 DNA 部分。所有其他資訊都可以在 Blocklet 層進行鏈下計算。因此,應用程式的運行速度將會非常快。
CryptoKitties 不是一個即時應用程式,如果鏈上的數據上傳過程緩慢,可以排隊,但用戶體驗仍然會非常快速。而且高併發計算也不會影響公有鏈。所以即使今天的以太坊效率低下,如果架構設計良好,用戶體驗也不會差,整個系統的功能也不會崩潰。
區塊鏈捕手: 但為什麼底層公有鏈會同意應用程式通過 ArcBlock 開發然後加載到它們上面呢?
Robert: 每個區塊鏈如果允許應用程式開發,就必須有其獨特的介面。我們定義了一個抽象介面,不需要獲得公有鏈的許可。我們的鏈適配器(Chain Adaptor)的功能是在其他公有鏈的介面和我們自己的介面之間進行轉換。為了避免在轉換過程中丟失資訊或功能,我們為開放鏈取用協定設計了三個層級的 API:
第 1 層是通用鏈 API(Common Chain APIs),這套 API 為開放鏈取用 API 提供了基礎。第 2 層是通用鏈數據 API(Common Chain Data APIs)。這套 API 實現了對區塊鏈數據的基礎訪問,並將每個區塊鏈底層視為一個有限狀態機。第 3 層是原生鏈 API(Native Chain APIs)。這套高級 API 暴露了底層區塊鏈協定的原生特性。
我們在設計這個開放鏈取用協定時參考了 ODBC。ODBC 定義了這種從最基礎到加強版再到原生的結構。 當然,在較高層級,遷移代碼更容易,而在第 3 層則不可能遷移代碼。
區塊鏈捕手: 所以當應用程式在 ArcBlock 之上開發時,用戶不會知道底層是哪個公有鏈?
Robert:我認為在未來,對於一個優秀的應用程式,用戶將無法分辨底層是哪個公有鏈。他們使用的是一個 DApp,至少應該給他們目前主流的用戶體驗。當代碼遷移發生時,這將類似於目前網路公司遷移資料庫的情況——用戶甚至不會注意到。
這個問題也讓我想起了 App 和 DApp 之間的區別。DApp 可以通過使用功能型代幣促進每個 App 與其他 App 的協作。這種功能與經常被誤解的 DApp 僅作為一種簡單的區塊鏈 App 技術的目的是完全不同的。
人們對中心化和去中心化有很多不同的看法。我傾向於從三個角度來看待這兩個概念的區別:物理、管理和邏輯。從物理上講,我會檢查機器是否是去中心化分配的。從管理上講,我會看系統管理方法是中心化的還是去中心化的。從邏輯上講,我想看系統是否可以分成不同的部分,還是必須作為一個整體工作。
我認為使用邏輯視角是解釋 DApp 核心最容易理解的方式。這意味著當用戶使用一個應用程式時,用戶感覺它是一個整體,但在邏輯上,它由許多不同的組件或部分組成,並且由於功能型代幣的存在,所有不同的部分都無縫連接。
區塊鏈捕手: 切換底層公有鏈後,之前區塊鏈上的代幣如何切換?
Robert: 應用程式可以基於 ABT 發行自己的功能型代幣。與以太坊系統不同,開發者在這裡發行的功能型代幣與 ABT 處於同一層級。我們更傾向於使用 ABT 來轉換價值,這與底層公有鏈上發行的功能型代幣無關。
最終,ABT 是一個帳本系統;它可以通過高級鏈適配器連接到其他公有鏈。你可以將以太坊視為整個系統的一個組件,以太坊消耗的資源相當於 ABT 消耗的資源。通過使用 ABT,價值可以從其他鏈轉移到 ArcBlock 系統。
區塊鏈捕手: 我們知道人們可以通過為其他開發者創建組件來獲得獎勵。誰來決定服務貢獻的價格?
Robert: 我們的獎勵系統與傳統的挖礦系統非常不同。我們的「礦工」都是開發者,有兩種類型的開發者,一類開發應用程式,一類開發可以被他人使用的組件。這兩類開發者的需求和供應可以匹配,從而創造市場平衡。
如果我是一名開發者,我會決定是自己開發這個組件,還是使用別人已經開發好的組件。如果組件太貴,那麼我寧願自己做,這會讓市場降溫。在這種市場驅動的經濟中,如果沒有人想買你創建的組件,組件的價格就會下降,直到低到人們寧願向你購買也不願自己開發。市場將達到平衡,共識也將達成。
區塊鏈捕手: 為什麼代幣貢獻沒有鎖定期?
Robert:我們沒有為我們的功能型代幣設置任何鎖定期。它可以自由流通。我們明白這會讓我們難以控制市場價格,這可能會讓一些投資者失望。然而,我們使用的是一個非常去中心化的概念,因此我們擁有大量分佈廣泛的支持者。
我認為最有效的市場管理是提供出色的產品,而不是操縱代幣交易市場。這就是為什麼我們在過去幾個月沒有設置任何鎖定期。 我們正在等待市場意識到我們的價值,很難衡量這種行銷策略是否正確,但這就是我們做事的方式。
開發進度
區塊鏈捕手: ArcBlock 開發一個鏈適配器需要多長時間?
Robert: 我們計劃先為比特幣區塊鏈和以太坊實現鏈適配器,然後再開發 Hyperledger。這部分目前還沒有開源,因為創建鏈適配器在理論上是可行的,但在實際工作中仍有許多工程細節需要考慮。我們計劃在完成一些步驟後再開源,屆時社群中的任何人都能夠做出貢獻。如果我們過早開源,當我們需要更改 API 時,其他人也必須更改他們已經完成的工作。我們更傾向於在達到相對穩定的階段後再發布。
區塊鏈捕手: 這就是為什麼有些人抱怨在 GitHub 上找不到 ArcBlock 代碼的原因嗎?
Robert: 首先,我們不是一個完全開源的項目,我們只會開源一些關鍵組件。其次,我們還沒有完全完成。我們更傾向於按照自己的節奏前進,而不是被這麼多不同的意見所干擾。
區塊鏈捕手: 你不會在技術上設置很強的壁壘,因為你想讓越來越多的人參與進來?
Robert: 我始終認為,我們能為社群帶來什麼真正的價值才是最重要的。確實,與其他一些區塊鏈項目相比,我們的技術並不非常複雜;也許我們是最不複雜的一個。我總是說我們是區塊鏈產業中一個很小的項目,我們並不非常激進。然而,許多大項目不知道如何實現他們的願景。當涉及到可擴展的應用程式時,由於涉及的工程量巨大,我們的項目具有挑戰性。當我們的項目啟動時,我們將會非常開放。
區塊鏈捕手: ArcBlock 計劃在 2018 年實現哪些目標?
Robert:我們 2018 年最重要的目標是在 5 月或 6 月左右推出我們的第一個應用程式。 到今年年底,我們希望推出 ABT 的主鏈。我們的應用程式不需要等待我們的主鏈,因為它們更多地與我們的開放鏈取用協定相關,而不是底層鏈。今年,我們還計劃開源我們的開放鏈取用協定,以便更多的社群成員可以加入我們,共同開發該協定。
區塊鏈捕手: 第一個應用程式會關於什麼?與我們在以太坊上看到的應用程式有什麼不同?
Robert: 它將會非常不同,因為我們是以客戶為導向的。我們的第一個應用程式將是一個行動 App。我們現在有幾個選擇,今天不能透露更多。我不會說它優於所有行動裝置 App,但我認為它將擊敗目前為止所有的區塊鏈應用程式。
區塊鏈捕手: 你認為在一輪產業洗牌後,是否只會剩下少數幾個公有鏈?
Robert: 我始終認為區塊鏈與資料庫相似,所以我們可以參考資料庫的發展。首先,不會只有一兩家公司主導整個市場;其次,也不會有成千上萬家公司。我認為最終會剩下幾個公有鏈;每個都有其特色。這將類似於目前資料庫產業的情況:資料庫類型不到十種,每種類型都有其按產業或業務運作模式劃分的價值主張。每種類型的資料庫都有幾家公司在做。我認為這也是區塊鏈產業的未來。
以上內容摘自原始中文採訪:https://mp.weixin.qq.com/s/zDOjQevh6h9iFKXvDQLyKw