Blinko

Provably fair

Как убедиться, что мы не сжульничали

Точка взрыва каждого раунда определяется до действий обоих игроков и публикуется в виде хеша. После старта её не может изменить никто — ни мы, ни ваш соперник. После раунда семя за этим хешем раскрывается, и результат может пересчитать кто угодно.

Проверить раунд

Настоящий раунд, проверенный

Все значения ниже опубликованы. Пересчитайте их — получится тот же ответ. Это настоящий раунд, а не иллюстрация.

chain 3ea188595c9e41c0 · index 1

1 · Зафиксировано до раунда

87a1ced498db265b07a34da90df08d088a74ee429dc2a041aef50c8cef827c94

SHA-256 от раскрытого семени равен хешу, опубликованному заранее. В этом вся гарантия: семя нельзя было выбрать, увидев ход раунда.

2 · Раскрыто после раунда

53c095ce747f1b473b564bbf66df4be4e069d93f10405f6ed11f03e4e973af41

3 · Ваше значение тоже участвует

player-m35kue · nonce 41

Ваше собственное значение и счётчик раунда участвуют в расчёте, поэтому исход не выбирается сервером в одиночку.

4 · Точка взрыва

4.77° Проверено

Проверить этот раунд самому →

Где оказываются точки взрыва

Распределение неравномерное. Большинство раундов короткие, немногие длятся долго. Значения рассчитаны по формуле, а не взяты из истории.

Медиана
3.75°
Среднее
7.21°
Минимум
2.80°
Достигают предела 100°
0.97%

Две схемы и то, какая была в вашем раунде

В Blinko работают две схемы проверяемой честности, и вам может встретиться любая. Проверяйте раунд по правильной: они хешируют разное, и не та схема заставит честный раунд выглядеть подделкой.

Хеш-цепочка — соло и LIVE

Семена заранее выстроены в цепочку, где каждое хешируется в предыдущее. В раунде участвуют одно семя, ваше клиентское значение и nonce. SHA-256 берётся от шестнадцатеричного текста семени.

commit = SHA-256(hex text of serverSeed)
digest = HMAC-SHA-256(serverSeed, "clientSeed:nonce")
u      = first 52 bits of digest / 2^52
B      = 2.80 + 0.95 / (1 − u) − 0.95, capped at 100

Честность v3 — дуэли PvP

Оба игрока вносят своё значение, а точка взрыва и первый держатель выводятся под разными HMAC-доменами, поэтому одно не раскрывает другое. SHA-256 берётся от 32 сырых байт семени.

commit  = SHA-256(raw 32-byte serverSeed)
entropy = SHA-256("blinko.fairness.v3" || 0x00 || … || hostSeed || guestSeed)
blast   = HMAC-SHA-256(serverSeed, "blinko.explosion.v3" || 0x00 || entropy)
holder  = HMAC-SHA-256(serverSeed, "blinko.holder.v3" || 0x00 || entropy)

Что это доказательство не покрывает

Оно доказывает честность точки взрыва. Оно ничего не говорит о задержке сети: если ваше соединение медленнее, честная точка взрыва не делает дуэль равной. Это отдельная задача, и она решается отдельно — блокировка отсчитывается по серверному времени, поэтому окно у обоих игроков одинаковое.