Isticmaalka oracle random ah iyadoo la isticmaalayo tusaale bakhtiyaanasiibka

Subax ayaa waxa aan la kulmay maqaal ku saabsan dhaliye lambar random la xaqiijin karo on the blockchain madal hirarka.

Sawirka guud wuxuu ahaa mid cad, laakiin habka gaarka ah ee hirgelinta ma ahayn. Koodhadhka qaarkood, saxeexyada, waa maxay, halkee, sababtu?

La-tashiyo dhowr ah oo lala yeeshay qoraaga oracle, natiijada, waxaa suurtagal ah in la isku daro caqli-celinta sawir-qaadista (oo lagu hirgeliyay PHP) iyada oo la adeegsanayo algorithm si loo helo lambar aan toos ahayn.

  1. Bilawga tartanka/wareega, waxaanu ka codsanaynaa qaybta koowaad ee koodka (R-code) ee oracle.

    Wakhtigan xaadirka ah, ma jiraan wax macluumaad ah oo ku saabsan tirada ciyaartoyga, tirada goobaha abaal-marinta, cabbirka lacagaha abaal-marinta, ama guud ahaan jiritaanka bakhtiyaanasiibka. Oracle-ku, iyada oo loo marayo macaamil ganacsi, wuxuu soo saaraa koodh random shakhsi ah, kaas oo markaa la isticmaali karo hal mar oo kaliya oo ay isticmaalaan kaliya kuwa codsaday. Jid ahaan, R-code waa la "iibsan karaa" (macneheedu waa qiimaha macaamilka codsiga + magdhowga oraahda ee macaamilka jawaabta, tani waa qadar ku saabsan $ 0.015 heerka hadda jira, koodhka laftiisa ayaa lagu soo bandhigay lacag la'aan ) dhowr jeer ka hor, si aan loo sugin rasiidka macaamilka jawaabta mar dambe. Waxaan ku dhex sameeyay kayd yar oo si joogto ah loo cusboonaysiiyay ee kaydka

  2. Tartanku inta badan waxa uu socdaa 60 baloog oo ka mid ah mawjadaha mawjadaha ee blockchain, wakhtigan xaadirka ah waa ku dhawaad ​​1 saac. Tartanka ayaa loo arkaa in la dhameeyay oo la xidhay haddii 60 baloog ka dib ay jiraan ugu yaraan laba tigidh, haddii kale wakhtiga waxqabadka tartanka ayaa la kordhiyey 60ka baloog ee soo socda.
  3. Isla markiiba ka dib markii uu xidhmo tartanka, waxaanu soo saareynaa oo u dirnaa macaamil ganacsi (waxaan sidoo kale bixinaa komishanka qiyaastii $ 0.005), haddii loo baahdo, dhowr, kaas oo dhammaan shuruudaha sawirka lagu duubay iyo liiska la amray ee ciyaartoyda (tigidhada) kaas oo aan uga baahannahay in aan ka xulno kuwa ku guulaysta.
  4. Marxaladan, waxaan horey u haysanay qeybta koowaad ee koodhka (R-code) iyo aqoonsiga taariikhda macaamilka (TXID). Waxaan u dirnaa saxeexa odhaahda qaab iskuxirid ah (R-code + TXID), mar labaad waxaanu bixinaa guddi + magdhow. Oracle-ku waxa uu hubinayaa xogta la helay in ay gaar tahay iyo lahaanshaha, jawaabteedana waxa ay noo soo dirtaa qaybta labaad ee koodka (S-code) ee qaabka sha256, taas oo ah halka laga bilaabayo koronto-dhaliyaha lambarka random.
  5. Si loo helo lambar random ah oo tilmaamaya tirada isku xigxiga ee tigidhka guusha, waxaan ka bedelnaa S-code xogta sha256 ee sha1 matalaad hexadecimal (HEX). Kadibna ka soo baxa xargaha HEX, waxaan helnaa lambar. Waxaan helnaa inta ka hartay qaybinta tirada natiijada tirada tigidhada (all_tikidhada) oo ku dar 1 natiijada (si aad u hesho lambarka XNUMX ka hor all_tikidhada). Natiijo ahaan, waxaan helnaa lambarka taxanaha ah ee guuleystaha.
  6. Haddii, marka loo eego shuruudaha sawirka, waxaa jira dhowr guuleyste, ka dibna waxaan ku celineynaa hawlgalladii hore ee qaddarka u dhigma tirada goobaha abaalmarinta. Xaaladdan oo kale, mar kasta oo aan ka saarno liiska tigidh hore u guuleystay oo dhan_tikidhada ku dhimay 1, iyo halkii S-code waxaan ku tusin tirada hore helay.

Aynu eegno tusaale gaar ah oo dhab ah, tartanka No. 119:

Wadarta 7 tigidh (dhammaan_tigidhada)
Qiimaha tigidhku waa 50 qadaadiic (Bet)
Qiimaha ciyaarta 10% (Khidmad)

Marka loo eego shuruudaha bakhtiyaanasiibka, 30% waxay aadaysaa lacagta abaalmarinta, i.e. Xaaladdan oo kale, 2 tigidh waa inay helaan abaal-marin, cabbirkooda waxaa loo xisaabiyaa si waafaqsan qaacidada (Bet * All_tickets-Fee)/2.

1. R-koodka la helay: RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. Kadib xidhitaanka tartanka, waxaanu haynaa liiska tigidhada ee qaabka lammaane: nambar + ciwaanka (cinwaanka boorsada lacagta ee ka qaybgalka tartanka). Fadlan ogow in ciwaanada lagu soo celin karo, tani waxay la macno tahay in ka qaybgale uu iibsaday dhawr tigidh oo hal tartan ah, tani maaha mid sharcigu mamnuucayo.

Taariikhda wax kala iibsiga ayaa la diray: 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. S-koodka la codsaday: FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV oo leh faallo (R-code + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. S-koodka la helay: Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. Waxaa la go'aamiyay guuleystayaasha.

6. Lacagaha la diray

Natiijo ahaan, waxaan haynaa duubitaan tallaabo tallaabo ah oo ku saabsan habka sawir-qaadista abaalmarinta ee blockchain oo awood u leh in lagu hubiyo wakhti kasta. Way ku dhowdahay wax aan macquul ahayn qabanqaabiyuhu inuu maareeyo natiijooyinka; ugu yaraan, mar dambe ma dhici doonto in la sameeyo iyada oo aan la dareemin.

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

Add a comment