Конкурс Криптографска проверка на гаранцията

Победителите се избират по ясно дефинирани правила. MegaRandom публикува информация за всеки етап от тегленето, така че никой не може да повлияе на процеса отвън. Накратко, броят на победителя се изчислява според съдържанието на последния BlockChain блок. На всеки 10 минути в базата данни се появяват нови блокове, които не могат да бъдат променяни.

В момента на създаване на състезанието времето се запомня с точност до милисекунди. Това време се превежда в UNIX Time, публикува се на страницата на конкурса и се използва за намиране на победители. Списъкът с участниците се сортира във възходящ ред по id, след което се прилага алгоритъмът за търсене на победител.

Алгоритъм за намиране на победители

  1. По време на тегленето последният наличен блок се взема от публичната база данни на BlockChain.
  2. От него се извлича броят Nonce, който се изчислява по сложен начин на базата на съдържанието на блока.
  3. Броят на Nonce се разделя по модул на броя на участниците и се получава номерът на първия победител.
  4. Ако са необходими повече победители, предишният победител се премахва от списъка с участници. Nonce се комбинира с дата на създаване, разделена със запетая, и се получава хешът md5, от който се изчислява контролната сума CRC32.
  5. За да се определи броят на следващия блок на BlockChain за намиране на победителя, полученият CRC32 се разделя модулно на броя на блоковете към момента на тегленето.

Ако номерът на блока съвпада с последния, тогава се взема първият. Освен това алгоритъмът се повтаря с нов блок.