• Open-Letter from CEO: https://privateness.network/wp-content/uploads/2024/07/Invest-Article.odt

  • Social
    • Telegram Announcement Channel
    • Telegram Discussion Group
    • Telegram Trading Channel
    • Twitter
    • Gettr
  • Blog
    • Blog
    • Announcement
    • Development
    • Documentation
  • Wallets
    • Desktop wallet
    • Mobile wallet
  • Roadmap
  • GitBook / Docs
  • Tools & Code
    • Block Explorer
    • Github
    • Main Dev Blog
    • Verify it’s us on-chain
LITEPAPER
logo logo light scheme logo dark scheme
logo logo light scheme logo dark scheme
  • Social
    • Telegram Announcement Channel
    • Telegram Discussion Group
    • Telegram Trading Channel
    • Twitter
    • Gettr
  • Blog
    • Blog
    • Announcement
    • Development
    • Documentation
  • Wallets
    • Desktop wallet
    • Mobile wallet
  • Roadmap
  • GitBook / Docs
  • Tools & Code
    • Block Explorer
    • Github
    • Main Dev Blog
    • Verify it’s us on-chain
DevelopmentNovember 7, 2021

Part 2: NFT lottery / PRNG demonstration

By frahane

1.
Dataset: state of the genesis wallet’s transactions at fixed height (699 in this case), saved to a file that’s saved and signed with our validator key on the Emer chain. Whatever the filename the hash stays and can be validated on chain in Emer block 508398 (showcase File Validator and Name-Value Storage).

2.
Extraction of eligible participants: We have removed team controlled wallets at this point and others that I knew for a fact didn’t belong in the draw (delta with dataset can be verified, also saved to file, signed and checked on chain (block 508450). For this occasion and thanks to small sample it was possible to put both on chain (data and hashsum of said data). You can see here that 4 entries make 2 that self-reference one another, this is for provability.

3.
The PRNG seed key (also file and data) used to generate actual list of random number. Same seed will always produce same numbers. There were 64 participants admissible so it generated 64 numbers at highest possible decimals:

4.
With:

vrf:sha256=c25a3209676970ab5b118357622097e720750b82c2efc7cebc1b0a60c4936fb7

and

ness:sha256=50fc90ac22cfbb6f0996eac1e5c6405de131ba90eb4b0b0dbad3f7ee90bb766d

we have 2 lists on 64 items provably verifiable that can be used together in whatever form to pick a winner/winners. The provably fair is done at this point.

5. [In Part 2 of the documentation, we are here]
Now each participant has a random number associated to it. At this point, for a one winner draw, we could just take the largest or smallest number to determine a winner but we’re doing full proof-of-concept and that includes Randpay. If we would like to determine a winner at this point, it is all on chain and about to become read-only. But for the full PoC Randpay another layer is added.

6.
Randpay challenge is simple: ask for a lottery ticket with 1/64 risk of paying and first (or last) to pay wins, keep running it will eventually (in less than 64 rounds) that every entry has a probabilistic position. That’s where the true magic is: as blockchains can’t do probabilistic very well by default, we’re going the extra-mile for a draw that’s not just a mere draw.
To add more randomness, it is now also possible to put participants and random numbers side-by-side and sort by random number from smallest to largest hence affecting the order in which the participants ‘do their draw’:
1/64 risk means that one will pass eventually.
Randpay is stateless, it doesn’t remember. When a Randpay challenge is provided, the node creates x-participants UTXOs and signs them all but 1 and that’s where the challenger win/lose (doesn’t pay or pay).

Previous Part 1: NFT lottery / PRNG demonstration
Next Part 3: NFT lottery / PRNG demonstration

Related Posts

Add the privacy in the NFTs

September 26, 2020
PrivateNess Network - NESS - CX Fiber Next Generation Blockchain 3.0

NESS supply distribution

September 16, 2020
  • Archives

    • December 2022
    • June 2022
    • April 2022
    • January 2022
    • November 2021
    • July 2021
    • April 2021
    • December 2020
    • November 2020
    • October 2020
    • September 2020
    • August 2020
  • Categories

    • Announcement
    • Development
    • Documentation
  • Meta

    • Log in
    • Entries feed
    • Comments feed
    • WordPress.org
© 2022 PrivateNess Network
  • hello@privateness.network