Boundless
ZK対応アプリケーションの構築、分散型マーケットプレイスからのプルーフリクエスト、プルーバーノードの運用、またはスマートコントラクトへの検証可能計算の統合が必要な場合に使用します。Boundlessはゼロ知識証明を用いて実行とコンセンサスを分離し、開発者が計算をオフロードしガスリミットを回避しながら、オンチェーン上のセキュリティを維持することを可能にします。
description の原文を見る
Use when building ZK-powered applications, requesting proofs from the decentralized market, running a prover node, or integrating verifiable computation into smart contracts. Boundless decouples execution from consensus using zero-knowledge proofs, enabling developers to offload computation and bypass gas limits while maintaining onchain security.
SKILL.md 本文
Boundless スキル
製品概要
Boundlessは、すべてのブロックチェーンにゼロ知識プルーフをもたらす分散型プロトコルです。開発者はプルーフリクエストをパーミッションレスなマーケットに提出し、プルーフャーたちが競い合って報酬を得られます。このプロトコルは実行をコンセンサスから分離します。すべてのノードが取引を再実行する(スループットを制限する)代わりに、Boundlessは簡潔なZKプルーフを生成し、どのチェーンでも再実行なしで検証できます。
主要なファイルとコマンド:
- SDK: プルーフリクエストの送信、プログラムのアップロード、プルーフの取得用Rustクレート
boundless-market - CLI: プルーフのリクエスト、担保管理、プルーフャーの設定用コマンドラインツール
boundless - スマートコントラクト:
BoundlessMarket.sol(リクエスト送信)、RiscZeroVerifierRouter(プルーフ検証) - プルーフスタック: Bento(ローカルプルーフ)+ Broker(マーケット連携)がDocker Composeで実行
- 主要ドキュメント: https://docs.boundless.network
使用場合
リクエスター(アプリ開発者):
- ガスリミットを回避するため、計算をオフチェーンにオフロードする必要があるアプリケーションの構築
- RISC Zero zkVM用にRustで書かれたカスタムプログラムのZKプルーフをリクエスト
- 任意のEVMチェーン上のスマートコントラクトへ検証可能な計算を統合
- Steel(ZKコプロセッサ)を使用してEVMの状態と実行をオフチェーンで検証
プルーフャー(ノードオペレーター):
- プルーフリクエストを実行して報酬を得るためにプルーフノードを実行
- GPU対応プルーフインフラストラクチャ(Bento + Broker)の設定
- マーケット入札戦略と価格パラメータの調整
- 担保預金の管理とプルーフパフォーマンスの監視
一般的なタスク:
- プログラム、入力、オファーパラメータを含むプルーフリクエストを送信
- 実行完了まで待機してプルーフ(ジャーナル + シール)を取得
- スマートコントラクトでプルーフをオンチェーン検証
- 複数GPUを備えたプルーフャーをデプロイして設定
- 競争入札に向けてブローカー設定を最適化
クイックリファレンス
リクエスター ワークフロー
| ステップ | コマンド/コード | 目的 |
|---|---|---|
| 1. クライアント構築 | Client::builder().with_rpc_url(...).with_private_key(...) | ウォレットとRPCでSDKを初期化 |
| 2. リクエスト作成 | client.new_request().with_program(ELF).with_stdin(input) | プルーフリクエストを構築 |
| 3. 送信 | client.submit(request).await? | オンチェーンまたはオフチェーンで送信(自動フォールバック) |
| 4. 待機 | client.wait_for_request_fulfillment(request_id, ...) | プルーフ完成までポーリング |
| 5. オンチェーン検証 | verifier.verify(seal, imageId, sha256(journal)) | スマートコントラクトでプルーフを検証 |
プルーフャー ワークフロー
| ステップ | コマンド | 目的 |
|---|---|---|
| 1. リポジトリをクローン | git clone https://github.com/boundless-xyz/boundless && git checkout release-1.4 | 最新プルーフャーコードを取得 |
| 2. 依存関係をインストール | sudo ./scripts/setup.sh | Docker、NVIDIAサポートをインストール |
| 3. Bentoをテスト | just bento && RUST_LOG=info bento_cli -c 32 | ローカルでプルーフが機能することを確認 |
| 4. 設定 | boundless prover generate-config | broker.tomlの対話的セットアップウィザード |
| 5. 担保をデポジット | boundless prover deposit-collateral 50 | ZKCでマーケットアカウントに資金を供給 |
| 6. プルーフャーを起動 | just prover | Bento + Broker(フルスタック)を実行 |
オークションパラメータ(オファー設定)
| パラメータ | タイプ | 目的 | 例 |
|---|---|---|---|
min_price | ETHまたはUSD | 下限価格。プルーフャーはこれで即座にロック可能 | "0.40 USD" |
max_price | ETHまたはUSD | 上限価格。オークションはこれまで上昇 | "1.00 USD" |
ramp_up_period | ブロック | 価格が最小値から最大値に上昇するまでの期間 | 100ブロック |
lock_timeout | 秒 | 主要プルーフャーがプルーフを送信する最大時間 | 625秒 |
timeout | 秒 | リクエストが期限切れになるまでの合計時間 | 1500秒 |
lock_collateral | ZKCまたはUSD | プルーフャーが失敗した場合にスラッシュ可能な担保 | "10 USD" |
ストレージプロバイダー
| プロバイダー | セットアップ | ユースケース |
|---|---|---|
| Pinata (IPFS) | export PINATA_JWT="..." | デフォルト。テスト用フリーティアで十分 |
| S3 | export S3_BUCKET="..." AWS_ACCESS_KEY_ID="..." | プライベート/機密入力。署名済みURLは12時間で期限切れ |
| GCS | export GCS_BUCKET="..." GOOGLE_APPLICATION_CREDENTIALS="..." | Google Cloud統合 |
| なし | プログラムを事前アップロード。URLを渡す | 手動制御。自動アップロードなし |
プルーフタイプ
| タイプ | メソッド | 使用時期 |
|---|---|---|
| アグリゲーテッド(デフォルト) | client.new_request() | ほとんどのリクエスト。マークル包含によるチープなオンチェーン検証 |
| Groth16 | .with_groth16_proof() | スタンドアロンプルーフ。効率的なSNARK |
| Blake3 Groth16 | .with_blake3_groth16_proof() | BitVMまたはSHA2なし環境。32バイトジャーナルが必須 |
ブローカー設定(broker.toml)
| 設定 | タイプ | 目的 |
|---|---|---|
[market] min_mcycle_price | ETH/USD | 100万サイクルあたりの最小入札価格 |
[market] max_collateral | ZKC/USD | 注文あたりロック可能な最大担保 |
[market] peak_prove_khz | 数値 | 推定プルーフ速度。同時作業数を制限 |
[market] max_mcycle_limit | 数値 | このサイクル数を超える注文はスキップ |
[batcher] batch_max_time | 秒 | バッチを公開するまでの最大期間 |
[batcher] min_batch_size | 数値 | 公開前の最小プルーフ数 |
意思決定ガイド
オンチェーンとオフチェーン送信の選択
| 条件 | 使用 | 理由 |
|---|---|---|
| 検閲耐性が必要 | submit_onchain() | リクエストはブロックチェーンに不変に記録 |
| ガスコスト削減を希望 | submit_offchain() | オーダーストリームサーバー。事前デポジット必須 |
| 判断不能 | submit()(デフォルト) | オフチェーン優先。失敗時にオンチェーンにフォールバック |
アグリゲーテッドとGroth16プルーフの選択
| 条件 | 使用 | 理由 |
|---|---|---|
| 標準的なアプリケーション | アグリゲーテッド(デフォルト) | チープな検証。他のプルーフとバッチ化 |
| スタンドアロンプルーフが必要 | Groth16 | 直接SNARK。バッチ依存なし |
| BitVMまたはSHA2なし環境 | Blake3 Groth16 | SHA2利用不可。32バイトジャーナル必須 |
オークションパラメータの調整時期
| 状況 | 調整項目 | 方向 |
|---|---|---|
| リクエストがロックされない | max_price | 増加(より魅力的に) |
| 支払額が多すぎる | min_price | 増加(下限を削減) |
| プルーフャーが期限を逃す | lock_timeout | 増加(プルーフの時間を増加) |
| リクエストが期限切れで未実行 | timeout | 増加(期間を延長) |
| 担保がスラッシュされている | lock_collateral | 増加(セカンダリプルーフャーを奨励) |
ブローカー価格の調整時期
| 状況 | 調整項目 | 方向 |
|---|---|---|
| 入札に勝てない | min_mcycle_price | 低下(入札価格を低減) |
| 利益にならない注文が多い | min_mcycle_price | 上昇(入札価格を上昇) |
| 担保が不足 | max_collateral | 低下(注文あたりロック額を削減) |
| Bentoがオーバーロード | max_concurrent_proofs | 低下(並列処理を制限) |
ワークフロー
リクエスター: プルーフの送信と検証
- 環境をセットアップ:
RPC_URL、PRIVATE_KEY、ストレージ認証情報(PINATA_JWT、S3_BUCKETなど)をエクスポート - クライアントを構築:
Client::builder()をRPC、秘密鍵、アップローダー設定で初期化 - リクエストを作成:
client.new_request()を呼び出し、プログラム(ELFバイナリ)、入力(stdin)、オプションのオファーパラメータを添付 - 送信:
client.submit(request)を呼び出してオンチェーンまたはオフチェーンで送信。request_idとexpires_atを取得 - 実行完了まで待機:
client.wait_for_request_fulfillment(request_id, Duration::from_secs(5), expires_at)を使用してポーリング - プルーフを抽出: 実行完了からジャーナル(公開出力)とシール(暗号プルーフ)を抽出
- オンチェーン検証:
sealとjournalを使用してスマートコントラクト関数を呼び出す。コントラクトはverifier.verify(seal, imageId, sha256(journal))を呼び出す - 結果を確認: トランザクション確認を検証。プルーフが有効な場合、コントラクト状態を更新
プルーフャー: プルーフノードをデプロイして実行
- リポジトリをクローンしてチェックアウト:
git clone https://github.com/boundless-xyz/boundless && git checkout release-1.4 - 依存関係をインストール:
sudo ./scripts/setup.shを実行してDocker、Docker Compose、NVIDIAサポートをインストール - 環境をセット:
PROVER_PRIVATE_KEY(マーケット用ウォレット)とPROVER_RPC_URL(有料RPC端点)をエクスポート - Bentoをローカルでテスト:
just bentoとRUST_LOG=info bento_cli -c 32を実行してプルーフが機能することを確認 - 設定を生成:
boundless prover generate-configを実行してbroker.tomlとcompose.ymlの対話的セットアップを実行 - 担保をデポジット:
boundless prover deposit-collateral <amount>を実行してZKCでマーケットアカウントに資金を供給 - フルスタックを起動:
just proverを実行してBento + Brokerを起動。just prover logsでログを確認 - 監視とチューニング: ロック率、プルーフ速度、スラッシュについてログを監視。必要に応じて
broker.toml設定を調整 - 安全にアップグレード: 新しいバージョンへのアップグレード前に
just broker cleanを実行して状態破損を回避
よくある落とし穴
- インライン入力が大きすぎる: 大きい入力をリクエストにインライン送信するとガスが増加。入力が1 KBを超える場合、ストレージプロバイダー(Pinata、S3、GCS)を使用
- ジャーナルが10 KBを超過: オンチェーンジャーナルは10 KB未満である必要があります。
ClaimDigestMatch述語を使用し、より大きい場合はジャーナルをオフチェーンに保存 - プログラム/入力ファイルが50 MBを超過: プルーフャーは過度に大きいファイルを拒否。プログラムサイズを最適化するか、入力を分割
- 無料RPC端点が失敗: プルーフャー操作には有料RPC端点(Alchemy、QuickNode)が必須。フリーティアはレート制限され、スラッシングの原因に
- 担保残高が不足: ブローカーは担保残高が
lock_collateral未満の場合、注文をロックできません。実行前にZKCをさらにデポジット - オークションパラメータが厳しすぎる:
lock_timeoutやtimeoutをプルーフ時間に対して短く設定しすぎるとスラッシング。時間計算機を使用して推定 - プルーフャーがプリフライトに従わない: プログラムが実行に失敗する(ゲストパニック)場合、プルーフャーはスキップ。最初に
bento_cliでローカルテスト - 複数ブローカーがBentoを共有: すべてのブローカー間の
peak_prove_khzが実際のクラスタ速度を超えないことを確認。max_concurrent_preflightsは実行エージェント数を超えてはいけません - ファンディングモードが
Neverに設定: オンチェーン残高が不足している場合、リクエストが失敗することがあります。安全性のためAlways(デフォルト)またはMinMaxBalanceを使用 - 価格オラクルがスタール: 価格オラクルが12時間以上更新されていない場合、ブローカーはログエラーを出力。
price_oracle.refresh_interval_secsとオラクルヘルスを確認
検証チェックリスト
作業を送信する前に:
- リクエスター: プログラムは
bento_cliまたはRISC Zero zkVMでローカルにコンパイルして実行 - リクエスター: 環境変数が設定済み(
RPC_URL、PRIVATE_KEY、ストレージ認証情報) - リクエスター: ウォレットに十分なETH(ガス + リクエストの
max_price)を保有 - リクエスター: オークションパラメータが現実的(
lock_timeout、timeoutは時間計算機を使用) - リクエスター: ジャーナルサイズ < 10 KB。プログラム/入力ファイル < 50 MB
- リクエスター: スマートコントラクトのプルーフ検証ロジックが予想ジャーナル形式と一致
- プルーフャー: DockerとNVIDIAサポートがインストール済み(
docker ps、nvidia-smi両方が動作) - プルーフャー: Bentoテストプルーフが成功(
bento_cli -c 32がエラーなく完了) - プルーフャー:
broker.tomlが生成され確認済み(特にmin_mcycle_price、max_collateral、peak_prove_khz) - プルーフャー: ZKC担保がデポジット済み(
boundless prover balance-collateralが0より大きい残高を表示) - プルーフャー: RPC端点が有料/信頼性あり(フリーティアではない)。
curl <RPC_URL>でテスト - プルーフャー: ブローカーログが「listening for orders」を表示。エラーなし
- プルーフャー: GPUが認識済み(
nvidia-smiがcompose.ymlと一致するデバイスIDを表示)
リソース
包括的なナビゲーション: https://docs.boundless.network/llms.txt
重要なドキュメントページ:
- プルーフライフサイクル — リクエストから検証までのエンドツーエンドフロー
- プルーフをリクエスト — SDK API、ストレージプロバイダー、オファー設定
- プルーフャークイックスタート — ハードウェア要件、Bentoセットアップ、ブローカー設定
追加のドキュメントとナビゲーションについては、https://docs.boundless.network/llms.txt を参照してください。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- fabianferno
- リポジトリ
- fabianferno/check-fi
- ライセンス
- Apache-2.0
- 最終更新
- 2026/4/12
Source: https://github.com/fabianferno/check-fi / ライセンス: Apache-2.0