【 最新の更新日は 2022年4月2日です 】
Minaの現在の状況
Minaについて
カテゴリ:スケーリング
関連記事
誰もがノードとして参加できる軽量型ブロックチェーン、Mina Protocolとは
仮想通貨MINA(ミナ/Mina Protocol)とは?今後の見通しや予想、将来性を徹底解説!
Mina Protocolの概要 -ゼロ知識証明によるプライバシー保護が特徴の軽量チェーン-
Mina Protocolとは?
Minaプロトコルは、DAppsをより効率的に運用するために、計算量を削減することを目的として構築された最小限の「簡潔なブロックチェーン」です。Minaは、利用者が増えてもサイズが変わらないように設計されているため、世界で最も軽量なブロックチェーンと言われています。さらに、セキュリティと分散化の面でもバランスが取れています。このプロジェクトは、2020年10月に「Coda Protocol」から「Mina」にリブランディングされました。
このプロジェクトについてもっと知りたい方は、Minaプロトコルのディープダイブをご覧ください。
Minaネットワークのサイズはわずか22KBで、ビットコインの300GBのブロックチェーンと比較すると極小です。
Minaプロトコルの主な目的は何ですか?
Minaは、ユーザーがプラットフォームの生成ブロックからネイティブに検証できる効率的な分散型決済システムの実現を目指しています。テクニカルホワイトペーパーでは、これを “succinct blockchain “と呼んでいます。
このプロトコルでは、情報を公開せずに認証できる暗号証明であるzk-SNARKs(Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge)を使用しています。しかし、大規模なネットワークでは、ユーザーがプラットフォームの生成ブロックまで遡って追跡することは現実的ではありません。そこでMinaでは、直近の数ブロックのみを対象としたSNARKSを段階的に計算し、エンドユーザーは、ブロックの取引履歴全体ではなく、zk-SNARKで圧縮された証明を確認することになります。
Minaプロトコルの中核となるのは、ユーティリティコインおよび交換媒体として機能する固有の通貨MINAです。
Minaプロトコルはどのように機能しますか?
Minaは、取引の処理方法以外はビットコインに似ていますが、Ethereumで使用されているアカウントモデルも採用しています。
この点、ビットコインとイーサリアムの違いは、ビットコインのブロックチェーンの状態には、使われていないコインのリストが含まれているのに対し、イーサリアムの状態はアカウントの残高で構成されていることです。
一方、Minaは、マイナーに相当するプロバー(スナーカーとも言う)を使って、各ブロックが状態にコミットすることを保証します。
Minaは、Ouroboros Samasikaを採用しています。Ouroboros Samasikaは、ジェネシスブロックからのブートストラップを提供するため、succinct分散型ネットワーク用に特別に設計されたPoSメカニズムの一種です。
簡潔なブロックチェーンには、検証と更新という2つの主要な機能があります。検証機能はコンセンサス、ブロックチェーンの概要、ブロックに関わり、更新機能はコンセンサスとチェーンの概要に関わります。
このプロジェクトでは、上記の実装とは別に、トランザクションの処理速度を最適化するために、パラレルスキャン状態を使用しています。これは、証明されていないブロックをグループ化し、その処理をパラレルプルーバーに割り当てることで機能します。
Minaプロトコルの主な参加者
Minaは、現在のブロックチェーンの状況に革命を起こそうとしています。ほとんどのプラットフォームでは、取引を検証する際に第三者として機能するマイナー/ステーカーやライトクライアントなどの検証者がいます。
Minaは、複数の参加者がそれぞれ分散型ネットワーク上で特定の機能を担当するという、異なるアプローチをとっています。
主な役割は、検証者、ブロック生産者、スナーカーの3つです。
検証者
検証者は、コンセンサス情報の認証を行うzk-SNARKSと対話します。Minaプロトコルの各ユーザーは、22KBのチェーンを処理でき、数ミリ秒の処理時間に耐えられるデバイスであれば、検証者とみなされます。
ブロック生産者
ブロック生産者は、ステーカーやマイナーの形をとり、ブロック報酬や取引手数料の支払いを受けます。興味深いことに、このプロトコルではブロックプロデューサーに支払われるインセンティブを削減していません。このカテゴリーの参加者は、Minaのユーザーが自分のコインを彼らに委ねることを可能にします。
ブロック生産者は、取引をブロックにまとめる以外に、以前にコミットした取引と同数のSNAKを行う必要があります。ブロック生産時にSNAKを行わないと、ブロックが不完全になり、他のノードがその有効性を拒否することになるからです。
ブロック生産者が10件の取引をチェーンに組み込みたい場合、ブロック生産者はキューの先頭から取引を「SNAK」しなければなりません。ただし、SNARKを生成するか、スナーカーと呼ばれる特別な参加者グループが生成したSNARKを使用するかを選択することができます。
スナーカー
スナーカーはプルーバーとも呼ばれ、取引を検証するためのzk-SNARKを生成します。
ブロック生産者は、新しいブロックを追加する際に受け取る取引手数料全体からスナーカーに報酬を支払います。ただし、報酬を得るためには、入札を行う必要があります。なお、スナーカーのzk-SNARKはブロック内で使用される必要があり、それを使用したブロック生産者はスナーカーにインセンティブを与える責任があります。
これにより、複数のスナーカーが同一の取引に関連して入札を行うことができるビジネス経済が実現します。一方、ブロック生産者は利益を得るために、最も低い手数料の入札を選択します。その結果、スナーカーは低コストのスナークを生産することに挑戦することになる。
Minaでの取引の流れ
ユーザーが取引を開始すると、その取引はmempool(有効だが確認されていない取引のプール)に送られます。
次に、スナーカーが証明(SNARKS)を行います。続いて、取引をブロックにまとめるブロックプロデューサー(BP)が選ばれます。BPはメンプールから利益のある取引を探し出します。
その後、BPはコンセンサス・メカニズムのルールに従ってSNARKを選択します。
ブロック・プロデューサーは、入札の中から最低価格のSNARKを探すことになります。また、最近追加された取引は、SNARKSのオーダーブックが更新されています。
次に、SNARKSをブロックに組み込み、そのブロックをチェーンに追加してネットワークを更新します。プロトコルのサイズを一定に保つために、スナークされたトランザクションはチェーンから削除されます。
その後、ブロック生産者はプロトコルのzk-SNARKSをアップグレードします。
最後に、新しいブロックがチェーンの一部として不変になります。