Drawchain™は、Pickawを使用して実施されるすべての抽選を管理しています。これにより、全ての工程が正常に行われているか確認することができます。 It is the common base on which the entire structure and technique of the draws made on Pickaw rests.
始めに、Drawchain™ を象徴する左の図をご覧ください。まず全体像を把握していただきたいと思います。あとに説明する少し技術的な部分を、よりよく理解していただくために。
Drawchain™は、各シードプールの関連性をもとにPickawで実施される全ての抽選を規制しています。
各日が、その日に実施された抽選で使用されたシードが由来するシードプールに相当します。
各シードがユニークで、これをある抽選に関連付けることで、抽選工程・結果を生み出し、また再現することができます。
本題に入る前に、この後何度か出てくる専門用語に慣れるため、このページで各用語の定義の一覧表をお見せしたいと思います。
master_seed: base62の32文字からなるユニークかつランダムな文字列。seed_pool: 連続生成されるhashの確定リスト。hash, global_hash, ending_hash:16進数で表される、固有かつランダムな64文字の文字列。seed: base62の16文字で生成されたユニークかつランダムな文字列。sha256:標準化された安全性の高いハッシュ関数。base62:62文字で行われる情報の暗号化。いよいよスタートです!上記のようにDrawchain™とは、シードプールのリストに付けられた名前です。それでは、Drawchain™にいったい何が含まれているのか、そしてシードプールがどのようにそれを構成しているのかを見ていきましょう。
seed_pool の起源は、Random.orgによって生成される master_seed に由来しています。これは我々の要求に応じて、毎晩午前零時(UTC)少し前に、翌日に向け生成されるのです。
seedPoolには、24時間分の全最終抽選のリストが含まれているのです。そのため、このmaster_seedは、seed_poolの有効期間中にすべての抽選を提供するのに十分な大きさの hash のリストを生成するために使用されます。
hash リストを生成する手順は次のとおりです。
master_seed を sha256 でハッシュして、 hash #1を作成します。hash #1を sha256 で(テキスト化された16進数の形で)ハッシュして 、 hash #2を作成します。hashのリストができるまで、(2.)の手順を繰り返します。したがって、すべての hash は連続的に生成され、master_seedに従属しています。
ending_hash は最後に生成された hash であり、直接使用はされませんが、 seed_pool に開始 (master_seed) と終了 (ending_hash) があることを確認することで、 seed_pool の有効期間中にその変更がないことを証明するために存在します。
master_seed と hash は、 hash や seed の予測や抽選の変更を避けるため、 seed_pool がサービス停止するまで、自発的に保留されます。すべての hash が生成されたら、ようやく seed_pool を使用する準備が整います。前のシードプールは無効化され、新しいものがその役割を引き継ぎます。前の master_seed は公開され、チェック可能になりま (下記参照)。
Pickawで抽選のリクエストがされると、既存の seed_pool の先頭から hash が削除されます。こうして固有 seed が生成され、抽選に割り当てられ、使用されるのです。
hash は seed_pool の末尾から消費することで、次からの文字列が予測され、抽選がシャッフルされるのを防ぎます (まだ使用されていない hash は公開されません)。seed の生成手順は次のとおりです。
hash は基数10に変換され、 seed (62 16 )の制限値で割られます。その後残った部分だけを使用します(この演算は別名 modulo とも呼ばれます)。base62 に変換し、16文字の文字列を生成するのに必要な数のゼロを前に置き、 seed がを生成します。生成された seed は保存され、抽選に使用することができます... 。この工程が seed_pool が無効になるまで繰り返されるのです。
この図を見ると、シードプールが無効になるまでに(seed_pool の末尾の hash から) 4 つのシードが生成されたことがわかります。他の hash は未使用のままで、 seed は作成されていません。
seed_pool と seed がどのように生成されるかがわかったところで、インタラクティブでおもしろいパートに移ります : どうやって当選者が偶然の賜物であることを証明するか?についてです。あなた自身で、自ら体験していただ来たいと思います!
検証は以下に挙げる様々な方法で、Drawchain™のどの段階からでも行うことが可能です。
master_seed から行う場合まず始めに、 seed_pool の hash の生成に使用されている master_seed が、Drawchain™、あるいは該当のシードプールから直接 master_seed に添付されているリンクを通じて、Random.orgに由来していることを確認します。
master_seed が属する seed_pool が無効化にされてからのみ可能となります。seed_pool から行う場合また、我々の作成したJSFiddleにより、生成された hash リストが変更されず、上記のロジックに従っているかどうかをいつでも確認することができます。JSFiddleは以下で利用可能です。
使い方
master_seed (または seed_pool の hash ) を入力します。seed_pool 内の ending_hash (または後に続く hash) を「End hash*」フィールドに入力します。seed から行う場合更に、JSFiddleはポジションの生成も行っており、これにより抽選完了後間もなく、 seed から抽選者のポジションをいつでも確認できるようになります。JSFiddleは以下で利用可能です。
使い方
seed を入力します。その考案・開発だけで数ヶ月を要したDrawchain™とそのメカニズム。もうこれで秘密はありません!どうかこれまでの説明が明瞭で、混乱を招くことがなく、お分かりいただけていたらいいのですが。