# 央行數位貨幣(CBDC)平台功能與特性 ## zkSNARK Implementation on Ourchain 討論: 1. 此篇沒有說如何驗證私鑰於zero knowledge之下的方法 2. rust語言撰寫的ZoKrates https://github.com/Zokrates/ZoKratZoKratess 我們並不熟悉 ## CBDC及其平台之功能 1. 普通銀行使用實體現金向央行購買CBDC(token) 2. 央行以央行名義簽發CBDC(token) 3. 節點提供服務來維持系統,挖礦獎勵為OurCoin,OurCoin可以找持有央行名義簽發CBDC(token)的地址兌換,央行有可以自行公告匯率,但其他使用者也可以彼此間以約定匯率私下兌換 4. 維運成本(挖礦獎勵)都是央行的債,央行可以透過調節匯率,在維運系統穩定與花費間做調控 5. 央行需要以新台幣現金擔保CBDC(token),央行可以自行決定CBDC(token)兌新台幣現金的匯率 6. 央行掌握3大權柄,[CBDC(token)兌新台幣現金的匯率, 簽發CBDC(token)的權利, 挖礦獎勵與CBDC(token)的公告匯率] ## CBDC及其平台應俱備之特性 ### 管理面 1. 身份識別(央行,銀行,非銀行支付機構,一般使用者),依身份設定存取權限,這邊權限的定義與範圍我們還不清楚,且需要有確定公鑰與簽章屬於哪個身份的機制 2. 只有央行能發行CBDC,而關於銷毀CBDC的部份則由[CBDC(token)兌新台幣現金的匯率, 挖礦獎勵與CBDC(token)的公告匯率]來操作收回到央行手中的CBDC量 3. 使用者及銀行只能轉移自身持有之CBDC,對於只能讀取與自身相關之交易紀錄則需要zero knowledge來做隱私保護,且隱私與溯源有根本上的衝突 ### 交易面 1. 安全性依賴於對於自己私鑰的保護,對於雙花問題兩輪之後無雙花,但兩輪內還是有分叉的可能,這點系統維運穩定由央行對於挖礦獎勵與CBDC(token)的公告匯率進行調控,獎勵匯率愈高則一般正常投入算力愈大,那麼雙花的風險就愈低,央行的匯率可以根據央行需求來調高,風險也會隨之降低 2. 不可竄改與不可撤銷問題兩輪之後則不會有,但兩輪內還是有可能 3. zero knowledge來做隱私保護與溯源性有根本上的衝突(現階段技術上) 4. 兩輪後才算是正式回應交易,此時也因為過了兩輪,在我們鏈的設計下已經保障最終性 5. 當前一輪需要2秒,每筆需要兩輪,因此需要4秒,但是這點應可改進 6. 分散式的區塊鏈系統本身就具有高韌性,任意兩節點失效時還是可以運作 ## 二階段 1. 交易的隱密性可由zero knowledge保證,使用者可以向政府認証並建立對政府外匿名之身份,認証時政府可以依據需求要求被認証者提供充足的資訊來了解客戶,但是之後的交易在zero knowledge保證隱密性下難以溯源 2. 使用者的容量會受限於合約的資料存量大小,不過應可拆分成多個合約來處理,另外也受限於單個block的大小,但是block的大小是可以隨更新新版的程式來改 3. 對於平均1000tps以上沒問題,但對於單筆的回應時間需要兩輪,也就是說需要把單輪時間壓至0.5秒 4. 對於平台擴充性所提到的處理量,需要先定義清楚處理量指的是什麼