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™とそのメカニズム。もうこれで秘密はありません!どうかこれまでの説明が明瞭で、混乱を招くことがなく、お分かりいただけていたらいいのですが。