Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Privacy on Blockchain

Osuke
November 13, 2019

Privacy on Blockchain

Osuke

November 13, 2019
Tweet

More Decks by Osuke

Other Decks in Technology

Transcript

  1. プライバシー問題 • 第三者が検証可能なデータとしてブロックチェーンを扱いたいが、個人に紐付く データは隠したい。 • 監査性(検証可能性)とプライバシーのトレードオフ • 監査性 ◦ アリスが

    持っている状態を全員で合意 ◦ アリスがボブに 送る状態遷移を全員で合意 • プライバシー ◦ 秘匿性:残高 ・送金額 を隠したい ◦ 匿名性:送り手アリス・受け手ボブを隠したい
  2. プライバシー問題 • 秘匿性の欠如 ◦ トランザクションのデータを誰でも見ることができる ◦ のようなイメージ ▪ 送信データを隠す ◦

    例)アリス ボブに 送金 ▪ というデータが誰でも見ることが可能 ◦ データを暗号化して送る手法? ▪ 送られてきた暗号文が を暗号化したデータであるかもしれない ▪ 完全性を持たせる方法が別途必要
  3. プライバシー問題 • 匿名性の欠如 ◦ トランザクションが誰から誰に送られたのか見ることができる ◦ のようなイメージ ▪ 階層的に暗号化を施すオニオンルーティングをベースに アドレスを隠す

    ◦ 例)アリス ボブに 送金 ▪ ブロックチェーン上の全ての状態を全員が見ることができる ▪ 注)アドレスを暗号化することは意味ない • 仮名としてのアドレス値が一意に変わるだけ ▪ トランザクションの を断ち切る必要性
  4. ゼロ知識証明とは • インプットとなるデータを明らかにせずに、ある関数の結果に を持たせる暗 号学的手法 • において ◦ を明らかにせずに、 が

    のハッシュ値であることを証明 ◦ 例えば、 が負の値ではないこと、 にあることを証明 証明者 CreateProof(x, y) 検証者 Verify(Proof, y)
  5. を算術回路をベースに、 で記述する • 上のアセンブリ言語のようなイメージ • 上の線型結合で表現 ◦ ◦ ・ ・

    ◦ 定数、 変数 • 例えば、 の 操作 ◦ 愚直にやると だが、線型結合を工夫し に可能             
  6. • 通常の とコストモデルが大きく異なる ◦ ビット演算は高コスト、楕円曲線上の演算は低コスト ◦ 例) よりも の方が低コスト ▪

    ▪ • などにより多項式へエンコードし、 で検証可能な証明を生成 • 効率の良い は という強い仮定に基づく • 効率よく汎用な を証明するために ◦ 通常、 時のパラメタを用いると の を破ることが可能 ◦ や などによる解決策
  7. • ◦ する値 ◦ 乱数 ◦ 、 :楕円曲線上の • ◦

    送り手が を指定し を生成、送信 • ◦ 送り手が と を明らかにすることで受け手が答え合わせ • 秘匿性:受け手はコミットされた値を知りえない • 拘束性:送り手が異なる値を公開しても成功しない • ゼロ知識証明と相性がいい ◦ 比較的小さい計算コストで、 に制限を与えられる
  8. • https://github.com/monero-project/monero • • 秘匿性 ◦ ▪ 秘匿性、束縛性 ◦ ▪

    ゼロ知識証明の一種で をもたらす • 匿名性 ◦ リング署名 ▪ メンバー公開鍵のうちの1つに対応する秘密鍵により署名 ▪ 送り手の匿名化 ◦ ステルスアドレス ▪ 送り手指定の新しいアドレスを受け手のアドレスに。 ▪ 受け手の匿名化
  9. • 二重支払いを防ぐためにコミットメントに対し、 かつ な を管理。 • コミットメントが消費されるたびに に追加。 • 同じ

    が2つあるということは同じコミット メントを 回消費しようとしていること。 Nullifier Set
  10. • 生成コミットメントと消費コミットメントの が暗号学的に断ち切られている ので送金時の秘匿性・匿名性が保証される • ゼロ知識証明( により、一連の計算に を与える • 新しいコミットメントの生成

    ◦ コミットメントと暗号文の生成は正しいか ◦ 受け手だけが消費できるコミットメントか ◦ • コミットメントの消費 ◦ コミットメントがマークルツリーに属しているか ◦ 送り手が所有しているコミットメントか ◦ 正しく を生成しているか ◦
  11. 匿名性 • 送り手、受け手の他にダミーとなるデータを加えることで識別困難に。 アドレスデータ [Address1, .... Address n], 暗号化送金額 [Enc(0),...,

    Enc(3), .., Enc(-3),.. Enc(0)] • 証明の検証 • 送り手、受け手、ダミーアドレス全て の暗号化残高をアップデート トランザクション オンチェーン
  12. • マルウェアなどを用いた機密情報の流出を防ぐ ◦ 秘密鍵、パスワード、 • 脅威モデル ◦ メモリ破壊 ▪ 不正なメモリ書き換え、操作

    ◦ システムソフトウェアからの攻撃 ▪ ◦ コールブート攻撃 ▪ 強制的な揮発遅延による メモリの読み取り • 一方で、サイドチャネル攻撃 には弱い ◦ 物理的な特性を外部から測定 https://www.usenix.org/system/files/conference/atc17/atc17-tsai.pdf
  13. • 正当な であるか認証するための機能 ◦ が製造した なのか? ◦ 脆弱性はないか? ◦ の比較

    実行プログラムの比較 • が認証 • が生成する を に送信 ◦ : (ハッシュ値) ▪ 実行環境と 内プログラム • をレスポンス ◦ 証明書で認証 IAS ISV
  14. ブロックチェーンと • ( )と ( )の性質を応用 • 、 などのプロジェクト •

    例えば、状態遷移を行う を 上で実行することで状態を秘匿化 • ネットワークに参加する マシンは互いに することで正当性を保証