機密批發 CBDC 應用程式工作流程

機密批發中央銀行數位貨幣 (CBDC) 情境代表透過結構化金融機構階層分配的貨幣,機密資訊則以私密方式儲存。

批發 CBDC 案例的機密版本與交易資料的處理方式不同。不區分大小寫的資訊 (例如基本交易明細與組織科目資訊) 會儲存在公用分類帳中。機密資訊 (例如使用者 ID、實際餘額值和盲點因素) 會儲存在每個組織的專用資料收集中,並透過暫時對應傳遞至鏈碼,因此永遠不會寫入至公用分類帳。帳戶結餘和保留結餘在公開分類帳上以「踏板」承諾值表示,允許通過零知識證明進行公開驗證,而無需暴露基本金額。在中央銀行層次,保留移轉對需要同時執行 executeHoldTokensSenderexecuteHoldTokensReceiver API 的單元交易使用兩階段確認程序,該 API 在整個傳輸過程中保持機密性。金融機構層級的移轉會使用標準的單一 executeHoldTokens API。

下表概述批發 CBDC 案例的非機密版本與機密版本之間的主要差異。
作業 / 資料 非機密 CBDC 機密 CBDC
組織間移轉 (中央銀行核准者執行保留) executeHoldTokens API (單一呼叫) executeHoldTokensSenderexecuteHoldTokensReceiver API (兩階段確認中同時進行的兩個呼叫)
組織內移轉 (金融機構核准者執行保留) executeHoldTokens API (單一呼叫) executeHoldTokens API (單一呼叫,無差異)
分類帳上的交易資料 所有資料均以公開分類帳的純形式儲存,無資料分隔 儲存在每個組織私人資料收集中的公開分類帳、敏感資料 (使用者 ID、實際餘額、閃爍因素) 的非敏感資料
餘額表示法 直接儲存的實際餘額值 以「踏板履約承諾」值表示的餘額,未公開分類帳的實際金額
驗證方式 直接:值可在分類帳上讀取 零知識證明可在不顯示基本金額的情況下啟用公開驗證
機密資料處理 儲存於公共分類帳 透過暫時對應傳送至鏈碼,而不是寫入至公開分類帳

附註:

在兩階段確認程序中,必須同時呼叫 executeHoldTokensSenderexecuteHoldTokensReceiver API。只呼叫其他則導致錯誤。
下表摘要此案例中的動作者。
動作項目 角色 描述
Administrator 權杖管理 初始化系統,指定角色。
建立者 Minter 要求偵測記號並接收提示記號。
中央銀行核准者 公證人 核准中央銀行層級的所有作業。
發出者 接收來自建立者的變數替代字,將變數替代字遞送至金融機構主管或零售商。
金融機構主管 接收來自發行者的權杖,將權杖分配給金融機構使用者。
金融機構核准者 公證人 核准從金融機構主管到金融機構使用者的保留移轉。
金融機構使用者 金融機構之轉讓權杖的最終接受者。
撤銷者 燃燒器 從發行者接收記號,並傳送燒錄要求給中央銀行核准者。
管理員完成下列步驟以初始化系統。
  1. 使用 initializeCBDCToken API 初始化 CBDC 系統。
  2. 使用 registerOrg API 註冊組織。
  3. 使用 createAccount API 建立帳戶。
  4. 使用 associateTokenToAccount API 將權杖與帳戶建立關聯。
  5. 使用 addRole API 將 minter 角色指派給建立者、公證人角色指派給中央銀行核准者,以及燒錄者角色指派給轉存者。
系統初始化之後,典型的處理流程會遵循這些基本步驟。
  1. 薄荷貨幣。
    1. 權杖建立者使用 requestMint API 來提交要求以提示存款權杖。
    2. 中央銀行核准者使用 approveMint API 來複查與核准提示要求。記號會記入建立者的帳戶。此外,中央銀行核准者也可以使用 rejectMint API 來拒絕要求。
  2. 將權杖移轉給核發者。
    • 建立者使用 transferTokens API 傳送記號給發行者。
  3. 將權杖移轉給財務主管。
    1. 發行者使用 holdTokens API 傳送權杖給金融機構主管。
    2. 中央銀行核准者使用 executeHoldTokensSenderexecuteHoldTokensReceiver API 作為兩階段確認的一部分,以驗證和核准轉帳要求。中央銀行核准者可以改用 releaseHold API 來拒絕轉帳。
  4. 核發權杖給使用者。
    1. 金融機構主管使用 holdTokens API 傳送權杖給金融機構使用者。
    2. 金融機構核准者使用 executeHoldTokens API 來驗證與核准移轉要求。金融機構核准者可以改用 releaseHold API 來拒絕轉帳。
  5. 燒錄權杖。
    1. 發行者使用 transferTokens API 將權杖傳輸至轉回器。
    2. 該收銀機使用 requestBurn API 將消耗要求傳送給中央銀行核准者。
    3. 中央銀行核准者使用 approveBurn API 來核准燒錄要求,並銷毀記號。中央銀行核准者可以改用 rejectBurn API 來拒絕要求。
  6. 驗證權杖餘額。
    • 使用者可以使用 getAccountBalance API 來取得持有的幣別總數。