概要
Block-Sena は、チケットの購入、ラウンドロック、抽選の実行、賞品が含まれる on-chain の宝くじです。 配信はブロックチェーンに記録されます。このプロトコルは 2 フェーズフローを使用します。 blockSenaPauseDraw (ラウンドをロックし、コミットメントを記録します)および blockSenaDrawPay (公開、脚本、支払い)。
ゴール
すべてのラウンドの透明な支払いルールにより、監査可能で再現可能なプロセスを保証します。
監査可能性
誰でも入力 (コミット、ソルト、ターゲット ブロック)、シード計算、描画された数値、決済イベントを検証できます。
コミットと公開(2期)
機能 blockSenaPauseDraw(usdValuePoolSnapshot、commitHash) ラウンドをロックする 新規購入の場合は、将来のターゲットブロックを設定し、シークレットソルトのみを保存します ハッ.
機能 blockSenaDrawPay(塩) それを検証します keccak256(salt) == コミットハッシュ、ブロックを使いますか ブロックハッシュ、 6 つの固有の番号を生成し、支払いを実行します。
の ブロックハッシュ 約256ブロックの場合のみ開始できます。 有効期限が切れた場合、ラウンドには次回の時間が必要です 動作リセット。このリセットは、on-chain タイムアウトを伴う稀なフェイルセーフであり、すべての使用はパブリック on-chain のままになります。
塩分へのこだわり
ブロック
描画フロー (21:00 UTC -> +5 ブロック -> DrawPay)
Block-Sena のオペレーションフローは明確に分かれています チケットクローズ から 6つの数字の生成この分離により、チケット購入のリスクが排除されます 結果が判明した後、または抽選された番号と一致するようにチケットを調整しようとしている場合。
機能 blockSenaPauseDraw(usdValuePoolSnapshot、commitHash) ラウンドをロックし、 新しい購入ブロックを、記録します コミットハッシュ、定義します ブロック = ブロック番号 + 5、プールのスナップショットをUSDに保存します。
後 PauseDraw、新しいチケットはそのラウンドに入場できません。 その瞬間、 blockhash(targetBlock) まだ存在しませんが、 したがって、最後の 6 つの数字はまだ予測または計算できません。
機能 blockSenaDrawPay(塩) ソルトをコミットして検証します。 ブロックブロックを読みます ブロックハッシュ、6つの一つのデザインの番号を生成し、実行します 最初ごとの支払い。ターゲットブロックの前に呼び出された場合、その後は on-chain を元に戻します。
エクスプローラーで誰でも確認できます。 blockSenaPauseDraw テキサス州、 ブロック、 blockSenaDrawPay TX、アルカリ塩、 抽選番号、決済・支払いイベント。
それは不可能です ラウンドの6の数字を見てチケットを購入するには、 ラウンドはすでにロックインされていたため blockSenaPauseDraw 抽選が実行される前。
それは不可能です 式は依存するため、ロック時の6の数字を知る必要があります。 のブロック上 (ブロック)その時点ではまだ存在しません。
それは不可能です テクニカルタイムより前にドローを実行するため、 blockSenaDrawPay 現在のブロックがすでに ブロック.
blockSenaResetDraw ラウンドが永久にスタックするのを防ぐためにのみ存在します 長期にわたるインフラストラクチャ障害が発生した場合 (例: RPC の停止、サービスのメンテナンス、 ネットワーク/インフラストラクチャの停止、または長期にわたる運用上の課題)、および DrawPay 実行できません 前に blockhash(targetBlock) 有効期限が切れます。
通常のフローでは、期待される動作は次のとおりです。 DrawPay 数ブロック後 PauseDraw (目標とする) +5 リセットは生存保護手段です。 一般的な描画フローの一部ではありません。
数学的な描画式 (6つの固有の数字)
描画シードは、将来のブロック、コミットされたソルト、およびラウンドデータの組み合わせから派生します。 そこから、契約は1から30までの番号を生成し、6つの一つの意の番号に達するまで重複を破棄します。
運用上のセキュリティ用語: チケットはすでに凍結されているため、 PauseDraw そのブロックが存在する前の段階では、ドローを「作成」することはできません その後挿入されたチケットと一致し、その後は参加者は同じラウンドで検討することはできません。 結果を知っていること。
ドローシード
各数値の生成
この手順により、最終結果で数値が増えることがなくなり、抽選が有効範囲内に保たれます。 1..30.
複数選択チケット(6~10個の番号)と組み合わせ割り当て
Block-Sena では、チケットには以下を含めることができます。 6~10の数字このチケットは複数のチケットを表します 6つの数字の同等の組み合わせ。賞品の計算は以下に基づいています。 優勝枠 「人」だけではない(組み合わせ)。
k個の番号を持つチケットの組み合わせの合計
ティア別の優勝枠(4/5/6)
チケットを検討してください k 数字と × 描かれた6つの数字の内側に一致します。
例(10の中に6つの描かれた数字が入った10ナンバーチケット)
q6 = 1, q5 = 24, q4 = 90。 同じチケットで3つのティアすべてで同時に当選する可能性がございます。
マルチ支払いの支払い (政府ごとの決済)
各プールごと (ネイティブ、USDC、USDT など) は個別に決済されます。契約では勝者と賞金がラウンドごとに計算されます そして場合によっては、正確な履歴を維持します RoundTokenStats.
ティア分割
獲得枠ごとの賞品
勝者がいない場合
その層の金額は失われません。次のラウンドでは、その時の carry-over になります。
当選者が複数の場合
賞金は優勝枠によって分けられます。同じウォレットは、支払いごとに1回の支払いに支払われた複数のクォータを受け取る場合があります。
ラウンドを監査する方法 (ステップバイステップ)
- を見つけてください blockSenaPauseDraw txしてメモしてください コミットハッシュ そして ブロック.
- ブロックの後に、 blockSenaDrawPay txして送信されたものを読みます 塩.
- 再計算 keccak256(塩) それが一致することを確認します コミットハッシュ.
- 読む blockhash(targetBlock) エクスプローラーと prevrandao グラフィックTXブロックから。
- シードと6桁の生成ルーチン(重複を破棄)を再現し、次と比較します。 描画実行済み.
- まれに動作不良が発生した場合は点検してください DrawReset (roundId、targetBlock、reset block) を使用してタイムアウトを検証し、トレーサビリティをリセットします。
- チェックする RoundTokenSettled プール、層ごとの支払い、場所ごとのイベント carry-over。
- ネイティブ/ERC20 送金を確認して、当選者への支払いを検証します。
保証、透明性、運用上の制限
Block-Sena は、ラウンド結果が以下になるように設計されました。 監査可能、再現可能、透明性が高い。 Commit-Revealと将来のブロックを決めると、結果を手動で操作する可能性が大幅に減少します。
技術的に言えば、モデルが結果を作ります ロック時間は予測不可能、 ラウンドが終了する前に終了するため、 blockhash(targetBlock) シードで使用されているものが存在します。 これにより、結果に基づいて考えることができなくなり、公式が公開される可能性が保たれます。
保証内容 on-chain
描画ルール、クォータ計算、ティア支払い分割(80/15/5)、ウォークごとの履歴、イベント、各ステップのトレーサビリティ。
緊急運用
まれな技術的スケジュール (例: ブロックハッシュの有効期限切れなど) に対して描画リセット機能があります 長期にわたるインフラ/ネットワーク障害)。ラウンドがロックされ、on-chain タイムアウト後にのみ実行できます。 すべての使用は公開されており、on-chain に記録され、エクスプローラーで監査可能です。
リセットでは、資金の移動、チケットの削除、プールの変更は行われません。ラウンドサイクルのロックを解除するだけで、 の新しい描画の試み 同じラウンド まれな障害計画で。
賞金資金は、抽選と勝者への自動支払いまで契約が残ります。勝者がいない場合 層では、値は次のラウンドでも carry-over として考慮されます。全員には機能がありません すでに収益プールに置かれている資金を引き出すこと。
の rescueAll 機能は放棄するためだけに存在する 未消化の残金 (例: 誤った直接送金)、計算 実質残高 - 会計プール。ない。 賞金はすでにプールに充当されています。
考えれば、Block-Sena は目的な信頼を要求しません。観察できるフローを提供し、 on-chain は数学的に再現され、いつでも誰でも検証できます。