曹鋒是 PCHAIN 創始人,前 IBM 中國研究院互聯網金融首席科學家,中國區塊鏈研究聯盟高級研究員。作爲最早接觸區塊鏈的從業者之一,曹鋒博士和他的團隊獲得中國第一個區塊鏈國際專利,同時也是 ChinaLedger 中國分佈式總賬基礎協議聯盟共同發起人。PCHAIN 由曹鋒博士於 2017 年正式啓動,目前是世界上第一個支持以太坊虛擬機(EVM)的原生多鏈系統。其獨創的 PDBFT 共識算法將通信成本從 N^2 降低至 N,且有效地解決了節點數量無法擴展,過於中心化的的問題。PCHAIN 全新的 Oracle 機制——Smart Data,則有效解決了智能合約內生知識不足的問題。同時,PCHAIN 可支持非原生 token (如 BCH,ERC20)的智能合約調用。

本文爲火花訪談對 PCHAIN 創始人曹鋒博士的採訪記錄。在本次訪談中,曹鋒博士圍繞公鏈底層的技術創新,向大家分享了他的學術觀點和研究動向。

原文標題:《火花訪談|商業子鏈 — 跨越聯盟鏈與公鏈的鴻溝》

PCHAIN 曹鋒:商業子鏈將跨越聯盟鏈與公鏈間的鴻溝

問:可以簡單介紹一下您的從業經歷嗎?

曹鋒:我在 IBM 工作了十年,剛開始是做一些和人工智能、大數據相關的工作,接着進入互聯網金融領域。當時我是 IBM 中國研究院互聯網金融的首席科學家,所以就很自然就延伸到區塊鏈。不過在區塊鏈最開始的時候,大家只是認爲它是互聯網金融的一個小的分支,沒想到有今天的發展。

從 2015 年起,IBM 陸續開展了一些區塊鏈的研究。當時 IBM 和三星有一個合作,這促使 IBM 內部開始了一個祕密的項目,叫 Open
chain,而我非常有幸成爲整個亞太地區第一個拿到 Open chain 源代碼的人。在 6 月份的時候,突然接到總部通知,說區塊鏈是一個非常重要的方向,我們不能再採用原來這種小規模研討的方式,需要投入更多的人和精力,抓緊時間在這方面做出一些成果。

於是我們就積極抽調人手,開始加大研究。之後我和我們團隊在 2015 年 10 月份獲得美國知識產權局的通知,成爲中國第一個區塊鏈國際專利的發明團隊。從申請專利之後,IBM 就一直對區塊鏈進行越來越多的研究。同年 12 月份,IBM 內部把全球的十大研究院的 CTO 等頂級計算工程與研究專家邀請到上海進行了兩天的閉門會議,討論的結果就是把 Hyperleger 變成 IBM 的全球戰略,現在 IBM 大部分的區塊鏈項目都是基於 Hyperleger。

2015 年後,我決定出來創業。因爲之前 IBM 做過人工智能,並且是 IBM 人機大戰的中國區的負責人,剛好那時候人工智能很火,而區塊鏈還很少人知道,所以就比較猶豫該選擇哪個方向。但當時我因爲直覺,認爲區塊鏈未來會變得非常重要,有改變世界的可能性,所以最終還是決定了以區塊鏈作爲創業方向。

圍繞着區塊鏈金融服務業的模式,我們做了一系列探索:2016 年 5 月,我們在貴陽舉辦了第一個有官方背景的區塊鏈會議,並且發佈了中國第一個區塊鏈金融產品;2016 年 9 月,我們發佈了中國的第一個票據交易,同時也是世界上第一次在區塊鏈上的資產收益權轉讓;2017 年,我們跟一些銀行進行關於票據應用的創新嘗試。在這個過程中我們也逐漸意識到,區塊鏈需要更好的底層,因爲它需要承載越來越多的計算和越來越強大的技術功能。

一開始我們想要做公鏈,基於兩個方面的考慮。一方面是在做 MPS 的過程中,我們發現正在做的技術更多是在應用層或者中間層的創新,很難深入到底層。如果想要真正的深入底層,唯一的辦法就是去做一條真正屬於自己的公鏈,或者說自己發起一條公鏈,只有這樣才能真正促進底層的一些技術創新。另外一方面,由於之前我們偏應用層和中間層的這些經歷,也促使我們對底層性能方面有一些自己的思考和見解。

問:您當初爲什麼想要成立 PCHAIN?

曹鋒:因爲我們看到隨着整個區塊鏈的發展,以及一些事件的發酵,它已經不再是一個小衆的東西了。儘管大家現在對區塊鏈真正理解還有很長的一段距離,但事實上這個環境已經好了很多。因此我們預測,在未來它會出現更大範圍內的應用需求,所以這就是我去創立 PCHAIN 的動機。

一方面,我們想去做更加底層的、深入的技術;另一方面,我們始終懷着這樣的一個願景——使大規模區塊鏈的應用成爲可能。我們堅信未來整個人類社會都會被區塊鏈所改造,這是一個具有里程碑性質的新生事物。但是從現有的底層技術來看,還和這個願景差的非常遠,所以這也是我們要發起 PCHAIN 的一個重要原因。

PCHAIN 這個域名其實我很早就註冊了,當時手上有很多域名,PCHAIN 算是精挑細選出來的。P 其實表達了非常多的含義,它可以是 public (公有鏈),可以是 poly (多鏈),可以是 partition (分片),也可以是 Pi (圓周率)……其實 Pi 是一個非常有意思的東西,它也是帶有原生的意義在裏面,而且它的形狀又和多鏈的架構特別像,代表了底層的 π。

問:那您覺得現在做這個項目的難點是什麼?

曹鋒:從去年到現在我們在技術上做了非常多的突破,比如實測實現了全球範圍內最大的 256 條子鏈的計算,這個是大部分做多鏈的團隊做不到的。它有兩個門檻,一是技術門檻。如果想做到幾條鏈、十幾條鏈並行計算或者並行出塊,是相對容易的;但是如果上升到幾十條到上百條,然後從上百條到兩百條,每一次都是技術上的大飛躍。

另外從實測的角度來說,還會有一個資源上的挑戰。當時爲了做這樣一個測試網絡,我們在全球範圍內租用了一千多臺機器,這些機器每個月的開銷是 100 萬人民幣,所以這也是另外的一個門檻。如果你僅僅只想要做這樣一個實驗,你的預算可能就要以 100 萬爲單位去做這樣一個嘗試。正是由於這兩方面原因,我們現在可能是唯一一個能通過實測證明這件事情的團隊。

從技術的突破來看,共識也是我們一直想要去解決的問題。共識機制從一開始的 POW,接着到 POS,然後大家發現說 POS 可能也還不夠好,那傳統的經典方法就是 PBFT 了。它雖然在聯盟鏈上用是挺好的,但是有一個重要的問題,就是結點數一旦超過十幾二十個,通信複雜度是跟它節點的平方數成正比的,這就限制了它的節點數不能很多。

所以在這方面,我們做了一些理論上和實踐上的探索和突破——發明一個新的算法 PDBFT。這個創新也是基於前人的一些經驗,並且融合了我們對 PBFT 的認識,才探索出來的。結合傳統的 Tendermint 算法、BLS、VRF 等,以及我們自己對 BFT 一些特殊算法的設計,最後通過實測證明了它在全球範圍內是可以達到共識的,並且它理論的節點可以達到上百個甚至 200 個,我覺得能做到這個水平已經非常好了。

另外一個方向就是 Smart DATA。這個名詞最早是由 W3C 提出來,作爲知識圖譜裏面的一個 direction。因爲我原來做過人工智能,也是 W3C 的標準組委員會成員之一,所以這個 Smart DATA 也是順手拿過來。自從 V 神提出來這個 Smart contract 後,技術層面很少有人再進一步的進行突破,所以我們覺得 Smart DATA 應該是下一個很重要的方向。而且,Smart DATA 代表了大數據跟區塊鏈的一個結合,很好的解決了現在 Smart contract 內生數據不足的問題。

如果我們相對於 bitcoin1.0 來看,所有的數據全是內部產生的,根本不需要任何外部數據,它是一個內生的純封閉系統。接着 V 神提出 Ethereum,並且引入智能合約,這時候一些數據就需要從外部來引入,所以它已經相當於半開了一個門。但是我們認爲未來區塊鏈要真正發展,必須要和 IOT、大數據和人工智能做一個深度的融合,這是我們看到的未來一個趨勢。所以未來會有越來越多的外部數據,進入到區塊鏈系統裏面。

目前解決這些問題基本都是通過智能合約來進行的,但很顯然,設計智能合約的初衷並不是爲了這個目的,所以它是有點被迫的成爲這樣一種過渡性的手段。既然這樣,那爲什麼不能提出一個新的機制,來做這樣一件事情?其實我們去年提出來這個方案之後,也陸續得到二三十個合作伙伴的支持,所以這也可能成爲 2019 年非常重要的一個方向。

問:那您覺得 data 本身的 verification 是怎麼樣去確定呢?

曹鋒:我覺得從某種角度來說,它是通過數據源本身的行爲來保證的。因爲 blockchain 能夠解決的只是你的數據和信息上鍊之後,不可篡改的問題。但如果信息從源頭一開始就是假的或是虛的,這就不是 blockchain 能解決的問題了。我們更可能是通過 IOT 或者一些規則來儘可能的保證它的真實性和有效性。

問:所以您以後的研發方向是朝 Smart DATA 這邊發展嗎?

曹鋒:對,我們今年很大程度上會朝 Smart DATA 這個方向發展。但同時我們也提了一個新的戰略,也正好是跟我們這個架構相關。因爲我們是國內比較早提出多鏈架構的團隊,所以我們是世界上第一個支持 EVM 的原生多鏈系統,並且現在已經得到越來越多團隊的認可。包括最近京東推出來的 JD Chain,也需要用多鏈。

但其實圍繞多鏈架構本身,還存在很多問題。儘管我們已經實現了 256 條子鏈之間的並行塊,但是內部指令之間怎麼進行協同,怎麼更好的進行交互,怎麼讓多條鏈表現出來是一條鏈的狀態,這裏面還是有很多有待去研究和開發的。

回到剛剛講的 Smart DATA,我們希望數據能夠以一種很直接的方式注入到 blockchain 裏面,而不是採用原來這種被迫的 Smart contract 的方式。但另一方面,一旦有新的數據能夠注入,它勢必會帶來其它各種各樣的問題,比如像現在高 TPS 所造成的問題。現在鏈的 TPS 都越來越高,號稱百萬、千萬和上億的都有,暫且不論它的真實性,但有一個趨勢是很明顯的,即越來越多的數據都放在 blockchain 上。

但是你又會發現 blockchain 是一個天然冗餘的結構,這麼大的數據冗餘其實也是沒有必要的,而且會讓各個節點會變得越來越重,所以我們接下來會主要去推出 data reduction,即把一些不重要的數據去掉。

其實 Ethereum 已經開始做了一些初步的東西,但是我們看到它的數據壓縮率相對來說還是比較低,大概只有百分之幾的一個數據壓縮率。其實我們現在內部也已經初步有一些突破,大概能夠壓縮到一半,當然這個也是可以繼續往前去突破的方向。

總體來說,圍繞 Smart DATA 的學習,我們還會有一些細分的方向。我們還拓展了一個新方向——Commercial child chain,就是商業子鏈。一開始我們只是做子鏈,但是做着做着就發現,商業子鏈其實有非常大的一個現實需求。現在尤其在中國有很多對聯盟鏈的需求,但這些聯盟鏈未來其實都希望能夠跟公鏈進行結合,這其實是必然的一個趨勢,恰好我們的子鏈能很好地去適應這樣一個情景。

一開始,我們可以滿足你作爲聯盟鏈的需求,如果有一天,你想要把它跟公鏈進行連接的時候,那我們的架構可以保證你幾乎零成本的重新連回公鏈上面。所以這個是我們今年認爲非常具有落地性的一個方向。

問:您曾經在一篇關於 Pchain 的文章裏面提到,可以通過 reward penalty function 防止同樣一個 derivative chain 共謀,那麼這種設計裏面的 input 是什麼?

曹鋒:這個是我們原生子鏈很重要,也是非常有意思的地方。因爲我們的原生子鏈跟母鏈共用同一個通信體系,也就是 token 可以在子鏈和母鏈之間相互的轉移。所以對任何一個子鏈來說,它都會有一個身份叫這個鏈的 creater 或 owner,當人們創建子鏈的時候,他其實是需要抵押一部分我們內生的 token 在這個子鏈上面。

同時,它會邀請外部的一些節點來參與,我們通俗叫挖礦,實際上也是參與共識。在創業的時候,owner 的這部分 token 需要預先抵押在這裏面,同時這些節點之間也是相互通過它去挖對應的抵押 token。通過我們內部的決策機制,一方面儘可能的保證不要總是固定的一羣人 consensus,如果時間長了就比較容易出現擴大平均;另外一方面是通過 token 的激勵機制,引入更多的人來參與子鏈的構建。

它採用了這種變相的方式,能夠做到第一我對你有約束;第二你不能做惡;第三解決這個鏈的 creater 或者 owner 的退出問題。因爲理論上他們是可以退出的,當你發現這個應用後來沒有人用了,幹嘛要苦苦支撐呢?所以我們是通過一個規則的方式來完成的,即你作爲 owner 可以退出,但是退出的唯一的辦法就是所有的公司節點全部退出之後,然後再經過一段時間你就可以退出了。

而且它是可以調整的。比如說我是一個 owner,我現在覺得參與的人不夠多,挖礦積極性不高,那我可以持續的往裏面注入新的 token,這樣的話就能吸引更多的人過來,這更多是通過一種經濟手段來解決這個問題。

問:您在文章裏面提到,當有很多 chain 的時候,如果我們只有有限的節點,可以用 heuristic rules 去解決這個問題。請問 heuristic rules 具體是什麼東西?

曹鋒:其實剛纔提到的就已經是 heuristic rules 了,它相當於說我怎麼樣有很多的 chain 可以去 create。因爲到了後面你會發現,除了技術以外,更多的是一些基於經濟學的考慮和設計。比如相對於以太坊而言,你原來只有一種選擇,只能在這條鏈上部署智能合約,但是現在你可以把智能合約部署在它的任何一條子鏈上。另外一方面你也可以去創建一條新子鏈,這需要買很多的 token,然後吸引大家,當然這裏面所付出的成本是不一樣的。

我們當時做這個事情的時候,是把子鏈看作一個有生命週期的東西。它可以出生在官方子鏈上,也可以出生在自己的一個子鏈上。它還會有自己的發展,隨着應用越來越多,可以吸引更多的礦工進來挖礦,吸引更多的人蔘與智能合約的開發。它有可能發展得非常好,並且一直這樣發展下去。

同時,它也可能衰退。當你過了一段時間發現,礦工的積極性也不高,參與的用戶也不多,那可能就慢慢的越來越衰退,這就是所謂的老。最後死就是當所有的礦工都不願意在你這上面挖礦了,認爲你這個沒有前途,這個時候就要考慮退出了。

實際上我覺得這纔是更加合理的一個設計。現在以太坊其實存在大量的垃圾或者殭屍的 Smart contract,在上面被動地佔用了很多資源,因爲它沒有這樣的一個生命週期。

PCHAIN 的多鏈子鏈架構可以解決聯盟鏈相互信任的問題。我們相信聯盟鏈最終會向公鏈過渡,而 PCHAIN 可以通過商業子鏈的形式,實現無縫過渡。

問:那子鏈消失的話,這些資產是不是就消失了?

曹鋒:對的。當所有的礦工都不再挖礦的時候,這些資產就已經沒有了,可能會有點匪夷所思,但事實上就是如此。如果拿現實的區塊鏈項目來看也是一樣,當鏈本身還存在的時候,哪怕你的團隊全都消失了,這個鏈依然存在這個世界上。那鏈怎麼纔算真正的消失?就是世界上沒有任何一個服務器,任何一個節點運行你鏈上面的算法的時候,這條鏈就從世界上消失了。

問:那最後在結算的時候它具體怎麼執行呢?把原來的資產都變成 PI (原 PAI)嗎?

曹鋒:這就要看子鏈 owner 具體是怎麼設計的。你可以通過智能合約轉化成原生的 PI,大家達成一致之後再進行退出;也可以選擇永遠都不退出,這是一個項目策略上的選擇。

剛開始的時候,子鏈完成的是一個從 PI 到 PRC20 之間的轉換,但是當消亡的時候,怎麼把 PRC20 上面的資產再轉換成我原生的 PI 後再退出,這其實是一個商業選擇。

問:如果採取 DPOS 的模式,有沒有可能因爲某一個局部的鏈 security 增強,從而導致整體的 security 下降?

曹鋒:任何一個子鏈的 verification,從角色的層面來看大概可以分爲三個:第一個是你用來參與投票的,這個叫 verification
node;第二個角色叫 full node,即全結點;第三個角色叫 light node,即輕節點。你會發現在主鏈上有大量的全節點,或者 verification node。如果你是一個子鏈上的 verification node 或者是 super node,你可以不是主鏈上的 verification node,但必須是主鏈上的 full node。

只有這樣,你才能夠保證子鏈和主鏈之間的連通性和交互性,如果你連主鏈的 full node 都不是,是沒法去做這件事情的。所以你會發現,即使子鏈上的節點越來越多,它並不會影響主鏈上的安全性。

實際上我們 PBFT 的算法跟 DPOS 還是有很大差別的,因爲我們主要的 consensus 是 BFT 類而不是 POS。但是另一方面,因爲 super node 的個數非常有限,而那些大量持有 PCHAIN token 的人,他們也想參與這樣一個過程,共同來維持整個系統的穩定性。所以,我們引入 delegation,讓你可以把你的票和 token 委託給另外一個 super node。

同時,在我們設計裏面還有一個特別有意思的 safe delegation,即安全委託。安全委託是指在進行委託的過程中,我並不需要把我的 token 打給你,而可以通過一個安全賬戶,把我想要抵押 token 的賬號地址填在裏面,然後把我的 token 鎖在這個賬戶裏面。一方面我的 token 不會離開我的控制,但另外一方面它也被鎖在相應的賬戶裏面了。

問:那 execution group 是屬於 delegation 的一種嗎?

曹鋒:我們目前並沒有把 execution group 分離出來,但這也是我們下一步需要去擴展的方向。按照最開始的設想,我們希望可以把執行的節點和共識分開,但是目前來看它們還是合二爲一的。我們發現即使把通訊代價從 n 的平方降到 n,在實測的主網上線之後,它依然會受到網絡帶寬實際情況的一些影響,因爲在公網環境下它的狀況其實是非常不穩定的。

所以再回到這個問題,execution group 這個 design 我們還是依然保留在這裏,因爲這個一定是隨着未來 5G,或者說更好的網絡工具出現的時候,纔可能會變成現實,它其實更多的是一種任務分工。

問:您覺得對您影響最大的一本書是什麼?

曹鋒:彼得·德魯克《卓有成效的管理者》。這本書第一次讓我從一個全新的視角看待知識經濟浪潮中如何有效地讓團隊成員分工協作,幫助我逐漸形成了帶領團隊基本理念和準則,並且受益至今。

對組織負有責任,能影響組織經營成果的人,就是管理者。管理者,就必須卓有成效。在區塊鏈社區化結構中,社區的每個核心成員都應該成爲卓有成效的管理者。