Open shibano2 opened 1 year ago
・コントラクト ・個人のアドレスはu64の連番の数字(個人番号)にする. ・オンチェーンで連番コントラクト ・個人アドレスと個人番号とのマップ. ・個人番号とEDDSA公開鍵の2つを保持 ・calldataで十分
・オペレーター ・マークルツリーで管理する情報 ・Key:上記の個人番号 ・Value:公開鍵と最新の残高の暗号文(ハッシュ値だけではなくローデータもアクセスできるようにしておく)
・公開鍵の登録手順 ・ユーザーが作る ・オンチェーンにも登録する ・オペレーターに渡す
・Exit ・ユーザーがExit時にEthereumアドレスを指定して専用Txを作成する.
・オペレーター用のローカルDB ・SQLite ・個人アドレスとEDDSA公開鍵の対応表 ・個人番号と最新の残高の暗号文
・User
-- パブリックインプット
自分の残高(自分の鍵で暗号化) 相手の残高(相手の鍵で暗号化)
-- プライベートインプット 送金額
-- アウトプット 送金後の自分の残高(自分の鍵で暗号化) 送金後の相手の残高(相手の鍵で暗号化)
-- プルーフ
↑の1塊にしてTxとする.
・Operator -- パブリックインプット Txリスト(プルーフ抜き) Txリスト実行前のマークルルート
-- プライベートインプット Txのプルーフリスト マークルパス
--アウトプット Txリスト実行後のマークルルート
・オンチェーン