Ethereumの取引を秘匿化する「AZTEC Protocol」とは?

Ethereumの取引を秘匿化する「AZTEC Protocol」とは?

はじめに

企業がパブリックチェーンを活用するための研究開発が進みつつあります。これまで、パブリックチェーンはプライバシーなどの問題から、企業が活用するにはハードルがあると考えられてきました。

しかし、「EY」や「Microsoft」などがパブリックチェーンのトランザクションを秘匿化するプロトコルやサービスを開発・提供するなど、活用が少しずつ進んできています。本記事では、こうしたトレンドにおいて有力なプロトコルのひとつ「AZTEC Protocol」について解説していきます。

※以下、本記事で言及するEthereumは、すべてパブリックチェーンを指しています。

AZTEC Protocolとは?

AZTEC Protocolは、Ethereum上で高速かつ機密性の高い取引を実現する暗号化エンジンです。AZTECにおける機密性(Confidentiality)は、トランザクションのインプットとアウトプットが暗号化によって秘匿される一方で、その当事者(送信者と受信者)については公開されたままとなる程度となっています(2020年4月現在)。

AZTECの開発主体は、イギリス・ノリッジ市に拠点を置くスタートアップ「Spilsbury Holdings Ltd」です。同社は2018年11月、Ethereum関連のサービスを多く開発している「ConsenSys」などから210万ドル(約2.2億円)を調達しています。

参考:AZTEC – Funding Rounds(Crunchbase)

AZTECが解決しようとしている課題

AZTECが解決しようとしている主な課題は、パブリックチェーンにおけるプライバシーの問題です。AZTECは「ゼロ知識証明(ZKP:Zero Knowledge Proof)」や「準同型暗号(Homomorphic Encryption)」という暗号技術を組み合わせて、課題解決を試みています。

AZTECについて解説する前に、ブロックチェーンの可能性を整理しておきましょう。

ブロックチェーンの可能性

BitcoinやEthereumに代表されるパブリックチェーンは、非中央集権型のデジタル通貨やステートマシンを実現させ、新たなパラダイムをつくり出しています。また、エンタープライズ向けのブロックチェーン(分散型台帳技術)も登場し、すでに様々な領域で稼働していることは、当メディアでも取り上げている通りです。

参考:ブロックチェーンの活用事例

パブリックチェーンの注目すべき用途のひとつとしては、「プログラマブルマネー」(programmable money)を扱える点が挙げられます。例えば、パブリックチェーン上で、プログラマブルマネーとスマートコントラクトを組み合わせて金融システムを再構築することで、以下のようなメリットが期待できます。

  • 取引における仲介者の排除(仲介コストの削減)
  • 他の事業者とのデータ連携/共有によるリコンサイル業務の削減
  • カウンターパーティーリスクの回避

これらのメリットは、パブリックチェーン上に様々なアプリケーションが構築され、それぞれが相互運用性を持つことで最大化されます。パブリックチェーンは”誰でも”利用できるという点がポイントです。

例えば、支払いやローン組成、保険やトークン取引所、コンテンツなどのアプリケーションが、共通のブロックチェーン上で開発され、相互に接続できる環境では、利用できるサービスの種類が増え、ユーザー体験は向上していくでしょう。その可能性の萌芽は、すでにDeFi(分散型金融)という現象として現れています。

パブリックチェーン上のデータは、基本的に誰でもアクセスできる

パブリックチェーンには可能性がある一方で、書き込まれたデータにはプライバシーがありません。この点は企業がパブリックチェーンを利用する際の障壁となっています。なぜなら、現実世界の取引(例えば、給料の支払いやローンの組成など)は、プライバシーが守られることが前提となっているからです。当然ながら、企業が自社の機密情報を誰でも見られる場所に書き込むメリットはありません。

このような課題があるからこそ、AZTEC ProtocolはEthereum上で機密性の高い取引(以下、機密取引)を可能にするソリューションを提供すべく開発されているのです。企業がパブリックチェーンの強みを十分に活かせるようなプロトコル開発が試みられています。

AZTEC Protocolの概要と仕組み

AZTEC Protocolは、改善されたゼロ知識証明によって、効率的な機密取引を可能にするプロトコルです。機密性の高い決済や価値移転を最適化することに重点が置かれています。

また、AZTECはカスタマイズ性と相互運用性、効率性、アップグレード性を十分に満たすように設計されています。なお、アップグレード性とは、将来的に暗号プロトコルが改良された際、ユーザーがその恩恵を受けるかどうか決定できる状態を指します。

参考:Architecture

AZTEC Protocolにおけるゼロ知識証明

冒頭でも記した通り、AZTECではゼロ知識証明が使われています。ゼロ知識証明を使うことで、証明者は「自身の主張は真実である(知識を有している)」以外の情報を検証者に開示することなく、その情報が「真実である」と証明できるです。したがって、例えば、住所や年齢を公開することなく、自分が日本在住の成人であると証明することができます。

便利な技術に思えますが、ゼロ知識証明は検証コストが非常に大きい点が課題です。Ethereum上で検証しようとすると、ガス代が高くなってしまう上に、アセット間の相互運用性が欠如してしまいます。

この課題に対してAZTECは、ゼロ知識証明において大きなコストとなっている「範囲証明」(range proof)のプロセスを改善し、検証コストを大幅に削減しています。なお、範囲証明とは、ある数値が特定の範囲内にあることを証明するものです。

また、AZTECでは、ゼロ知識証明と準同型暗号を組み合わせて、特定の論理ステートメントをチェーン上で検証可能にしていますが、その詳細についてはホワイトペーパーをご覧ください。

参考:The AZTEC Protocol

AZTEC Cryptography Engine(ACE)とスマートコントラクトシステム

AZTECでは、BitcoinのようなUTXO(Unspent Transaction Output)モデルが採用されており、UTXOは「notes」と呼ばれています。noteは、AZTECにおいて「暗号化された価値」の基本的な表現形式です。

ユーザーのアドレスが所有するnotesは、notesの状態を管理する特定の「Note Registry」で合算され、当該ユーザーの持つアセットの残高となります。イメージとしては以下の通りです。

https://docs.aztecprotocol.com/#/Introduction/UTXO%20model

AZTEC Cryptography Engine(ACE)

AZTECでは、「AZTEC Cryptography Engine」(ACE)というスマートコントラクトシステムを核として、暗号化された価値の相互運用性の問題をクリアしています。ACEが担っている主な役割は、以下の2点です。

  1. ゼロ知識証明の検証を適切なスマートコントラクトに委託すること
  2. 正常に検証された証明からの状態更新命令の処理

AZTECのスマートコントラクトシステムでは、7つの機能が提供されており、それぞれの機能にマッピングされたバリデータが存在します(2020年4月現在)。バリデータは、DApps(分散型アプリ)からACEを通じて送られてきた証明(proof data)を検証し、その結果をACEに返さなければなりません。

ZkAssets

そして、AZTECにおいては、ERC-20コントラクトの機密バージョンである「ZkAssets」が存在します。2020年4月現在、ZkAssetsとしてはステーブルコインのDAIのみがアクティブな状態です(zkDAIとして流通)。ZkAssetsは、ユーザーのNote Registryに保存されたり、機密取引を実行するために使われたりします。

なお、AZTECのスマートコントラクトのアーキテクチャを示したのが以下の図です。

https://medium.com/aztec-protocol/an-introduction-to-aztec-47c70e875dc7

AZTECの標準的な検証・実行フロー

上図で簡潔に示されていますが、AZTECにおいて証明を検証し、特定のロジックが実行される際の標準的なフローは、大きく4つに分けられます。

  1. 証明の構築:ユーザーはトランザクションの正しさを証明するためのゼロ知識証明を構築します。この作業はローカル環境で行われます。
  2. Ethereumへの接続:適切な証明データによって、ZkAssetメソッドを呼び出し、実行したいトランザクションを送信します。この作業もローカルで行われます。
  3. 証明の検証:証明が正しく、有効であることを検証します。このとき、検証すべきデータ(proof data)は、ACEによって適切なバリデータへと割り当てられます。なお、この作業はオンチェーンで行われます。
  4. 関連するロジックの実行:証明が検証され、問題がなければ、適切なロジックが実行されます。ロジックの例としては、トークンを交換する機密トランザクションなどが挙げられます。この作業もオンチェーンで行われます。

いずれもACEが仲介役として機能しています。なお、詳細なフローについては、以下の資料をご覧ください。

参考:Zero-knowledge dApp contract interaction, an example flow with bilateral swaps(AZTEC Protocol 1.0.0 specification)

AZTECの現状と今後のロードマップ

2020年4月現在、AZTECは開発の途上にあり、トランザクションデータを秘匿する部分のみ開発が完了している状況です(メインネットで稼働中)。2020年中には、トランザクションの当事者やスマートコントラクトのコード自体を秘匿化する予定となっています。

https://www.aztecprotocol.com/

また、ZkAssetsの種類も増える予定であり、BitcoinとEthereumに対応する見込みです(zkBTC、zaETH)。

まとめ:企業のパブリックチェーンを活用する上でAZTEC Protocolは注目プロトコルのひとつ

AZTEC Protocolのように、パブリックチェーン上の取引を秘匿化する動きは増えつつあります。パブリックチェーンの強みを、企業が活用するための取り組みが活発化しており、AZTECの他にもEYの「Nightfall」や、EYとConsenSys、Microsoftが提携し立ち上げたイニシアチブ「Baselin Protocol」などが有力なプロジェクトとして挙げられるでしょう。

企業がパブリックチェーンを十分に活用できるまでには、まだまだ時間が必要かもしれませんが、誰でも使えるプラットフォームは、アプリ間の相乗効果を生み、エコシステムの形成を促進させる可能性を持っています。企業が利用するメリットは少なくありません。したがって、今後もAZTEC Protocolには要注目だと言えるでしょう。

ブロックチェーンカテゴリの最新記事