Ethereumにはプライバシーがなく、ユーザーは取引のために自らのアドレスを教えることで、同時に自らの資産や取引履歴を相手に公開することになってしまいます。このような状況は、ブロックチェーンのマスアダプションを阻害する要因になっているのは言うまでもありません。Nocturneは、Ethereum上で高いプライバシーを確保するための取り組みを行っています。
Nocturneの概要
Nocturne(ノクターン)は、Ethereumのオンチェーン上でプライバシーを実現するためのプロトコルです。
Nocturneの有用性を知るには、Ethereumでプライバシーを確保するための拡張提案「EIP-5564: Stealth Addresses」の概要を知る必要があります。EIP-5564では、非対話型の方法で外部所有アカウント(EOA)のステルスアドレスを生成します。このアカウントは、一度きりのワンタイムアドレスであり、ユーザーが普段利用しているEthereumアドレスとは別のものになります。ユーザーは、ステルスアドレス同士で取引を行うことにより、取引内容を非公開にすることができます。
しかし、EIP-5564には2つの問題があり、高いプライバシーを保つことができません。まず、ステルスアドレスからメインウォレットに資金を転送することで、メインウォレットとステルスアドレスの繋がりがオンチェーンから見えるようになります。これにより、ステルスアドレスの所有者を特定できるようになり、プライバシーを保つことができなくなってしまいます。また、新しく生成されたステルスアドレスを使うためには、ガスのための$ETHを送る必要があります。これは手間になる上に、前述の問題を発生させることにつながります。
EIP-5564における問題点を解決し、より高いプライバシーを確保するために、Nocturneではステルスアドレスの所有者が資金の送信元を明らかにすることなく資金を移動できるプロトコルを開発しました。ユーザーはNocturneのスマートコントラクトで管理されたステルスアドレスを使って取引を行うことで、非公開で資金の送受信を行うことができるようになります。また、この機能をアプリケーション開発者が使いやすくするために、Nocturne SDKが提供されます。
Nocturneは、製品の初期バージョンとしてプライベートボールトをリリースします。これは、アドレスや残高を公開することなく、資産を長期保管したり、利回りを確保したりすることがきるようになります。
Nocturneの技術ハイライト
Nocturneでは、プライバシーを護るために「コントラクト内部アドレス」と「シールドされたプール」の2つを組み合わせます。
ユーザーは、EIP-5564のようにEOAのアドレスを利用するのではなく、Nocturneプロトコルのコントラクト内で割り当てられた複数のステルスアドレスを利用します。ステルスアドレスそのものはEthereumのアドレスではなく、Nocturneプロトコル固有の識別子が割り当てられます。プロジェクトは、その理由をユーザーアカウントの表現や更新がより柔軟になる利点があると説明しています。
また、シールドされたプールが用意されます。このプールは、所有者を明かさずに資金の出し入れを可能にします。ユーザーはプールに資金を預けると同時に、プールから資金を請求するために利用するメモを生成します。メモには、トークンアドレスやトークン数量、所有者のステルスアドレスが記録されています。メモに含まれている資金を使用する場合は、ユーザーが所有者であることをゼロ知識証明を使って示す必要があります。
Nocturneでは、前述のメモの所有者を書き換える事により、プライバシー保護された資金の移動を実現します。例えば、ユーザーAからユーザーBに送金する場合、ユーザーAは既にメモを持っている状態になります。メモには、ユーザーAが所有者であることが書かれています。もし、ユーザーAがユーザーBに資金を送りたい場合、ユーザーAはメモの所有者としてユーザーBのステルスアドレスを指定します。ユーザーBは、ゼロ知識証明で資金の引き出し権利を証明することで、メモの資金を使うことができるようになります。
さらに、Nocturneにはガスの代払いの仕組みが組み込まれています。任意のステルスアドレスからの資金を使用して、ガスを支払うことができるようになっています。これにより、EIP-5564に存在する$ETHをステルスアドレスに送るという手間を経なくて済むようになります。
Nocturneのようなサービスは、匿名性を確保できるという特徴からマネーロンダリングに利用されやすい性格を持ちます。そのため、コンプライアンスへの対応が不可欠です。Nocturneは、スクリーナーと呼ばれるオフチェーンのアクターを用意し、一定のリスク以下の入金を許可する仕組みを設けています。入金許可されるまでの資金は、スマートコントラクトに一時的にロックされます。初期段階ではスクリーナーがパーミッション型になっているものの、将来的にパーミッションレス型に移行する予定になっています。
Nocturneのトークン情報
Nocturneのトークン情報は発表されていません。