匿名化とゼロ知識証明

取引情報をすべて公開すると同時に、以下の要件を満たしながら、プライバシー保護(取引者の匿名化)を実現しました。

要件

  • 取引者本人が、本人の秘密鍵を開示することなく第三者に取引を行った事実と内容を示せること

  • トランザクション履歴や履歴の組み合わせから取引者を推測できないこと

  • 低コストであること

トランザクションの実行者のIDをそのまま記録してしまうと、特定のトランザクションの実行者が特定された時点でその実行者によるすべてのトランザクションが関連付けられてしまいます。そのため実行者のIDを記録せずに、それでいて実行者本人が自身によるトランザクションであることを示せるようにする部分が焦点となりました。なお、これはEthereumのウォレットアドレスとそのトランザクション履歴が潜在的に抱えているプライバシー問題でもありますが、本技術ではそれを解決しているため、すべてをオンチェーンで実装した場合と比較して動作速度以外の点でも優位性を持っていることになります。

上記の要件を満たすため、ゼロ知識証明モデルを採用しました。

以下がその概要です。

  1. 各トランザクションのペイロードからユーザーごとに異なる秘密鍵を用いて署名鍵(秘密鍵)を生成する。この鍵はトランザクションごとに生成されるものとなる。

  2. 署名鍵を使ってトランザクションに署名し、トランザクション内容とともに公開される。

  3. 第三者にこのトランザクションの実行者が自分であることを証明したい場合、このトランザクションに対応する署名鍵とともに公開されたトランザクションログを第三者に提示する。検証者は受け取った署名鍵によって同一の署名が得られることを確認する。

以下に図を示します。

Last updated