์ด๋ ๋ ์์นจ์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ฌ๋ฅผ ๋ณด์์ต๋๋ค.
์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ ๋ช ํํ์ง๋ง ๊ตฌ์ฒด์ ์ธ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ทธ๋ ์ง ์์์ต๋๋ค. ์ผ๋ถ ์ฝ๋, ์๋ช , ๋ฌด์์, ์ด๋์, ์?
์ค๋ผํด ์์ฑ์์ ์ฌ๋ฌ ์ฐจ๋ก ํ์ํ ๊ฒฐ๊ณผ ๊ทธ๋ฆฌ๊ธฐ ๋ก์ง(PHP๋ก ๊ตฌํ๋จ)๊ณผ ๋์๋ฅผ ์ป๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐํฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ํ ๋๋จผํธ/๋ผ์ด๋ ์์ ์ ์ค๋ผํด์ ์ฝ๋(R ์ฝ๋)์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ์์ฒญํฉ๋๋ค.
ํ์ฌ๋ก์๋ ํ๋ ์ด์ด ์, ๊ฒฝํ ์ฅ์ ์, ์๊ธ ์ง๊ธ ๊ท๋ชจ ๋๋ ๋ณต๊ถ์ ์กด์ฌ ์ฌ๋ถ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์ค๋ผํด์ ๊ฑฐ๋๋ฅผ ํตํด ๊ฐ์ธ ๋๋ค ์ฝ๋๋ฅผ ๋ฐํํ๋ฉฐ, ์ด ์ฝ๋๋ ์์ฒญํ ์ฌ๋๋ง ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ R ์ฝ๋๋ "๊ตฌ๋งค"ํ ์ ์์ต๋๋ค. (์์ฒญ ํธ๋์ญ์ ๋น์ฉ + ์๋ต ํธ๋์ญ์ ์ ๋ํ ์ค๋ผํด์ ๋ํ ๋ณด์์ ์๋ฏธํ๋ฉฐ ์ด๋ ํ์ฌ ํ์จ๋ก ์ฝ $0.015์ ๊ธ์ก์ด๋ฉฐ ์ฝ๋ ์์ฒด๋ ๋ฌด๋ฃ๋ก ๋ฐํ๋ฉ๋๋ค. ) ๋์ค์ ์๋ต ํธ๋์ญ์ ์ด ์์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ก ๋ฏธ๋ฆฌ ์ฌ๋ฌ โโ๋ฒ ์ํํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ์์ ๋ฒํผ๋ฅผ ๋ง๋ค์์ต๋๋ค.
- ํ ๋๋จผํธ๋ ์ผ๋ฐ์ ์ผ๋ก Waves ํ๋ซํผ ๋ธ๋ก์ฒด์ธ์ 60๊ฐ ๋ธ๋ก์์ ์งํ๋๋ฉฐ ํ์ฌ ์ฝ 1์๊ฐ ๋์ ์งํ๋ฉ๋๋ค. 60๊ฐ ๋ธ๋ก ์ดํ ์ต์ 60๊ฐ์ ํฐ์ผ์ด ์์ผ๋ฉด ํ ๋๋จผํธ๋ ์๋ฃ๋๊ณ ์ข ๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ XNUMX๊ฐ ๋ธ๋ก์ ๋ํด ํ ๋๋จผํธ ํ๋ ์๊ฐ์ด ์ฐ์ฅ๋ฉ๋๋ค.
- ํ ๋๋จผํธ๊ฐ ์ข ๋ฃ๋ ์งํ, ์ฐ๋ฆฌ๋ ๋ ์ง ํธ๋์ญ์ (์ฝ $0.005์ ์์๋ฃ๋ ์ง๋ถํจ)์ ์์ฑํ์ฌ ๋ณด๋ ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ถ์ฒจ์ ๋ชจ๋ ์กฐ๊ฑด์ด ๊ธฐ๋ก๋ ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์ ๊ณผ ์ฃผ๋ฌธํ ํ๋ ์ด์ด ๋ชฉ๋ก(ํฐ์ผ)์ ๋ณด๋ ๋๋ค. ๊ทธ ์ค์์ ์น์๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
- ์ด ๋จ๊ณ์์๋ ์ด๋ฏธ ์ฝ๋์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ(R ์ฝ๋)๊ณผ ๊ฑฐ๋ ๋ ์ง ID(TXID)๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ช ์ ์ํด ์ฐ๊ฒฐ(R ์ฝ๋ + TXID) ํ์์ผ๋ก ์ค๋ผํด์ ์ ์กํ๊ณ ๋ค์ ์์๋ฃ + ๋ณด์์ ์ง๋ถํฉ๋๋ค. ์ค๋ผํด์ ์์ ๋ ๋ฐ์ดํฐ์ ๊ณ ์ ์ฑ๊ณผ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๊ทธ์ ๋ํ ์๋ต์ผ๋ก ๋์ ์์ฑ๊ธฐ์ ์์์ ์ธ sha256 ํ์์ ์ฝ๋(S ์ฝ๋)์ ๋ ๋ฒ์งธ ๋ถ๋ถ์ ๋ณด๋ ๋๋ค.
- ๋น์ฒจ ํฐ์ผ์ ์ํ์ค ๋ฒํธ๋ฅผ ๋ํ๋ด๋ ๋์๋ฅผ ์ป๊ธฐ ์ํด sha256 ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ S ์ฝ๋๋ฅผ 1์ง์(HEX) ํํ์ผ๋ก ๋ณํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒฐ๊ณผ HEX ๋ฌธ์์ด์์ ์ซ์๋ฅผ ์ป์ต๋๋ค. ๊ฒฐ๊ณผ ์ซ์๋ฅผ ํฐ์ผ ์(all_tickets)๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๊ณ ๊ฒฐ๊ณผ์ 1์ ๋ํฉ๋๋ค(all_tickets ์์ ์ซ์ XNUMX์ ์ป์ผ๋ ค๋ฉด). ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ์น์์ ์ผ๋ จ ๋ฒํธ๋ฅผ ์ป์ต๋๋ค.
- ์ถ์ฒจ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฐ์น์๊ฐ ์ฌ๋ฌ ๋ช ์ธ ๊ฒฝ์ฐ ๊ฒฝํ ์์ ๋์ผํ ๊ธ์ก์ผ๋ก ์ด์ ์์ ์ ๋ฐ๋ณตํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฏธ ๋น์ฒจ๋ ํฐ์ผ์ ๋ชฉ๋ก์์ ์ ๊ฑฐํ๊ณ all_tickets๋ฅผ 1์ฉ ์ค์ผ ๋๋ง๋ค S ์ฝ๋ ๋์ ์ด์ ์ ๋ฐ์ ํฐ์ผ ๋ฒํธ๋ฅผ ํ์ํฉ๋๋ค.
๊ตฌ์ฒด์ ์ธ ์ค์ ์์ธ ํ ๋๋จผํธ ๋ฒํธ 119๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด 7๋งค(all_tickets)
ํฐ์ผ ๋น์ฉ 50์ฝ์ธ(๋ฒ ํ
)
๊ฒ์ ์์๋ฃ 10% (์์๋ฃ)
๋ณต๊ถ ์กฐ๊ฑด์ ๋ฐ๋ผ 30%๊ฐ ์๊ธ์ผ๋ก ์ง๊ธ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ 2์ฅ์ ํฐ์ผ์ด ์ํ์ ๋ฐ์์ผ ํ๋ฉฐ ๊ทธ ํฌ๊ธฐ๋ (Bet*all_tickets-Fee)/2 ๊ณต์์ ๋ฐ๋ผ ๊ณ์ฐ๋ฉ๋๋ค.
1. ์์ ๋ R ์ฝ๋:
2. ํ ๋๋จผํธ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ฒํธ + ์ฃผ์(ํ ๋๋จผํธ ์ฐธ๊ฐ ๋น์ฉ์ ์ง๋ถํ ์ง๊ฐ ์ฃผ์) ์ ํํ์ ํฐ์ผ ๋ชฉ๋ก์ด ์์ฑ๋ฉ๋๋ค. ์ฃผ์๊ฐ ๋ฐ๋ณต๋ ์ ์๋ค๋ ์ ์ ์ ์ํ์ธ์. ์ด๋ ํ ์ฐธ๊ฐ์๊ฐ ํ ํ ๋๋จผํธ์ ํฐ์ผ์ ์ฌ๋ฌ ์ฅ ๊ตฌ์ ํ์์ ์๋ฏธํ๋ฉฐ ์ด๋ ๊ท์น์ ์ํด ๊ธ์ง๋์ง ์์ต๋๋ค.
์ ์ก๋ ๊ฑฐ๋ ๋ ์ง:
3. ์์ฒญ๋ S ์ฝ๋:
RdbAiAhKhveAtR4eyTKq75noMxdcEoxbE6BvojJjM13VE 82JTMzhHM5xEA2fQ9Qscd5QAJU3DAd8nShLjdVHTer5S
4. ์์ ๋ S ์ฝ๋:
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.
์ถ์ฒ : habr.com