ドキュメント
FAIRDRUMドキュメント
サイトの仕組みに関するすべてをここにまとめました。何から始めるか、ラウンドがどう計算されるか、あなたのSOLがどこにあるか、そしてこれらすべてが動くようにするために何を行ったか。各セクションは、詳細を載せた個別のページです。
プレイヤー向け:何から始めるか
ゲームの仕組み
あなたのSOLと保護
プロジェクトの構成要素
- Solanaネットワーク上のスマートコントラクト。ベットを受け付け、ゲーム残高とポットを保管し、ラウンドの結果と配当を計算します。サイトは配当を計算せず、変更することもできません。
- サイトは静的なページで、プレイヤーのデータベースを持つサーバーはありません。コントラクトを読み取り、トランザクションを準備し、それにあなたのウォレットが署名します。
- 運営の番人は、別のサーバーで動くプログラムです。コントラクトがラウンドを精算できるようにラウンドのシークレットを開示し、専用の入金アドレスからの送金を残高に反映し、保管庫の額がプレイヤーへの債務を下回らないよう監視します。
サイトが現在の状態に至るまでに行ったこと
以下の数値は、2026年11月13日時点のソースコードと検証ログから集計したものです。
コントラクト
Rustで約2100行、コマンドは27個。計算と会計の自動テストは37件。
サイト
16種類のゲーム、37ページ、14言語で、完成したページは合計519ページ。コードは約10000行、フレーズは各言語で約1600件。
コードの検証
内部コードレビュー7回(見つかった問題は修正済み)と、サイトの自動テスト83件。独立した外部監査はまだ行われていません。
ネットワークのコピーでのリハーサル
Solanaネットワークのローカルコピー上で:ラウンドの検証117件(シークレットの偽造、ベットの返還、シークレットのルートの変更)と、番人の検証28件(停止、2つのコピーの同時稼働、他者のシークレットファイル)。
すべてのゲームを実際にプレイ
全16種類のゲームを、ブラウザから本物のコントラクトでプレイしました。各ラウンドの後に、サイト上の残高をコントラクト内の残高と照合しています。2つのログイン方法、取引所からの入金、出金も確認しました。
すべてのページ
全言語の全ページをスマートフォンとパソコンで開きました。開いた回数は1008回で、エラー、空白の箇所、横スクロールはありませんでした。
プロジェクトを変えた判断
- 外部オラクルの代わりに独自の公正な抽選。計測の結果、オラクルはテストネットとメインネットで同じ数値を返しており、つまりラウンドの数値を事前に知ることが可能でした。オラクルは取り除きました。現在、ラウンドの数値は、ベットの前に記録されたシークレットと、ベットのブロックのハッシュから作られます。
- ラウンドを止めたままにせず、ベットを返還。運営が期限内にラウンドを精算しなかった場合、コントラクトはベットを全額返還し、その返還は公開されたカウンターに記録されます。
- 専用の入金アドレス。各プレイヤーはコントラクト内に自分のアドレスを持ちます。ウォレットで署名せずに、取引所からSOLを送ることができます。
- 自分のウォレットなしでログイン。サイトがプレイヤーのブラウザにウォレットを作成します。鍵はサイトにも運営にも渡されません。
- サイトのサーバーに鍵はありません。運営の鍵は、コントラクト用の別のサーバーにのみ置かれています。
まだ終わっていないこと
コントラクトの独立した外部監査は行われていません。プログラムのアップグレード権限は、現時点ではマルチシグではなく、運営の1つの鍵にあります。ページの翻訳はネイティブスピーカーによる校正を受けていません。制限事項について詳しくは、「公正な抽選」と「プレイヤーの保護」のページをご覧ください。