150 / 736DICE

Dice Roll Entropy

Ентропія гаманця з фізичних кидків кубика

Кубик може дати випадковість для нового гаманця. Але кількості кидків недостатньо: результати мають бути випадковими, залишатися таємними й правильно перетворюватися на дані гаманця.

Dice Roll Entropy дає змогу отримати непередбачувані вхідні дані для нового гаманця справжніми кидками кубика. Гаманець — це застосунок або пристрій для отримання й надсилання біткоїнів. Приватні ключі — це таємні числа, за допомогою яких можна дозволити витрачання біткоїнів. Уявіть Анну: замість вигадувати числа вона вводить результати в точному порядку в перевірену офлайн-процедуру. Ці дані стають основою ключів до її bitcoin. Ентропія тут описує невизначеність для того, хто не знає результатів і намагається їх вгадати. Кубик допомагає лише тоді, коли кидків достатньо, вони незалежні й таємні. Більше слів відновлення чи довгий цифровий відбиток не врятують слабкі або оприлюднені дані. Подальші обчислення пояснюють чому, але не закликають створювати власний генератор.

Біт — одиниця інформації. За однаково ймовірних можливостей кожний додатковий біт подвоює кількість варіантів для вгадування. Це не додаткова крапка на кубику й не ще одне слово резервної копії. У чесного шестигранного кубика шість однаково ймовірних результатів. Два незалежні кидки мають 36 можливих пар. У бітах це log2(6) ≈ 2,585 на кидок. За цих ідеальних умов 50 кидків дають приблизно 129,25 біта, 99 кидків — 255,91, а 100 — 258,50. COLDCARD вказує 99 кидків для практичної цілі 256 бітів; математично це трохи менше за 256. Сам підрахунок кидків не перевіряє кубик і не гарантує ідеально рівномірного результату перетворення. [1] [3] [5]

Якщо одна грань випадає частіше, нападник має кращу здогадку. За ймовірності найчастішої грані 1/2 один кидок дає лише 1 біт min-entropy. Min-entropy оцінює непередбачуваність за найкращою окремою спробою вгадування з боку нападника. Формула Hmin=−log2(pmax) використовує саме ймовірність найчастішого результату, pmax. Для додавання значень між кидками потрібна відповідна незалежність. Копіювання попереднього результату не замінює нового незалежного кидка. А тому, хто знає всю послідовність, узагалі не треба вгадувати. [4]

Для гаманця, створеного лише з кидків, повної послідовності або підсумкового хешу, тобто цифрового відбитка, обчисленого з цих даних, може вистачити для відновлення. При змішуванні чутливими є й вхідні дані пристрою. Не вводьте справжні кидки в онлайн-перевірку та не фотографуйте їх. Перевіряйте обчислення на окремому тестовому гаманці, який ніколи не поповнюватимете; для справжнього використайте нові таємні вхідні дані. Буфер обміну й журнали можуть зберегти дані. Надійно збережіть Seed Phrase, резервну копію у словах, і перевірте відновлення. Якщо ви також використовуєте passphrase, додатковий секрет для доступу до іншого гаманця, отриманого з тих самих слів, вона теж потрібна для відновлення. [1] [2]

Збіг із публічним тестовим прикладом перевіряє кодування, хеш і перетворення. Він не доводить, що ваш кубик чи пристрій працюють правильно. Гарна на вигляд коротка послідовність теж не доводить непередбачуваності. NIST SP800-90B розрізняє модель джерела, оцінку min-entropy та перевірки працездатності. Домашня серія кидків не є сертифікацією за цим стандартом; вигадані числа чи повторюваний шаблон фізичних кидків не замінюють. [3] [4]

ASCII визначає запис цифр для комп’ютера, а newline означає символ кінця рядка. Точний запис важливий: комп’ютер опрацьовує символи, а не їхній людський зміст. Згідно з документацією, COLDCARD у режимі Dice Rolls Only обчислює SHA-256 від ASCII-послідовності цифр. Публічний тест 123456 без кінцевого newline має хеш 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92. Шість ідеальних випадкових кидків мали б лише близько 15,51 біта; ця опублікована послідовність узагалі не секретна. Вихід 256 біт не додає відсутньої ентропії; інше кодування може змінити результат. [1] [3]

У наступній формулі d1 і d2 — результати першого та другого кидків. mod означає остачу від ділення. Два прообрази означають, що два різні початкові значення дають один результат і збільшують його ймовірність. Навчально кодуймо два чесні незалежні кидки як x=6*(d1−1)+(d2−1), від 0 до 35. x mod32 надає перевагу 0–3, бо кожне має два прообрази. Rejection Sampling натомість відкидає 32–35 і повторює пару; прийняті 0–31 дають п'ять рівномірних бітів. Приклад пояснює помилку перетворення, а не замінює перевірений генератор гаманця. [3]

Документація COLDCARD від 1 жовтня 2026 розрізняє Dice Rolls Only без апаратної випадковості та стандартну генерацію, що змішує значення пристрою з фізичними кидками кубика або монети. verify_seed_mix.py перевіряє другий режим, rolls.py і rolls12.py — перший. Самих кидків недостатньо для звірення, якщо вхід також містить значення пристрою; потрібні точна процедура й версія прошивки. [1]

BIP39 описує перетворення вхідних бітів на слова відновлення та подальше отримання з цих слів seed, початкових даних для ключів. Checksum допомагає виявити деякі помилки переписування; passphrase — необов’язковий додатковий секрет. Останній названий нижче алгоритм обчислює seed зі слів і passphrase. BIP39 додає до 128 вхідних бітів чотири біти checksum і ділить 132 біти на 12 груп по 11; 256 бітів плюс вісім контрольних дають 24 слова. Checksum похідний і не додає випадковості. Далі PBKDF2-HMAC-SHA512 створює 512-бітний seed із фрази та passphrase, але сама довжина 512 не посилює слабких кидків. Формат слів, вхідна ентропія та похідний seed — різні шари. [2]

Для повної картини прочитайте також Cryptographic Entropy, Entropy Bit, BIP 39, Seed Phrase, Entropy Mixing, CSPRNG. На цю статтю також посилаються Cryptographic Entropy, COLDCARD RNG Incident (2026).

DOC · 001COLDCARD — Verifying Seed MixingДокументація DOC · 002BIP 39 — Mnemonic code for generating deterministic keysСпецифікація DOC · 003RFC 4086 — Randomness Requirements for SecurityСпецифікація DOC · 004NIST SP 800-90B — Entropy Sources for Random Bit GenerationСпецифікація DOC · 005Bitcoin Developer Guide — WalletsДокументація
Переглянуто: Спочатку джерела · Не інвестиційна порада