banner
老言

老言博客

There's no such thing as a free lunch except web3.
x
telegram
github
discord server

starknetとは何ですか

Zero-Knowledge Proof and SNARK Basics#

用語「ZK-STARK」は、「Zero-Knowledge Scalable Transparent Argument of Knowledge」を表す頭字語です。名前の各部分は、ZK-STARK の特徴を指しています。

Zero-Knowledge:ZK-SNARK と同様に、「ゼロ知識」を意味し、証明者は情報そのものを提供することなく、情報を所有していることを検証者に証明することができます。

Scalable:このプロトコルは、ブロックチェーンのスケーラビリティの向上に焦点を当てています。ZK-STARK は、オフチェーンでの計算とデータの保存を可能にし、スケーラビリティを指数関数的に向上させることができます。

Transparent:これは、ZK-STARK と ZK-SNARK の最も顕著な違いの 1 つを示しています。公開可能なランダム性を使用してパラメータを生成するため、信頼性の設定が不要になります。

Argument of Knowledge:ZK-SNARK と同様の意味ですが、異なる計算方法を使用します。衝突に耐性のあるハッシュ関数を使用することで、信頼性の設定を効果的に排除します。

最初の STARK の詳細な論文は、Eli Ben-Sasson、Iddo Bentov、Yinon Horeshy、および Michael Riabzev によって 2018 年に発表されました。Eli Ben-Sasson は数学者であり、コンピュータサイエンティストであり、StarkWare の社長兼共同創設者であり、STARK、FRI、および Zerocash プロトコルの共同発明者であり、Zcash の創設科学者であり、StarkNet Foundation の 7 人の理事会の一員です。

STARK は、STNARK と同様に証明と検証のプロトコルです。大規模な計算を処理し、計算の正確性を証明し、その後、わずかな計算で証明を検証することができます。STARK は、オフチェーンでの大規模な計算とデータの保存を可能にし、チェーン上でのわずかな計算の検証により、オンチェーンで完全な計算の完全性を証明することができます。

ZK-STARK と ZK-SNARK の比較#

ZK-STARK は、ZK-SNARK の主な弱点の 1 つである「信頼性の設定」への依存性を解決しました。ZK-SNARK は、ランダム性を生成するために初期の信頼性の設定フェーズが必要です。このフェーズで生成された機密パラメータ lambda が漏洩すると、このパラメータを知っている人は誰でも偽の証明を生成することができます。

zk-SNARK は楕円曲線暗号学(elliptic curve cryptography)を必要とします。楕円曲線暗号学(ECC)は、楕円曲線の特性を利用して安全な暗号鍵を生成する暗号技術です。これはオンラインセキュリティの人気のある選択肢です。これらの鍵はデータのエンコードとデコードに使用することができます。ZK-STARK は純粋に衝突に耐性のあるハッシュアルゴリズムを使用し、パラメータが公開され透明であり、量子計算の脅威を排除します。

SNARK が生成する証明のバイト数は通常数百バイトであり、一方、STARK が生成する証明のバイト数は通常数百キロバイトです。そのため、SNARK はチェーン上での証明の検証速度が速く、消費するガスも少なくなります。しかし、STARK はオフチェーンでの計算と証明の生成速度が速いため、よりスケーラブルです。

STARK の応用#

-bD3Tb0jLgF0_DoTjfEat

STARK は、ZK-rollups や Layer-2 などのブロックチェーンのスケーラビリティソリューションで採用されています。これらのプロトコルは、オフチェーンで計算とデータの保存を行い、ゼロ知識証明をチェーン上に提出してネットワークの状態を更新することができます。

StarkWare は、Ethereum Foundation から 1200 万ドルの助成金を受け取り、Ethereum が STARK 技術をサポートし重視していることを証明しました。

StarkWare は、StarkEx と StarkNet の 2 つのソリューションを STARK に基づいて構築しました。StarkWare の共同創設者である Eli Sabasson は、StarkEx と StarkNet をそれぞれコンピュータとクラウドに例え、StarkEx をカスタマイズされたコンピュータの所有に例えています。各クライアントは、独自のスケーリングコンピュータを所有しています。一方、StarkNet はネットワークであり、一般的なサービスであり、誰でも料金を支払って利用することができます。

StarkEx はアプリケーションにカスタマイズされた ToB サービスを提供します#

StarkNet は、許可なしでの分散型で検閲に耐える一般的なレイヤー 2 ネットワークです。

2020 年 6 月、最初の STARK ベースのスケーリングソリューションである StarkEx が Ethereum メインネットに展開されました。 StarkEx には、オフチェーンで大規模な計算を実行し、その正確性を証明する STARK 証明を生成するプルーバー(prover)と、その証明をチェーン上で検証するバリデータ(validator)があります。

StarkNet は、許可なしの効率的な集約を提供するものです。これは、Ethereum 上で動作するレイヤー 2 ネットワークとして機能し、Ethereum の計算能力を拡張することなく、Ethereum の組み合わせ性とセキュリティを維持します。すべての StarkNet トランザクションはバッチ処理され、STARK によってその有効性が証明され、Ethereum 上で検証されます。STARK による証明の計算量がオフチェーンの計算量よりも指数関数的に小さいため、StarkNet は Ethereum の計算量を数桁拡張します。

StarkNet の主要コンポーネント#

プルーバー:証明を生成するための単独のプロセス。プルーバーは STARK 証明を Ethereum に登録されたバリデータに提出します。

StarkNet オペレーティングシステム:受信したトランザクションに基づいてシステムの状態を更新します。StarkNet 上でスマートコントラクトの実行をサポートします。

StarkNet の状態:スマートコントラクトのコードとストレージで構成される状態。

Ethereum 上の StarkNet コントラクト:L2 に提出された証明をバリデータが検証し、状態を更新し、L1 と L2 の相互作用を促進します。

StarkNet の外部インフラストラクチャ
フルステートノード:StarkNet ネットワーク内のノードで、現在の StarkNet の状態に関するクエリのみに使用されます。StarkNet ネットワークの現在の状態に関するクエリに独立して応答することができます。バッチトランザクションやバッチ証明は実行しません。

シーケンサーノード:StarkNet ネットワークのメインノードです。提出されたトランザクションをソートするための主要な機能を実装します。StarkNet コントラクトのプログラムを実行し、StarkNet コントラクト上の状態を最終的に更新します。

Cairo#

StarkWare のエンジニアによって開発された、汎用計算を証明するためのプログラミング言語です。2020 年夏、Cairo は Ethereum メインネット上で初めて登場しました。Cairo は、CPU Algebraic Intermediate Representation(AIR)を表す単一の AIR を含む、「CPU」の命令セットを検証するために使用されます。これにより、より複雑なビジネスロジック、任意の計算ステートメント、およびより高速かつ安全な方法での proofs のエンコードが可能になります。Cairo プログラムは、単一のアプリケーションロジックの実行を証明することができます。ただし、Cairo プログラムは、複数のこのようなアプリケーションの連結であることもあります - SHARP。

SHARP

n9Crf4PZMM9B_U8xGCnbE

共有プルーバー(Shared Prover)は、複数の独立したアプリケーションからトランザクションを取得し、単一の STARK 証明でそれらを証明します。アプリケーションは、トランザクションバッチを組み合わせて、STARK 証明の容量をより速く埋めることができます。トランザクションはより高い速度と遅延で処理されます。

ここでは、ステートメントは時間の経過とともに個別に到着します。ある容量(または時間)のしきい値に達すると、大規模な結合ステートメント(Train)が生成されます。すべての個別のステートメントが受信された後でのみ、この結合ステートメントを証明することができます。この証明には時間がかかります(個別のステートメントごとに必要な時間の合計ほど)。

最終的に、非常に大きなステートメントの証明は、メモリなどの利用可能な計算リソースに制約を受けます。このため、再帰的な証明が実際には STARK 証明のスケーラビリティを制限します。

再帰的な証明(Recursive Proving)#

wf9bJ88nFfbZlLy_kGK4I

STARK 証明を使用すると、ステートメントの証明に必要な時間は、ステートメントの実行に必要な時間とほぼ線形の関係になります。さらに、ステートメントの証明を検証するために必要な時間は、おおよそ log (T) の時間がかかります。これは通常、「対数圧縮」と呼ばれます。つまり、STARK を使用すると、計算に費やす時間よりも検証に費やす時間がはるかに少なくなります。

Cairo では、STARK プルーバーが証明を生成し、検証者が証明を検証するために、一般的な計算式を生成および検証することができます。したがって、複数の「上流」証明の有効性を検証するために、単一の証明を生成することができます。これが再帰的な証明と呼ばれるものです。

再帰的な証明により、チェーン上での検証コストと検証計算時間をさらに削減することができます。Cairo で開発された再帰的なバリデータは、StarkNet に証明を提出する可能性を開きます。これにより、L3 を構築することができます。

チェーン上の低コストの検証は、以前は実現不可能だった AI、機械学習、3D アート、ゲーム物理エンジンなどの新しいタイプの複雑な計算アプリケーションを可能にします。これらの機能により、STARK はユーザーエクスペリエンスを向上させ、ガスコストを削減しながら、Ethereum の決済層のセキュリティを維持します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。