審計
技術揭露與審計資訊
本站的交易、登錄簿與身分都記在一份鏈下帳本裡,每小時把整份帳本壓成一期承諾寫上區塊鏈。 這一頁說明鏈上有什麼、哪些保證因此變弱了,以及任何人不必相信本站、自己驗證的方法。
鏈上有什麼
- 每小時一期承諾。事件 log root、帶總額的餘額樹 root、登錄簿 root、身分 root、逐批次總量表的雜湊、算到哪一筆事件與哪一個區塊,並與前一期串連。事後改不掉。
- 授權金鑰清單與門檻。誰能簽核發、身分、凍結、費率、對帳報告。由國家單位的多簽(Safe)管理;帳本裡每一筆授權事件都要由收單當時有效的金鑰簽署。
- 記帳用的新台幣(TWD)。您的錢是信託專戶裡的新台幣,不在鏈上。帳本合約部署時建立一個記帳用的 TWD: 營運 Safe 確認一筆入金時鑄出、確認一筆出金時銷毀,只存在帳本合約裡、不能轉出。它的總量是營運方宣稱的信託專戶餘額; 合約拒絕任何一期宣稱欠使用者的新台幣多於這個總量。
- 入出金確認。每一筆入金與出金都是營運 Safe 的鏈上交易,帶銀行交易參考號的雜湊(同一個參考號不能用兩次)。 出金要附最新一期的證據,金額不能超過您簽過、而且已經進了承諾的出金請求。
鏈下有什麼
- 帳本本身。每一筆事件(委託單、撤單、註銷、核發、身分、費率、入出金)照順序接成雜湊鏈,每一筆都帶簽章。
- 碳權。額度託管在核發國官方登錄簿(國內額度在專案方的額度帳戶,國外額度在本站的託管帳戶)。帳本記的是對那些額度的請求權。
- 撮合。成交、持有與憑證是重播帳本的結果,不另外記錄——記了結果就有兩份真相。
保證的降級:哪些規則不再由合約擋下
以前由合約在交易當下拒絕的規則,現在由帳本引擎執行:身分與效期、自然人不得註銷、轄區是否開放、 國外額度的用途限制、凍結、手續費、撮合的價格與數量。這些規則仍然會執行, 但保證的性質變了——從「合約拒絕」變成「重播抓得到」: 營運方如果收下一筆違規的事件,它不會被鏈上擋下來,而是任何重播帳本的人都會在同一個位置看到不一致, 算出的承諾也對不上鏈上那一期。
具體來說,營運方做得到、但藏不住的事:
- 收下一筆違反規則的事件——重播時會被引擎拒絕,但事件仍在帳本裡、且每小時上鏈。
- 決定同一時間到達的委託單的先後——序號由營運方給,但序號與內容都進雜湊鏈,事後改不了。
- 拒收您的委託單或出金請求(不給簽收收據)——您手上沒有收據就代表那筆沒有進帳本。 您簽過的請求與沒有收據這件事,是向主管機關申訴的依據;鏈上強制收單的機制列在後續工作。
- 收下出金請求、卻不匯款也不在鏈上確認——請求與每一期的證據都在,帳本合約也不讓記帳 TWD 移給任何人, 但錢在銀行裡,鏈上沒有任何機制能替您把錢領出來。能強制的是信託契約、信託銀行與主管機關。
- 記帳 TWD 的總量與信託專戶的真實餘額不符——鏈上看不出來。這一項靠信託銀行的對帳與查核機構的月度報告,不靠密碼學。
- 不公布帳本——所以帳本鏡像同時交付查核機構與主管機關,您也可以隨時下載自己的證據檔。
營運方做不到的事:替您簽委託單(沒有您的 EIP-712 簽章,帳本不收)、竄改已上鏈的任何一期、 宣稱欠的新台幣多於記帳 TWD 的總量、把記帳 TWD 轉給任何人、用同一筆銀行交易入帳兩次、確認超過您請求的出金、自己核發額度(核發要查驗機構的金鑰)。
沒有逃生門。早期版本的結算幣是鏈上代幣,全站停擺 72 小時後任何人都能憑證據直接從合約領回。 改成真的新台幣之後,錢在信託專戶、不在合約裡,這個機制就不存在了:本站停止營運時,您最後一期的證據檔是對本站與信託財產的債權憑證, 返還依信託契約與主管機關的程序辦理。
分層公開:誰看得到什麼
| 層 | 內容 | 誰看得到 |
|---|---|---|
| 鏈上 | 每一期的承諾(只有雜湊與總額) | 任何人 |
| 公開檔 | 每一筆事件的雜湊;轄區、政策、費率、專案、核發、註銷、憑證、對帳報告、批次凍結的全文;登錄簿葉子與逐批次總量表 | 任何人(本頁下方) |
| 只公開雜湊 | 委託單、身分、入出金、出金請求、金鑰鏡像、帳戶凍結 | 全文只在監理鏡像與當事人自己的證據檔 |
| 監理鏡像 | 完整帳本(全部事件全文)、部署檔、SHA-256 清單 | 查核機構、主管機關 |
帳本裡沒有姓名、身分證字號或聯絡方式:身分事件只記帳戶地址、等級、效期與身分雜湊(加鹽後的雜湊,不可逆推)。 詳見隱私權政策。
自己驗證
- ① 驗我自己的持有。到交易頁下載「我的證明檔」, 用任何一個節點執行:
node web/scripts/verify-proof.mjs 證明檔.json --rpc <任一節點>
驗證器只用 viem,不引用本站任何程式碼;它自己回鏈上取那一期的承諾,不相信證明檔裡寫的 root。 - ② 驗某一期的公開內容。下載下方任一期的公開檔,依雜湊規則重建 logRoot 與 registryRoot,對照鏈上的
Committed事件。 - ③ 重播整份帳本(查核機構、主管機關)。用監理鏡像:
LEDGER_DIR=<鏡像>/ledger DEPLOYMENT_FILE=<鏡像>/deployment.json RPC_URL=<任一節點> npm run ledger:verify
在收單當時的區塊高度重驗每一筆簽章、逐筆對照鏈上的入出金確認,算出的每一期 anchor 必須等於鏈上那一個,否則 exit 1。
已上鏈的承諾
讀取中…