Inmetro Unicorn Application

Inmetro's Randomness Beacon is a web service, part of the SICCCiber project's effort to generate reliable and public sources of random numbers

About this page

This is a prototype of a random number service using the Unicorn protocol.

It allows users to publish their own seeds within a time frame. At last, the received values are combined by using a pre-defined VDF. The main purpose of this prototype is to propose a secure combination of beacons’ results by using a Verifiable Delay Function(VDF). It has been built based on Lenstra and Wesoloski(2018) proposal.

There are 3 possible states

  • Closed: Waiting for next 9-minute time slot for contributions
  • Open: Open for external contributions
  • Running: Verifiable Delay Funcition is running

Comments:

  • All contributions received from external entities on the web are grouped with the results of Inmetro's Combination Beacon during a time slot. After, they are combined and submitted to the VDF, and the service publishes the random number just before the next Inmetro beacon number is published
  • After the running state, the results are signed, stored and published together with all parameters used to execute the algorithm
  • Prototype allows a verification of the generated numbers via public API route
  • VDF is not performed if there are no contributions

The service is available via a public REST API. Consumers need to provide a pulse generation time in POSIX format. See http://en.wikipedia.org/wiki/Unix_time for more information and http://www.epochconverter.com for an online timestamp converter.


Current State:
beacon.inmetro.gov.br/unicorn/beacon/2.0/current
Example: beacon.inmetro.gov.br/unicorn/beacon/2.0/current

Previous Pulse:
beacon.inmetro.gov.br/unicorn/beacon/2.0/previous/<timestamp>
Example: beacon.inmetro.gov.br/unicorn/beacon/2.0/previous/1712407080000

Next Pulse:
beacon.inmetro.gov.br/unicorn/beacon/2.0/next/<timestamp>
Example: beacon.inmetro.gov.br/unicorn/beacon/2.0/next/1712407080000

Last Available Pulse:
beacon.inmetro.gov.br/unicorn/beacon/2.0/last
Example: beacon.inmetro.gov.br/unicorn/beacon/2.0/last

First Pulse:
beacon.inmetro.gov.br/unicorn/beacon/2.0/first
Example: beacon.inmetro.gov.br/unicorn/beacon/2.0/first



Post a value:
URI: beacon.inmetro.gov.br/unicorn/beacon/2.0
Method: POST
Content-Type: Content-Type: application/json
Body:

{ "seed": "myseedValue", "description": "my description", "uri": "my uri" }



If a request for a Pulse results in no Pulse found, a 404 response is returned.

Prototype

Verificable Delay Function
Submissions: [[Status]]

Next submissions in minute(s)

Start: 2019-08-31T11:30:00.000Z End: 2019-08-31T11:30:00.000Z

Current hash:

Post a new value
Seed List
Timestamp Seed Description Uri CumulativeHash

Viewer

Pulse
Record


Timestamp Seed Description Uri CumulativeHash