Bitsler là gì

Đối với những game gambling người chơi luôn lo sợ rằng mình sẽ bị lừa hết tiền . Điều này là vô cùng dễ hiểu vì khi chơi casino online mọi kết quả đều có vẻ dễ dàng thay đổi được bằng công nghệ .Chính vì những rủi ro cơ bản như vậy cộng đồng Bitcoin gambling đã có một giải pháp nó gọi là Provably fair . Cũng giống như những gì Bitcoin giải quyết , phương thức này không yêu cầu bên thứ ba , nó làm trò chơi trở nên hoàn toàn minh bạch bằng cách sử dụng các phương thức mã hóa nâng cao để đảm bảo rằng kết quả trò chơi hông bị giả mạo . Các dễ dàng nhất để sử dụng là dùng các công cụ Provably fair verifiers cho phép người chơi có thể verify kết quả sau mỗi roll để đảm bảo rằng mình không bị lừa trong quá trình chơi bằng cách nhập các thông tin mà trang web cung cấp và check phần roll results nói một cách ngắn gọn đây là một cách cho phép người chơi kiểm tra xem một số được tạo có thực sự ngẫu nhiên hay mà ko bị chỉnh sửa theo bất kỳ cách nào. Các trang Verifiers đc khuyến nghị

Tuy nhiên chúng ta vẫn cảm thấy có gì đấy sai sai . Để chắc chắn thì chúng ta nên hiểu rõ Provably fair hoạt động như thế nào. Bài viết này mình sẽ cố gắng giải thích một cách rõ ràng nhất về cách thức hoạt động của nó .

Provably fair hoạt động như thế nào?

Mặc dù có một số cách để triển khai Provablu fair và mình sẽ cố gắng giải thích một cách phổ biến nhất. Với phương pháp này mỗi roll-result sẽ được tính dựa theo các biến sau :

  • Serverseed : Được cung cấp bởi gambling site
  • Clientseed : Được cung cấp bởi browser của người dùng hoặc có thể điều chỉnh được bởi người dùng
  • Nonce : Một con số tăng với mỗi lần đặt cược

Người chơi sẽ nhận được encrypted hash của serverseed trước khi người chơi bắt đầu gambling và vì thế trang web sẽ ko thể thay đổi nó .Tuy nhiên nó đã được mã hóa bản thân người chơi cũng không thể tính trước được kết quả roll của mình .

Browser của người chơi sẽ tạo ra một clientseed ngẫu nhiên hoặc người chơi có thể tự sửa nó . Bằng cách này chắc chắn trang web sẽ không thể biết clientseed của ng chơi được

Tiếp theo là Nonce được bắt đầu từ 0 hoặc 1 tùy vào trang web và sau mỗi lần đặt cược số Nonce sẽ tăng thêm 1

Tính toán roll result

Giả sử ta có

Clientseed: ClientSeedForDiceSites.com Serverseed unhashed: 293d5d2ddd365f54759283a8097ab2640cbe6f8864adc2b1b31e65c14c999f04 Serverseed hashed: 5ac59780d512265230d5efb3cc238886dc1b457a80b54fbf1f920b99c6505801 Nonce: for the first bet it is 0 on this dice site [PrimeDice]

PrimeDice trước hết sử dụng HMAC hash với giá trị theo công thức :

hmac-sha512[server_seed, client_seed-nonce] # Theo ví dụ hmac-sha512[293d5d2ddd365f54759283a8097ab2640cbe6f8864adc2b1b31e65c14c999f04, ClientSeedForDiceSites.com-0]

Chúng ta sẽ sử dụng một tool online freeformatter.com/hmac-generator.html để tính

Tóm lại là chúng ta kí clientseed + nonce bằng key của serverseed theo HMAC-SHA512

Kết quả

aa671aad5e4565ebffb8dc5c185e4df1ae6d9aca2578b5c03ec9c7750f881922276d8044e5e3d84f158ce411f667e224e9b0c1ac50fc94e9c5eb883a678f6ca2

Bây giờ chọn 5 ký tự đầu tiên [aa671] và chuyển đổi từ giá trị hex thành số thập phân. Bạn cũng có thể sử dụng công cụ trực tuyến như statman.info/conversions/hexadecimal.html để tính toán .

Nếu kết quả là một số > 999.999 thì chúng ta sẽ lấy 5 kí tự tiếp theo là [aad5e] trong trường hợp của chúng ta thì 697969 thỏa mãn . Bây h chúng ta sẽ lấy số đấy module của số đấy với 10000 rồi chia cho 100

697969%[10000]/100 # Kết quả 79.69%

Đối với lần đặt cược tiếp theo trang web sẽ thực hiện đúng như vậy chỉ thay đổi Nonce tăng dần theo mỗi roll và vì thế kết quả cuối là ngẫu nhiên .

Verifying your roll results

Step 1

Trước tiên kiểm tra serverseed hashed xem có phải nó được hash từ serverseed không . Chúng ta sử dụng một tool online khác để kiểm tra [ xorbin.com/tools/sha256-hash-calculator ] để tạo SHA256 từ serverseed. Bạn sẽ so sánh mã này với mã đã hash của server trả về nếu nó giống nhau thì chính tỏ serverseed đã được sử dụng cho kết quả roll .

Step 2

Lặp lại việc tính và so sánh nó với kết quả cả roll server trả về

Sử dụng các tool probably fair

Bởi vì bạn có thể thực hiện hàng chục , hàng trăm hoặc thậm trí hàng nghìn lần đặt cược sẽ thật là vất vả nới mỗi lần chúng ta đặt cược rồi lại phải tính toán bằng tay. Vì vậy cộng đồng Bitcoin Gambling đã hỗ trợ rất nhiều tool để mọi người có thể xác nhận kết quả roll của mình xem có thực sự ko bị thay đổi hay không

ví dụ sử dụng Primedice bạn chỉ cần nhập các thông số trang web yêu cầu

Nếu kết quả giống nhau thì chúng ta biết rằng chúng ta ko bị cheated khi chơi gambling

]]]

Development

Lý thuyết dừng ở đây là được rồi bh đến thực hành .

Mỗi kết quả được sinh ra đều sẽ dựa theo client-seed , server-seednonce

Tạo số ngẫu nhiên

Đầu tiên chúng ta sẽ tạo ngẫu nhiên clientserver seed

Client seed:

function randomString[length] { const availableChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; let randomString = ''; for[let i = 0; i { let index = 0; let result; do { result = parseInt[hashedValue.substring[index * 5, index * 5 + 5], 16]; index += 1; if [index * 5 + 5 > 129] { result = 9999; break; } } while [result >= 1e6]; return [result % 1e4] * 1e-2; }; console.log[getResult['d9b9b9774d35566bdbd33a0050b15f7f3bc0ec68cff1b593994c04b05767573c0c002cb965d506e5ccedf803db8b58c27406e320f2c13dcbc247448dedccec12']]

Bài viết được dịch từ : //dicesites.com/provably-fair

//medium.com/@alexcambose/provably-fair-system-in-javascript-6457e028d2aa

Video liên quan

Chủ Đề