装置
hotbits は放射性崩壊から得る真の乱数バイトだ。装置は、CAJOE RadiationD-v1.1 カウンター基板の SBM-20 ガイガー管に密封されたトリウム校正カードを当てたもので、検出されたイベントすべてに Raspberry Pi 4 がタイムスタンプを打つ。管より下流はすべて帳簿付けにすぎない。原子核が崩壊した後に、乱数性を足すものは何も無い。
端から端までの連鎖:
| 段階 | 何が起きるか | どこで |
|---|---|---|
| 崩壊 | Th-232 系列の原子核が崩壊し、管が放電する | カードと管 |
| パルス | 基板の NE555 が放電を綺麗なエッジに整形する | カウンター基板 |
| タイムスタンプ | Pi がエッジを単調ナノ秒値ひとつとして記録する | logger.py、イベントごとに 1 行、追記のみ |
| ビット | イベント間の間隔をペアで比較し、ペアごとに 1 ビット | extract_stream.py、毎分 |
| 健全性 | 新しいビットが連続テストを通るか、さもなくばプールが給仕を拒む | 同じ処理の中で。健全性テストを参照 |
| プール | 新鮮なバイトが、消費水位を持つ追記専用ファイルに溜まる | API のプール |
| ゲートウェイ | 鍵がバイトを消費する。シードと再生は開放のまま | ゲートウェイ |
線源が何か珍しいものではなくトリウムカードであることには、記録しておく価値のある理由がある。永続平衡にある Th-232 は崩壊系列まるごとであり、六つのアルファ崩壊核種といくつかのベータ崩壊核種が、すべて独立に崩壊しながら一本の管で合算される。独立なポアソン過程の和はやはりポアソン過程であり、それこそが ビットの抽出が必要とする唯一の性質だ。
このサイトのどこにあるか
ページは二つあり、どちらも装置について断言する代わりに、装置に問い合わせる。
/ja/hotbits は読み込まれた時に、稼働中のサービスからバイトプールと健全性の判定を読む。/ja/hotbits/api はサービス自身の
openapi.json を描画した上で、そこに書かれたルートをすべて呼び出す。だからリファレンスは「応答すべきだ」と主張する代わりに、どのルートがいま応答しているかを言える。
このツリーが扱う範囲と、扱わない範囲
ここにあるページは、ここから検証できる部分を扱う。抽出と健全性テストは装置のソースツリーから読んで書かれ、ゲートウェイの挙動は呼び出して測られる。二つのものは意図的に書き写していない:
- ベンチ。 接地、オシロスコープでの作業、筐体の履歴、部品表は装置自身の リポジトリにある。あれは実験ノートであり、実験ノートの書き写しは、それが真実であることをやめる方法だ。
- ゲートウェイの内部。 鍵の発行とバイト予算の管理はゲートウェイを動かす 機械の上にあり、そのソースはこのサイトがビルドするツリーには無い。 ゲートウェイのページは、サービスが観測できる振る舞いを文書化し、観測がすべてである箇所ではそう述べる。