የሎተሪ ምሳሌን በመጠቀም የዘፈቀደ ኦራክልን መጠቀም

አንድ ቀን ጠዋት ስለ አንድ መጣጥፍ አገኘሁ ሊረጋገጥ የሚችል የዘፈቀደ ቁጥር ጀነሬተር በ Waves መድረክ blockchain.

አጠቃላይ ስዕሉ ግልጽ ነበር, ነገር ግን የተለየ የአተገባበር ዘዴ አልነበረም. አንዳንድ ኮዶች፣ ፊርማዎች፣ ምን፣ የት፣ ለምን?

ከአፈ-ፀሐፊው ጋር ብዙ ምክክሮች ፣ በውጤቱም ፣ የሥዕል አመክንዮ (በ PHP ውስጥ የተተገበረ) የዘፈቀደ ቁጥር ለማግኘት ከአልጎሪዝም ጋር ማዋሃድ ተችሏል።

  1. በውድድሩ/ዙር መጀመሪያ ላይ የኮዱ የመጀመሪያ ክፍል (R-code) ከኦራክል እንጠይቃለን።

    በዚህ ጊዜ ስለተጫዋቾች ብዛት፣ የሽልማት ቦታዎች ብዛት፣ የሽልማት ክፍያ መጠን እና በአጠቃላይ የሎተሪ ዕጣው ስለመኖሩ ምንም መረጃ የለም። ቃሉ፣ በግብይት በኩል፣ የግል የዘፈቀደ ኮድ ያወጣል፣ ከዚያም አንድ ጊዜ ብቻ እና በጠየቁት ብቻ መጠቀም ይችላል። በነገራችን ላይ, R-code "ግዢ" ሊሆን ይችላል (የጥያቄው ዋጋ + ለቃል ምላሽ ግብይት ማካካሻ ማለት ነው, ይህ አሁን ባለው መጠን $ 0.015 ገደማ ነው, ኮዱ ራሱ ከክፍያ ነፃ ነው. ) ብዙ ጊዜ አስቀድመው, በኋላ ላይ የምላሽ ግብይቱን ደረሰኝ ላለመጠበቅ. በመረጃ ቋቱ ውስጥ ትንሽ በመደበኛነት የዘመነ ቋት ሠራሁ።

  2. ውድድሩ ብዙውን ጊዜ የሚቆየው 60 ብሎኮች የ Waves platform blockchain ነው ፣ በአሁኑ ጊዜ በግምት 1 ሰዓት ነው። ውድድሩ እንደተጠናቀቀ ይቆጠራል እና ከ60 ብሎኮች በኋላ በውስጡ ቢያንስ ሁለት ትኬቶች ካሉ ፣ይህ ካልሆነ ግን የውድድሩ እንቅስቃሴ ጊዜ ለሚቀጥሉት 60 ብሎኮች ተራዝሟል።
  3. ውድድሩ ከተዘጋ በኋላ ወዲያውኑ የግብይቱን ቀን እንፈጥራለን እና እንልካለን (ለእሱም በግምት $ 0.005 ኮሚሽን እንከፍላለን) አስፈላጊ ከሆነ ፣ ብዙ ፣ በስዕሉ ላይ ሁሉም ሁኔታዎች የተመዘገቡበት እና የታዘዙ የተጫዋቾች ዝርዝር (ትኬቶች) አሸናፊዎቹን መምረጥ ያስፈልገናል.
  4. በዚህ ደረጃ ፣ የኮዱ የመጀመሪያ ክፍል (R-code) እና የግብይት ቀን መታወቂያ (TXID) ቀድሞውኑ አለን። ለቃል ፊርማ በኮንኬቴሽን (R-code + TXID) እንልካቸዋለን፣ በድጋሚ ኮሚሽን + ማካካሻ እንከፍላለን። ቃሉ የተቀበለውን መረጃ ልዩነት እና ንብረት መሆኑን ያረጋግጣል እና በምላሹ የኮዱ ሁለተኛ ክፍል (ኤስ-ኮድ) በ sha256 ቅርጸት ይልክልናል ፣ ይህም የዘፈቀደ ቁጥር ጄኔሬተር መነሻ ነው።
  5. የአሸናፊው ቲኬቱን ተከታታይ ቁጥር የሚያመለክት የዘፈቀደ ቁጥር ለማግኘት፣ S-code ን ከ sha256 ሁለትዮሽ መረጃ ወደ ሄክሳዴሲማል (HEX) ውክልና እንለውጣለን። ከዚያ ከተፈጠረው የ HEX ሕብረቁምፊ, ቁጥር እናገኛለን. የተገኘውን ቁጥር በትኬቶች ብዛት (ሁሉም_ቲኬቶች) በማካፈል ቀሪውን እናገኛለን እና 1 ጨምረናል (ከሁሉም_ቲኬቶች በፊት 1 ቁጥር ለማግኘት)። በውጤቱም, የአሸናፊውን ተከታታይ ቁጥር እናገኛለን.
  6. በሥዕሉ ሁኔታ መሠረት ብዙ አሸናፊዎች ካሉ ፣ ከዚያ ቀደም ሲል የነበሩትን ሥራዎች ከሽልማት ቦታዎች ብዛት ጋር እኩል በሆነ መጠን እንደግማለን። በዚህ አጋጣሚ ፣በእያንዳንዱ ጊዜ ያሸነፈውን ትኬት ከዝርዝሩ ውስጥ እናስወግድ እና ሁሉንም_ቲኬቶችን በ1 እንቀንሳለን እና በS-code ምትክ የቀደመውን ቁጥር እንጠቁማለን።

አንድ የተወሰነ እውነተኛ ምሳሌ እንይ፣ ውድድር ቁጥር 119፡-

ጠቅላላ 7 ትኬቶች (ሁሉም_ቲኬቶች)
የቲኬቱ ዋጋ 50 ሳንቲም (ውርርድ)
የጨዋታ ክፍያ 10% (ክፍያ)

በሎተሪው ሁኔታ 30% ለሽልማት ገንዘብ ይሄዳል, ማለትም. በዚህ ሁኔታ 2 ትኬቶች ሽልማት ማግኘት አለባቸው, መጠኑ በቀመርው መሰረት ይሰላል (Bet * All_tickets-Fee)/2.

1. የተቀበለው አር-ኮድ፡- RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE

2. ውድድሩ ከተዘጋ በኋላ በጥንድ መልክ የቲኬቶች ዝርዝር አለን: ቁጥር + አድራሻ (በውድድሩ ላይ ለመሳተፍ ክፍያ የተከፈለበት የኪስ ቦርሳ አድራሻ). እባክዎን አድራሻዎች ሊደገሙ እንደሚችሉ ልብ ይበሉ ፣ ይህ ማለት አንድ ተሳታፊ ለአንድ ውድድር ብዙ ትኬቶችን ገዝቷል ፣ ይህ በህጉ አይከለከልም።

የግብይት ቀን ተልኳል፡- 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

3. የተጠየቀ ኤስ-ኮድ፡- FTF3uRyaa4F2uAyD6z5a3CNbTXbQLc7fSR6CFNVjgZYV ከአስተያየት ጋር (R-code + TXID):
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S

4. የተቀበለው ኤስ-ኮድ፡- Ri89jHB4UXZDXY6gT1m4LBDXGMTaYzHozMk4nxiuqVXdC

5. አሸናፊዎቹ ተለይተዋል.

6. ክፍያዎችን ተልኳል።

በውጤቱም, በማንኛውም ጊዜ የማጣራት ችሎታ ያለው የሽልማት አሰጣጥ ሂደት በብሎክቼይን ውስጥ ደረጃ በደረጃ ቀረጻ አለን. ውጤቶቹን ለማራመድ አዘጋጁ ከሞላ ጎደል የማይቻል ነው፣ ቢያንስ፣ ከአሁን በኋላ ሳይታወቅ ማድረግ አይቻልም።

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.

ምንጭ: hab.com

አስተያየት ያክሉ