Kushandisa chirevo chisina kujairika uchishandisa muenzaniso werotari

Mamwe mangwanani ndakaona imwe nyaya yaitaura Verifiable random number jenareta paWaves pachikuva blockchain.

Mufananidzo wakazara waive wakajeka, asi nzira chaiyo yekushandisa yakanga isiri. Mamwe macode, siginicha, chii, kupi, nei?

Kubvunzana kwakawanda nemunyori weiyo oracle, semhedzisiro, zvakakwanisika kusanganisa iyo yekudhirowa logic (yakaiswa muPHP) nealgorithm yekuwana nhamba isina kurongeka.

  1. Pakutanga kwemakwikwi / kutenderera, tinokumbira chikamu chekutanga chekodhi (R-code) kubva kune oracle.

    Panguva ino, hapana ruzivo nezvehuwandu hwevatambi, huwandu hwenzvimbo dzemibairo, saizi yekubhadharwa kwemubairo, kana kuvepo kweroti zvakazara. Chirevo, kuburikidza nekutengeserana, chinoburitsa kodhi isina kurongeka, iyo inogona kushandiswa kamwe chete uye chete neavo vakaikumbira. Nenzira, R-code inogona "kutengwa" (zvinoreva mutengo wekukumbira kwekutengeserana + kubhadharwa kune oracle yekutengeserana kwemhinduro, iyi imari inosvika madhora 0.015 pamutengo wezvino, iyo code pachayo inobudiswa pasina muripo. ) kakawanda pachine nguva mberi, kuitira kuti usamirira kugamuchirwa kwekutengeserana kwemhinduro gare gare. Ndakagadzira diki inogara yakagadziridzwa buffer mudhatabhesi.

  2. Mutambo uyu unowanzo tora makumi matanhatu zvidhinha zveWaves platform blockchain, panguva ino ingangoita 60 awa. Makwikwi anoonekwa seakapedzwa uye akavharwa kana mushure mezvivharo makumi matanhatu paine anokwana matikiti maviri mairi, zvikasadaro nguva yemitambo yemakwikwi inowedzerwa kune anotevera makumi matanhatu mabhuraki.
  3. Pakarepo mukwikwidzi wavhara, tinogadzira uye nekutumira zuva rekutengesa (isu tinobhadharawo komisheni inosvika madhora 0.005 pairi), kana zvichidikanwa, akati wandei, umo mamiriro ese ekudhirowa anorekodhwa uye rondedzero yevatambi (matikiti) kubva kwatinofanira kusarudza vanokunda.
  4. Panguva ino, isu tatova nechikamu chekutanga chekodhi (R-code) pamwe neiyo transaction date ID (TXID). Tinovatumira kuti vasayine kune oracle nenzira ye concatenation (R-code + TXID), zvakare tinobhadhara komisheni + muripo. Iyo oracle inotarisa iyo yakagamuchirwa dhata yekusarudzika uye ndeye, uye mukupindura inotitumira chikamu chechipiri chekodhi (S-code) mu sha256 fomati, inova nzvimbo yekutanga yeasina kurongeka nhamba jenareta.
  5. Kuti tiwane nhamba isina kurongeka inotaridza kutevedzana kwenhamba yetikiti rekuhwina, tinoshandura S-code kubva pasha256 binary data kuenda kune hexadecimal (HEX) inomiririra. Zvadaro kubva pakuguma kweHEX tambo, tinowana nhamba. Isu tinowana zvakasara zvekugovanisa nhamba inobuda nenhamba yematikiti (all_tickets) towedzera 1 kune mhedzisiro (kuti tiwane nhamba 1 pamberi pematikiti ese). Nekuda kweizvozvo, tinowana serial nhamba yeakunda.
  6. Kana, maererano nemamiriro ekudhirowa, kune vakundi vakati wandei, saka tinodzokorora mashandiro apfuura muhuwandu hwakaenzana nehuwandu hwenzvimbo dzemibairo. Muchiitiko ichi, nguva imwe neimwe yatinobvisa kubva pakurongwa tikiti rakatokunda uye kuderedza all_tickets ne1, uye panzvimbo yeS-code tinoratidza nhamba yapfuura yakagamuchirwa.

Ngatitarisei muenzaniso chaiwo, mutambo Nha. 119:

Ese matikiti manomwe (ese_matiketi)
Tikiti rinodhura makumi mashanu emari (Bet)
Muripo wemutambo 10% (Muripo)

Maererano nemamiriro ezvinhu e lottery, 30% inoenda kumubairo wemari, i.e. mune iyi kesi, 2 matikiti anofanirwa kugamuchira mubairo, saizi yaro inoverengerwa zvinoenderana neformula (Bet * all_tickets-Fee)/2.

1. Yakagamuchira R-kodhi: RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. Mushure mokunge mutambo wacho wavhara, tine urongwa hwetikiti mumhando yevaviri: nhamba + kero (kero yechikwama kubva kune kubhadhara kwekutora chikamu mumakwikwi akaitwa). Ndokumbira utarise kuti kero dzinogona kudzokororwa, izvi zvinoreva kuti mumwe mutori wechikamu akatenga matikiti akati wandei kuenda kumutambo mumwe; izvi hazvirambidzwe nemitemo.

Zuva rekutengeserana ratumirwa: 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. Yakakumbirwa S-code: FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV nekutaura (R-code + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. Yakagamuchira S-code: Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. Vakundi vakanga vakatsunga.

6. Akatumira mari

Nekuda kweizvozvo, isu tine nhanho-ne-nhanho yekurekodha yemaitiro ekudhirowa mibairo mu blockchain nekugona kuitarisa chero nguva. Zvinenge zvisingaite kuti murongi ashandise zvabuda; zvirinani, hazvichagone kuzviita usingaonekwe.

determine the winner β„– 1

All_tickets:
Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:145
Index: 5 Ticket:147
Index: 6 Ticket:149
Index: 7 Ticket:151

1. bin -> hex ( bin2hex(sha256(S-code)) ): Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC -> 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596

2. hex -> gmp number: 0xdaf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 99037963059744689166154019807924045947962565922868104113173478160267437352342

3. gmp -> modulo (mod=7): 99037963059744689166154019807924045947962565922868104113173478160267437352342 -> 4

4. modulo -> ticket: 4 -> 145

determine the winner β„– 2

All_tickets:

Index: 1 Ticket:139
Index: 2 Ticket:141
Index: 3 Ticket:143
Index: 4 Ticket:147
Index: 5 Ticket:149
Index: 6 Ticket:151

1. bin -> hex ( bin2hex(sha256(previous hex)) ): daf5802953dcb27f89972e38e8900b898733f6a613e6e1c6c5491362c1832596 -> 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0
2. hex -> gmp number: 0x9560e77525e9ea2db92cdb8484dc52046ccafac7c719b8859ff55f0eb92834a0 -> 67565829218838067182838043983962684143266386786567427968312120473742580659360
3. gmp -> modulo (mod=6): 67565829218838067182838043983962684143266386786567427968312120473742580659360 -> 1
4. modulo -> ticket: 1 -> 139

End.

Source: www.habr.com

Voeg