Controle

Zo kan elke trekking van een winactie worden gecontroleerd

Een winactie is alleen eerlijk als niemand, ook de organisator en wijzelf niet, de winnaar kan kiezen of voorspellen. Hier lees je precies hoe GetSocialExport winnaars trekt, en hoe iedereen een trekking kan controleren aan de hand van het certificaat.

De vier stappen van een trekking

  1. De deelnemerslijst wordt vergrendeld. De extensie van de organisator verzamelt de reacties, past de regels van de winactie toe en stuurt de lijst met geldige deelnemers naar onze server. De lijst wordt in een vaste volgorde gezet en de SHA-256-vingerafdruk ervan wordt met het tijdstip vastgelegd. Vanaf dat moment zou het wijzigen van één enkele naam de vingerafdruk veranderen.
  2. Er wordt een toekomstig willekeurig getal gekozen. Op dat moment kiest de server een drand-ronde die pas ongeveer 30 seconden later wordt gepubliceerd. drand is een openbaar toevalsbaken van de League of Entropy (Cloudflare, Protocol Labs, universiteiten en anderen): de getallen zijn niet te voorspellen of te beïnvloeden, en elk getal heeft een handtekening die iedereen kan controleren.
  3. De winnaars worden berekend. Zodra de ronde is gepubliceerd, wordt een seed gemaakt uit de code van de winactie, het nummer van de trekking, de vingerafdruk van de lijst en het willekeurige getal. Uit die seed worden de winnaars met SHA-256 getrokken, zonder bias, waarbij alleen deelnemers met extra kansen volgens de regels zwaarder meetellen.
  4. Alles wordt gepubliceerd. Het certificaat toont de winnaars, de vingerafdruk, de ronde, de seed, het tijdstip waarop de lijst werd vergrendeld, elke nieuwe trekking met de reden en (tenzij de organisator haar privé heeft gemaakt) de volledige deelnemerslijst.

Wat je op een certificaat kunt controleren

Open een certificaat (scan de QR-code) en je browser controleert het zelf, zonder dat je ons hoeft te vertrouwen:

  • de gepubliceerde deelnemerslijst komt overeen met de vingerafdruk die vóór de trekking is vastgelegd;
  • het willekeurige getal komt van drand, met een geldige BLS-handtekening van de League of Entropy;
  • de lijst werd vergrendeld voordat dat willekeurige getal bestond;
  • als je de trekking opnieuw berekent, krijg je precies dezelfde winnaars.

Je kunt ook je naam invullen bij Heb je meegedaan? om te bevestigen dat je in de trekking zat, ook als de organisator de lijst privé houdt.

Wat een certificaat niet bewijst

De trekking zelf is aantoonbaar eerlijk. Het certificaat kan niet bewijzen dat de organisator redelijke regels heeft toegepast of de prijs heeft geleverd. De deelnemerslijst komt uit de extensie van de organisator zelf. Daarom wordt ze gepubliceerd zodat deelnemers haar kunnen controleren, en daarom wordt elke nieuwe trekking met de reden getoond.

Technische details

  • Algoritme: socialexport-draw-v1. Canonieke lijst: één regel per deelnemer, id⇥naam⇥kansen, gesorteerd op id, samengevoegd met regeleinden; vingerafdruk = SHA-256 van die tekst.
  • Toeval: drand-netwerk quicknet, chain 52db9ba70e0cc0f6…, elke 3 s een ronde, BLS-handtekeningen op G1 (RFC 9380).
  • Seed: SHA-256 van de naam van het algoritme, de code van de winactie, het nummer van de trekking, de vingerafdruk van de lijst, de ronde en het toeval, samengevoegd met regeleinden.
  • Trekken: SHA-256(seed ‖ teller) levert 64-bitsgetallen op; waarden boven het grootste veelvoud van het bereik worden verworpen (geen modulo-bias); elke trekking verwijdert de winnaar en diens kansen.
  • Certificaten worden ondertekend door onze server (ECDSA P-256) om te bewijzen wanneer elke lijst is vastgelegd. Publieke sleutel: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdshCP/QsGG2k29W80CHSmWbwYpBNgrrIjTf0qPyQuB8cXXLxsCRaty97SO44XaM3aYr6PMwI4dYc/MnSQ3/aw==

Houd je eigen gecontroleerde winactie →