導入

ブロックチェーンの機能には、システムが透明であることが不可欠であると考えられています。これは、ネットワーク上のすべてのノードがコピーを保存し、ルールに違反していないことを検証できることを意味します。多くの分散型台帳では、誰でもオンライン ブロック エクスプローラーをロードして、ブロック、トランザクション、アドレスを検索できます。

プライバシーの面では、これは理想的ではありません。ビットコインのようなシステムでは、すべての取引が以前の取引にリンクされる可能性があります。コインは技術的に代替可能ではないため、それぞれが特定の取引に結び付けられる可能性があります。ビットコインの送信を阻止できる人はいませんが、そのコインが以前にブラックリストに載っているアドレスを通過した場合、取引を拒否することはできます。

最悪のシナリオでは、代替性の欠如がシステムの基盤そのものに深刻な影響を及ぼす可能性があります。クリーンなコインはプレミアムが付く可能性がありますが、古いコインは歴史を考えると価値が低くなります。

ビットコインのプライバシーは、しばしば誇張されています。コインだけでなく、ユーザーも追跡できます。ユーザーは匿名性 (名前の代わりに公開アドレスが表示される) を享受していますが、これには欠点がないわけではありません。高度な分析技術により、精度が高まり、ネットワーク エンティティの匿名性を解除するためにアドレスをクラスター化できます。

トランザクションを真にプライベートにするために提案されているアップグレードの 1 つが、Confidential Transactions です。


機密取引とは何ですか?

機密トランザクション (CT) は、2013 年に Blockstream の CEO である Adam Back 氏によって初めて議論され、その後、ビットコイン開発者の Gregory Maxwell 氏によって拡張されました。Maxwell 氏は、最初のセクションで言及された問題 (代替可能性と弱い匿名性) を概説し、解決策を提案しました。転送された金額は、より広範なネットワークから保護され、取引当事者のみが送信された金額を知ることができるようになります。


Normal transactions vs Confidential transactions


通常の状況(公開可能なトランザクション)では、ノードは受け取った金額が送信した金額を超えていないことを確認するのは簡単です。アリスがボブに 0.3 BTC を送信したい場合、未使用の出力(1 BTC としましょう)を 2 つに分割します。0.3 はボブに送信され、0.69 はアリスに返送されます(残りはマイニング料金として没収されます)。

これは他のノードにとっては簡単な代数です。1 は 0.3 + 0.69 を超えており、署名はすべて正しく、アリスの入力は他の場所でまだ使用されていないため、トランザクションは有効である必要があります。ただし、金額が隠されている場合、状況はそれほど簡単ではありません。未知の金額が他の 2 つの未知の金額の合計に等しいかそれを超えるかどうかをどのように評価すればよいのでしょうか。


関連する暗号化の概要

データを隠すには暗号化が必要です。しかし、従来の方法は書類を金庫に入れるようなものです。一度鍵をかけると、取り出すまで使用できなくなります。機密取引を機能させるために必要なのは、内容は明かされないが、その特性を部外者が確認できるデジタル金庫です。

その答えは、ペダーセンコミットメントと呼ばれる方式の準同型暗号化にあります。このタイプの暗号化により、部外者はさまざまな目的で暗号化されたデータ(見ることはできません)に対して操作を実行できます。

通常のハッシュは、後で公開したいデータをコミットするために使用できます。ソーシャル メディアでコンテストを発表し、お気に入りの取引所を当てた人に 0.01 BTC の賞金を贈呈するとします。コンテスト終了後に回答を見て、言及されていない取引所を選ぶことができるため、参加者は懐疑的になるかもしれません。

フォロワーにハッシュを提供することもできます。ハッシュとは、特定の入力にマッピングされる、一見ランダムな数字と文字の文字列です。特定の出力を取得するには、関数に交換を渡します。SHA256 アルゴリズムで説明します。


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


これを見ると、入力が何だったのか全く分かりません。関数を逆にしてそれを得ることもできません。しかし、入力が「Binance」だと分かっている場合は、そのハッシュが上記のハッシュと一致するかどうかを簡単に確認できます。このようにして、フォロワーは、コンテスト終了時にあなたが答えを変えないだろうという確信を持つことができます。変えてしまうと、全く異なる出力が生成されてしまいます。

しかし現実的には、これはあまり安全ではありません。フォロワーはアルゴリズムをリバースエンジニアリングすることはできませんが、可能な交換のリストを作成し、一致するまですべてをハッシュすることはできます。ハッシュするデータにブラインドファクターと呼ばれるランダムデータを追加することで、この可能性を減らすことができます。

「Binance は私のお気に入りの取引所です。他のどの取引所よりも好きです 2#43Wr」と入力すると、対戦相手が推測するのはかなり難しくなります (0.01 BTC の場合、誰もそれを試みることすらないでしょう)。

Pedersen コミットメントを使用すると、コミットメントの背後に入力を追加できます。Maxwell が示すように:


confidential transaction equation


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

ここで、BFはブラインド係数、Dはデータです。


ここから楕円曲線暗号と範囲証明に関わるステップがいくつか残りますが、基本的な考え方は、ユーザーが自分のアドレスに対して Pedersen コミットメントを持っているということです。資金を送信すると、2 つの追加のコミットメントが作成されます (1 つはユーザーに返される小銭アドレス用、もう 1 つは送信先アドレス用)。

いくら送金されるかは誰にも分かりませんが、お釣りと送金先のコミットメント(マクスウェル方程式の左側)が送信元アドレス(方程式の右側)に加算されることは確認できます。これが正しく評価されれば、入力が出力と等しいことが証明されるため、ユーザーのトランザクションは有効です。


Confidential Transactions は何を実現できるのでしょうか?

ビットコインに機密トランザクションが実装されれば、はるかにプライベートなシステムを実現できます。入力と出力は両方ともネットワーク全体から隠され、台帳のエントリは難読化されますが、ノードは依然としてその真正性を検証できます。この大幅なプライバシー強化により、チェーン分析で特定のユニットの履歴が明らかにならなくなるため、ビットコインは事実上代替可能になる可能性があります。

Confidential Transactions がプロトコルに統合されるかどうかについては、現時点ではそうは思えません。この追加機能により、トランザクションは標準のトランザクションよりもはるかに大きくなります。ブロックスペースが限られているため、需要は増加するだけです。また、参加者の大多数がコードの変更に同意する必要がありますが、これは従来困難であることが証明されています。


最後に

Confidential Transactions は、他の暗号通貨や Bitcoin サイドチェーンでも何度か採用されています。たとえば、Monero は、匿名性と代替性を実現するために、リング署名と呼ばれる構造と組み合わせて使用​​しています。Liquid サイドチェーンは、プライバシーを強化するために Confidential Transactions を実装しており、MimbleWimble も同様の目的で Confidential Transactions を拡張しています。

機密トランザクションは、そのメリットの一方で、フットプリントが大きくなるというトレードオフを伴います。暗号通貨は、ベースレイヤーでのスケーラビリティとスループットに苦労することが多く、トランザクションの規模が大きいことは、すべての人に魅力的ではありません。とはいえ、プライバシー擁護派は、暗号通貨を真に代替可能な通貨として機能させるには、トランザクションの金額と参加者を隠すことが不可欠であると考えています。