Solidus
Solidus: Confidential Distributed Ledger Transactions via PVORM
https://www.youtube.com/watch?v=zYUh_h4MC-Y
sending userがsending bankに署名txを送信し検証しオンチェーンに反映、receiving bankがreceiving userのアカウントを更新
PVORMによりsending bankとreceiving bankのみを明らかにし、sending userとreceiving bank, amountは秘匿。
zabeth.icon > receiving bankじゃなくてreceiving userを秘匿?
bankのprivate decryption keyをauditorに渡すことでそのbank内のaccount activityをmonitoring可能。
https://gyazo.com/2bd63a94a9ba538f7249bd0c657c0e1f
sending user request message
unique transction id
sender pub keyによる暗号化送金額
receiving bankの公開鍵により暗号化したrecipientのid
HPK(hidden-public-key)署名
bankの公開鍵で暗号化された公開鍵をベース(検証可能な)にsenderの秘密鍵で署名
https://gyazo.com/e1d792aa36aaee211f9ef4c07b574bb2
PVORM(Publicly-verifiable Oblivious RAM machine)
それぞれのbankはそれぞれのuserのbalanceとpublic key (M) を保持。この暗号化データ(C)がLedger上に保持。
https://gyazo.com/80b1b7ed67465681366aa5e3f587e30a
Oblivious RAMはclinetがserverへのメモリに対するアクセスパターンを秘匿。
PVORMs
f(non-negative valueであるrange proof)であることを保証してprivate data Mをupdate.
fがpublicly verifiable (zk)
クライアントはhiddenなMとledeger上のCを管理
Cに対応しないMをwriteすることを防ぐ
https://gyazo.com/32e728b852850850dcd0673f6953d139