Greetings! New to Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with more information about how you can get started with Zcash!

言語

Zcashトランザクションの仕組み

Paige Peterson | Nov 23, 2016

10月28日 にZcashネットワークが成功裏にローンチされてから、プロトコルで利用可能な機密性やプライバシーに関する多くの関心がマイナーやユーザーから寄せられました。ZECの送受信に、シールドされた、あるいは透明なアドレスの使用を選択できるということは、ユーザーにとって重要なことなのです。トランザクションにおいて、この2種類が使用される方法を理解することは、賢い選択を行うための出発点になります。

トランザクションの基本的要素

Zcashトランザクションのユーザー向け基本要素は、アドレスの送受信、アカウント残高、そしてトランザクション費用に分類されます。より複雑なトランザクションの要素は プロトコルの仕様 で説明されているため、ここでは説明を割愛します。シールドされたアドレスへの送信には、追加の「メモフィールド」コンポーネントを使用できますが、これは今後のトピックとして取り上げます。

Zcashトランザクションの高レベルのスケルトン・ダイアグラム

Zcashトランザクションの概要

上の図は、トランザクションの一部としてZECを送受信するプロセスを示しています。シールドされたアドレスを使用する場合、送信または受信のどちらであってもゼロ知識証明を生成する必要があります。これにより、他者は暗号化されたデータを公開せずにトランザクションを検証できます(この仕組みの詳細については、シールドアドレス間のトランザクションの内部動作として後で説明します)。このアドレスは常に 「z」で始まるため 「z-addrs」と呼ばれることもあります。同様に、トランスペアレントアドレスの使用は、「トランスペアレント・バリュー・プール(TVP)」として知られているものとのインタラクションを必要とし、トランザクションデータを公開します。このアドレスは常に「t」で始まり、「t-addrs」と呼ばれます。取引手数料もTVPを通過するため、ブロックチェーン上で常に公開されます。料金はトランザクション内で常に明らかになりますが、シールドアドレスと値は影響を受けません。実際のZcashトランザクションを下記に示します。

シールドされたアドレス間のZEC送信を示すZchainブロックエクスプローラのスクリーンショット

シールドされたアドレス間のトランザクション のZchainブロックエクスプローラからのスクリーンショット

アドレスの変更

他のブロックチェーンプロトコルと同様、アドレス残高からの支出は、残高のすべてを送信する必要があります。したがって、正確な残高を他の当事者に送信する場合を除き、自らが管理する2番目の受信アドレスにより残高を分割し、残高を変更する必要があります。変更アドレスとして送信アドレスを使用し、複数アドレスの追加管理を防ぐこともできます。ただし、これは、単一のパブリックアドレスで送受信するトランザクションをベースにした、非標準的なアイデンティティプロファイルを作成するものなので、通常はお勧めできません。ユーザーのトランザクションを難読化するために、各トランザクションごとに新しいアドレスを作成することが推奨されています。しかし、公開トランザクションは送信アドレスと受信アドレスを結びつけるため、このレベルの難読化ではナビゲートは非常に簡単であり、意義あるプライバシー保護の水準を提供しません。

ありがたいことに、シールドアドレスでZECを送信すると、そのデータは非公開とされ、送信アドレスへ変更しての送信も許容されます。Zcashでは、シールドアドレス間のトランザクションはすべて同じに見えるため、シールドアドレスの再利用は透明なアドレスとは異なり脆弱ではありません。

シールドされたアドレスと透明アドレス間の送信

シールドされたアドレスと透明アドレス間におけるZECの送受信の違いを示す図

シールドされたアドレスと透明アドレスの間でZECを送信するプロパティ

Zcashでは、ZECはアドレスが持つ価値の残高単位です。これは、ZECの残高が、現在保持されているアドレスのタイプと、送信される前のアドレスのタイプに応じてプロパティが異なるという点で、公的なブロックチェーンの通貨とは異なります。 ZECがトランスペアレントアドレスで保持されている場合、その未使用残高は公開されます。その残高が複数のトランスペアレントアドレス、シールドアドレス、またはこれらのタイプの組み合わせに送信されても​​、トランスペアレントアドレスからのZECの出力は公開されます。トランスペアレントなZECをシールドアドレスに送信する利点は、それが再び行われるものであれば、将来のトランスペアレントアドレス間のリンク可能性と切り離されます。 ZECをシールドするアクションは、以前のブログ記事 ハードウェアとソフトウェアの制限に関するユーザーの期待 で説明されるリソース要件のために、多くのウォレット(モバイルウォレットなど)がシールドアドレスをまだサポートしていない初期段階では特に重要です。

透明アドレスからシールドされたアドレスへのZEC送信を示すZchainブロックエクスプローラのスクリーンショット

ZECをシールド するトランザクションのZchainブロックエクスプローラからのスクリーンショット

透明なアドレスからシールドされたアドレスに送信される上記のトランザクションでは、このシールドされたZECプロセスにより送信された残高が公開され、シールドアドレスによって保持されていることが分かります。これに関連するシールドされたアドレスや、いくつのシールドされたアドレスに送信されたかは公開されません。

対照的に、シールドされたアドレスのZEC残高の場合、残高とアカウントアドレスは非公開に維持されます。1つ以上のシールドされたアドレスに送信した場合、その値は非公開のままですが、受信側の透明なアドレスではZECのシールドが解除され、ブロックチェーン上で受信した数値が開示されます。ZECのシールドを解除すると、入力されたシールドアドレスと、いくつのアドレスから数値が送信されたかは非公開のままとなります。

より複雑なトランザクションとプライバシーへの影響に関するその他の注釈==============================================================================

これらの例では、透明なアドレスとシールドされたアドレスの両方で送受信される、より複雑なトランザクションのプロパティが詳しく説明されていません。しかしながら、アドレスの基本的なプロパティとZEC 残高に関する概要により、ユーザーは任意の2つのアドレス間でトランザクションが実行される際の仕組みについて、よりよい理解ができるものと考えます。シールドされたアドレスの内部動作、リンクの可能性およびプライバシーへの影響に関するその他の考慮事項、さらに複雑なトランザクションに関する詳細は、今後のブログ記事でお話ししていきます。統計データ を向上するため、シールドされたアドレスを推奨しています。シールドされたアドレスを含むトランザクションは、厳格に透明なアドレスによるトランザクションより多くのリソースを必要としますが、これを使用する際に提供されるプライバシーの向上は、経済的自由に対する明らかなメリットであり、暗号通貨としてZcashがもたらす主要な改善点といえます。