跳到主要內容

Interview with BloXroute Chief System Architect Alex Kuzmanovic

ArcBlock
ArcBlockArticleBlockchainDappsForge

媒體: Decentralize Me Podcast

日期: 08-08-2019

ArcBlock Podcast 專訪 BloXroute 首席系統架構師 Aleks Kuzmanovic,探討全新的區塊鏈分發網路

感謝收聽本集 Decentralized Me。這個 Podcast 從全球視角介紹讓去中心化網際網路成真的公司、技術與人物。接下來有請主持人 Matt McKinney 和 Jean Chen。

Matt: Aleks,很高興認識你。我是來自 ArcBlock 的 Matt,今天也有我的好友兼同事 Jean Chen 加入。我想先請你介紹 BloXroute 以及專案目前的進展,幫助我們進一步瞭解 BloXroute。

Aleks: 好。BloXroute 是由我以前的學生 Uri Klarman 創立的,他目前擔任執行長;我是西北大學的電腦科學教授。Uri 和我原本都是電腦網路研究人員,也就是說,我們的背景是網際網路協定、網路效率、內容分發網路等領域。我第一次看到區塊鏈的擴展性問題時,就發現這其實是電腦網路問題,因此 Uri 和我開始合作。我們起初在大學裡開發,但很快發現資源不足。後來,我們與康乃爾大學的 Emin Gun Sirer 教授以及他的博士生 Soumya 建立聯繫;Soumya 當時正在建置中繼網路,於是我們組成了團隊。

我們四人組成團隊,向創投募資,並建立了目前約有 25 人的團隊。總部位於芝加哥,鄰近西北大學。由於 Uri 和營運長 Eyal 都是以色列人,我們在以色列也有一支非常強大的團隊。我稱他們為「特種部隊」,因為每當遇到難題,總是由他們出手解決。公司最初成立於 2017 年,如今已成長為 25 人的團隊。

Matt: 我原本想問另一個問題,不過我很好奇,到目前為止,你們遇過最大的挑戰是什麼?例如,隨著團隊成長並完成募資,有沒有一、兩項出乎意料,或比預期更棘手的挑戰可以和大家分享?

Aleks: 從非常宏觀的角度來看,任何新創公司最困難的部分,都是實際開始做事。我認為這是所有新創公司最大的障礙。尤其在學術界,人們常常做出原型或小型成果,最後卻不了了之。對我們而言,從大學專案真正跨入公司經營,是最需要克服的挑戰。若要說得更具體一些,分散式團隊的協作也可能很困難。

錯誤和各種問題會不斷迎面而來。如果沒有策略性且有組織的處理方式,很容易倒退,最後一事無成。我的經驗是,你總覺得自己正在前進,實際上也確實有進展,但每天又會因為「這個不能用、那個也不能用」而被拉回去。歸根究柢,這是一場必須跑贏的馬拉松。要做到這一點,需要極大的耐心、善意,以及真正能交付成果的優秀團隊。

Matt: 沒錯,這就是透過管理日常工作來達成長期目標。延續剛才的問題,BloXroute 從構想到正式投入生產的過程中,必須克服的一、兩項最大障礙是什麼?

Aleks: 對我們而言,最大的障礙其實是改變思維模式。一般來說,大學研究所的思維不太一樣,通常是「讓我取得足夠的資料來寫論文」,只要能運作、至少能做點事情就好。但要打造真正服務使用者的產品,而且一旦不能運作,使用者就會抱怨,完全是另一回事。我們的關鍵時刻,是聘請 Eyal 加入團隊。他有超過 25 年的業界經驗。如果要對正在收聽、希望實現自己專案的人說一句話,我認為我們需要引進更多具備經驗的業界人士。遇到問題時,這些人曾經歷過類似情況,因此能大幅協助解決痛點。

擁有能解決底層技術問題的經驗者至關重要。對我們來說,關鍵是為公司建立業界等級的架構:每天上午 10 點召開固定會議,團隊之間保持積極且充分的溝通,並即時解決問題。因此,我認為具備業界等級的思維非常重要,至少對我們而言確實如此。

Matt: 你如何定義擴展性的瓶頸?這為什麼重要?

Aleks: 人們談到區塊鏈時,當然會從 Bitcoin 談起,例如我們需要網際網路上的電子現金等,這些都沒有問題。然而,區塊鏈及其運作方式最大的問題在於擴展性,也就是區塊鏈能支援的交易數量相當有限。區塊鏈有不同版本,這個領域也不斷出現新技術,但實際上,只要提高鏈上每秒交易數仍存在技術障礙,就會形成必須解決的限制。我們為什麼需要擴展性?我認為是為了終端使用者,因為規模越大,手續費就越低,服務與交易也會越快。

只有規模足夠大,手續費才能顯著降低。這正是令我振奮的領域,也是我投入其中的原因之一,因為它為眾人所談論的各種酷炫應用打開空間,包括小額支付、眾多智慧合約,以及其他各式各樣的用途。身為網路研究人員,我看到這個問題時說:「區塊鏈的擴展性問題,根本上就是電腦網路問題。」為什麼會這樣?也許有人覺得這只是我的偏見,但讓我解釋為何並非如此。歸根究柢,所有區塊鏈系統的目標,都是讓這些試圖排列交易順序的分散式節點保持一致。

如果能在節點間極其快速、有效率地傳送資料,讓所有節點維持同一狀態,就能解決擴展性問題。我常舉的例子是,假設網路並不存在,所有節點都彼此相鄰,能以最高速度互相通訊。在這種情境下,理論上要讓它們保持一致並達成某種共識,會非常容易。

話雖如此,這不只是每秒能傳送多少位元的速度問題;真正的關鍵是聰明地處理事情,在區塊鏈底層建立智慧型網路。這能協助解決瓶頸。希望稍後能再深入說明,但概括而言,這就是我對區塊鏈與網路的看法。

Matt: 你知道,在這個產業裡,我們常聽到側鏈、分片、Layer 1 與 Layer 2 等概念。對 BloXroute 而言,為什麼是 Layer 0?為什麼這是解決擴展性瓶頸的方法?

Aleks: 首先,我會說它是整體拼圖中重要的一塊。接著,我想解釋它為什麼不可或缺。人們正在嘗試各種方法,例如 Layer 1 分片,我也看過一些非常有希望的研究與理論。還有 Layer 2 專案主張:「不要在鏈上處理,把工作移到鏈下。」某些情況下確實很有幫助。然而,無論其他方案如何,我們的主張,也是我現在和你談話的原因,是加入這一層之後,其他解決方案所能達到的 TPS 至少還有再提升 1,000 倍的巨大潛力。

無論在分片層或 Layer 2 得到多少提升,這個效果都能與其相乘。既然如此,為什麼不一起採用?我們認為,隨著產業與區塊鏈持續發展,需要的交易越來越多,鏈上交易量也會不斷增加,Layer 0 解決方案將不可或缺。這正是我們認為 Layer 0 非常出色的原因。若真想讓區塊鏈進入主流,就必須大幅提升 TPS,而 Layer 0 將成為這幅拼圖不可或缺的一塊。

Matt: 對個別公司或使用者而言,BDN 類型的服務能做什麼?實際好處是什麼?

Aleks: 好,讓我稍微從技術角度說明我們如何處理,你就會明白。以任何區塊鏈系統的節點為例,BDN 基本上提供兩種類型的節點。第一種是提供給區塊鏈節點的閘道軟體。這段程式碼會在特定的區塊鏈節點上執行;一端以該區塊鏈的原生語言與節點溝通,另一端則使用 BloXroute 的語言。存在於我們網路裡的另一類節點,稱為中繼節點或內容分發節點,能協助資料更快地在網際網路上傳播。

BloXroute BDN 的運作方式,是先由閘道軟體將區塊鏈傳來的資訊轉換為 BDN 所需的形式。第二個層次是壓縮區塊,大幅縮小區塊大小,使其能透過區塊鏈分發網路(BDN)更有效率地傳送。簡而言之,閘道軟體協助區塊鏈節點連上 BDN,而 BDN 本身則協助資料在網路上更快速地傳播。因此,終端使用者乃至整個區塊鏈系統,都能看到特定區塊鏈所支援的每秒交易數顯著提升。

Matt: 在區塊鏈產業,甚至某種程度上在加密貨幣領域,我們經常談到的一項關鍵特色就是去中心化。我想知道 BloXroute 如何為使用者,或網路內的這些使用者維持去中心化?

Aleks: 好。其實有一件事正促使系統走向中心化,那就是「礦池」的概念,例如挖礦池。BDN 則能讓每個人更平等地加入系統。大型礦池之間原本就已經在網路層緊密相連。有了 BDN,任何安裝閘道的人都能與世界其他地方保持良好連線。這就是我們協助去中心化的情境之一。

BloXroute 能確保維持去中心化,因為 BDN 會受到去中心化點對點網路的有效稽核。這表示各個對等節點能自行檢查 BloXroute 是否提供了應有的服務,使 BDN 無法審查資料,也無法偏袒某些節點。我們賦予點對點網路強大的權力,讓它能稽核這個區塊鏈分發網路(BDN),從而掌握各種狀況。如果 BDN 發生問題,區塊鏈節點會最先知道。這和過去大家認為「一切都必須百分之百去中心化、百分之百概念化」的傳統方向略有不同。

我們確實需要一個中央元件,但必須確保它完全負責,而且能以去中心化方式受到稽核。做到這一點,就能達成讓系統運作所需的去中心化程度與力量。

Matt: 延續去中心化的話題,它是否也在 DDoS 防護方面扮演關鍵角色?BDN 網路如何保護網路上的使用者和客戶?

Aleks: 這個問題問得很好。每當有人問我這個問題,我就知道他相當瞭解我們在做什麼。為了保持去中心化,我們不能控制誰可以、誰不可以加入網路,對吧?因為一旦可以控制,它就不再是區塊鏈系統。

既然任何人都能加入系統,而且進入網路的所有資料都經過加密——這樣做是因為我們不希望自己能知道使用者傳送了什麼、區塊內有什麼——第一,任何人都能向我們傳送任何資料;第二,資料經過加密,我們無法看到特定區塊的內容。在這兩個條件下,自然而然就會出現你剛才問的問題:我們如何防範 DDoS 攻擊?為此,我們的系統大致借助了區塊鏈既有的 DDoS 防護機制。這是什麼意思?先以工作量證明(PoW)為例,礦工要產生區塊,就必須投入資源。

該節點必須投入算力並參與競爭,才能產生正確的區塊。然而,當資訊傳給我們時,我們只會在無法辨識內容的情況下提供服務。等到確認誰傳送了真正的區塊後,我們就能辨識系統中的真正礦工。我們可以為過去已證明自己是真正礦工、能產生有效區塊的人預留一定資源。如此一來,即使有人執行惡意節點並大量傳送資料,系統仍能正常運作。權益證明也能採用類似做法。概括而言,我們借助現有區塊鏈的機制,保護 BDN 不受惡意行為影響。

Matt: 你正好帶出了下一個問題。我想知道 BloXroute 如何處理不同類型的共識機制。你提到工作量證明和權益證明(PoS),在處理方式上有任何根本差異嗎?

Aleks: 最初研究這個問題時,我們不一定只針對工作量證明。但開始著手之後,我們在某個時點發現,不同共識類型之間其實沒有根本差異。為什麼?因為任何區塊鏈系統都必須產生交易,並把交易分發給區塊鏈節點。接著,無論採用工作量證明或權益證明,區塊鏈節點都會產生區塊,再傳送給世界各地的其他節點。從宏觀角度看,無論共識協定為何,工作都大致相同。讓我快速說明其運作方式。

交易傳送至系統後,BloXroute 會接收所有交易,並為每筆交易提供一個短 ID。例如一筆真實交易長 500 位元組,我們會建立一個約 4 位元組的識別碼,這完全是 BloXroute 內部的本機處理。當區塊抵達時,無論它來自工作量證明、權益證明,或任何其他共識層協定,閘道都會取得原始交易,並以短識別碼取代。如此便能大幅減少區塊鏈節點之間需要傳送的資料量。如果你曾啟動過區塊鏈網路或生態系統,就會知道這有多大的幫助。這項功能非常基礎、非常簡單,卻也十分強大。

這基本上就是我們提供的服務。無論使用 POW、POS 或其他共識類型,它都能良好運作。

Matt: 很幸運能在 7 月底和你交談。我看到你們最近剛完成第一次 Bitcoin Cash 挖礦測試。能否介紹一下測試結果?實際發生了什麼?測試成功嗎?有沒有任何疑慮?整體進展如何?

Aleks: 好。我們選擇 Bitcoin Cash,是因為早期就知道它支援大型區塊,所以在其測試網路上進行實驗。我們能在那裡免費產生包含數百萬筆交易的龐大區塊,並將 32 MB 的大型區塊傳送到世界各地。這對我們而言是非常理想的試驗場,因為區塊越大,我們服務的價值就越高。簡而言之,我們對測試結果非常興奮。

Bitcoin Cash 本身已有一些具競爭性的功能,例如緊湊區塊,但我們的方案對這類系統仍特別有幫助。我們帶來的真正價值,在於讓所有不同的礦工保持同步;我們以非常有策略的方式,將所有交易串流傳送給全部礦工,藉此使其同步。光是這一點就有很大幫助,透過 BDN 傳播區塊資料也同樣有用。詳細資訊可在線上查閱,但概括而言,我們在中國看到特別顯著的提升,因為當地網際網路的運作方式不同,網路層也發生許多有趣的事情。我們得以大幅改善效能——我記得大約提升了 50 倍。這很有價值,因為中國有許多礦工,但他們仍需連接世界其他地區。這是第一點。

Matt: 我認為 BloXroute 的獨特之處之一,當然是你們不只支援 Bitcoin Cash。對 Ethereum 網路和 ETH 支援也有類似期待嗎?根據 Bitcoin Cash 的結果,能否分享你們對下一階段測試的預期?

Aleks: 是,我們希望一切順利,不過當然有一些重要差異。Ethereum 方面,我們將直接進入主網。我們希望證明,在真實世界中也能推動進展,並為礦工及其他所有人創造價值。Ethereum 的特性有些不同;它的區塊小得多,但產生頻率更高,這是第一項差異。另一項差異是它沒有緊湊區塊。因此,我們希望內部的運算和壓縮技術能協助它大幅擴展,真正提升效能。我們也和許多主要的 Ethereum 礦池保持良好合作。接下來就看進展如何。我們希望一切順利,也確信自己會從中學到很多。

Matt: 預計何時會向大眾推出服務?

Aleks: 在 Bitcoin Cash 和 Ethereum 方面,我們很快就會向大眾分享系統第一版的原始碼。第一階段,我們會先和參與測試的挖礦社群分享,讓他們能存取全部原始碼及其他內容。然而,要讓人們信任我們並執行我們的程式碼,就必須讓他們看得到程式碼。我們計畫在 2019 年 9 月發布程式碼,但考量到另一項測試也正準備上線,我們可能需要一些時間調整產品。因此,今年第四季可能是較合理的目標。

Matt: 關於挖礦社群與合作夥伴,你能否分享有哪些夥伴已決定採用 BloXroute 或 BDN,並且可以公開?

Aleks: 基本上就礦池而言,我想很難找到不是我們合作夥伴的業者。礦池社群對此展現了高度興趣。另一方面,我們當然也和大量區塊鏈系統洽談,因為要將特定區塊鏈接入 BDN,需要投入一些工作,例如建置與我們系統相容的閘道。我們已和大量專案接洽,我肯定超過 30 或 40 個。雖然我們希望支援所有可能的專案,但目前當然沒有足夠的開發人員立即支援全部專案。

這是我人生中第一次意識到,當創投其實不像想像中那麼容易。我原以為只要有很多錢,就能四處投資,最後總會有成果。但實際上,我們必須審慎判斷要支援誰。這並非因為我們不希望他們成功,而是如果他們未來沒有成功,我們投入的工作便無法得到相稱的回報。因此,我們會尋找那些我們希望並相信能在未來成功的專案。

目前大致處於這個階段,但我想我們很快就會公布下一批我們在這個領域所信任的區塊鏈專案。我們將與他們合作,共同邁向並建構我們都深信的未來。

Matt: 我想代表所有人感謝你撥冗參與,也謝謝你給我們機會進一步瞭解 BloXroute。

Aleks: 謝謝。

本頁涉及

產品

  • Forge sunset

    一套用來建造鏈上應用的 SDK 和工具鏈,不必分別拼裝節點、資料層和客戶端。它後來成了 ArcBlock Chain。

術語

  • Dapp

    一種應用,它的關鍵狀態不只存在某一個營運方的資料庫裡。各個專案對「去中心」的標準差別很大,所以有用的問題是:哪一部分能被外部的人核實。

  • 區塊鏈

    透過密碼學連接記錄,並按共同的驗證與共識規則確定交易歷史的分散式帳本。