大道至簡(jiǎn):微眾銀行區(qū)塊鏈全棧技術(shù)體系縱覽
幾年前,區(qū)塊鏈技術(shù)堪稱原始,開發(fā)者近乎在“赤手空拳”構(gòu)建區(qū)塊鏈應(yīng)用:部署底層平臺(tái)、寫合約,期間還要面對(duì)諸多的技術(shù)細(xì)節(jié)、技術(shù)難題,踏入各種前人沒(méi)有踩過(guò)的坑,調(diào)試和運(yùn)營(yíng)也都可謂艱難。這種種體驗(yàn)猶如走在羊腸小道上,泥濘且未知。
為產(chǎn)業(yè)趟平技術(shù)門檻,提升應(yīng)用體驗(yàn),降低運(yùn)營(yíng)成本,拓展領(lǐng)域邊界,讓開發(fā)者們便捷且放心地運(yùn)用技術(shù)去創(chuàng)造價(jià)值,加速區(qū)塊鏈的產(chǎn)業(yè)應(yīng)用,一直是我們的目標(biāo)。萬(wàn)物之始,大道至簡(jiǎn),為了達(dá)成目標(biāo),我們堅(jiān)信得首先有個(gè)“大道”,還是能敞開來(lái)走的那種。
微眾銀行區(qū)塊鏈團(tuán)隊(duì)于2015年投入?yún)^(qū)塊鏈的技術(shù)攻關(guān),并在2017年把成果全面向產(chǎn)業(yè)開源。至今,已經(jīng)正式發(fā)布了超過(guò)10個(gè)主要區(qū)塊鏈開源項(xiàng)目,參與多項(xiàng)國(guó)際國(guó)內(nèi)的標(biāo)準(zhǔn)編寫,提交了大量的專利申請(qǐng)。
近年來(lái),得益于我國(guó)對(duì)科技創(chuàng)新研究的大力支持,包括新基建、數(shù)據(jù)要素、隱私保護(hù)和碳中和等國(guó)策或國(guó)家倡議,數(shù)字化技術(shù)的提升和產(chǎn)業(yè)創(chuàng)新加速推動(dòng)。
同時(shí),來(lái)自開源社區(qū)的支持鼓勵(lì)、優(yōu)化建議、共創(chuàng)共建,技術(shù)研究的方向亦愈發(fā)清晰、迭代敏捷。諸多技術(shù)項(xiàng)目都是從社區(qū)收到了訴求、碰撞出靈感后發(fā)起,且由社區(qū)共同開發(fā)代碼、維護(hù)周邊工具、編撰技術(shù)和用戶文檔,共同鑄就了微眾銀行區(qū)塊鏈豐富的社區(qū)技術(shù)生態(tài)。
經(jīng)過(guò)多年的共同努力后,我們認(rèn)為,領(lǐng)域技術(shù)已經(jīng)趨于成熟,開發(fā)者的“高速公路”已經(jīng)鋪就。
領(lǐng)域發(fā)展趨勢(shì)
近年來(lái),隨著區(qū)塊鏈應(yīng)用加速落地,我們看到一些明顯的趨勢(shì):
區(qū)塊鏈應(yīng)用的規(guī)模和地域范圍不斷在擴(kuò)大,國(guó)家級(jí)區(qū)塊鏈網(wǎng)絡(luò)貫通各省市,技術(shù)架構(gòu)多元化,業(yè)務(wù)形態(tài)更為復(fù)雜,治理模型更加多變……單層單鏈的區(qū)塊鏈網(wǎng)絡(luò)已經(jīng)難以為繼。
許多運(yùn)行在生產(chǎn)環(huán)境中的區(qū)塊鏈應(yīng)用承載著海量的請(qǐng)求,而且由于區(qū)塊鏈數(shù)據(jù)只增不減,日積月累,存儲(chǔ)容量日漸逼近硬件上限,需要對(duì)數(shù)據(jù)進(jìn)行拆分、遷移和備份。同時(shí),開發(fā)者對(duì)海量數(shù)據(jù)的管理、分析、災(zāi)備方案也有著強(qiáng)烈的需求。
在與實(shí)體產(chǎn)業(yè)結(jié)合時(shí),區(qū)塊鏈和既有的IT系統(tǒng)有著不同的系統(tǒng)架構(gòu),且不同產(chǎn)業(yè)有著不同的業(yè)務(wù)邏輯、數(shù)據(jù)維度和安全合規(guī)要求。如何清晰地識(shí)別鏈上鏈下邊界,讓區(qū)塊鏈和原有IT系統(tǒng)各司其職,又無(wú)縫結(jié)合,解決業(yè)務(wù)痛點(diǎn),是每個(gè)開發(fā)者都在思考的問(wèn)題。
隨著區(qū)塊鏈應(yīng)用走近大眾的生活,人、機(jī)構(gòu)和物聯(lián)網(wǎng)的標(biāo)識(shí)如何定義?個(gè)人數(shù)據(jù)如何管理?人們?cè)诤蛥^(qū)塊鏈交互時(shí)如何得到良好的體驗(yàn),同時(shí)又實(shí)現(xiàn)隱私保護(hù)?…… 等等這些問(wèn)題的背后,折射的都是數(shù)據(jù)成為生產(chǎn)要素時(shí)代的痛點(diǎn)。
總之,網(wǎng)絡(luò)規(guī)模越來(lái)越大,數(shù)據(jù)越來(lái)越海量,場(chǎng)景越來(lái)越豐富,用戶對(duì)于友善的區(qū)塊鏈應(yīng)用體驗(yàn)的呼聲必將越來(lái)越大。這些趨勢(shì)印證著區(qū)塊鏈在數(shù)字化進(jìn)程中的應(yīng)用深度和廣度日益增加,同時(shí),也對(duì)技術(shù)提出了更高的要求。
把技術(shù)基本面先做扎實(shí)

讓我們先回到原點(diǎn)。從一開始,我們就堅(jiān)定地選擇了聯(lián)盟鏈方向。毫無(wú)疑問(wèn),區(qū)塊鏈作為基礎(chǔ)設(shè)施,首先要“可信可靠”,也就是要保證合規(guī)、安全和系統(tǒng)的穩(wěn)定。
合規(guī),意味著在技術(shù)上首先要去除虛擬代幣,采用許可加入模式,支持KYC(Know Your Customer:了解你的客戶),并提供監(jiān)管接口和審計(jì)機(jī)制,以符合相應(yīng)行業(yè)的監(jiān)管審計(jì)要求。
安全,是很多行業(yè)的命脈,其中包括系統(tǒng)安全、合約安全、數(shù)據(jù)安全、隱私安全。我們以金融級(jí)安全為準(zhǔn)繩,在網(wǎng)絡(luò)、存儲(chǔ)和運(yùn)行環(huán)境進(jìn)行了大量的安全加固,如在2016年實(shí)現(xiàn)了高等級(jí)的存儲(chǔ)加密;在合約安全方面,實(shí)現(xiàn)開發(fā)期和在線運(yùn)行時(shí)的靜態(tài)/動(dòng)態(tài)檢測(cè);在隱私計(jì)算方面,提供場(chǎng)景化的、有針對(duì)性的數(shù)據(jù)隱私保護(hù)方案。
當(dāng)真正要把技術(shù)用于生產(chǎn)環(huán)境,穩(wěn)定性至關(guān)重要,如金融級(jí)的穩(wěn)定是要求“5個(gè)9”,也就是99.999%的可用,相當(dāng)于7*24小時(shí)運(yùn)行,幾乎不能停機(jī),且能在線維護(hù)升級(jí),應(yīng)對(duì)各種內(nèi)外部的故障,滿足苛刻的的RPO(恢復(fù)點(diǎn))和RTO(恢復(fù)時(shí)間目標(biāo))要求。
合規(guī)、安全、穩(wěn)定是“基本面”,是不容妥協(xié)且必須達(dá)到的要求。這也要求我們必須埋頭深耕關(guān)鍵核心技術(shù),包括密碼學(xué)、共識(shí)算法、智能合約、分布式網(wǎng)絡(luò)等,用過(guò)硬的技術(shù)能力給出保障。從這幾年廣泛的應(yīng)用情況來(lái)看,我們的開源項(xiàng)目在基本面上經(jīng)受住了考驗(yàn)。
同時(shí),F(xiàn)ISCO BCOS以及相關(guān)組件實(shí)現(xiàn)了全面國(guó)產(chǎn)化,全棧支持國(guó)產(chǎn)硬件、操作系統(tǒng)和國(guó)密算法。

在“基本面”穩(wěn)固的基礎(chǔ)上,高性能、易用性、擴(kuò)展性、可持續(xù)性則是重要的“加分項(xiàng)”,也是開源軟件是否廣受歡迎的關(guān)鍵所在。只有得到社區(qū)的認(rèn)可和支持,技術(shù)才能真正落地,形成共建和快速進(jìn)化的健康可持續(xù)生態(tài)。
既要跑得快,也要行得遠(yuǎn)
經(jīng)過(guò)卓有成效的優(yōu)化,F(xiàn)ISCO BCOS底層的單鏈TPS已經(jīng)達(dá)到萬(wàn)級(jí),且可以無(wú)限平行擴(kuò)展,足以滿足大規(guī)模應(yīng)用的需求。“區(qū)塊鏈速度慢”這個(gè)說(shuō)法已經(jīng)成為過(guò)去式。
但性能并不等于“跑個(gè)分”這么簡(jiǎn)單,系統(tǒng)不能只是跑得快,還要跑得穩(wěn),行得遠(yuǎn),要保證這些,當(dāng)務(wù)之急是要正視數(shù)據(jù)容量問(wèn)題。
區(qū)塊鏈上的數(shù)據(jù)以鏈?zhǔn)酱嬖冢辉霾粶p,而金融等行業(yè)要求數(shù)據(jù)保留多年甚至永久保存,這必然給存儲(chǔ)帶來(lái)巨大壓力。如今,有的社區(qū)開發(fā)者的應(yīng)用在線上運(yùn)行了幾年,產(chǎn)生了數(shù)以億計(jì)甚至百億計(jì)的數(shù)據(jù),最初配置的硬盤面臨容量瓶頸。
數(shù)據(jù)膨脹問(wèn)題不像功能和性能問(wèn)題那么顯性,但它就像“房間里的大象”,總是要面對(duì)的。我們必須從存儲(chǔ)體系上徹底解決這個(gè)問(wèn)題。
同時(shí),數(shù)據(jù)量越大,意味著鏈上蘊(yùn)含的價(jià)值越多,就越值得去挖掘。開發(fā)者們也希望有更加便捷、直觀、高效、安全的方法來(lái)處理這些寶貴的數(shù)據(jù),比如查詢鏈上都有誰(shuí)部署了哪些合約,每個(gè)合約有多少交易調(diào)用,還有諸如多維度交叉分析、豐富的報(bào)表統(tǒng)計(jì)、商業(yè)智能建模、監(jiān)管和反洗錢支持等。必須有對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的范圍查詢和計(jì)算的方案。
2018年我們開始分析這個(gè)問(wèn)題時(shí),認(rèn)為區(qū)塊鏈節(jié)點(diǎn)本身應(yīng)聚焦于達(dá)成共識(shí)、保證交易的及時(shí)性和事務(wù)一致性上。在鏈上增加復(fù)雜數(shù)據(jù)處理能力,即使技術(shù)上可行,但并不是最優(yōu)方案,因?yàn)檫@樣會(huì)將計(jì)算和存儲(chǔ)的開銷和鏈上節(jié)點(diǎn)耦合綁定,難以擴(kuò)展。
所以,能否鏈上鏈下結(jié)合來(lái)解決這些問(wèn)題呢?

首先,我們大幅優(yōu)化了鏈上狀態(tài)的數(shù)據(jù)結(jié)構(gòu),鏈數(shù)據(jù)存儲(chǔ)開銷呈現(xiàn)數(shù)量級(jí)的銳減。在投入同等存儲(chǔ)硬件的前提下,系統(tǒng)可持續(xù)運(yùn)行的時(shí)間更長(zhǎng)。經(jīng)測(cè)算,一般的賬目和存證業(yè)務(wù),在中高強(qiáng)度的業(yè)務(wù)流量下,配置4T的硬盤足以保存5~10年的數(shù)據(jù)。
其次,我們引入分布式存儲(chǔ)體系,將鏈上數(shù)據(jù)完整地同步到鏈下,依托容量易于擴(kuò)展的網(wǎng)絡(luò)存儲(chǔ)設(shè)備、關(guān)系型數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)等技術(shù),在鏈下建立區(qū)塊鏈數(shù)據(jù)鏡像。
這樣一來(lái),就可以使用成熟的數(shù)據(jù)維護(hù)工具進(jìn)行數(shù)據(jù)的遷移、冷備等操作。區(qū)塊鏈網(wǎng)絡(luò)擴(kuò)容時(shí),新節(jié)點(diǎn)可以快速同步數(shù)據(jù),我們也可以從數(shù)據(jù)鏡像里批量提取數(shù)據(jù)構(gòu)建快照,快速恢復(fù)出新節(jié)點(diǎn)。
既然鏈下數(shù)據(jù)是完整的,那么我們可以考慮剪裁節(jié)點(diǎn)里的歷史數(shù)據(jù),只保留需要頻繁訪問(wèn)的新數(shù)據(jù),當(dāng)應(yīng)用或鏈上計(jì)算驗(yàn)證流程需要訪問(wèn)到歷史數(shù)據(jù)時(shí),定向到鏈下去查詢,這個(gè)過(guò)程對(duì)數(shù)據(jù)訪問(wèn)方是完全透明的。數(shù)據(jù)冷熱分離、無(wú)縫存取,這樣一來(lái),容量和訪問(wèn)的問(wèn)題就完全無(wú)憂了。
對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的分析、多維度聯(lián)合查詢時(shí),我們可以結(jié)合關(guān)系型數(shù)據(jù)庫(kù)、專業(yè)的大數(shù)據(jù)平臺(tái)、搜索服務(wù)器、AI分析引擎等,對(duì)鏈下數(shù)據(jù)進(jìn)行聯(lián)合檢索、建模、批處理。
值得一提的是,數(shù)據(jù)在鏈下處理,和是否“中心化”無(wú)關(guān),因?yàn)樗墟溕系膮⑴c者都可以基于自己部署的節(jié)點(diǎn),獨(dú)立地導(dǎo)出和處理數(shù)據(jù),并不依賴于其他人,整體上還是多中心的分布式協(xié)作形態(tài)。
通過(guò)架構(gòu)解耦和融合多種技術(shù),我們?cè)阪溕湘溝陆⑵鸱植际酱鎯?chǔ)體系,兼顧了鏈上交易的分布式實(shí)時(shí)性和事務(wù)性,也解決了數(shù)據(jù)容量和大數(shù)據(jù)處理的問(wèn)題。
為了簡(jiǎn)化開發(fā)者的數(shù)據(jù)操作,社區(qū)發(fā)布了一系列開源項(xiàng)目,包括數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)導(dǎo)出、數(shù)據(jù)遷移、數(shù)據(jù)分析等組件,開發(fā)者可以根據(jù)自己的需求和資源投入情況靈活組合使用。
至此,解決數(shù)據(jù)容量問(wèn)題就像把大象裝到冰箱里一樣的簡(jiǎn)單:下載開源工具、對(duì)接區(qū)塊鏈、運(yùn)行起來(lái),然后去喝杯咖啡,隨后數(shù)據(jù)源源不斷地入庫(kù),完整的數(shù)據(jù)視圖呈現(xiàn)在眼前,猶如百川歸海、海闊任魚躍。
尊重?cái)?shù)據(jù),全面隱私保護(hù)
和社區(qū)交流討論業(yè)務(wù)如何引入?yún)^(qū)塊鏈時(shí),隱私問(wèn)題是高頻問(wèn)題:個(gè)人的數(shù)據(jù)能不能上鏈?企業(yè)A和企業(yè)B的賬目來(lái)往,是否對(duì)其他企業(yè)可見(jiàn)?如果可見(jiàn),是否會(huì)泄露商業(yè)機(jī)密?
區(qū)塊鏈的分布式賬本模型強(qiáng)調(diào)對(duì)等合作,數(shù)據(jù)共享,且數(shù)據(jù)可全程追溯,這也意味著如果業(yè)務(wù)將所有數(shù)據(jù)放到鏈上,且鏈上數(shù)據(jù)被無(wú)差別訪問(wèn),可能會(huì)帶來(lái)隱私泄露的問(wèn)題。如果因?yàn)椤吧湘湣本托孤蹲?cè)用戶數(shù)、業(yè)務(wù)量、利潤(rùn)率等關(guān)鍵信息,是許多商業(yè)場(chǎng)景不能接受的。
區(qū)塊鏈的公開透明和隱私保護(hù)并不矛盾。現(xiàn)實(shí)世界里本來(lái)就是有一些信息是公共公開的,另有一些則是要受到保護(hù)的。隱私數(shù)據(jù)在得到用戶授權(quán)同意的前提下,才會(huì)在受控的范圍內(nèi)被查看和使用。
不同的場(chǎng)景里數(shù)據(jù)的維度、交換過(guò)程、敏感性和監(jiān)管要求千差萬(wàn)別,我們認(rèn)為不太可能有單一的策略解決所有的問(wèn)題,我們需要建立的是立體化的,可靈活組合定制的技術(shù)和管理體系。
整體思路分為隔離、控制、隱私計(jì)算這幾部分。

隔離是指數(shù)據(jù)是否要上鏈?以什么形態(tài)上鏈?怎么上鏈?隔離的策略比較直觀,上鏈的本來(lái)就是應(yīng)該多方可見(jiàn)的公共數(shù)據(jù),或者只將數(shù)據(jù)的HASH上鏈,明文存在鏈下。另外,F(xiàn)ISCO BCOS單鏈多群組架構(gòu)為開發(fā)者提供了賬本級(jí)的隔離策略,僅加入到群組的參與者可訪問(wèn)特定范圍的賬本數(shù)據(jù)。
控制指采用精細(xì)的準(zhǔn)入機(jī)制和角色權(quán)限模型,網(wǎng)絡(luò)和數(shù)據(jù)訪問(wèn)均經(jīng)過(guò)準(zhǔn)入審核,操作過(guò)程可全程追溯,結(jié)果可審計(jì)監(jiān)管,保證可管可控。這就要求從網(wǎng)絡(luò)、存儲(chǔ)、交易處理流程、合約引擎、應(yīng)用的設(shè)計(jì)均預(yù)置控制點(diǎn),針對(duì)不同的場(chǎng)景和需求提供可定制的策略,以及高效易用的操作接口。
隱私計(jì)算則是采用多種密碼學(xué)算法,一方面,幫助用戶用證明代替明文,選擇性披露自己的信息,避免隱私信息被越權(quán)采集;另一方面,跨機(jī)構(gòu)用聯(lián)合計(jì)算代替數(shù)據(jù)共享,實(shí)現(xiàn)數(shù)據(jù)可用不可見(jiàn)的效果。
WeDPR是我們面向隱私計(jì)算的一整套數(shù)據(jù)隱私保護(hù)方案的總稱,WeDPR的主旨,對(duì)數(shù)據(jù)和用戶數(shù)據(jù)主權(quán)的“Defence、Protect、Respect”。
WeDPR提供諸多底層算法、多語(yǔ)言的開發(fā)包、可視化的隱私計(jì)算平臺(tái)體驗(yàn),實(shí)現(xiàn)了諸如聯(lián)邦學(xué)習(xí)、安全多方計(jì)算、同態(tài)加密、零知識(shí)證明、選擇性披露等算法。功能上,可以滿足隱私保護(hù)要求;性能上,對(duì)不同算法針對(duì)性地進(jìn)行了大量的優(yōu)化,運(yùn)行時(shí)擁有毫秒級(jí)的響應(yīng)能力,足以滿足千萬(wàn)乃至億級(jí)的數(shù)據(jù)量規(guī)模。
組合多種隱私保護(hù)策略,我們可以滿足多變的業(yè)務(wù)流程,針對(duì)性地保護(hù)身份、資產(chǎn)、交易、行為數(shù)據(jù)、文件集等。為了便于理解,我們針對(duì)匿名投票、安全支付、隱秘競(jìng)拍、聯(lián)合營(yíng)銷和聯(lián)合風(fēng)控等典型的場(chǎng)景,都給出了開源的應(yīng)用參考實(shí)現(xiàn)。
近年,數(shù)據(jù)成為生產(chǎn)要素,相關(guān)立法陸續(xù)出臺(tái),無(wú)論是面向個(gè)人的APP還是B端后臺(tái)服務(wù),只要是與數(shù)據(jù)相關(guān)的事務(wù),都面臨著更嚴(yán)格、更全面的隱私保護(hù)規(guī)制,既往那種粗放的數(shù)據(jù)收集和使用流程已經(jīng)不再適用。
我們必須尊重用戶數(shù)據(jù)權(quán)益,合理合規(guī)地使用數(shù)據(jù),通過(guò)創(chuàng)新的模式使數(shù)據(jù)流動(dòng)起來(lái),滿足安全存儲(chǔ)、可信傳輸、協(xié)同生產(chǎn)的需求,實(shí)現(xiàn)產(chǎn)權(quán)可界定、價(jià)值可存儲(chǔ)可評(píng)估可流通,深挖數(shù)據(jù)價(jià)值,最終釋放數(shù)據(jù)生產(chǎn)力。
拓展區(qū)塊鏈的邊界
如果把區(qū)塊鏈業(yè)務(wù)比作用戶在路上看到的風(fēng)景,把區(qū)塊鏈應(yīng)用整體架構(gòu)看作是一輛智能汽車,那么區(qū)塊鏈的底層平臺(tái)相當(dāng)于 “底盤”。在高性能、穩(wěn)定、安全的底盤之上,還需要人機(jī)交互、智能輔助、云網(wǎng)互聯(lián)等諸多能力,這樣這輛車才能與駕駛員順暢地交互,帶領(lǐng)乘客到更多的地方,拓展技術(shù)和應(yīng)用的邊界。

靈活的賬本形態(tài):FISCO BCOS已經(jīng)成為被廣泛采用的區(qū)塊鏈底層平臺(tái),配套了控制臺(tái)、SDK、瀏覽器等一系列基本工具,本身已經(jīng)具備了強(qiáng)大的可用性。
尤其在FISCO BCOS 2.0的群組特性發(fā)布后,開發(fā)者可以像組建聊天群一樣,只需一次部署,然后根據(jù)業(yè)務(wù)協(xié)作關(guān)系,在不同機(jī)構(gòu)間動(dòng)態(tài)創(chuàng)建分布式賬本。
對(duì)于伙伴眾多、合作關(guān)系多變的機(jī)構(gòu)來(lái)說(shuō),群組特性拓展了賬本的形態(tài),精準(zhǔn)地解決了重復(fù)建鏈的痛點(diǎn)問(wèn)題,提升了建設(shè)效率,降低了人力物力成本。
分布式身份體系:目前分布式身份體系在金融、政務(wù)、公共事務(wù)等領(lǐng)域廣受關(guān)注。采用分布式身份體系,可以建立跨機(jī)構(gòu)、跨網(wǎng)絡(luò)的身份互通,解決鏈上可信身份和可信憑據(jù)分布式互驗(yàn)的問(wèn)題。把住了身份認(rèn)證、身份標(biāo)識(shí)的這一道大門,才能安全穩(wěn)妥地在實(shí)體世界和數(shù)字化世界之間建立鏈接。
WeIdentity是符合W3C DID規(guī)范的分布式多中心的身份標(biāo)識(shí)協(xié)議,完整地實(shí)現(xiàn)了分布式身份體系的協(xié)議和周邊支撐組件。再結(jié)合WeEvent分布式消息協(xié)作體系,給物聯(lián)網(wǎng)設(shè)備賦予分布式身份和承載其產(chǎn)生的即時(shí)消息,可支持物聯(lián)網(wǎng)、邊緣計(jì)算和區(qū)塊鏈的融合。
廣域跨鏈互聯(lián):WeCross跨鏈方案致力于異構(gòu)區(qū)塊鏈之間互聯(lián)互通。我們看到,隨著業(yè)務(wù)發(fā)展,大型區(qū)塊鏈網(wǎng)絡(luò)和應(yīng)用的不同建設(shè)時(shí)期有可能引入不同的區(qū)塊鏈底層技術(shù),甚至從規(guī)劃時(shí)就用多種區(qū)塊鏈底層平臺(tái)實(shí)現(xiàn)分層、分區(qū)域、分業(yè)務(wù)的鏈網(wǎng)體系,并不會(huì)綁定到某一個(gè)底層技術(shù)上。
那么,如此龐雜的技術(shù)生態(tài)中,因底層架構(gòu)、數(shù)據(jù)結(jié)構(gòu)、接口協(xié)議、安全機(jī)制等差異,會(huì)帶來(lái)一系列的問(wèn)題,比如應(yīng)用不得不針對(duì)每種鏈去重復(fù)開發(fā),不同鏈上的數(shù)據(jù)和事務(wù)難以無(wú)縫對(duì)接等。
WeCross面向不同鏈之間的網(wǎng)絡(luò)尋址、密碼算法、應(yīng)用接口、事務(wù)模型、安全治理進(jìn)行研究和抽象,提出了“書同文、車同軌”的愿景,本著“最大的共識(shí)、可運(yùn)行的代碼”的思路,開放適配多種底層鏈。
在不同的鏈實(shí)例之間實(shí)現(xiàn)合約互調(diào)、狀態(tài)互認(rèn)、事務(wù)保障等一系列的功能,對(duì)應(yīng)用層提供統(tǒng)一的接口,使得應(yīng)用達(dá)成WORA(Write Once,Run Anywhere),區(qū)塊鏈應(yīng)用輕松互聯(lián)互通,拓展了網(wǎng)絡(luò)邊界。
與現(xiàn)實(shí)世界互通:智能合約引擎本身是一個(gè)“沙盒”,以屏蔽掉各種不確定性的干擾,保證鏈上事務(wù)的分布式一致性、事務(wù)性,比如,用不同節(jié)點(diǎn)上的智能合約去調(diào)用本機(jī)系統(tǒng)時(shí)間,由于時(shí)鐘有可能根據(jù)時(shí)區(qū)、對(duì)時(shí)的不一致,那么會(huì)導(dǎo)致合約計(jì)算差異,無(wú)法達(dá)成一致;同理,鏈外的隨機(jī)數(shù)、文件系統(tǒng)、網(wǎng)絡(luò)數(shù)據(jù)、現(xiàn)實(shí)世界里的信息如股價(jià)、球賽結(jié)果,都無(wú)法直接由智能合約調(diào)用,智能合約和真實(shí)世界存在“隔閡”。
Truora預(yù)言機(jī)用于打通鏈上鏈下的信息通道,預(yù)言機(jī)服務(wù)響應(yīng)鏈上合約的調(diào)用請(qǐng)求,去采集互聯(lián)網(wǎng)乃至現(xiàn)實(shí)世界的信息,經(jīng)過(guò)密碼學(xué)校驗(yàn)后,可信可靠地錨定到鏈上,為鏈上合約提供統(tǒng)一的數(shù)據(jù)視圖,這樣智能合約就能得到一致且確定的鏈下數(shù)據(jù)。
Truora預(yù)言機(jī)拓展了智能合約的邊界,可以實(shí)現(xiàn)許多有趣、有用的鏈上鏈下互動(dòng),如基于可驗(yàn)證隨機(jī)數(shù)實(shí)現(xiàn)分布式抽獎(jiǎng)、基于匯率實(shí)現(xiàn)跨境金融業(yè)務(wù)、基于天氣信息實(shí)現(xiàn)民生應(yīng)用等。
智能合約引擎進(jìn)化:智能合約引擎是區(qū)塊鏈的核心,之前的智能合約引擎在復(fù)雜的業(yè)務(wù)面前已經(jīng)略顯力不從心,比如解釋型的引擎速度較慢,不能支持較為復(fù)雜的數(shù)據(jù)格式和較深的調(diào)用堆棧,且對(duì)資產(chǎn)安全沒(méi)有嚴(yán)格約束,沒(méi)有原生的跨鏈和隱私保護(hù)指令等,開發(fā)人員也面臨開發(fā)調(diào)試不便的痛點(diǎn),并希望能用自己熟悉的編程語(yǔ)言開發(fā)智能合約。
Liquid智能合約項(xiàng)目創(chuàng)新地提出安全(Security)、性能(Performance)、體驗(yàn)(Experience)及定制能力(Customization )的“SPEC”設(shè)計(jì)規(guī)范,為智能合約語(yǔ)言引擎增強(qiáng)運(yùn)行高效、資產(chǎn)安全、原生支持隱私保護(hù)和跨鏈協(xié)同等特性。
同時(shí),Liquid引入了WebAssembly 技術(shù),具備很強(qiáng)的開放性、通用性,有助于持續(xù)的將各種流行的編程語(yǔ)言移植成智能合約語(yǔ)言, Liquid還提供友好的開發(fā)編譯工具,可調(diào)式的IDE等,智能合約語(yǔ)言的表現(xiàn)力、開發(fā)體驗(yàn)越來(lái)越完善。
完善多方協(xié)作治理體系:隨著應(yīng)用的開展,協(xié)作關(guān)系趨于復(fù)雜,我們認(rèn)為除了解決技術(shù)問(wèn)題、滿足各種功能需求之外,還需完善治理模型,方能長(zhǎng)治久安。多方協(xié)作治理著眼于“人、事、規(guī)則和流程”,定義區(qū)塊鏈相關(guān)方各種角色,梳理鏈上需要多方治理的事務(wù),覆蓋區(qū)塊鏈上協(xié)作規(guī)則的討論、制定、決策、執(zhí)行的整個(gè)過(guò)程。
治理這個(gè)方向其實(shí)包羅萬(wàn)象,非常繁雜紛亂;治理過(guò)程也充斥著不同觀念的碰撞、不同利益立場(chǎng)和博弈。完全的鏈上或者鏈下治理,都有可能是不完整、低效且容易分叉的,需要張弛有度的追求最大共識(shí)且務(wù)實(shí)落地。
在研究治理的歷史和未來(lái)發(fā)展之后,我們結(jié)合鏈上鏈下的優(yōu)勢(shì),提出立體化的治理策略,從定義治理規(guī)則的“元治理”為起點(diǎn),厘清治理中的角色、權(quán)限、事務(wù)等定義,描繪治理的架構(gòu)全貌,實(shí)現(xiàn)和開源了多方協(xié)作治理系列項(xiàng)目。
這一系列項(xiàng)目提供直觀、易用的策略設(shè)計(jì)和實(shí)操工具,實(shí)現(xiàn)了諸如多方投票、委員會(huì)選舉、賬戶治理、權(quán)限管理等常見(jiàn)功能,幫助管理員、運(yùn)營(yíng)者以及其他參與方高效、透明地參與到鏈上事務(wù),完成從構(gòu)建區(qū)塊鏈、業(yè)務(wù)變更、到系統(tǒng)升級(jí)維護(hù)等全生命周期的管理。
以上方案都是在探索過(guò)程中,根據(jù)我們對(duì)領(lǐng)域發(fā)展的理解,以及社區(qū)的討論和反饋,逐步實(shí)現(xiàn)和完善的。每個(gè)方案的發(fā)布常常能解決一些領(lǐng)域痛點(diǎn),填補(bǔ)空白,切實(shí)地將技術(shù)邊界拓寬一點(diǎn),將產(chǎn)業(yè)生態(tài)發(fā)展持續(xù)地往前推進(jìn)。閉門造車顯然寸步難行,而基于社區(qū)共識(shí)的前瞻預(yù)判,有助于看到明晰的方向,我們還會(huì)繼續(xù)與社區(qū)共建,陸續(xù)開發(fā)更多的方案,敬請(qǐng)期待。
用的“爽”是開發(fā)者的最愛(ài)
隨著開源項(xiàng)目的發(fā)展,代碼行數(shù)和技術(shù)文檔字?jǐn)?shù)都以百萬(wàn)計(jì),雖然給到了開發(fā)者豐富的選擇和汗牛充棟的學(xué)習(xí)資料庫(kù),但是否給開發(fā)者又帶來(lái)了額外的學(xué)習(xí)和應(yīng)用成本呢?團(tuán)隊(duì)一位架構(gòu)師有句很受用的總結(jié):“如果用戶15分鐘內(nèi)還沒(méi)有把你的開源項(xiàng)目用起來(lái),他就有可能流失”。
所以,要讓用戶真正地用起來(lái),僅僅將看似“硬核”的技術(shù)組件簡(jiǎn)單地羅列出來(lái)是不夠的。開源項(xiàng)目應(yīng)該是成型和高可用的“產(chǎn)品”,其核心能力過(guò)關(guān),又有友好順暢的交互體驗(yàn),讓開發(fā)者幾乎無(wú)成本、無(wú)障礙地用起來(lái),這樣才會(huì)得到社區(qū)關(guān)注、認(rèn)可,形成聚攏效應(yīng),吸引更多人一起共建。
我們?yōu)槊恳粋€(gè)開源項(xiàng)目的代碼、文檔、發(fā)行包都提供高速訪問(wèn)渠道,避免開發(fā)者在網(wǎng)絡(luò)環(huán)節(jié)卡殼;在安裝部署時(shí),內(nèi)置一鍵腳本和提供可視化部署工具,開發(fā)者進(jìn)行簡(jiǎn)單配置,即可秒級(jí)搭建開發(fā)和生產(chǎn)環(huán)境。
實(shí)際上,開發(fā)者的環(huán)境千差萬(wàn)別,對(duì)開源社區(qū)給到的issue反饋,我們會(huì)和開發(fā)者一起研究解決,以持續(xù)覆蓋各種環(huán)境;WeBASE中間件平臺(tái)一站式的集成了運(yùn)營(yíng)管理臺(tái)、開發(fā)者IDE、快速部署和運(yùn)維工具、數(shù)據(jù)報(bào)表和審計(jì)分析工具等,有著直觀的網(wǎng)頁(yè)和移動(dòng)端圖形化界面,WeBASE使區(qū)塊鏈 “看得見(jiàn)、摸得著、用的爽”,發(fā)布后深受社區(qū)喜愛(ài)。這一系列操作,可以保證開發(fā)者“無(wú)痛”的開啟區(qū)塊鏈之路。

更進(jìn)一步,當(dāng)用戶有了一套鏈環(huán)境,開始構(gòu)建區(qū)塊鏈應(yīng)用時(shí),常常不會(huì)只用區(qū)塊鏈底層和某一個(gè)特定的組件,而會(huì)集成多個(gè)方案,共同滿足業(yè)務(wù)中的多樣需求。
如一個(gè)應(yīng)用需要管理分布式身份,要引入鏈外的匯率等信息,又需要跨鏈互聯(lián),然后產(chǎn)生的數(shù)據(jù)需要維護(hù)和分析,同時(shí)要保護(hù)隱私……這里有多種技術(shù)互相融合,有多變的協(xié)作關(guān)系需要治理。
現(xiàn)代軟件設(shè)計(jì)推崇模塊化、定制化、可擴(kuò)展。每個(gè)組件本身具有很強(qiáng)的專業(yè)性,可獨(dú)立解決特定的領(lǐng)域問(wèn)題,又可以和底層以及其他組件一鍵式組裝集成,構(gòu)成 “套餐”式的區(qū)塊鏈方案矩陣。
圍繞著區(qū)塊鏈底層和WeBASE中間件,各技術(shù)組件通過(guò)開放接口持續(xù)集成,整套體系采用分層松耦合的“微服務(wù)”架構(gòu),符合“云原生”規(guī)范,便于與私有化部署環(huán)境、云平臺(tái)、以及開放網(wǎng)絡(luò)的架構(gòu)體系進(jìn)行整合。
開發(fā)者根據(jù)自己的需求,基于開源代碼、云平臺(tái)、開放網(wǎng)絡(luò),選擇一個(gè)或多個(gè)組件的區(qū)塊鏈“套餐”,借助一鍵式應(yīng)用開發(fā)腳手架,合約模板,應(yīng)用市場(chǎng)快速構(gòu)建應(yīng)用,整體開發(fā)過(guò)程向“低代碼”模式進(jìn)發(fā),大大加快了技術(shù)落地的步驟。
區(qū)塊鏈領(lǐng)域的廣度包羅萬(wàn)象,深度上直達(dá)計(jì)算機(jī)理論、分布式網(wǎng)絡(luò)、密碼學(xué)等知識(shí)內(nèi)核,高度上探商業(yè)、哲學(xué)、博弈論等境界。區(qū)塊鏈呼喚專業(yè)性和復(fù)合性兼?zhèn)涞娜瞬牛@樣的人才簡(jiǎn)直是供不應(yīng)求。我們?cè)谌瞬沤逃矫嬉沧隽艘恍┡Γㄅc主管部門、行業(yè)協(xié)會(huì)、高校、研究所開展系列課程和課題合作;撰寫符合工信部人才交流中心、教育部標(biāo)準(zhǔn)的區(qū)塊鏈教材課件;和產(chǎn)業(yè)機(jī)構(gòu)聯(lián)合設(shè)計(jì)開發(fā)區(qū)塊鏈實(shí)訓(xùn)平臺(tái),幫助學(xué)員一步步的完成課程、進(jìn)行實(shí)踐和考證。
更多的時(shí)候,我們通過(guò)系列文章、沙龍、線上線下的交流,對(duì)區(qū)塊鏈的思想、技術(shù)、學(xué)習(xí)方法進(jìn)行多角度、多層次的科普。獨(dú)木難成林,社區(qū)已經(jīng)出現(xiàn)了諸多熱心專業(yè)的“布道者”,社區(qū)認(rèn)證培訓(xùn)合作伙伴遍布全國(guó),大家一起共同傳播有用有益的知識(shí),桃李滿天下,掌握了區(qū)塊鏈思維和區(qū)塊鏈技術(shù)的開發(fā)者越來(lái)越多。
在歷屆黑客松、高校技術(shù)大賽中,我們看到參賽團(tuán)隊(duì)從頭搭建環(huán)境和設(shè)計(jì)開發(fā),3天內(nèi)就可以拿出完成度極高的優(yōu)秀作品;各行各業(yè)的社區(qū)合作伙伴們落地應(yīng)用的速度也越來(lái)越快,區(qū)塊鏈應(yīng)用本身的體驗(yàn)越來(lái)越好,功能越來(lái)越全面,無(wú)論是用戶還是開發(fā)者的滿意度越來(lái)越高。“黑科技”的應(yīng)用,不一定是艱深痛苦的開發(fā)體驗(yàn),也可以順暢愉悅起來(lái)。
大道至簡(jiǎn),攜手同行
硬核的基礎(chǔ)能力,豐富的功能組件,友好的易用性,對(duì)數(shù)據(jù)運(yùn)營(yíng)和版本兼容的貼心保障,是FISCO BCOS開源社區(qū)和微眾銀行區(qū)塊鏈系列開源項(xiàng)目的運(yùn)作要旨,也是獲得社區(qū)支持的重要原因。從開源以來(lái),社區(qū)已經(jīng)聚攏了40000名關(guān)注者,2000多個(gè)機(jī)構(gòu),已有超過(guò)120個(gè)應(yīng)用在各行各業(yè)落地運(yùn)行,活躍的生態(tài),也推動(dòng)著技術(shù)的進(jìn)化。
前沿技術(shù)研究有著許多路徑要去探索,每個(gè)路徑都有著繁雜的細(xì)節(jié)要研究,還有大量相關(guān)技術(shù)如物聯(lián)網(wǎng)、人工智能、5G通信等可以有機(jī)融合進(jìn)來(lái)。我們相信,技術(shù)和產(chǎn)業(yè)發(fā)展的未來(lái),很大程度上取決于生態(tài)的開放性和成長(zhǎng)性,埋頭于國(guó)產(chǎn)安全可控核心技術(shù)研發(fā)的同時(shí),我們密切關(guān)注社區(qū)的現(xiàn)在和將來(lái)的需求,和社區(qū)諸多開發(fā)者合作共建。
目前,社區(qū)已經(jīng)成立了多個(gè)SIG(專項(xiàng)興趣小組),覆蓋區(qū)塊鏈內(nèi)核、周邊支撐以及應(yīng)用項(xiàng)目,開發(fā)者們每天討論地?zé)峄鸪欤黄鹱鲇腥ぁ⒂刑魬?zhàn)、利己利人的事情。攜手同行,群智涌現(xiàn),會(huì)少走許多彎路,少踩許多坑,奔跑的速度會(huì)更快,可用和好用的開源項(xiàng)目會(huì)越來(lái)越多。
開源之道,歸結(jié)起來(lái)就三句話:技術(shù)硬核、友好易用、生態(tài)開放。區(qū)塊鏈其實(shí)也可以很簡(jiǎn)單!



