Repolode
starkware-libs

starkware-libs/stwo

M31体上のCircle STARKの証明・検証を行うRust実装。no_std検証器とSIMD証明バックエンドを備えています。

スター
507
フォーク
183
未解決の Issue
48
最終コミット
一昨日

これは何?

StwoはRustで書かれたCircle STARKの証明器・検証器です。Mersenne素数体M31(2^31 − 1)上で証明システムを実行するため、AVX2、AVX-512、NEON、WebAssembly SIMDなどのSIMDレーンに対応する32ビットの剰余演算を利用できます。ライブラリにはM31、CM31、QM31の体の塔、circle FFT、circle domain向けのFRI変種、lifted Merkle commitment、Blake2s、Blake3、Poseidon252、Keccak256など複数のFiat-Shamirチャネルが含まれています。

リポジトリはいくつかのcrateに分かれています。コアcrateでは、no_std検証器と、`prover` featureで有効になる証明器が分離されています。これに加えて、constraint framework、air-utils、参照用のサンプル(Fibonacci、Poseidon2、Blake、PLONK形式、state machine)があります。メモリとテーブルのチェックには、GKRおよびLogUpのlookup argumentを利用できます。

Stwoは、StarkWareのSHARP proverとCairo VM向けのstwo-cairo proverの基盤です。アプリケーション固有の証明器は別のリポジトリで開発されています。2026年7月末以降、開発はstarkware-libs/provingに移行します。

主な機能

  • 01M31体上のCircle STARK証明器・検証器。
  • 02証明器のコードなしでビルドできるno_std検証器。
  • 03AVX2、AVX-512、NEON、WebAssembly対応のSIMDバックエンドと、CPU参照バックエンド。
  • 04Blake2s、Blake3、Poseidon252、Keccak256など複数のFiat-Shamirチャネル。
  • 05メモリとテーブルのチェックに使うGKRおよびLogUpのlookup argument。
  • 06`parallel` featureで有効にできる、Rayonベースの並列証明。

ユースケース

  • STARKバックエンドを使ったzkVMや検証可能な計算システムの構築。
  • SolidityやCairoのコントラクトなど、オンチェーン環境への小規模なSTARK検証器の組み込み。
  • Circle STARKの構成やcircle domain上のFRIの実験。
  • STARKベースの証明で使うPoseidon2やBlakeなどの参照回路の検証。

クイックスタート

  1. 1

    Rustの依存関係としてstwoを追加する(verifierのみ、またはprover feature付き)

  2. 2

    フルproverをreleaseモードでビルドする

    cargo build --release --features prover
  3. 3

    標準テストスイートを実行する

    cargo test --features prover

使う前に知っておきたいこと

  • rust-toolchain.tomlで指定されたRust nightlyが必要です。
  • フルproverの性能を発揮するには、AVX2、AVX-512、またはNEONに対応したCPUが必要です。
  • 2026年7月から開発は新しいリポジトリに移行します。

トピック

よくある質問

stwo とは?
M31体上のCircle STARKの証明・検証を行うRust実装。no_std検証器とSIMD証明バックエンドを備えています。 StwoはRustで書かれたCircle STARKの証明器・検証器です。Mersenne素数体M31(2^31 − 1)上で証明システムを実行するため、AVX2、AVX-512、NEON、WebAssembly SIMDなどのSIMDレーンに対応する32ビットの剰余演算を利用できます。ライブラリにはM31、CM31、QM31の体の塔、circle FFT、circle domain向けのFRI変種、lifted Merkle commitment、Blake2s、Blake3、Poseidon252、Keccak256など複数のFiat-Shamirチャネルが含まれています。
stwo は無料で使えますか?ライセンスは?
stwo は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
stwo は今もメンテナンスされていますか?
活発にメンテナンス中。stwo の最終コミットは 2026年11月5日 です。
stwo は何に使えますか?
STARKバックエンドを使ったzkVMや検証可能な計算システムの構築。 SolidityやCairoのコントラクトなど、オンチェーン環境への小規模なSTARK検証器の組み込み。 Circle STARKの構成やcircle domain上のFRIの実験。 STARKベースの証明で使うPoseidon2やBlakeなどの参照回路の検証。
stwo のインストール方法は?
Rustの依存関係としてstwoを追加する(verifierのみ、またはprover feature付き) フルproverをreleaseモードでビルドする: cargo build --release --features prover 標準テストスイートを実行する: cargo test --features prover
stwo はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/starkware-libs/stwo

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト