機密批發 CBDC 應用程式工作流程
機密批發中央銀行數位貨幣 (CBDC) 情境代表透過結構化金融機構階層分配的貨幣,機密資訊則以私密方式儲存。
批發 CBDC 案例的機密版本與交易資料的處理方式不同。不區分大小寫的資訊 (例如基本交易明細與組織科目資訊) 會儲存在公用分類帳中。機密資訊 (例如使用者 ID、實際餘額值和盲點因素) 會儲存在每個組織的專用資料收集中,並透過暫時對應傳遞至鏈碼,因此永遠不會寫入至公用分類帳。帳戶結餘和保留結餘在公開分類帳上以「踏板」承諾值表示,允許通過零知識證明進行公開驗證,而無需暴露基本金額。在中央銀行層次,保留移轉對需要同時執行 executeHoldTokensSender 和 executeHoldTokensReceiver API 的單元交易使用兩階段確認程序,該 API 在整個傳輸過程中保持機密性。金融機構層級的移轉會使用標準的單一 executeHoldTokens API。
下表概述批發 CBDC 案例的非機密版本與機密版本之間的主要差異。
| 作業 / 資料 | 非機密 CBDC | 機密 CBDC |
|---|---|---|
| 組織間移轉 (中央銀行核准者執行保留) | executeHoldTokens API (單一呼叫)
|
executeHoldTokensSender 和 executeHoldTokensReceiver API (兩階段確認中同時進行的兩個呼叫)
|
| 組織內移轉 (金融機構核准者執行保留) | executeHoldTokens API (單一呼叫)
|
executeHoldTokens API (單一呼叫,無差異)
|
| 分類帳上的交易資料 | 所有資料均以公開分類帳的純形式儲存,無資料分隔 | 儲存在每個組織私人資料收集中的公開分類帳、敏感資料 (使用者 ID、實際餘額、閃爍因素) 的非敏感資料 |
| 餘額表示法 | 直接儲存的實際餘額值 | 以「踏板履約承諾」值表示的餘額,未公開分類帳的實際金額 |
| 驗證方式 | 直接:值可在分類帳上讀取 | 零知識證明可在不顯示基本金額的情況下啟用公開驗證 |
| 機密資料處理 | 儲存於公共分類帳 | 透過暫時對應傳送至鏈碼,而不是寫入至公開分類帳 |
附註:
在兩階段確認程序中,必須同時呼叫executeHoldTokensSender 和 executeHoldTokensReceiver API。只呼叫其他則導致錯誤。
下表摘要此案例中的動作者。
| 動作項目 | 角色 | 描述 |
|---|---|---|
| Administrator | 權杖管理 | 初始化系統,指定角色。 |
| 建立者 | Minter | 要求偵測記號並接收提示記號。 |
| 中央銀行核准者 | 公證人 | 核准中央銀行層級的所有作業。 |
| 發出者 | 無 | 接收來自建立者的變數替代字,將變數替代字遞送至金融機構主管或零售商。 |
| 金融機構主管 | 無 | 接收來自發行者的權杖,將權杖分配給金融機構使用者。 |
| 金融機構核准者 | 公證人 | 核准從金融機構主管到金融機構使用者的保留移轉。 |
| 金融機構使用者 | 無 | 金融機構之轉讓權杖的最終接受者。 |
| 撤銷者 | 燃燒器 | 從發行者接收記號,並傳送燒錄要求給中央銀行核准者。 |
管理員完成下列步驟以初始化系統。
- 使用
initializeCBDCTokenAPI 初始化 CBDC 系統。 - 使用
registerOrgAPI 註冊組織。 - 使用
createAccountAPI 建立帳戶。 - 使用
associateTokenToAccountAPI 將權杖與帳戶建立關聯。 - 使用
addRoleAPI 將 minter 角色指派給建立者、公證人角色指派給中央銀行核准者,以及燒錄者角色指派給轉存者。
系統初始化之後,典型的處理流程會遵循這些基本步驟。
- 薄荷貨幣。
- 權杖建立者使用
requestMintAPI 來提交要求以提示存款權杖。 - 中央銀行核准者使用
approveMintAPI 來複查與核准提示要求。記號會記入建立者的帳戶。此外,中央銀行核准者也可以使用rejectMintAPI 來拒絕要求。
- 權杖建立者使用
- 將權杖移轉給核發者。
- 建立者使用
transferTokensAPI 傳送記號給發行者。
- 建立者使用
- 將權杖移轉給財務主管。
- 發行者使用
holdTokensAPI 傳送權杖給金融機構主管。 - 中央銀行核准者使用
executeHoldTokensSender和executeHoldTokensReceiverAPI 作為兩階段確認的一部分,以驗證和核准轉帳要求。中央銀行核准者可以改用releaseHoldAPI 來拒絕轉帳。
- 發行者使用
- 核發權杖給使用者。
- 金融機構主管使用
holdTokensAPI 傳送權杖給金融機構使用者。 - 金融機構核准者使用
executeHoldTokensAPI 來驗證與核准移轉要求。金融機構核准者可以改用releaseHoldAPI 來拒絕轉帳。
- 金融機構主管使用
- 燒錄權杖。
- 發行者使用
transferTokensAPI 將權杖傳輸至轉回器。 - 該收銀機使用
requestBurnAPI 將消耗要求傳送給中央銀行核准者。 - 中央銀行核准者使用
approveBurnAPI 來核准燒錄要求,並銷毀記號。中央銀行核准者可以改用rejectBurnAPI 來拒絕要求。
- 發行者使用
- 驗證權杖餘額。
- 使用者可以使用
getAccountBalanceAPI 來取得持有的幣別總數。
- 使用者可以使用