上週我從美國的西北角西雅圖飛到了東北角波士頓,在那裏待了幾天,爲了參加 USENIX 的旗艦學術會議 NSDI 2019。我和汪浩撰寫的介紹區塊鏈性能提升方案「Monoxide」的論文被這個大會接受,並安排在會議第一天上午爲參會學者和專家進行專題介紹。

從讀博士開始,到畢業後就職於微軟研究院進行學術研究,參加這樣的學術會議、講解論文早已經成爲生活和工作的一部分,不過這次在區塊鏈領域的 First Blood,還是讓我着實興奮。

NSDI 大會對像我這樣長期從事分佈式系統研究的「Nerd」來說,自帶某種閃耀光輝。因爲這個會議對於收錄論文的質量嚴格非常把控,一直固執地採用雙盲評審,從來不打算改變這一傳統。他們接收的每篇文章都要經過兩輪總計六到八個審稿人的審閱,還有程序委員會的討論篩選。這樣折騰下了,每年 NSDI 大會上只有幾十篇論文能夠入選,數量少得驚人。相比某些計算機視覺頂會動輒一年能收錄幾千篇論文的「文海」策略,NSDI 大會算是相當古板,但又讓人敬佩。另外一個讓我心存敬佩的學術頂會是 ACM SIGGRAPH,每年接收論文的數量大概在 100 篇左右。第二個原因是,這是 NSDI 大會屈指可數的收錄區塊鏈論文的案例,更是中國人在這個領域的第一篇文章。

分佈式系統中關於區塊鏈技術的研究還需加強

NSDI 大會關注的研究課題是計算機網絡和分佈式系統,按道理,區塊鏈的核心技術屬於這個領域。可是事實上,學術界目前在這個領域的主流研究方向還是關注於中心化的數據中心、超算中心裏面的理論挑戰和實際工程問題,對應的大都是雲計算行業以及涉及大量計算任務的機器學習領域。

今年總共 3 天的會議中,關注區塊鏈的論文僅有我們這一篇,以至於會議主席在正式開幕的前一天晚上預熱宣講 (preview session) 中,特別提到了我們的論文,說「區塊鏈終於來到了 NSDI 這個分佈式系統領域的殿堂」。我有點想提醒主席先生,其實三年前這個大會收錄過一篇區塊鏈論文,那就是大名鼎鼎的「Bitcoin-NG」,也是在 NSDI 大會上發表的,只是他們沒叫區塊鏈而已。

其實我們「一氧化物」的想法成熟並開始實驗後,就一直在考慮應該如何把這個技術介紹給全球的同行。我們立下了幾個原則:一定要送到採用雙盲評審的頂級學術會議,接受同行嚴格的評審,在這個過程中接受挑戰,也通過這樣促成自身的精進。在選擇會議上,我們明白論文在 NSDI 大會入選難度極大,但是,從一開始我們就把 NSDI 大會定爲目標。因爲我看到這個會議的研究課題分佈在網絡系統的各個技術點上,大家都在關心繫統的性能,即承載大業務的能力,但是在去中心化的分佈式系統的性能提升方面,卻一直難有突破。所以,我們認爲區塊鏈的性能問題的技術突破,最應該在這裏發表。

區塊鏈是一種特殊場景下的分佈式網絡系統,其中涉及的通訊、計算、存儲的開銷和瓶頸等命題同傳統的數據庫、並行計算系統、分佈式計算系統等領域中的問題在思路上是完全一致的。但是由於區塊鏈又是一個去中心化的系統,沒有集中控制和調度的機制,這使得之前分佈式系統中的大部分具體的設計和算法,無法直接應用到區塊鏈中。這就是爲什麼,分片的設計思路可以應用在區塊鏈中,但是我們論文中具體的設計和算法是全新的。

接力交易本質上是並行計算系統裏面很常用的消息傳遞機制,但是必須基於可以安全驗證的設計方案,因爲這裏的安全性問題在之前的中心化系統中是不存在的。所以區塊鏈在設計上,是安全機制和分佈式系統交織在一起的考量,缺一不可。而其中分佈式系統設計是骨架,安全機制是肌肉和韌帶,保障系統可以在去中心化環境中健壯地運行。

同行相見,中國 Nerd 會師

今年的 NSDI 大會共收錄了包括知名高校和企業研究機構在內的 49 篇論文,其中有超過一半來自美國頂尖高校,比如 MIT、UC Berkeley、Stanford、CMU、Princeton、Cornell、UW、Harvard、Yale 等,而另外近一半則來自微軟、Google、Intel 等美國知名的雲計算相關企業。

而另一個很明顯的趨勢是,來自中國的一線研究人員和技術企業的比重在增加。在國際頂會中看到中國人的面孔早就很常見了,但是之前更多是在海外高校研究和一線科技企業做研究的華人,現在,越來越多來自中國的機構。比如,今年的大會上我們越到了來自微軟亞洲研究院、清華大學和今日頭條 (Bytedance) 的中國同行。當然,其中還有我們,來自創新工場和中科院計算所。

當談論硬核技術時,我們談論些什麼

我們的論文被歸類在分佈式系統架構設計專場。「分佈式系統架構設計」這個細分領域算是網絡研究領域的重中之重,所以這個環節安排在會議正式開幕的第一天上午宣講。和我們同一個專場一起宣講的還有 Stanford、MIT 和 EPFL(瑞士洛桑聯邦理工學院) 的論文。

中國人的區塊鏈技術闖入國際學術頂會

當天 300 多人的會場坐得滿滿當當,除了第一排 (難道是讀大學的後遺症?),所以照片裏面的我就沒幾個像素了。憑着當年在 ACM SIGGRAPH 千人會場宣講的經驗,我還算穩穩地把宣講時間控制在 20 分鐘,好在後面流出足夠的時間來回答與會者的提問。

第一個問題來自 Princeton 的一個做無線網絡的研究生,看他對着手機屏幕念出問題,大概是在幫遠程的某位同學提問的。他的問題直擊這個版本的 Monoxide 的一個約束,就是交易要能夠被分解成多個每個涉及一個 zone 的操作。而後面幾位來自 MIT 和 Google 的問題,則是關於最終原子性和連弩挖礦,都比較基礎,估計是沒細看論文。

最後瑞士洛桑聯邦理工學院 Bryan Ford 教授的學生,也就是 Dfinity 在瑞士的團隊,問了關於交易確認時間可能延長的問題。這個情況有概率存在,延長時間的數學期望是出塊週期的一半。其實我在心裏也特別想向他提幾個問題,問問 Dfinity 團隊在研發過程中進展究竟如何,一些核心挑戰是否已經解決。

週三傍晚是我們的海報站臺環節 (poster session)。很明顯,區塊鏈還是非常新的課題,大家充滿好奇心,前來交流的人非常多。很多問題也比較初級的,不好意思在論文宣講提問環節提出的問題,這個時候都來了。

期間比較有意思的是一位 MIT 的同學。我猜他也在做區塊鏈分片這個方向,他和我們討論了限制礦工聚焦算力的另一種方法,數據結構和連弩挖礦類似,但是一次只允許出一個塊,並且能在那個分片裏面出是隨機的不受礦工限制。在保障安全這個角度來說,可以實現和連弩挖礦一樣的效果,只是其他塊都白算了。另外一個讓我印象深刻的是一位來自 VMWare 的女生。她過來來討論了很多設計的細節問題,顯然在這個方向已經有很深入的研究。我智能心中暗暗詫異,難道 VMWare 也在搞區塊鏈了?

期間還有一個 Google 的朋友,問起一個問題,說到了礦場最終會所有分片,是不是分片就沒意義了?這個問題很具代表性,之前知乎上面也有網友問到,所以我覺得值得再解釋一下。礦場需要參與所有分片,並沒有使得分片退化,也沒有損害伸縮性。礦場這個設施,並不是一個單一節點,礦場本身就是一個由幾百上千臺礦機構成的分佈式系統。正是有了 Monoxide 的分片架構,才使得礦場內部可以很簡單地設計成一個高收縮性的系統。投入足夠多的普通服務器,用不同的機器去監控不同的分片進行出塊計算,就可以把實實在在的幾萬甚至幾十萬的 TPS 以及幾個 TB 的狀態容量撐起來。如果沒有分片,例如現在的比特幣、以太坊,那麼礦場即使投入再多的普通服務器也無法提升 TPS 和容量。

小八卦

中國人的區塊鏈技術闖入國際學術頂會

在海報站臺期間,會議主席 Jay Lorch 也來到我們的攤位,表示很喜歡我們的工作,希望有這些新的研究課題給 NSDI 大會帶來更多活力。

他還透露說,今年大會組委會其實總共收到了四篇和區塊鏈相關的論文投稿,最後拒了三篇,只收了我們這一篇,因爲評審委員會評審之後,認爲只有我們這篇工作非常紮實並且想法非常創新,系統的設計簡單有效,是可以應用到實際的工程實現的。

這次參加會議除了讓更多人瞭解我們的工作之外,最大的收穫是在茶歇期間,和一位 Stanford 的同學聊到了 RSA Accumulator。發現我之前對 RSA Accumulator 有個誤解,以爲它的狀態需要 3K 左右字節,而事實上,這個代價是和其模數有關的值,可以變小,當然衝突概率會變大。

這個誤解來自於 Grin 團隊的某個宣講視頻,摔 … 事後請教了一下斯坦福學的密碼學大咖 Dan Boneh 教授,原來 RSA Accumulator 在採用 2048-bit 模數的時候,只需要 256 字節。這是一個非常有意義的結論,可以直接應用在 Monoxide 中,用很小的代價將接力交易的通訊總和從 n log(n),降到 n,從而提高大概 10 倍的吞吐量。

文末,附上我和汪浩的憨笑 :) :)

中國人的區塊鏈技術闖入國際學術頂會

One more thing,是在去開會前一天,非常感謝巴比特爲 Monoxide 趕製了通俗易懂的技術講解視頻,由小喵小姐姐獻聲說法,在此也感謝小喵以及她身後的製作團隊。

視頻連接在這裏 https://www.8btc.com/video/365474

中國人的區塊鏈技術闖入國際學術頂會

來源鏈接:mp.weixin.qq.com