作者:任之劼,荷蘭代爾夫特理工大學博士、博士后,唯鏈高級區塊鏈技術研究員
最近,央行數字貨幣正在農行內測,并將很快試點推廣的新聞讓「數字貨幣」以及「區塊鏈」又火了一把。然后,網上各種關于DC/EP的文章也紛至沓來。然而,其實這次DC/EP的內測消息并不是官方放出的,所以其實關于DC/EP的所有技術特點分析都建立在DC/EP從去年開始放出來的一些新聞,包括央行數字貨幣研究所所長的訪談和文章,以及數字貨幣研究所申請的專利的基礎上。官方后來放出的新聞也沒有跟進任何關于DC/EP的技術方向之類的說明。
因此,既然大家都沒有什么內幕消息,那么我也根據之前放出的情報,對于DC/EP采用的技術方案做個無責任推測好了。
首先DC/EP對于行內人士來說真的不是什么新東西了:比如類似的分析我17年就做過一次,而且基本上大體的框架還是一致的。
如何看待央行旗下媒體發文稱要加快推出主權數字貨幣?主權數字貨幣有哪些使用場景?
這次推測的主要參考文獻:
姚前:央行數字貨幣——對貨幣體系的優化及其發行設計
姚前:基于區塊鏈的全新央行數字貨幣實現方案
姚前:央行數字貨幣的技術考量
范一飛:關于央行數字貨幣的幾點考慮
Chaum,David."BlindSignaturesforUntraceablePayments."ProcCrypto(1982):199-203.
GeorgeDanezis,SarahMeiklejohn,"CentrallyBankedCryptocurrencies",2015
數篇央行數字貨幣研究所的專利,之前關于央行數字貨幣的新聞和穆長春關于央行數字貨幣的課程。
DC/EP是否是區塊鏈/加密貨幣
其實之前就透露過一個重要的信息,就是「數字貨幣研發不預設技術路線,考慮區塊鏈或電子支付等」,其中,如果大家有一直關注過央行數字貨幣的發展和官方消息,就會知道后半句話都是后來加上去的,最早的表態里其實是明確說沒有采用區塊鏈的。實際含義就是:1,DC/EP現階段不采用區塊鏈;2,將來可能考慮采用區塊鏈技術。而這個結論也和央行一直以來放出的消息和技術方向相符。
因此,考慮到上一次關于DC/EP的消息是目前DC/EP僅考慮國內使用,不考慮跨境支付,我基本上可以推測出:
DC/EP基本上是一個中心化系統。
它也許采用了一些區塊鏈的技術,但是不足以讓其稱之為「區塊鏈」,甚至連「私有鏈」都稱不上。因此嚴格上來說他和類似于比特幣的加密貨幣是不一樣的。那么換言之這里傳遞出的核心信息就是——DCEP不是拜占庭容錯的。
在未來,當DC/EP已經比較成熟之后,會考慮使用區塊鏈技術來應對跨境支付的需求。
實際上,從個人的角度來看,DC/EP不使用區塊鏈是理所當然的事情——首先,從央行傳遞出多次的信息來看,它就是個中心化系統,而眾所周知,中心化系統用不到區塊鏈技術,也用不到拜占庭容錯。我之前看到很多區塊鏈行業的人對此表示失望,一些比特幣的支持者尤甚。其實,與他們相反,我對于DC/EP不使用區塊鏈技術一直都是非常欣慰的——這說明央行數字貨幣研究院的人并不急于去蹭區塊鏈技術的熱點,很清楚區塊鏈技術的局限性,也很清楚自己在做什么。
有人可能會說:「為什么Libra就采用了區塊鏈技術和拜占庭容錯?是不是說明Libra的技術更先進?」
首先——Libra的確更新,因為DC/EP和Libra處于完全不同的階段:DC/EP都已經接近落地了,Libra還停留在更改白皮書的階段。換句話說,DC/EP啟動的時間遠早于Libra,而在那個時候區塊鏈的技術還不成熟,因此在那個時候選擇不用區塊鏈這么一個從理論和實踐上都不成熟的技術是正確的。而Libra作為是去年才出來的項目,如果采用的技術還停留在DC/EP啟動的時候那才是可笑的事情。
印度儲備銀行副行長:央行數字貨幣可能會扼殺加密貨幣:金色財經報道,據當地媒體周五報道,印度儲備銀行副行長 T. Rabi Sankar 在國際貨幣基金組織 (IMF) 組織的網絡研討會上談到了央行數字貨幣 (CBDC) 對比特幣和以太坊等加密貨幣的潛在影響。RBI認為,CBDC實際上能夠消滅私人加密貨幣可能存在的任何小情況。Sankar解釋:即不應“僅僅因為它們有高科技的支持”就允許加密貨幣。任何可以用于良好的工具也可以用于不受歡迎的用途。與此同時,印度政府仍在制定該國的加密貨幣政策。本周,經濟事務部長透露,政府正在敲定一份關于加密貨幣的咨詢文件。印度中央銀行目前正在開發自己的 CBDC。該銀行本周表示,將采取“分級方法”推出數字盧比。(news.bitcoin)[2022/6/4 4:02:31]
其次,更新不代表更好更先進。的確Libra采用了HotStuffBFT這個我覺得算得上是區塊鏈共識算法的某個「最終答案」的共識算法,同時,在其之上改進的LibraBFT也是我覺得非常符合邏輯的共識機制,但畢竟這僅僅是理論層面,在實踐方面還沒有先例。同時,區塊鏈共識算法發展至今在我看來仍舊沒有稱不上成熟和完善,所以即便是現在,我都不覺得DCEP采用區塊鏈算法是個好主意,所以我認為DC/EP現在將區塊鏈技術定位為「未來可能采用的技術」是非常合適的。
再次,Libra和DCEP的定位完全不同——Libra是個攪局者,是個非主權貨幣,換句話說,它如果不用區塊鏈技術,一沒有任何競爭力,二沒有任何話題性,它和主權貨幣競爭的愿景就完全不成立。而相反,DC/EP是中心化的主權貨幣,從技術上和愿景上都沒有用區塊鏈技術的必要。
不用區塊鏈,DCEP的匿名是怎么實現的
實際上,區塊鏈技術也不是用來匿名的,也并沒有DC/EP完全匿名的說法,官方的說法是「可控匿名」,我的理解是——對于中央銀行而言是可控的,而對于商業銀行和其他使用者而言是匿名的。換言之,央行應該有一個非實名的如同類似于比特幣的DCEP賬本,在需要的時候,可以追溯資金和交易,這是「可控」,而對于其他商業銀行和使用者而言,他們可以驗證每筆交易的安全性,但是并不知道交易者的身份,是為匿名。
根據央行數字貨幣研究院的論文來看,DC/EP的基本結構更像是數字貨幣先驅DavidChaum的Ecash而非類似于比特幣的加密貨幣。但是,并沒有用到Ecash的盲簽名,取而代之的是央行這個可信中心。
首先,在貨幣發行上DC/EP采用了和Ecash類似的方法——在DC/EP中,由央行負責發放貨幣。它對于每個貨幣給與一個獨一無二的編號,然后與面值信息一起用央行的私鑰簽名,就生成了一個合法的數字貨幣。這個數字貨幣,實際上可以看成一個央行背書的一次性兌換券,任何人都可以憑借這個兌換券換取等額的現金,或者一個新的兌換券。
實際上,當然,對于數字貨幣稍有了解的人都知道,無論對數字貨幣進行加密的技術多么高明,最難的地方始終在于如何防止雙重支付。這個時候,就需要有一個即時擁有全部賬本的中心,負責驗證每一筆兌換券是否已經用過。于是,當有人想要發起一筆交易的時候,接收者需要將收到的數字貨幣發給中心進行驗證,如果這個編號之前沒有使用過,那么中心注銷這個貨幣,并且重新發放一個等值的新兌換券給接收者——以上的這個步驟相當于驗鈔。
這個方案的問題是可追蹤性——因為這個中心實際上將掌握所有交易的去向,因此DavidChaum提出了盲簽名——一種可以讓某條消息「盲化」,于是,讓中心可以在不知情的情況下對兌換券的編號簽名。這樣,中心在驗證交易的時候就只能:「嗯,這上面有我的簽名,是真的,而且這個編號是第一次見,所以沒有使用過。但是我不記得我是什么時候簽的了,所以我不知道這張兌換券是我什么時候發給了誰,我只能確認確實是我發的。」
瑞士央行數字貨幣測試再獲成功,未來繼續探索代幣化資產結算:金色財經報道,據瑞士央行近日宣布,一項名為“Helvetia”的批發型央行數字貨幣測試項目在商業銀行間取得成功。但同時,該國央行明確表示,“Helvetia”項目仍僅具有探索性質,此次測試成功并不代表央行數字貨幣的正式發布。[2022/1/14 8:50:07]
但是,DC/EP應該是沒有用到盲簽名技術,因為對于央行而言,并沒有匿名和防止追蹤的需求。而對于央行而言的匿名,是不能讓商業銀行和機構通過這個賬本對資金進行追蹤或者破解出對應某筆資金所有者的信息——
這里,就要提一下DC/EP的雙層運營體系了。
簡單來說,DC/EP的發行和使用是通過兩層進行的,央行負責把錢給到下屬商業銀行,下屬商業銀行用自己的系統搞出相應的錢包軟件,然后支持用戶把錢換成央行數字貨幣。換句話說,央行自己有一個中心賬本,負責把錢發給商業銀行,商業銀行再負責通過集成到自己銀行客戶端的錢包軟件把錢發給個人,但是發到個人之后,這筆錢還是要去央行的賬本中登記。換句話說,DC/EP的使用是肯定要通過商業銀行的。
而央行需要考慮的是這個過程中的隱私性,或者說,部分隱私性,至少讓中間的商業銀行不能如同中央銀行一般對于DC/EP的去向進行追蹤——因此,用戶和DC/EP之間的通信應該「盲化」,即收款者在驗鈔的時候提供的數據需要加密,然后只有央行才能解密。而在這中間,商業銀行的錢包僅僅負責建立通信。
但其中不可避免的是:
如果交易雙方來自同一銀行,那么通過同一銀行的客戶端交易,很難保證隱私性,自然資金在同一銀行間的流動也是可以被追蹤的。
如果交易雙方不在同一銀行,那么無法避免的交易中至少會泄露「資金來自xx銀行」這樣的信息。
但是,除此之外,這張鈔票對于中間的商業銀行而言確實達到了和Ecash一樣匿名的效果——
假設銀行A的用戶從銀行B的用戶那里收到一筆錢,那么,當這位用戶再把錢轉給銀行B的用戶時,銀行B是無法看出這筆錢和之前那筆錢的關聯的,因為兩張錢除了面值一樣,其他信息都不同也沒有任何關聯。
DC/EP真的和區塊鏈/加密貨幣沒有任何關系嗎?
其實也未必——以上的方案有一個有一個巨大的瓶頸,即所有的交易都需要通過中央銀行。
這里,中央銀行需要維護一個賬本,賬本中歷史記錄的部分記錄每一筆已經花掉的錢,而現存部分記錄每一筆還沒有被花掉的錢,或者說,每一張還沒有被花掉的電子鈔票。
這個賬本,有些類似比特幣的UTXO賬本,也被稱為基于token的或者基于價值的賬本形式,這和傳統的基于賬戶的賬本有所不同,也就是說,在賬本中記錄的不再是一個個賬戶的余額,而是一筆筆交易。
而兩個賬本中轉賬的過程是不一樣的:
舉個例子,我們考慮小明想要轉100元給小紅。
在大家比較熟悉的賬戶模型里,這個過程是這樣的:
小明發出轉賬請求給系統。
系統檢查小明賬戶里有沒有這么多錢。
如果有,那么從小明的賬戶里扣掉這些錢,然后加到小紅的賬戶上。
而在這個基于價值的賬本里:
小明將一張100元的電子鈔票發給小紅,小紅向系統發送驗鈔請求。
系統檢查a)這筆交易的數額確實是100;b)小明通過電子簽名授權了這筆交易;c)這筆錢還沒有被花過。
如果檢查通過,則系統銷毀這筆錢,然后發一張新的100元電子鈔票給小紅,并登記這張鈔票歸小紅所有。
這里,每筆交易中心都需要完成這樣的驗證步驟。可想而知,如果DC/EP得到大規模應用,那么這個中心系統的壓力甚至要超過支付寶和微信。而對于央行這樣的機構而言,更明智的選擇是將這些壓力分攤給原本就已經有條件的機構。而這點,我們也能在上文提到的許多相關人士的談話和文章中看出來。
美聯儲理事沃勒:對美聯儲是否有必要建立央行數字貨幣持高度懷疑態度:美聯儲理事沃勒:對美聯儲是否有必要建立央行數字貨幣持高度懷疑態度,美聯儲的央行數字貨幣可能會降低商業銀行的中介作用。否認“沒有美聯儲的央行數字貨幣,美元地位將受到影響”的看法。[2021/8/5 1:37:17]
其中,在姚前的「基于區塊鏈的全新央行數字貨幣實現方案」的這段話中提到:
其中,登記中心記錄CBDC及對應用戶身份,完成權屬登記,并記錄流水,完成CBDC產生、流通、清點核對及消亡全過程登記。其主要功能組件分為發行登記、確權發布、確權查詢網站應用、分布式賬本服務幾個部分。發行登記進行CBDC的發行、流通、回籠過程及權屬記錄;確權發布將發行登記的權屬信息進行脫敏后異步發布到CBDC確權分布式賬本中;確權查詢網站依托分布式賬本面向公眾提供在線權屬查詢服務;分布式賬本服務保證中央銀行與商業銀行的CBDC權屬信息的一致。
通俗來說,可以理解為我們在登記中心利用分布式賬本不可篡改、不可偽造特性,構建了一個「網上驗鈔機」,即CBDC確權賬本,對外通過互聯網提供查詢服務。這種設計對當前分布式賬本技術而言,在中央銀行和商業銀行既集中又分散的二元模式下,提供了一種巧妙的應用思路,一方面將核心的發行登記賬本對外界進行隔離和保護,同時利用分布式賬本優勢,提高確權查詢數據和系統的安全性和可信度;另一方面,由于分布式賬本僅用于對外提供查詢訪問,交易處理仍由發行登記系統來完成,以細化原子交易顆粒度的方式來進行交易的分布式計算處理,這樣可以通過業務設計的方式有效規避現有分布式賬本在交易處理上的技術性能瓶頸。顯然,這樣的設計充分發揮了區塊鏈的技術優勢,保障CBDC驗鈔的可信,但并未影響中央銀行對CBDC的全局管控。
盡管,后來央行在「不預設路線」的表態中表示以上只是一種思路,未必是最終方案,并且央行數字貨幣不預設方案。但是從這個方案中,也能看出對于一個中心進行交易處理的壓力是需要通過某種方式分攤的。此外,從關于央行數字貨幣意義的另一些談話和文章中看出,DC/EP的最核心的意義還是宏觀上降低發行成本,優化支付體系和提高貨幣政策有效性。因此,央行希望能夠在必要的時候追溯貨幣的流向,但是這個目的是統計上而并不需要實時性。從這個角度講,更理想的設計是——商業銀行自行完成交易,然后定期與中央銀行賬本匯總。這樣對于央行而言,就僅僅作為數字貨幣發行方和流通的監督方,而由商業銀行負責數字貨幣平時的使用——這點似乎對于商業銀行和中央銀行兩邊都更為有利。
于是,很多人會發現——說到頭來,不還是需要所有的節點之間共享一個賬本嗎?于是,這不就還是要用到區塊鏈嗎?而且,這會產生更嚴重的性能瓶頸——原本只有中心需要記錄整個賬本處理所有交易,但現在每個銀行都需要實時處理所有交易了,這并不能達到將壓力分散給商業銀行的目的。
實際上,我們不一定要用到真正意義上區塊鏈——區塊鏈考慮的是一個完全無信任的場景,而在DC/EP的場景中卻并不是這樣——實際上,2015年倫敦大學學院提出的央行數字貨幣RScoin就描述了這樣一種結構。
簡單地說,我們假設每個地址和銀行的對應關系對所有銀行已知。然后,考慮在A行的小明想要付100元給B行的小紅。
小明通過A行的地址將一張100元的電子鈔票發給小紅,小紅向B行的系統發送驗鈔請求。
這個時候,B行系統需要檢查a)小明是A行的用戶;b)小明通過電子簽名授權了這筆交易;c)A行簽名確認這筆錢還沒有花過,并承諾將這筆錢標記為花過了。
如果檢查通過,則B行將這筆錢添加到小紅的指定地址,并且發給小紅一個簽字的收據。
但這里有一個問題——B行要信任A行確實驗證了這筆錢存在并且誠實地將其標記并不再雙重支付。而這點,可以通過幾個方法來保證:
美聯儲埃文斯:需要了解央行數字貨幣的風險:美聯儲埃文斯表示,如果做得好,央行數字貨幣可能是有益的,但需要了解其風險。對于央行數字貨幣有所懷疑。(金十)[2021/7/16 0:55:42]
央行的仲裁:以上的步驟中,在交易的時候小明的客戶端提供了一個證明上有A行的簽名,因此如果A行有不當行為是可以由小明提供證明向央行申訴的。而同理,如果B行行為不當,也可以通過小紅提供證明被央行發現。
可以引入冗余:以犧牲部分效率為前提,讓每個地址由多個銀行負責,然后獲得其中多數的簽名才被視為合法。
可以引入拜占庭容錯算法:引入冗余相當于將多個銀行視為一個只會出現一般錯誤的系統,我們也可以考慮其中有惡意的情況,于是采用拜占庭容錯算法來保證輸出結果的一致。
以上三種做法的實施就很靈活了——對于一些較為可信的機構,可以只用第一種,而對于較為不可信的機構,則可以采用第三種。而另一個可以靈活改動的地方是——其中的三個步驟:1)付款銀行檢查是不是有這筆錢;2)付款銀行將這筆錢標記為花過;3)收款銀行將這筆錢計入,是可以分開考慮的。而在姚前之前那段引文中,我們就看到了這樣的提案——檢查的步驟可以采用拜占庭容錯算法來保證安全,而其他兩個步驟可以不通過拜占庭容錯算法進行來保證效率。
但這里需要注意的一點是——即便需要參與驗證的是所有銀行,并且采用拜占庭容錯,這仍舊不是一個傳統意義上的區塊鏈系統,這點我下一節會詳細解釋。
然后,在每天結束的時候,央行負責匯總所有的賬本,然后,重新發放新幣給各個用戶的地址。
但以上這種做法引來的一個問題是隱私和匿名問題——因為不是每次交易都重新發放貨幣,一天之內貨幣的流動是可以被追蹤到的——這樣可能會導致隱私泄露。因此,可以采用的方法是類似比特幣「非實名」的方法。用同一個賬號生成不同的地址收款和付款,但只有所在銀行和中央銀行可以計算出這些地址屬于同一個人,而其他機構只能看到這些賬號來自同一個銀行。
這種方法,可以在匿名性上添加另一層保護。
DC/EP的錢包/客戶端
首先非常重要的一點——DC/EP的錢包和如同比特幣一樣的加密貨幣的錢包非常不同!
原因是,如上文所述的DC/EP的系統不是拜占庭容錯的,甚至不是一般容錯的,即便在交易驗證和錄入的時候采用了拜占庭容錯算法也并不能使整個系統拜占庭容錯——這也就是為什么說它不是個區塊鏈的原因。
這個系統是完全可能出現單點故障的,而這個單點就在錢包/客戶端。
上面這套系統的冗余設置和央行的仲裁機制只能保證在商業銀行和央行這里不出錯,而對于客戶端,我們的假設是用戶沒有理由去刻意制造不一致——比如小明付錢給小紅的場景,比如為了買東西,小明肯定希望想小紅證明付款成功,于是他有義務給小紅提供一個「我的100元是真鈔」的證明,而在提供這個證明的時候,這個錢就已經轉出了。而小紅收到了錢,自然是為了以后去用,那么她也有動機去把這個證明發給自己擁有的地址所對應的機構,否則這筆錢她以后就花不了。
但以上的這些步驟,肯定是會由銀行集成到一個錢包中的。從邏輯上講,商業銀行自然也不會刻意制造不一致,但是只要是軟件就可能出bug,而且在現實的網絡中,有可能出現丟包或者信號突然斷開的情況。而實際上,在以上的系統中這個錢包如果出現了問題是很容易引起整個賬本的不一致的。例如在讓所在的銀行開具合法的證明的時候,如果采用了冗余機制有三個銀行負責驗證,如果客戶端只給其中一個發了合法證明的請求,然后斷網,然后由于系統bug在重連之后沒有給另兩個機構發請求,或者由于斷網時候的操作,在重連之后對另兩個賬本請求了不同的交易,那么就會造成其中一個賬本和其他兩個賬本的不一致。類似這種情況造成的不一致是系統設計之外的,可能會導致非常難以預料和解決的后果。
趙錫軍:央行數字貨幣重點在于如何與傳統貨幣進行融合:對于“數字貨幣研發重點和難點”的看法,中國人民大學財政金融學院副院長趙錫軍指出,其中涉及兩個問題。一是技術是否成熟。比特幣實際上就是數字貨幣最初的雛形,從技術層面來講,比特幣是有一些缺陷的,一旦支付量變大,就會出現支付困難或者效率下降。另外,比特幣出現過被盜等安全問題。而據央行貨幣研究所所長穆長春的一個內部研討會指出,央行數字貨幣,效率是非常高的,支付能力很強,說明已經克服技術方面的問題。二是數字貨幣被引入后,如何與傳統的貨幣和貨幣管理運行體系進行融合。數字貨幣的發行,是基于區塊鏈的基礎,它是有上限的,從目前來講它的發行規模取決于互聯網的算力。盡管穆長春所長也提到,央行數字貨幣現在可以突破區塊鏈的上限限制,但是破獲以后,它的發行究竟是怎么樣的,是否能夠跟我們目前的人民幣發行順利融合,這需要在制度層面有所安排。(澎湃新聞)[2020/4/22]
因此,錢包的安全性是至關重要的,因為與比特幣之類的傳統加密貨幣不同,錢包是整個系統安全性的一部分。比特幣的錢包出故障,丟的最多是使用者的錢,而不是影響到比特幣賬本的一致性,但DC/EP的錢包如果出了故障,可能會導致整個系統的賬本出錯或者癱瘓。
而基于此,就有了接下來的推測:
1,DC/EP是人民幣的數字化,僅此而已——因為從技術路線上,這個系統是封閉的,而且即便到未來也是不可能完全開放的,也就是錢包和賬本都僅僅會開放給少數經過授權的機構才能開發,并且需要經過長時間的測試和授權機構的檢驗和認證——這代表了不可能使用DCEP開發Dapp或者進行DeFi這種金融創新,也不會是所謂的「可編程貨幣」,這點與Libra的愿景以及許多類似的項目和虛擬貨幣相去甚遠。因為開發者最多只能和用支付寶一樣,調用授權錢包給出的轉賬接口,而無法直接向賬本發出請求或者發起交易。
2,這個錢包大概就是現在農行內測的重點。由于目前內測范圍僅限農行,我傾向于認為目前階段僅僅考慮央行和農行兩個機構,在驗證的部分也不考慮加入其他機構的冗余設計。因此,未來能夠加入DCEP的,大概率在一開始僅有五大行。
3,對于匿名性——由于錢包和銀行賬號綁定,因此采用A行錢包轉賬實際上無論從DCEP的邏輯上,還是從銀行內部實現的方式上,都應該十分類似于使用銀行賬戶進行轉賬,但兩者并不一定綁定在一起,也就是所謂的「松耦合」的概念。
4,在技術上,DCEP提供了框架,但是對于央行來說實際上重要的是:1,貨幣以中心賬本登記的為準,商業銀行僅是代管,賬本需定期向中央銀行匯總;2,商業銀行內部可以采用任何技術,例如賬本上重新建一個數據庫也好,采用已有的賬戶也好,交易驗證完全中心化靠信用背書也好,相互之間采用區塊鏈技術來提升溝通效率或者安全性也好都沒問題,央行歡迎你們嘗試各種技術,但是,匯總到總帳本的格式需要一致,數據要可靠,而且最終的賬本還是以央行匯總的為準。
雙離線支付
DC/EP的一個與現在的支付寶/微信支付的一個重大不同是雙離線支付,其中一個被用來舉例的場景就是在連線狀態下,兩臺手機互相碰一碰就完成支付。
其中,兩臺手機互相碰一碰的部分可以通過藍牙或者NFC進行信息互換,但核心的雙離線的方式,根據數字貨幣研究所所申請的專利,可能會需要用到可信硬件。
具體方法是:在支持TEE的手機里,規定離線支付需要通過TEE進行簽名并且檢查沒有進行過雙重支付,這個時候雙離線支付的安全性實際上交給支持TEE芯片的生產商進行擔保。這樣,首先破壞TEE的技術難度較大成本較高,其次,手機芯片也是實名的,如果TEE芯片安全性被破壞,則可以追責并且可以將該設備列入黑名單。
但根據專利中的內容來看,雙離線支付應該只適用于臨時和小額的場景,收到的錢需要通過上線同步到賬本之后才能再次使用——這點其實并不難理解,因為如果離線收到的錢可以一直在離線狀態使用,相當于同時存在了兩個賬本,或者說兩種數字貨幣。一種在線的數字貨幣安全性由央行擔保,而另一種離線的數字貨幣的安全性由各個TEE芯片生產商擔保。這不符合DC/EP的邏輯。
而如果僅僅將雙離線支付作為一個臨時的手段的話,那么TEE僅僅作為一個離線狀態下小額資金的一個臨時托管方,這樣即便TEE的安全性被破壞,也不對DC/EP的安全性造成影響,央行也在要求TEE的生產方補償損失的時候也更容易計算。
然而,其實以上的邏輯不需要TEE也可以實現,比如把TEE換成一個實名的和手機綁定的銀行客戶端——這個客戶端在代碼中寫死以上的邏輯,然后,如果發現客戶端被修改導致了數據錯誤,就把綁定的手機寫上黑名單并對持有者追責。實際上兩者的效果是一樣的,區別就在于TEE的安全性更高一些而已。
但是,從邏輯上來講,雙離線支付單純通過錢包也是可以實現的——畢竟,按照之前的設計,從央行的角度講,所有當日的交易在未寫入總帳本之前都屬于銀行代管,本身就依托于雙方銀行的信用,而如果錢包軟件也由雙方銀行提供,那么由錢包軟件暫時托管貨幣也相當于雙方銀行對貨幣的安全性負責。
DCEP的基本結構
通過以上分析,我推測DCEP的基本結構如下:
其中,中央銀行擁有一個DC/EP的總帳本,賬本采用基于價值/基于代幣的結構,記錄所有已發行數字貨幣的使用和回收情況。如果正在流通,則記錄其當前所有者以及所在銀行。每隔一段時間,央行從商業銀行和其他可信機構那里通過中心化的方式匯總而成當日的賬本,然后進行檢查和比對,對于賬本出現不一致的情況,中央銀行擁有仲裁權。然后,對于所有還沒有在央行登記的交易,央行在總帳本上進行登記并收回已經使用過的貨幣,并將等額的新的匿名貨幣發給相應的地址。最后,將新的當日流通貨幣的編碼發布給所有驗證機構。
同時中央銀行負責管理一個身份數據庫,記錄所有地址對應的身份。這個身份數據庫既不對內也不對外公開,僅僅在涉及犯罪行為的時候才可以查閱相關人員的地址信息。
此外,中央銀行管理一個查詢接口和一個交易錄入接口,前者可供公開驗證賬本的正確性和完整性,和對每一筆貨幣進行有限的追溯,后者僅供認證的錢包接入用于更新交易賬本。商業銀行各自維護自己當日的賬本,要求保持安全性和可用性。這里,這個賬本可能是該機構用戶的賬本,也可能包括該機構之外其他機構的賬本。但是賬本及整個圖中藍色方框部分都只有地址信息,沒有用戶信息。這部分賬本是匿名的——每筆交易除了當事人,涉及到的銀行,錢包提供方以外,沒人能夠從交易中得出任何關于交易雙方或者當日之前資金來源的信息。
央行授權商業銀行或者其他可信機構開發錢包,并且需要通過認證和驗收。只有通過錢包可以獲得DC/EP和進行交易。這里,DC/EP的錢包是整個系統的重要部分,因此并不能任意開放給第三方。
對于用戶而言,在使用DC/EP的時候,可以將整個DC/EP看作黑盒子,僅僅通過錢包互動。但也可以通過第三方調用查詢接口查閱賬本和驗證自己的交易記錄是否和錢包提供的相符。在隱私方面,錢包是實名的,因此錢包提供方會在央行的監督下管理用戶信息。用戶在注冊錢包的時候需要把個人信息通過錢包存入身份數據庫。
于是,如果小明想要通過A行的錢包和A行的地址向B行的小紅發一張100元的數字貨幣,有如下的交易流程:
小明與小紅使用的錢包間通過二維碼或者NFC通信,獲知小紅在B行的一個收款地址。
小明的錢包選擇一張在小明未花費過的在A行的地址,向交易接口發布交易請求。
交易接口按照索引找到該地址對應的A行,然后要求他們證明這張貨幣可用。
以上的記賬機構通過某算法a返回可用證明并聲明已標記為使用。
小明的錢包收到返回的證明之后,將證明與交易發給小紅的錢包。
小紅的錢包向交易記錄接口提交交易,然后交易驗證接口根據索引找到相應的地址對應的B行。
對應的機構根據算法b將交易加入B行的賬本,并返回一個交易已經加入賬本的證明發給小紅。
交易完成。
這里,如果僅涉及單個機構,算法a和算法b可以是簡單的讀寫,當涉及到多個機構的時候,可以是一般容錯算法,也可以是拜占庭容錯算法。
在賬本匯總中,如果出現不一致,中央銀行有裁決權。如果結果出現問題,用戶可以通過手中的證據向中央銀行要求遺失的錢,然后中央銀行可以根據證據調查流程中的過失責任方。
雙離線支付并沒有包含在這個流程中,但可以很容易看出來,雙離線支付的邏輯應該內嵌在錢包軟件里,在斷網的時候觸發。于是,這筆交易不會傳遞到賬本,僅僅通過錢包軟件記錄交換信息完成,暫時記錄在硬件中,并由TEE提供商或者是錢包提供方擔保交易完成,然后再聯網之后同步到賬本里。
這個結構其實也可以與姚前提的「一幣、兩庫、三中心」的說法對應起來,原文是:
筆者曾提出「一幣、兩庫、三中心」的央行數字貨幣體系。「一幣」即央行數字貨幣,是由央行擔保并簽名發行的代表具體金額的加密數字串。「兩庫」指數字貨幣發行庫和數字貨幣商業銀行庫,前者是中央銀行在CBDC私有云上存放CBDC發行基金的數據庫,按照中央銀行的現金運營管理體系進行管理,后者是商業銀行存放CBDC的數據庫,可以在商業銀行的數據中心也可以在CBDC私有云上,遵循商業銀行現金運營管理規范。「三中心」則包括認證中心、登記中心和大數據分析中心。
其中,登記中心記錄CBDC及對應用戶身份,完成權屬登記,并記錄流水,完成CBDC產生、流通、清點核對及消亡全過程登記。其主要功能組件分為發行登記、確權發布、確權查詢網站應用、分布式賬本服務幾個部分。發行登記進行CBDC的發行、流通、回籠過程及權屬記錄;確權發布將發行登記的權屬信息進行脫敏后異步發布到CBDC確權分布式賬本中;確權查詢網站依托分布式賬本面向公眾提供在線權屬查詢服務;分布式賬本服務保證中央銀行與商業銀行的CBDC權屬信息的一致。
通俗來說,可以理解為我們在登記中心利用分布式賬本不可篡改、不可偽造特性,構建了一個「網上驗鈔機」,即CBDC確權賬本,對外通過互聯網提供查詢服務。這種設計對當前分布式賬本技術而言,在中央銀行和商業銀行既集中又分散的二元模式下,提供了一種巧妙的應用思路,一方面將核心的發行登記賬本對外界進行隔離和保護,同時利用分布式賬本優勢,提高確權查詢數據和系統的安全性和可信度;另一方面,由于分布式賬本僅用于對外提供查詢訪問,交易處理仍由發行登記系統來完成,以細化原子交易顆粒度的方式來進行交易的分布式計算處理,這樣可以通過業務設計的方式有效規避現有分布式賬本在交易處理上的技術性能瓶頸。顯然,這樣的設計充分發揮了區塊鏈的技術優勢,保障CBDC驗鈔的可信,但并未影響中央銀行對CBDC的全局管控。
尤其是,這種雙賬本包容性設計,既延續了傳統技術的成熟穩定性,又為新的分布式賬本技術留有空間,使得兩種分布式技術相互兼容、并行不悖、優勢互補,并在演進過程中,競爭擇優。
這里,一幣自然指的是DC/EP,兩庫即是中央銀行賬本和商業銀行的賬本,前者放在央行的私有云上,后者既可以放在央行的私有云上,也可以放在商業銀行數據庫里。然后,登記中心即為查詢接口接入之后的系統,而認證中心就是交易錄入系統接入之后的系統,大數據中心是一個單獨的接口,在圖上沒有畫出來。兩個接口可以采用不同的共識算法,也就是之前交易流程中的算法a和算法b,按照姚前的說法,算法a可以采用拜占庭容錯算法保證安全性,而算法b可以用一般容錯算法來保證效率。
總結
筆者的專業是區塊鏈共識算法而非金融,對于央行數字貨幣的了解僅限新聞、公開資料和部分其他人對于DC/EP的解讀,因此本文純屬從技術角度做出的推測,主要有:
DC/EP的匿名性采用了類似Ecash的結構,但是用中心替代了盲簽名,匿名主要體現每個「數字貨幣」對于所有除了使用者和央行之外的機構都是同質且匿名的。
DC/EP的主體架構不是區塊鏈,但是可能采用了類似RScoin的框架。下屬商業銀行可以采用已有的基礎設施來處理交易,也可以用區塊鏈或者其他技術來實現跨行轉賬,只要保證每天匯總給央行總帳的賬本可靠就行。
如果采用了類似RScoin的結構,實際上DC/EP的錢包在保證賬本一致性中起到了很重要的作用,因此DC/EP應該會是一個相對封閉和功能單一的系統,也就是僅有數字貨幣的功能,并且賬本僅對認證的錢包開放。
雙離線認證僅僅作為一個臨時的支付手段,可以基于TEE,或者僅僅基于軟件,然后靠事后追責的方式實現。
最早推出的DC/EP可能是個最小可行性版本,也就是上圖中僅留下商業銀行1和該商業銀行推出的錢包。
DC/EP沒有考慮過跨境支付場景,如果需要跨境支付可以通過下屬機構建立相關設施。
最后,以上純屬推測,對于于實施的偏差筆者不負任何責任,如轉載請全文轉載以防造成誤讀。
本文鏈接:https://www.8btc.com/article/586343
轉載請注明文章出處
少年智則國智,少年富則國富,少年強則國強,少年獨立則國獨立,少年自由則國自由,少年進步則國進步,少年勝于歐洲,則國勝于歐洲,少年雄于地球,則國雄于地球.
1900/1/1 0:00:00比爾蓋茨說“賺不到錢,并不是沒錢可賺,而是你不在賺錢的圈子內”我們不缺機會,缺的是了自己的信念。”解機會的意愿,判斷機會的眼光,嘗試機會的勇氣,堅持機會的恒心,以及相信.
1900/1/1 0:00:00尊敬的GJGlobal用戶:??GJ比特國際創投區已上線CTL,并即將開放CTL/LBTC交易對.
1900/1/1 0:00:00周LTC看漲期權?代碼周LTC看漲0428期權標的LTC合約類型歐式看漲期權計價單位USDT最小價格單位0.0001USDT合約比例5:1.
1900/1/1 0:00:00尊敬的CoinTiger客戶:因為服務供應商亞馬遜云的基礎服務SQS出現故障,導致CoinTiger平臺自新加坡時間4月20日17時55分起合約頁面K線/最新成交停止更新.
1900/1/1 0:00:00Hotbit不為任何區塊鏈資產做信用背書,所有相關介紹均來自第三方并有可能存在錯誤與遺漏。區塊鏈資產投資是高風險行為,您必須自行承擔價格有可能歸零的風險,請根據您自身能力謹慎投資.
1900/1/1 0:00:00