mojdelež.si — RWA · Realna sredstva · Digitalno lastništvo

Za radovedne (tehnično)

Preverjalnik kod

Kako sistem preveri 12 besed, ne da bi jih kdo videl — tehnična razlaga.

Potek

  1. Overitelj pripravi kodo

    Iz 12 besed nastane skrit ključ, iz njega in naključnega števila pa odtis kode (commitment). Overitelj odtis vpiše na verigo in ga veže na eno stvar (registerCommitment).

  2. Lastnik ustvari dokaz

    Brskalnik iz 12 besed izračuna ključ in pripravi ZK dokaz (Groth16) — matematično potrdilo, da ključ ustreza odtisu. Besede ne zapustijo brskalnika.

  3. Preverjalnik ustvari enote

    verifyAndMint preveri dokaz in ustvari enote v denarnico, ki je dokaz poslala.

Kaj preveri, preden ustvari enote

  • dokaz je veljaven in odtis je vpisan za to stvar,
  • koda še ni bila porabljena in stvar je odobrena,
  • vrednost v dokazu ni višja od ocene overitelja,
  • za to stvar enote še niso nastale — nastanejo lahko samo enkrat,
  • sistem ni ustavljen.

Nato lastniku ustvari naročeno število enot, zmanjšano za 0,5 % pristojbine.

Znane pomanjkljivosti

Skrbnik lahko vpiše odtis kodesmel bi samo overitelj — odpravljeno bo pred pravim omrežjem
Overitelj ne more sam preklicati napačne kodeto lahko le skrbnik

Za pravo omrežje je predviden neodvisen varnostni pregled.

Tehnično

Ključpk = SHA-256("rwa:v1:" + besede z vezaji) mod r
Odtiscommitment = Poseidon2([pk, nonce])
DokazCircom 2.1.6, snarkjs Groth16, krivulja BN254
Koda12 besed BIP39 (≈128 bitov)