見出し画像

Mina Protocol|zk-SNARKによる22kBサイズのブロックチェーンへの参加方法やユースケース

この記事は「Decentralized Blockchain Technology」「22kB-Sized Blockchain — A Technical Reference」を日本語訳したものです。

Mina Protocolはどのように機能しますか?


ビットコインやイーサリアムのような現在の暗号資産は数百ギガバイトのデータを保存しており、時間が経つにつれて、それらのブロックチェーンのサイズは大きくなるだけです。

ただし、Mina Protocolを使用すると、使用量がいくら増えても、ブロックチェーンは常に同じサイズ(約22kb )のままになります。これは、参加者がネットワークをすばやく同期して検証できることを意味します。

この画期的な進歩は、簡潔な暗号証明の一種であるzk-SNARKによって可能になりました。Minaノードが新しいブロックを生成するたびに、ブロックが有効であることを確認するSNARKプルーフも生成します。

チェーン全体ではなく、すべてのノードが小さな証明を保存できます。Mina Protocolは、ブロックサイズを気にする必要がないため、大規模に分散化されたブロックチェーンを実現します。

「簡潔なブロックチェーン」はどのように機能しますか?Mina Protocolで使用されている暗号化の予備知識と簡潔なブロックチェーン構造の詳細については、テクニカルホワイトペーパーをお読みください。

Mina Protocol内の役割、インセンティブの設計、および金融政策については、経済学のホワイトペーパーをご覧ください。

Mina Protocolを試す

Minaをインストールしてノードの実行を開始する準備ができたら、「はじめに」ページに進んでください。

Mina Protocolの仕組み

Minaは、ブロックチェーンの本来の約束である真の分散化、拡張性、セキュリティを実現するために設計されたレイヤー1プロトコルです。

理論的には、ブロックチェーンはユーザーが責任を負うように設計されています。 誰もが取り返しのつかないパブリックレッジャーを検証することによってルールを施行できるとき—権力は少数ではなく多くの人の手に残ります。この分散型の構造により、ネットワークはトラストレスなトランザクションを実行できます。

しかし実際には、これは事実ではありませんでした。 ビットコインやイーサリアムなどのレガシーブロックチェーンでは、新しい参加者が参加するときに、ネットワークの開始以降のすべてのトランザクションをチェックして、正確性を検証する必要があります。これは、数百ギガバイトのデータに相当します。ほとんどの人は、これらの重鎖を自分で検証するために必要な計算能力を買う余裕がなく、ますます強力な仲介者を信頼することを余儀なくされています。これは、ほとんどの人がピアツーピアに接続できなくなったことを意味します。これにより、分散化が悪化し、電力のダイナミクスが変化し、ネットワークが検閲に対してより脆弱になります。

Minaは、ブロックチェーンを簡単に検証できる一貫したサイズの暗号プルーフに置き換えるというエレガントなソリューションを提供します。 Minaは、各ユーザーがダウンロードする必要のあるデータの量を劇的に削減します。参加者は、チェーン全体を最初から検証する代わりに、再帰的なゼロ知識証明(またはzk-SNARK)を使用してネットワークとトランザクションを完全に検証します。ノードは、チェーン全体ではなく、小さなプルーフを保存できます。また、サイズが一定であるため、Minaは、多くのユーザーに対応し、何年にもわたるトランザクションデータを蓄積している場合でも、アクセス可能なステートを維持します。

しかし、zk-SNARKはどのように機能しますか? ブロックチェーン全体のステートを軽量のスナップショットとしてキャプチャし、チェーン自体ではなく送信します。巨大な生きた動物ではなく、友達に象のポストカードを送るようなものです。

ネットワーク内の次のブロックが作成されると、ブロックチェーンの前のステートのスナップショットを背景として、それ自体のスナップショットが作成されます。

その新しいスナップショットは、次のブロックの背景として使用され、以下同様に続きます。むしろ驚くべきことに、無限の量の情報の証拠を含めることができますが、スナップショットは常に同じサイズのままです。

完全に一周すると、世界最軽量のブロックチェーンが包括的なコンセンサスを強化します。 変更されたOuroborosプルーフオブステークプロトコルは、コンセンサスの包括性を最大化します。

Mina Protocolでは、すべての参加者が完全なノードとして機能し、誰でもコンセンサスに参加し、ブロックチェーンを保護し、Mina Protocolに責任を負わせることができます。

そして、それがミナが真の分散化、拡張性、セキュリティを提供する方法です。

ユースケース

Mina Protocolは、現実世界と暗号の間にプライベートゲートウェイを構築するのに役立つ3つのユースケースと、私たち全員にふさわしい安全で民主的な未来のためのインフラストラクチャに焦点を当てています。

オンラインからオンチェーンまでのエンドツーエンドのデータプライバシー

ユーザーは、機密性の高い個人情報を危険にさらすことなく、重要なオンチェーンサービスにアクセスできます。代わりに、Minaを使用してオンラインデータにアクセスし、サービスプロバイダーの要件を満たしていることを証明します。危険にさらされる可能性のある信頼できる飛び地は必要ありません。エンドツーエンドのデータの脆弱性はありません。たとえば、今日、Mina's Snappsはクレジットスコアプロバイダーに接続して、クレジットスコアが特定のしきい値を超えていることを証明できます。すぐに、あなたはどんなウェブサイトからでももっと多くを証明することができるでしょう。

ステータス:デモ使用中。

もっと詳しく知る

パーミッションレスなWEBオラクル

Snappsを使用すると、開発者は任意のWebサイトからのプライベートで検証済みの実世界のデータを活用して、分散型アプリを構築できます。Web上で公開されている情報を入力できます(Webサイトの許可は必要ありません)。また、関連する証拠を共有するだけで、機密データにアクセス、使用、保護することができます。信頼できるオラクルやカスタムWebサイト統合は必要ありません。

ステータス:開発中。

もっと詳しく知る

1つのプライベートインターネットログイン

ユーザーは、アカウントを作成したり個人データを渡したりすることなく、インターネットのWebサイトやサービスに個人的にアクセスできます。代わりに、Minaで安全にログインします。一元化されたサービスプロバイダーはそれらをブロックできません。また、チェーン全体の開発者は、このプライベートで安全なオプションをサービスに統合できます。

ステータス:開発中。

もっと詳しく知る

可能性を探る


ビルドスナップ³プライバシー対応アプリ


zk-SNARKを使用してデータレベルのプライバシーを確​​保するdappを開発し、基盤となるユーザー情報を公開せずに要件を検証します。

POWERENTERPRISEの相互運用性


Minaを使用して、プライベートチェーンのコスト効率とプライバシーをパブリックチェーンの相互運用性と組み合わせます。

取引手数料を最小限に抑える


一元化された仲介者を使用したり、高額な取引手数料を支払ったりすることなく、信頼できない電子商取引やグローバルなピアツーピア取引を強化します。

POWER SECURE&FAIR FINANCIAL SERVICES

貸し手が公正な基準のみを使用して意思決定を行い、個人ユーザーデータにアクセスせずに関連情報を安全に検証するようにします。

個人選挙と監査可能な選挙を可能にする


プロセスを非公開に保ち、個人の投票情報を保護しながら、完全に検証可能で監査可能な選挙を保証します。

世界のどこからでもお金にアクセス

22kb 1 Minaチェーンを使用すると、スマートフォンを介してピアツーピアのステーブルコインとトークンにアクセスし、苦労して稼いだお金をどこにでも持っていくことができます。


インセンティブ構造


プロトコルアーキテクチャと役割のフレームワークからインセンティブ構造と金融政策まで、Minaはネットワークのスケーラビリティとセキュリティを最大化するように設計されています。

エコノミクスホワイトペーパー


Mina Protocolに参加する方法


Mina Protocolは参加への障壁を打ち破り、多くの刺激的な新しい機会を解き放ちます。

ブロックプロデューサーとして

ブロックプロデューサーは、他のプロトコルのマイナーまたはスタッカーに似ています。ミナを賭けることで、ブロックを作成し、コインベース、取引手数料、ネットワーク手数料の形でブロック報酬を獲得するために選択することができます。ブロックプロデューサーは、SNARKプロデューサーになることもできます。

ノードを実行する

SNARKプロデューサーとして

ミナの2番目のタイプのコンセンサスノード演算子であるスナークプロデューサーは、トランザクションのSNARK証明を生成することにより、ネットワーク内のデータを圧縮するのに役立ちます。次に、ブロック報酬の一部と引き換えに、それらの証明をブロックプロデューサーに販売します。

ノードを実行する

プロのブロックプロデューサーとして

ステーキングではノードがオンラインである必要があるため、ミナをステーキングプールに委任することを選択する場合があります。これらのグループは、手数料と引き換えにステーキングサービスを実行します。手数料は、委任者がブロックプロデューサーとして選択されると自動的に差し引かれます。

ノードを実行する

ミナのマイルストーンと今後の道

私たちはこれまでのコミュニティで達成したことを誇りに思っています。そして、まったく新しい世代の参加者と一緒に課題に取り組み、さらに発展することを楽しみにしています。

22kBサイズのブロックチェーン—テクニカルリファレンス


「Minaブロックチェーン全体は約22kbで、2、3のツイートのサイズです。」上記のステートメントを分析するために、まず、ここで「ブロックチェーン」が何を意味するのかを明確にしましょう。一般的なユーザーが気にするステートの部分、つまり現在のバランス[… ]の明確な使用可能な表現(つまり、単なるハッシュではない)

「Minaブロックチェーン全体は約22kbで、2、3のツイートのサイズです。」

上記のステートメントを分析するために、まず、ここで「ブロックチェーン」が何を意味するのかを明確にしましょう。

  1. 一般的なユーザーが気にするステートの部分、つまりアカウントの現在の残高の明確で使用可能な表現(つまり、単なるハッシュではない)。

  2. このステートが信頼できない方法で実際のものであることを確認するためにノードが必要とするデータ。

  3. 転送を行うためにネットワーク上でトランザクションをブロードキャストする機能。

「ブロックチェーン」は、ここで(1)、(2)、および(3)をキャプチャします。

ビットコインやイーサリアムなどの他のネットワークでは、マイナーは、これらのネットワークの現在のステートの任意の部分を完全に検証するために、ネットワーク内のトランザクションの履歴全体(ブロックのチェーンを介して編成)を必要とします。

これは、アカウントネットワークまたはUTXOベースのネットワークの両方に当てはまります。新しいノード(または長期間オフラインだったノード)は、見逃したすべてのブロックをダウンロードすることにより、トラストレスな方法でネットワークに同期する必要があります。

ビットコインやイーサリアムのような他のネットワークでは、「ライトクライアント」の概念があります。これらのライトクライアントは、容量の少ない環境を対象としており、ユーザーが高価な(時間と空間の両方で)同期操作を行うことなく、ブロックチェーンの最新のステートから関連情報を確認/アクセスするのに役立ちます。

これを行うには、ブロックからヘッダーを読み取り、受信したブロックのバランスが正しいことを確認し ます。これにより、データを送信するノード全体を 信頼します。これらのライトノードは、上記で定義した「ブロックチェーン」を表すことができません。

Minaは、ジェネシスから任意のブロックまでのブロックチェーン全体を、簡単に検証できる一定サイズの暗号証明に置き換えます。ブロックに対応するこの証明を検証することは、現在のブロックの数ブロック後ろまでのすべてのトランザクションを検証することになります。証明と検証機能への入力はすべて、うわさされる最新のブロックにあります。

上記の「ブロックチェーン」の定義により、「使用可能」という用語が含まれていることに注意してください。この定義は、Mina Protocolのような簡潔なプロトコルでは、不透明なハッシュでいっぱいのステートと結合された単なる証明オブジェクト以上のものが必要であることを意味します。

この検証プロセスは、Minaのネットワーク内のすべてのノードに適用されます。ネットワーク内の一部の役割は、その職務を遂行するために追加の情報を必要としますが、これは上記の定義を超えています。付録の「ブロックプロデューサー」ノードの詳細をご覧ください。

ブロックチェーンの使用可能な表現に必要なデータ

(1)特定の口座の残高を確認できるようにし、(2)ネットワークに取引を送信できるようにしたいと考えています。

「非コンセンサスノード」と呼ばれるこのノードの場合、メモリに保存する必要があるのは、プロトコルステート、アカウント、このアカウントへのマークルパス、および検証キーだけです。

重要なのは、これらの強力なノードはライトクライアントではないということです。フルノードと同等のセキュリティを備えています。

「非コンセンサスノード」としてのみ機能することを望むノード用のこのクライアントソフトウェアは、まだ実装されていません。これは、メインネット後のロードマップにあります。

プロトコルステート

プロトコルのステートは、ネットワークの現在のステートを明確に表したものです。元帳を含むさまざまなデータ構造のハッシュが含まれます。ブロック生成ノードは、内部にプロトコルステートを含むブロックをゴシップします。

ミナのブロックには他の情報も含まれています。前のブロックに含まれていたトランザクションの新しいトランザクションとSNARKを含む証明。再帰的なzk-SNARK、検証機能、および検証キーにより、1つの新しいブロックからの証明とプロトコルステートを介してブロックのシーケンス全体を検証できます。

新しいステートが有効であることを確認した後、ノードは、ソースを信頼することなく、新しいブロックが既存のブロックよりも優れているかどうかを、最後の既知の最良のプロトコルステートと比較することによって、独立してチェックすることもできます。

この場合、この情報を忘れることを選択できます。既存のものより良くない場合、または保存したものを交換する場合。つまり、 新しいステートをリッスンしているので、1つのプロトコルステートを保持するだけ で済みます。

アカウント

Mina Protocolはアカウントベースのモデル(イーサリアムに似ています)を使用します。公開鍵に対応する残高は、アカウントレコードに保存されます。アカウントベースの元帳全体を保存しないノードは、それを保存するノードから特定のアカウントレコードを要求できます(たとえば、ブロック生成ノード-Appendixを参照)。

アカウントへのマークルパス

さらに、ノードはアカウントへのマークルパスを要求して、ノードを信頼しなくてもアカウントレコードが有効であることを確認します。結果のマークルルートは、ブロックチェーンスナークによって検証された元帳のステートと一致する必要があります。

サイズの測定

したがって、Mina Protocolの非コンセンサスノードは、ブロックチェーン全体と、ブロックチェーンSNARKによって認定された元帳からのアカウントを、他のネットワーク上の他のより大きく、より高価な(同期時間とスペースの)フルノードと同様にトラストレスな方法で検証できます。 (ビットコインやイーサリアムなど)。このデータの大きさを見てみましょう。

これらの各データのサイズは、経験的に測定できますこのコードを使用して、それら(保存される実際のバイナリデータ)を決定しました 。実行すると、次の情報(バイト単位)が取得されます。

Proof size: 7063
Protocol State size: 822
Account size: 181
Path size: 741
Total size (combined): 8807

ノードには、ブロックチェーンSNARKSを検証するためのキーも必要であり、ディスク上のそのサイズは2039バイトです。

結果は約11kBです。Mina Protocolの暗号化は、最初に数値を計算して22kBに到達してから進化しました。プロトコルは、もう少し効率的になりました。

スナーク元帳

ブロックチェーンSNARKによって証明された元帳は、トランザクションSNARKSの処理方法のために、最新の元帳より数ブロック遅れていることに注意してください(ここで詳細に説明されてい ます)。これをスナーク元帳と呼びます。

これは、SNARKワーカーノードによって生成されたトランザクションSNARKSによって証明されます。ブロックに対応する最新の元帳(ステージングされた元帳)は、トランザクションを元帳に適用することによってブロックプロデューサーによって明示的に検証され、ブロックチェーンの証明によって保証されません。

結論

私たちの目的は、わずか11kBのデータを使用して、ブロックチェーン全体を表現および検証できることを示すことでした。私たちは主張します The entire Mina blockchain is about 22kb —実際には、それはさらに小さいです。

Appendix:ブロック生成ノード


ブロック生成ノードは、ステートを確認するだけでなく、より多くのタスクを実行します。ブロックを効果的に生成するために、ブロックプロデューサーは最後のkブロックのチェーンを維持します(ここで、kはコンセンサスアルゴリズム– ouroboros samasikaからの定数であり、現在290に設定されています)。

kは、ブロックのファイナリティの側面を示します。その上にk個のブロックがあるブロックは、取り消される可能性がごくわずかであるため、その中のすべてのトランザクションは常に永遠に確認されます。ブロックプロデューサーは、最後のkブロック内で発生するフォークを維持して、最適なチェーンを決定し、それからブロックを生成します。ブロックプロデューサーは、他のノードが検証できるプロトコルステートを生成できるように、完全な元帳を含むすべてのデータ構造も維持します。

より大きなステートが必要ですが、新しいブロック生成ノードの場合、最新のステートに同期することは、k個のブロックチェーンSNARKを検証し、それらのk個のブロックにトランザクションを適用することになります。




この記事が気に入ったらサポートをしてみませんか?