姚前:美聯(lián)儲(chǔ)數(shù)字貨幣原型系統(tǒng)簡析
文章來源:四九八網(wǎng)絡(luò)發(fā)布時(shí)間:2022-05-12 08:40:14熱度:614近年來,全球主要經(jīng)濟(jì)體的貨幣當(dāng)局不斷加大對中央銀行數(shù)字貨幣(Central Bank Digital Currency,CBDC)的研發(fā)力度并取得了諸多階段性成果。“漢密爾頓計(jì)劃”(Project Hamilton)是美國波士頓聯(lián)邦儲(chǔ)備銀行與麻省理工學(xué)院合作開展的CBDC創(chuàng)新研究項(xiàng)目(Digital Currency Initiative,DCI)。這項(xiàng)計(jì)劃已持續(xù)開展數(shù)年,2022年2月3日,美國波士頓聯(lián)邦儲(chǔ)備銀行發(fā)布題為“為央行數(shù)字貨幣設(shè)計(jì)的高性能支付處理系統(tǒng)”(A High Performance Payment Processing System Designed for Central Bank Digital Currencies)的技術(shù)報(bào)告,總結(jié)了漢密爾頓計(jì)劃第一階段進(jìn)展。本文擬透過該報(bào)告的主要內(nèi)容,對美聯(lián)儲(chǔ)央行數(shù)字貨幣原型系統(tǒng)進(jìn)行簡要分析。
漢密爾頓計(jì)劃第一階段的研究目標(biāo)
漢密爾頓計(jì)劃第一階段的第一個(gè)目標(biāo)是探討CBDC系統(tǒng)的性能,即從技術(shù)上研發(fā)一種高吞吐量、低延遲和富有彈性的CBDC交易處理系統(tǒng)。具體性能目標(biāo)包括兩個(gè)方面:一是在5秒內(nèi)完成99%交易,包括完成交易驗(yàn)證、交易執(zhí)行以及向用戶確認(rèn)交易,處理速度與美國現(xiàn)有銀行卡支付以及銀行間即時(shí)支付系統(tǒng)的相應(yīng)指標(biāo)不相上下;二是根據(jù)美國目前現(xiàn)金和銀行卡交易量以及預(yù)期增長率,該系統(tǒng)每秒至少處理10萬筆交易,且能隨著后期支付量的增長不斷擴(kuò)展。
第二個(gè)目標(biāo)是探討CBDC系統(tǒng)的韌性。為維持公眾對CBDC的信任,CBDC系統(tǒng)必須確保服務(wù)連續(xù)性且資金可用。系統(tǒng)韌性的研究重點(diǎn)在于,當(dāng)多個(gè)數(shù)據(jù)中心發(fā)生故障時(shí),如何保證系統(tǒng)訪問不中斷,數(shù)據(jù)不丟失。
第三個(gè)目標(biāo)是探討CBDC的隱私保護(hù)。研發(fā)團(tuán)隊(duì)認(rèn)為,最安全的隱私保護(hù)方法就是從交易伊始就減少數(shù)據(jù)收集,因此在CBDC交易系統(tǒng)中設(shè)計(jì)了一種盡量減少交易數(shù)據(jù)留存的方案。
美聯(lián)儲(chǔ)數(shù)字貨幣原型系統(tǒng)設(shè)計(jì)
幣的形式:未花費(fèi)的交易輸出(Unspent Transaction Output,UTXO)
漢密爾頓系統(tǒng)有三類參與者:交易處理器(transaction processor)、發(fā)行方(issuer)和用戶(user)。交易處理器記錄CBDC,并根據(jù)指令驗(yàn)證和執(zhí)行相關(guān)交易。同比特幣一樣,漢密爾頓計(jì)劃采用UTXO的貨幣表達(dá)式。CBDC僅能通過發(fā)行方的行為而進(jìn)出系統(tǒng),發(fā)行方鑄幣(mint)增加交易處理器中的資金,贖回(redeem)則減少交易處理器中的資金。用戶執(zhí)行資金轉(zhuǎn)移(transfer)操作,以原子方式變更資金所有權(quán),但存儲(chǔ)在交易處理器中的資金總額不變,變化的是資金的權(quán)屬。用戶使用其數(shù)字錢包的公鑰/私鑰來處理和簽署交易。資金轉(zhuǎn)移交易過程中,使用付款方的未花費(fèi)資金就是交易輸入(input),生成新的未花費(fèi)資金就是交易輸出(output)——包括收款方和找零給付款方的未花費(fèi)資金。一項(xiàng)有效交易必須保持平衡:交易輸入值之和須與輸出值之和相等。
未花費(fèi)資金定義為三元組utxo:=(v,P,sn)。其中,v為金額,P為安全鎖鎖頭(encumbrance predicate,可以理解為持有者公鑰),sn為序列號(serial number)。發(fā)行方的鑄幣操作會(huì)創(chuàng)建新的未花費(fèi)資金,并將UTXO添加到交易處理器存儲(chǔ)的UTXO集合,而贖回操作則從UTXO集合中刪除已有的未花費(fèi)資金,使其不可重復(fù)使用。發(fā)行方必須為新鑄UTXO選擇唯一序列號。將其設(shè)置為均勻隨機(jī)數(shù)或單調(diào)遞增計(jì)數(shù)器值(發(fā)行方鑄造第i個(gè)UTXO時(shí),會(huì)將其序列號設(shè)置為i)均可。
分離驗(yàn)證與UTXO壓縮
在漢密爾頓系統(tǒng)中,交易處理器驗(yàn)證交易的正確性,并通過刪除輸入和創(chuàng)建輸出來執(zhí)行交易。驗(yàn)證分為交易局部驗(yàn)證(transaction-local validation,無需訪問共享狀態(tài))和存在性驗(yàn)證(existence validation,需要訪問共享狀態(tài))。對于這種分離,漢密爾頓系統(tǒng)設(shè)計(jì)了專用組件——哨兵(sentinel),專門用于接收用戶交易并執(zhí)行交易局部驗(yàn)證。局部驗(yàn)證內(nèi)容包括:核實(shí)交易格式正確;確認(rèn)每個(gè)輸入都有適用于其花費(fèi)輸出的有效簽名;確認(rèn)交易保持平衡(即輸出之和等于輸入之和)。如果交易符合標(biāo)準(zhǔn),哨兵將向負(fù)責(zé)存在性驗(yàn)證的執(zhí)行引擎轉(zhuǎn)發(fā)交易,否則就僅向用戶提示交易錯(cuò)誤。
存在性驗(yàn)證主要核驗(yàn)未花費(fèi)資金是否存在。為了實(shí)現(xiàn)隱私保護(hù),漢密爾頓系統(tǒng)將資金作為不透明的32字節(jié)哈希值存儲(chǔ)在未花費(fèi)資金哈希集合(Unspent funds Hash Set,UHS),h:=H(v,P,sn),而不是存儲(chǔ)完整的utxo:=(v,P,sn),其中H是一個(gè)哈希函數(shù),漢密爾頓系統(tǒng)使用了SHA-256算法。用UHS集合替換UTXO集合,不僅有助于隱私保護(hù),而且減少了存儲(chǔ)要求并提高系統(tǒng)的性能。
為了進(jìn)行存在性驗(yàn)證,系統(tǒng)需要預(yù)先將通過局部驗(yàn)證的交易轉(zhuǎn)換為應(yīng)用于UTXO哈希集合的交易,該過程被稱為壓縮(compaction)。具體而言,由哨兵計(jì)算輸入U(xiǎn)TXO的哈希值,并將輸入U(xiǎn)TXO與輸出安全鎖和價(jià)值一起,導(dǎo)出輸出UTXO的序列號,從而計(jì)算輸出UTXO的哈希值,然后將這兩個(gè)哈希列表發(fā)送給保存UHS的交易處理器,進(jìn)行存在性檢查和執(zhí)行。
存在性驗(yàn)證與UHS互換
假定某交易已通過交易局部驗(yàn)證并進(jìn)行了壓縮轉(zhuǎn)換,交易處理器將按如下方式更新UHS集合:檢查UHS集合是否存在所有交易的輸入U(xiǎn)TXO,如果有輸入U(xiǎn)TXO缺失,那么中止進(jìn)一步處理,否則,處理繼續(xù)進(jìn)行;交易處理器從UHS集合中刪除該交易的輸入U(xiǎn)TXO對應(yīng)的UHS,并將新創(chuàng)建的與輸出UTXO對應(yīng)的UHS添加到UHS集合中。上述一刪一增的操作被稱為互換(swap)。
高性能架構(gòu)
為實(shí)現(xiàn)高吞吐量、低延遲以及高容錯(cuò)性的交易處理,漢密爾頓計(jì)劃設(shè)計(jì)了兩種架構(gòu)。第一種是原子服務(wù)器(atomizer)架構(gòu),系統(tǒng)利用排序服務(wù)器為所有交易創(chuàng)建線性的歷史記錄。第二種是兩階段提交(two-phase commit,2PC)架構(gòu),系統(tǒng)并行執(zhí)行數(shù)筆無沖突交易(即那些不會(huì)支付或收到同筆資金的交易),而不創(chuàng)建統(tǒng)一排序的交易記錄。
在這兩種架構(gòu)中,UHS都可實(shí)現(xiàn)跨服務(wù)器分區(qū),提高吞吐量并不斷擴(kuò)展。執(zhí)行單筆交易通常涉及多個(gè)服務(wù)器,每種架構(gòu)使用不同技術(shù)協(xié)調(diào)一筆交易在多個(gè)服務(wù)器中的一致應(yīng)用。中心化的原子服務(wù)器架構(gòu)使用Raft協(xié)議對所有來自于哨兵驗(yàn)證過的更新排序,然后將這些更新應(yīng)用于全系統(tǒng)。2PC架構(gòu)則利用分布式共識節(jié)點(diǎn)來執(zhí)行原子交易和可串行化所需的鎖定,使用不同資金的交易不會(huì)沖突,可以并行執(zhí)行;一旦某有效交易的資金被確認(rèn)為未花費(fèi),交易就能連續(xù)進(jìn)行,可同時(shí)批量處理多筆交易。
漢密爾頓計(jì)劃第一階段的實(shí)驗(yàn)結(jié)果
漢密爾頓計(jì)劃在第一階段開發(fā)了兩套完整的計(jì)算源代碼或代碼庫。一個(gè)是中心化原子服務(wù)器架構(gòu)的代碼庫,每秒能夠處理大約17萬筆交易,其中99%的交易尾部延遲不到2秒,50%的交易尾部延遲為0.7秒。由于原子服務(wù)器無法跨多個(gè)服務(wù)器進(jìn)行分片,因此盡管可以將原子服務(wù)器狀態(tài)機(jī)中的功能簡化為只對一小部分交易進(jìn)行輸入排序和去重,但該架構(gòu)的系統(tǒng)吞吐量仍有限。也就是說,對有效交易進(jìn)行強(qiáng)排序的設(shè)計(jì)會(huì)限制吞吐量。另一個(gè)是2PC架構(gòu)的代碼庫,每秒能夠處理170萬筆交易,其中99%的交易可在1秒之內(nèi)完成,50%的交易尾部延遲不到0.5秒,遠(yuǎn)高于設(shè)定目標(biāo)需要達(dá)到的每秒10萬筆交易的基本要求。此外,2PC架構(gòu)若添加更多共識節(jié)點(diǎn),還可進(jìn)一步提高吞吐量,且不會(huì)對延遲產(chǎn)生負(fù)面影響。
以上代碼已經(jīng)開源,漢密爾頓計(jì)劃稱之為“開源央行數(shù)字貨幣項(xiàng)目(OpenCBDC)”,目的是促進(jìn)CBDC研發(fā)合作。
比較分析
與電子現(xiàn)金(E-cash)的比較
1982年,美國計(jì)算機(jī)科學(xué)家和密碼學(xué)家大衛(wèi)·喬姆(David Chaum)發(fā)表了一篇題為《用于不可追蹤的支付系統(tǒng)的盲簽名》的論文。論文中提出了一種基于RSA算法(RSA algorithm)的新密碼協(xié)議——盲簽名(blind signature)。利用盲簽名構(gòu)建一個(gè)具備匿名性、不可追蹤性的電子現(xiàn)金系統(tǒng),這是最早的數(shù)字貨幣理論,也是最早能夠落地的試驗(yàn)系統(tǒng),得到了學(xué)術(shù)界的高度認(rèn)可。其中有兩項(xiàng)關(guān)鍵技術(shù):隨機(jī)配序和盲化簽名。隨機(jī)配序產(chǎn)生的唯一序列號可以保證數(shù)字現(xiàn)金的唯一性;盲化簽名能夠確保銀行對該匿名數(shù)字現(xiàn)金的信用背書。
漢密爾頓計(jì)劃采用了與E-cash相似的思路:一方面,通過全局唯一且每次交易都需要系統(tǒng)驗(yàn)證的序列號,保證貨幣(UTXO)的唯一性;另一方面,采用中央處理模式,并利用加密算法實(shí)現(xiàn)系統(tǒng)的安全與抗攻擊性。但漢密爾頓計(jì)劃克服了E-cash的不足。在大衛(wèi)·喬姆建立的E-Cash模型中,每個(gè)使用過的E-Cash序列號都會(huì)被存儲(chǔ)在銀行數(shù)據(jù)庫中。隨著交易量的上升,該數(shù)據(jù)庫就會(huì)變得越來越龐大,驗(yàn)證過程也會(huì)越來越困難。而漢密爾頓計(jì)劃通過分離驗(yàn)證和壓縮處理,盡可能減少交易處理器的存儲(chǔ)計(jì)算壓力,并利用分片技術(shù)和高性能架構(gòu),從而大幅提升交易性能。
簡言之,已花費(fèi)的交易輸出與未花費(fèi)的交易輸出,是兩種相反相成的設(shè)計(jì)思路。后者優(yōu)化了前者面臨的數(shù)據(jù)無限膨脹的問題,這也是比特幣超越E-Cash的精髓所在。
與比特幣的比較
與比特幣相似,漢密爾頓計(jì)劃對幣的設(shè)計(jì)也采用了UTXO模式。但二者的區(qū)別在于:比特幣的區(qū)塊鏈存儲(chǔ)了所有UTXO信息;而漢密爾頓計(jì)劃沒有采用區(qū)塊鏈模式,幣不可簡單追溯,且其交易處理器并未存儲(chǔ)UTXO明細(xì)信息,僅存儲(chǔ)UTXO的哈希值。尤其是,漢密爾頓計(jì)劃的信任基礎(chǔ)與比特幣的分布式共識機(jī)制完全不同,其平臺將由可信任的中心機(jī)構(gòu)管理,共識算法僅用于協(xié)調(diào)系統(tǒng)中各分區(qū)服務(wù)器的一致性,更類似于第三方支付后臺的分布式系統(tǒng)設(shè)計(jì)。
在防止雙重花費(fèi)、無重放攻擊等威脅方面,比特幣采用的是工作量證明機(jī)制(Proof of Work,PoW),而漢密爾頓計(jì)劃的設(shè)計(jì)則依靠哈希算法,且高度依賴發(fā)行方和交易系統(tǒng)的安全可信。具體來說,對于漢密爾頓交易處理器中的每次轉(zhuǎn)移,其UTXO輸出的序列號都是經(jīng)過哈希算法處理后所確定,只要從原始鑄幣交易開始的序列號是全局唯一的,后續(xù)遞推得到的每個(gè)UTXO序列號也將均具有全局唯一性,不會(huì)與過去或未來UTXO集合中的任何其他項(xiàng)重合。序列號的全局唯一性不僅是一個(gè)技術(shù)細(xì)節(jié),而且可達(dá)到兩個(gè)效果。一是無雙重花費(fèi)。互換操作會(huì)將UTXO永久標(biāo)記為已花費(fèi)。由于序列號是唯一的,因此任何UTXO只能被花費(fèi)一次,且在花費(fèi)后不能被重建。二是防止重放攻擊。因?yàn)槊抗P交易都對應(yīng)著具有全局唯一性的一個(gè)或多個(gè)UTXO輸入,其簽名將覆蓋整個(gè)交易,包括相關(guān)的所有輸入和輸出。因此,一個(gè)交易的簽名對除此交易外的其他任何UTXO(包括未來創(chuàng)建的UTXO)都無效,而且,交易無法被復(fù)制,同一筆交易也不能被多次執(zhí)行。漢密爾頓計(jì)劃設(shè)計(jì)的風(fēng)險(xiǎn)點(diǎn)在于:中心機(jī)構(gòu)是否一定可信?發(fā)行方鑄幣的序列號是否全局唯一?交易處理器是否足夠安全從而可保證存儲(chǔ)的UHS集合不被篡改?
簡言之,雖然比特幣和漢密爾頓計(jì)劃都使用了UTXO的數(shù)據(jù)模型,但漢密爾頓計(jì)劃維護(hù)的是一套中心化的哈希登記系統(tǒng),而比特幣維護(hù)的是一套分布式的區(qū)塊鏈哈希登記系統(tǒng)。
其他比較
漢密爾頓計(jì)劃的技術(shù)報(bào)告引用了筆者在2018年國際電信聯(lián)盟(ITU)法定數(shù)字貨幣焦點(diǎn)組第二次會(huì)議上的工作論文。該論文主要是對數(shù)字人民幣原型系統(tǒng)的綜述,核心思想為“一幣、兩庫、三中心”的技術(shù)架構(gòu)(《中國法定數(shù)字貨幣原型構(gòu)想》,見《中國金融》2016年第17期),以及基于銀行賬戶與數(shù)字貨幣錢包分層并用的雙層業(yè)務(wù)架構(gòu)(《數(shù)字貨幣和銀行賬戶》,見《清華金融評論》2017年第7期)。
漢密爾頓計(jì)劃當(dāng)前的整體架構(gòu)可以表達(dá)為“一幣,一錢包,一中心”。一幣指的是數(shù)字美元,即中央銀行簽名發(fā)行的以UTXO數(shù)據(jù)結(jié)構(gòu)表達(dá)的加密數(shù)字串;一錢包是指個(gè)人或單位用戶使用的數(shù)字貨幣錢包,也是存儲(chǔ)用戶公私鑰的載體;一中心是指交易登記中心,記錄存儲(chǔ)數(shù)字貨幣未花費(fèi)交易資金的哈希值,完成數(shù)字貨幣產(chǎn)生、流通及消亡全過程的權(quán)屬登記。
在數(shù)字貨幣設(shè)計(jì)方面,兩個(gè)原型項(xiàng)目都強(qiáng)調(diào)加密數(shù)字串的貨幣屬性和央行負(fù)債的屬性。在流通環(huán)節(jié),兩個(gè)項(xiàng)目都以錢包為主要載體,強(qiáng)調(diào)用戶對數(shù)字貨幣的擁有和操作權(quán)限。在交易確權(quán)登記方面,兩個(gè)項(xiàng)目都設(shè)計(jì)了交易登記中心,也設(shè)計(jì)了“網(wǎng)上驗(yàn)鈔機(jī)”。總體來說,兩個(gè)原型項(xiàng)目在設(shè)計(jì)理念層面有相通之處,均采用了中心化加密貨幣思路,交易處理“一次一密”,充分考慮了數(shù)字貨幣的安全性。技術(shù)路線又不囿于區(qū)塊鏈技術(shù),既吸納了其中的先進(jìn)成分,又?jǐn)P棄了可能的技術(shù)堵點(diǎn)。兩個(gè)項(xiàng)目不同之處在于,漢密爾頓計(jì)劃第一階段沒有探索中介的技術(shù)角色以及如何實(shí)現(xiàn)用戶隱私與合規(guī)性的平衡;筆者提出的數(shù)字貨幣原型系統(tǒng)則考慮和設(shè)計(jì)了中介機(jī)構(gòu)的角色,并提出認(rèn)證中心和登記中心分離的設(shè)計(jì)思路,既可實(shí)現(xiàn)隱私保護(hù)又能滿足監(jiān)管合規(guī)要求。值得一提的是,漢密爾頓計(jì)劃通過層層哈希計(jì)算,在登記服務(wù)器存儲(chǔ)的是交易信息的哈希,而不是明文信息,降低了系統(tǒng)開銷,在隱私保護(hù)的考慮上更為精細(xì)。
結(jié)語
總體而言,漢密爾頓計(jì)劃第一階段的原型設(shè)計(jì)并不是一個(gè)完整的系統(tǒng),不具備一個(gè)有效CBDC所需的全部功能,尚不能達(dá)到實(shí)際應(yīng)用標(biāo)準(zhǔn)。后續(xù)漢密爾頓計(jì)劃將繼續(xù)探索CBDC的實(shí)現(xiàn)路徑,不斷提高系統(tǒng)的安全性、可審計(jì)性、可編程性、合規(guī)性、互操作性,完善離線支付功能,明確中介機(jī)構(gòu)的角色,增強(qiáng)抵御內(nèi)部攻擊、拒絕服務(wù)攻擊、對抗量子攻擊的能力。漢密爾頓計(jì)劃給各國央行數(shù)字貨幣研發(fā)提供了兩個(gè)重要的啟示。
一是技術(shù)的包容性。漢密爾頓計(jì)劃在設(shè)計(jì)CBDC過程中,并不囿于某一技術(shù)路線。它不僅充分吸收了E-cash、比特幣等加密貨幣的優(yōu)點(diǎn)并規(guī)避了可能的缺點(diǎn),而且有效吸納了分布式系統(tǒng)的高性能、高容錯(cuò)架構(gòu)設(shè)計(jì)。由此表明,CBDC設(shè)計(jì)的選擇不應(yīng)畫地為牢,無須將思路限定在某一技術(shù)框架或領(lǐng)域。
二是技術(shù)的開放性。目前各國CBDC的試驗(yàn)基本上是比較秘密的“曼哈頓工程”,而漢密爾頓計(jì)劃則秉持開放、眾智、敏捷的現(xiàn)代研發(fā)理念,主動(dòng)將第一階段代碼進(jìn)行了開源,創(chuàng)建了OpenCBDC項(xiàng)目并在github上公開。目前,漢密爾頓計(jì)劃仍積極尋求外界對開源代碼庫的貢獻(xiàn)以及吸納新的工作組成員,旨在與各方一起共同推進(jìn)CBDC研發(fā)。漢密爾頓計(jì)劃這種開放式創(chuàng)新模式,無疑值得各國在CBDC研發(fā)實(shí)踐中加以學(xué)習(xí)借鑒。
(本文僅代表作者個(gè)人學(xué)術(shù)觀點(diǎn))
本文轉(zhuǎn)載目的在于知識分享,版權(quán)歸原作者和原刊所有。如有侵權(quán),請及時(shí)聯(lián)系我們刪除。
原創(chuàng)作者:四九八科技。禁止轉(zhuǎn)載,本文鏈接:
您關(guān)注的城市合伙人案例
查看更多成功案例
云收單
10年老牌支付專家
新大陸旗下成員企業(yè)
400-0591-498
|最新文章
|聚合支付的使用場景
- 餐飲
- 超市
- 酒店
- KTV
|熱門關(guān)注