技術指南 | DCEP的離線支付實現邏輯

技術指南 | DCEP的離線支付實現邏輯

中國人民銀行發行的法定數字貨幣,是現金貨幣的數字化,需要能夠進行離線支付。但對於一個數字系統來說,離線支付是一個不小的難題。

央行所設計的DCEP,可以巧妙地透過利用密碼學技術解決離線支付問題。

前文我們已經基本描述過DCEP的基礎結構。

DCEP不同於賬本模式,採用的是模擬真實貨幣的方式來進行的。其具體的支付行為不是透過記賬而是透過

貨幣所有權轉換

來完成。

而這就為離線支付提供了一個基礎。

數字貨幣場景需要使用密碼學來進行所有權驗證,而基於密碼學的所有權認證模式是不需要裝置線上就可以完成的。因此,DCEP才可以進行離線支付。

基於數字證書的使用者身份認證

實現DCEP離線支付的一個基礎,就是要能在離線的狀態下對使用者的身份進行驗證,保證交易雙方的身份的正確性。

在賬戶體系的模式下,為了對使用者身份進行驗證,交易雙方往往需要連線中心的伺服器,依靠中心的伺服器來對雙方的身份進行認證。

這種模式實現簡單,但是無法進行離線化。因為在這種模式下,交易雙方必須在交易時線上。只有在線的裝置,才能夠連線中心伺服器對資料進行驗證。

而採用這種認證方式的原因,是每一次交易的對手方都可能是一個新的對手方。為了保證交易對手方身份的正確性,每次交易都要詢問伺服器對方身份是否正確。

在這種模式下,具體的認證流程如下:

技術指南 | DCEP的離線支付實現邏輯

想要解決DCEP離線支付的問題,第一步就要保證對使用者的身份認證能夠離線化完成。

所謂的離線化完成,就是保證使用者在確認交易對手方時,不需要與中心伺服器溝通,而是僅僅透過收到對手方的資訊,就可以對其身份進行確認。

技術指南 | DCEP的離線支付實現邏輯

這種模式的實現,在DCEP中採用的是基於密碼學的證書機制。

在對手方註冊錢包的時候,會先把自己的公鑰提交到認證伺服器。認證伺服器收到對手方提交的身份資訊後,對身份資訊進行核實,核實通過後,再向對手方頒發經過自己的私鑰簽名的數字證書。對手方收到數字證書後,將其儲存在自己的本地。此外,由於密碼學的限制,對手方是

無法修改自己收到的數字證書

的。

當交易行為發生時,交易方會

內建

認證伺服器的公鑰。同時,交易方會接收到對手方的數字證書資訊。

由於之前對手方的數字證書已經經過認證伺服器簽名,交易方可以直接根據認證伺服器的的公鑰與數字證書資訊認證對手方的資訊。

基於數字簽名的貨幣認證

DCEP基於數字證書的身份認證機制不僅僅應用在認證使用者身份上,也應用在認證數字貨幣的發行流程與數字貨幣本身上。

在我們對DCEP的專利解讀中,提到過數字貨幣的結構。

如下圖所示,一張貨幣包含了數字貨幣額度控制位、貨幣所有者的身份標識、以及貨幣投放系統的數字簽名。

技術指南 | DCEP的離線支付實現邏輯

對數字貨幣的校驗是需要利用貨幣投放系統的數字證書與投放系統的簽名進行驗證,從而保證這張貨幣的真實性。

接下來,還需要對數字貨幣的額度控制位進行認證,額度控制位的結構大致與下:

技術指南 | DCEP的離線支付實現邏輯

對額度控制位的校驗,是需要利用額度管理系統證書與額度管理系統簽名進行驗證,保證額度控制位的真實性。

一張貨幣只有

同時滿足如上兩個條件

,才能正式透過驗證。

數字貨幣的這兩個驗證條件,使得在擁有額度管理系統證書的情況下,裝置能夠在本地透過計算來驗證貨幣的真實性。

基於數字簽名的交易認證

根據DCEP的設計模式,兩個裝置之間發生的數字貨幣交易最終是需要數字貨幣投放系統進行確認的。

數字貨幣的結構中,所有者標識指的是使用者的錢包證書。當數字貨幣投放系統認可一個數字貨幣被一個錢包所擁有時,會利用自己的私鑰對數字貨幣進行簽名,進而生成一個新的數字貨幣。

而讓數字貨幣投放系統認可一張貨幣所有權轉移的方式,便是將雙方發生的交易提交給數字貨幣投放系統。

數字貨幣投放系統在收到交易請求後,會驗證數字貨幣原本擁有者是否已經在這次交易上進行簽名,同時確定這筆貨幣擁有者的身份。當確認透過時,數字貨幣投放系統會為新的貨幣擁有者生成新的貨幣。

這個流程是交易雙方錢包線上時完成的。在交易時間戳的保證下,這個具體的流程可以被延時完成,即數字貨幣的最終確認流程可以與交易過程分離開來。

技術指南 | DCEP的離線支付實現邏輯

這種數字貨幣交易與確認分離的模式,最終保證了數字貨幣的離線交易。

實際上,數字貨幣交易體本身的生成與驗證是可以離線完成的,使用者收到數字貨幣交易體,只要交易體本身是正確的,使用者就相當於可以收到真實的貨幣了。

最終,擁有交易體的使用者只需要將資料提交即可換取真實的DCEP。