{"id":9981,"date":"2018-12-16T13:00:00","date_gmt":"2018-12-16T13:00:00","guid":{"rendered":"https:\/\/coinpoker.com\/pt\/?p=9981"},"modified":"2025-05-15T15:36:38","modified_gmt":"2025-05-15T15:36:38","slug":"advanced-transparent-rng-guide","status":"publish","type":"post","link":"https:\/\/coinpoker.com\/pt\/advanced-transparent-rng-guide\/","title":{"rendered":"Guia Avan\u00e7ado Para o Baralhar de Cartas Transparente na CoinPoker"},"content":{"rendered":"\n
At\u00e9 agora,<\/strong> as salas de p\u00f3quer online t\u00eam mantido o segredo sobre o software de baralhar de cartas utilizado. Os jogadores n\u00e3o eram capazes de verificar estes sistemas fechados de baralhar de cartas de forma confi\u00e1vel, e isso \u00e9 algo que o Baralhar Transparente de Cartas da CoinPoker veio mudar.<\/strong><\/p>\n\n\n\n A utiliza\u00e7\u00e3o de fun\u00e7\u00f5es hash criptogr\u00e1ficas de uma via permitiu \u00e0 CoinPoker desenvolver um novo sistema de baralhar de cartas que fornece informa\u00e7\u00f5es seguras sobre o processo do baralhar de cartas. E d\u00e1-lhe as seguintes vantagens:<\/p>\n\n\n\n Antes de entrar na tecnologia por tr\u00e1s do baralhar transparente de cartas, verifique o nosso breve tutorial que o ajudar\u00e1 a testar estas funcionalidades por si!<\/p>\n\n\n\n Se o nosso sistema transparente de baralhar de cartas \u00e9 totalmente novo para is, ent\u00e3o sugerimos que comece com o nosso guia b\u00e1sico aqui<\/a>.<\/p>\n\n\n\n Passo 1: <\/strong>De forma a provar a justi\u00e7a de cada m\u00e3o, precisar\u00e1 de aceder \u00e0s fun\u00e7\u00f5es hash de uma via que mencion\u00e1mos atr\u00e1s. Encontrar\u00e1 estas fun\u00e7\u00f5es ao clicar no bot\u00e3o do RNG Shuffle Order<\/strong> dentro do separador de Hist\u00f3rico de M\u00e3os.<\/p>\n\n\n\n Passo 2<\/strong>: Aqui encontrar\u00e1 uma longa lista de sequ\u00eancias de hash. A primeira sec\u00e7\u00e3o \u00e9 para cada carta ordenada do baralho inicial, seguindo-se as seeds encriptadas de cada jogador da CoinPoker, e por fim as hashes de cada carta no final da ordena\u00e7\u00e3o do baralho.<\/p>\n\n\n\n Pense nestes n\u00fameros listados por baixo de shufffled hashed deck <\/em>como a sua posi\u00e7\u00e3o no baralho, e em que cada hash de jogador tem o seu pr\u00f3prio “fator de agita\u00e7\u00e3o” que \u00e9 submetido no in\u00edcio da m\u00e3o.<\/p>\n\n\n\n Passo 6: <\/strong>Estes dados s\u00e3o in\u00fateis sem uma Ferramenta de Valida\u00e7\u00e3o<\/strong>, a que pode aceder clicando no link no topo da janela.<\/p>\n\n\n\n Passo 7<\/strong>: O pr\u00f3ximo passo \u00e9 validar a m\u00e3o que obteve, o que pode significar uma de duas coisas, dependendo do que pretende fazer:<\/p>\n\n\n\n Para a op\u00e7\u00e3o 1:<\/strong><\/em><\/p>\n\n\n\n Introduza as seeds encriptadas, ou “fatores de agita\u00e7\u00e3o”, como lhes chamamos, na Ferramenta de Valida\u00e7\u00e3o<\/strong>. Estes est\u00e3o marcados com as setas azuis. Os outputs ser\u00e3o “fator coletivo de agita\u00e7\u00e3o”, ou hash combinada<\/strong>, e a ordem final do baralho.<\/strong><\/p>\n\n\n\n Se elas fizerem match, ent\u00e3o verificou com sucesso a sua participa\u00e7\u00e3o no baralhar!<\/p>\n\n\n\n Para a op\u00e7\u00e3o 2:<\/strong><\/em><\/p>\n\n\n\n Escolha uma das cartas dadas (elas ter\u00e3o tanto um hash <\/strong>\u00e0 esquerda, como uma fun\u00e7\u00e3o has encriptada <\/strong>\u00e0 direita. Introduza o hash dentro da fun\u00e7\u00e3o \u00e0 direita da sec\u00e7\u00e3o de Valida\u00e7\u00e3o de Cartas. O output deve ser a hash listada \u00e0 esquerda na CoinPoker, assim como o valor de cartas correto.<\/p>\n\n\n\n Passo 8<\/strong>: Divirta-se a explorar as cartas n\u00e3o dadas e a provar a sua participa\u00e7\u00e3o no primeiro RNG descentralizado de p\u00f3quer!<\/p>\n\n\n\n <\/p>\n\n\n\n A explica\u00e7\u00e3o avan\u00e7ada: Como o RNG transparente da CoinPoker funciona<\/strong><\/p>\n\n\n\n Imagine um baralho de cartas que n\u00e3o foram baralhadas do seguinte modo: 2c, Qd, Kh<\/strong><\/p>\n\n\n\n Na realidade, haveria uma permuta\u00e7\u00e3o de 52 cartas, mas para termos uma melhor ideia de como o processo funciona iremos limitar-nos apenas a tr\u00eas. Usando esta ordena\u00e7\u00e3o, a CoinPoker ir\u00e1 criar um baralho inicial <\/strong>e ir\u00e1 partilh\u00e1-lo com todos os jogadores da mesa nos pr\u00f3ximos passos.<\/p>\n\n\n\n A CoinPoker corre o seu RNG usando um valor secreto, a que nos iremos referir como seed<\/strong>. Este valor s\u00f3 existe temporariamente, e s\u00f3 \u00e9 usado para iniciar o processo.<\/p>\n\n\n\n A CoinPoker usa esta seed aleat\u00f3ria para gerar um Salt Value<\/strong>, ou seja, dados aleat\u00f3rios que agem como a password ou passphrase para fun\u00e7\u00f5es criptogr\u00e1ficas de uma via. Isto \u00e9 combinado com uma carta para criar uma hash <\/strong>para cada carta do baralho. A utiliza\u00e7\u00e3o das tr\u00eas cartas mencionadas atr\u00e1s resulta numa f\u00f3rmula com o seguinte aspeto:<\/p>\n\n\n\n Nota<\/em>: As hashes aa, bb, e cc s\u00e3o simplificadas para efeitos de representa\u00e7\u00e3o. Na realidade, estas s\u00e3o strings de 256 bits e que s\u00e3o um pouco dif\u00edceis de trabalhar, pelo menos para humanos.<\/p>\n\n\n\n A CoinPoker baralha o baralho com hash associado do Passo 2, utilizando a seed aleat\u00f3ria do Passo 1.<\/p>\n\n\n\n A CoinPoker envia este baralho com hash (como um vetor, que inclui todas as cartas com hash na ordem inicial do baralho) para cada jogador.<\/p>\n\n\n\n O prop\u00f3sito de usar as hashes \u00e9 fazer com que seja poss\u00edvel revelar certas cartas do baralho e permite aos jogadores verificarem-nas, sem expor as outros que devem manter-se escondidas durante o jogo (como no caso das cartas alvo de fold). Agora todos os jogadores t\u00eam na sua posse a lista de hashes que revelam a ordem inicial do baralho.<\/strong><\/em><\/p>\n\n\n\n Os pr\u00f3ximos<\/strong><\/em> mostram como o baralho inicial foi transformado no baralho final, utilizando o input dos jogadores, que combinado com o input da CoinPoker forma um input coletivo (a.k.a. um seed agregado). Novamente, estes t\u00eam a designa\u00e7\u00e3o de seeds.<\/strong><\/em><\/p>\n\n\n\n Agora, com o objetivo de simplificar a complexidade deste processo, imagine que h\u00e1 dois jogadores na mesa. Chamemos-lhes Alice e Bob.<\/p>\n\n\n\n A Alice e o Bob precisam de calcular a hash do seu seed que v\u00e3o enviar para a CoinPoker. A f\u00f3rmula ter\u00e1 o seguinte aspeto:<\/p>\n\n\n\n A CoinPoker gera uma nova seed, distinta da do Passo 1. Esta seed aleat\u00f3ria \u00e9 usada para criar uma hash: Hash(CoinPoker_seed) =\u00a0ZZ<\/strong><\/p>\n\n\n\n A seed dos jogadores, assim como a seed da CoinPoker, s\u00e3o compiladas numa lista de seeds agregadas<\/strong>: [XX, YY, ZZ]<\/p>\n\n\n\n A CoinPoker envia um vetor das seeds agregadas para a Alice e para o Bob.<\/p>\n\n\n\n Depois de receberem as seeds agregadas, a Alice e o Bob enviam a sua seed real do Passo 5. Esta \u00e9 a seed que foi usada para criar as hashes. Por isso, Hash(Alice_seed) = XX e Hash(Bob_seed) =\u00a0YY<\/strong>.<\/p>\n\n\n\n As seeds reais s\u00e3o ent\u00e3o usadas para criar uma seed conjunta<\/strong>. Esta nova seed tem em considera\u00e7\u00e3o todas as seeds dos jogadores, assim como a da CoinPoker, resultando num valor que \u00e9 o resultado da contribui\u00e7\u00e3o de todos.<\/p>\n\n\n\n Hash(Alice_seed + Bob_seed + CoinPoker_seed) =\u00a0seed conjunta<\/strong><\/p>\n\n\n\n A CoinPoker usa a seed conjunta para baralhar o baralho inicial. A hash do baralho final \u00e9 distribu\u00edda por todos as posi\u00e7\u00f5es na mesa. Repare que este \u00e9 o baralho final que \u00e9 usado at\u00e9 que uma m\u00e3o esteja completa.<\/p>\n\n\n\n Baralho Inicial: Qd, Kh, 2c \u2192 \u00a0RNG com seed_conjunta \u2192 Baralho Final: Kh, 2c, Qd Uma das principais vantagens de usar fun\u00e7\u00f5es com hash criptogr\u00e1ficas \u00e9 o facto de podermos revelar em seguran\u00e7a a informa\u00e7\u00e3o associada ao baralhar das cartas, e que pode ser usada mais tarde para provar que o baralhar foi justo. Chamamos a este processo a Ferramenta de Valida\u00e7\u00e3o RNG. Continuaremos a mostrar-lhe mais passos para que compreenda como funciona.<\/p>\n\n\n\n Note que nem o Bob nem a Alice conhecem as seeds reais um do outro<\/strong>, e s\u00f3 t\u00eam acesso \u00e0 sua seed pr\u00f3pria real. Aquilo a que t\u00eam acesso \u00e9 \u00e0s hashes de seeds de outros jogadores e \u00e0 CoinPoker (lembre-se dos Passos 8 e 9)<\/strong>.<\/p>\n\n\n\n Depois de a m\u00e3o ter sido jogada, os jogadores receber\u00e3o as seeds reais de todos os participantes, que poder\u00e3o usar para verificar a sua participa\u00e7\u00e3o no baralhar final do baralho, assim como para provar a aleatoriedade da ordena\u00e7\u00e3o das cartas.<\/p>\n\n\n\n Em primeiro lugar, os jogadores devem tomar a seed real de cada um e usarem-na para verificar o valor da hash e se ele \u00e9 correto. Isto \u00e9 feito ao introduzir a seed real na f\u00f3rmula da hash, e verificando se o resultado \u00e9 igual ao valor atual que recebereram.<\/p>\n\n\n\n Assim, quando Hash(Alice_seed) iguala\u00a0XX<\/strong>\u00a0ent\u00e3o \u00e9 verificada como correta<\/p>\n\n\n\n Assim que todas as seeds reais dos jogadores e da CoinPoker forem usadas para verificar as hashes, os jogdores tamb\u00e9m poder\u00e3o verificar se a seed conjunta est\u00e1 correta, introduzindo os valores em falta na fun\u00e7\u00e3o hash:<\/p>\n\n\n\n Hash(alice_seed + bob_seed + server_seed) =\u00a0seed_conjunta<\/strong><\/p>\n\n\n\n Agora que a seed conjunta foi verificada como correta por cada jogador, a Alice ou o Bob podem reverter a fun\u00e7\u00e3o RNG. Ao introduzir a hash e a seed conjunta no baralho final para perceber qual a ordena\u00e7\u00e3o original, os jogadores podem verificar se os resultados do baralho inicial \u00e9 igual \u00e0 que receberam no Passo 4.<\/p>\n\n\n\n Se o resultado for igual \u00e0 ordem da hash inicial do baralho, ent\u00e3o o jogador provou com sucesso que participou na ordena\u00e7\u00e3o do baralho que resultou na sua disposi\u00e7\u00e3o final como se apresenta no fim.<\/p>\n\n\n\n Provar a participa\u00e7\u00e3o \u00e9 apenas o in\u00edcio. Os jogadores tamb\u00e9m podem verificar a aleatoriedade das cartas no baralho final. Isto pode ser feito para todas as cartas da comunidade e para todas as m\u00e3os reveladas por outros jogadores (por isso, n\u00e3o contam as m\u00e3os descartadas). Mas para o objetivo de melhor explicar o processo, mostramos-lhe como pode verificar a justi\u00e7a das duas primeiras cartas:<\/strong><\/em><\/p>\n\n\n\n Assim que a m\u00e3o estiver terminada, os jogadores recebem (al\u00e9m das sees reais) os valores e salts da primeira e segunda cartas recebidas. Note que o valor e salts das cartas foram usados na fun\u00e7\u00e3o Hash do Passo 2:<\/p>\n\n\n\n Hash(Kh<\/strong>+salt3<\/strong>) = cc<\/p>\n\n\n\n Agora que a Alice e o Bob t\u00eam valores para todas as vari\u00e1veis da fun\u00e7\u00e3o hash, eles podem revert\u00ea-los para confirmar se a KH foi realmente a primeira carta no final do baralhar obtido, tal como descrito no Passo 12.<\/p>\n\n\n\n Se a Hash(Kh+salt3)<\/strong>\u00a0resultar em cc<\/strong>, ent\u00e3o o jogador confirma que a hash do baralho final – cc – est\u00e1 correta. Isto pode ser feito para todas as cartas reveladas na mesa.<\/p>\n\n\n\n No caso das cartas que n\u00e3o sa\u00edram para a mesa, ou das m\u00e3os descartadas por fold, os jogadores n\u00e3o recebem um valor de carta ou salt. Ter\u00e3o acesso aos hashes, mas n\u00e3o poder\u00e3o usar este m\u00e9todo para as revelar.<\/p>\n\n\n\n Ainda que a explica\u00e7\u00e3o que demos em cima seja avan\u00e7ada o suficiente para um jogador m\u00e9dio de p\u00f3quer, ela s\u00f3 cobre a ponta do icebeberg para os entusiastas da criptografia. Em baixo deixamos links para o documento original do protocolo, assim como o c\u00f3digo fonte no GitHub:<\/p>\n\n\n\n No esp\u00edrito da transpar\u00eancia, estamos a oferecer 1.000.000 CHP <\/strong>para as pessoas que provem que o sistema de baralhar cartas transparente pode ter problemas. Para mais detalhes sobre as condi\u00e7\u00f5es do bounty e sobre como aceder aos benef\u00edcios, consulte a nossa p\u00e1gina oficial de Bug Bounty aqui<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":" At\u00e9 agora, as salas de p\u00f3quer online t\u00eam mantido o segredo sobre o software de baralhar de cartas utilizado. Os jogadores n\u00e3o eram capazes de verificar estes sistemas fechados de baralhar de cartas de forma confi\u00e1vel, e isso \u00e9 algo que o Baralhar Transparente de Cartas da CoinPoker veio mudar. A utiliza\u00e7\u00e3o de fun\u00e7\u00f5es hash … Guia Avan\u00e7ado Para o Baralhar de Cartas Transparente na CoinPoker<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"none","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"yes","footnotes":""},"categories":[1],"class_list":["post-9981","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/posts\/9981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/comments?post=9981"}],"version-history":[{"count":6,"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/posts\/9981\/revisions"}],"predecessor-version":[{"id":162383,"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/posts\/9981\/revisions\/162383"}],"wp:attachment":[{"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/media?parent=9981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coinpoker.com\/pt\/wp-json\/wp\/v2\/categories?post=9981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}\n
Como usar a ferramenta de valida\u00e7\u00e3o para provar a participa\u00e7\u00e3o<\/h3>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
Passo 1<\/strong><\/h3>\n\n\n\n
Passo 2<\/strong><\/h3>\n\n\n\n
\n
Passo 3<\/strong><\/h3>\n\n\n\n
\n
Passo 4<\/strong><\/h3>\n\n\n\n
Passo 5<\/strong><\/h3>\n\n\n\n
Passo 6<\/strong><\/h3>\n\n\n\n
\n
Passo 7<\/strong><\/h3>\n\n\n\n
Passo 8<\/strong><\/h3>\n\n\n\n
Passo 9<\/strong><\/h3>\n\n\n\n
Passo 10<\/strong><\/h3>\n\n\n\n
Passo 11\u00a0<\/strong><\/h3>\n\n\n\n
Passo 12<\/strong><\/h3>\n\n\n\n
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(Hashes<\/strong>:\u00a0cc, aa, bb)<\/strong><\/p>\n\n\n\nComo Funciona a Ferramenta de Verifica\u00e7\u00e3o RNG<\/strong><\/h2>\n\n\n\n
Passos 13-18: Verifica\u00e7\u00e3o do Impacto dos Jogadores na Ordena\u00e7\u00e3o do Baralho<\/strong><\/h3>\n\n\n\n
Passo 13<\/strong><\/h4>\n\n\n\n
Passo 14<\/strong><\/h4>\n\n\n\n
Passo 15<\/strong><\/h4>\n\n\n\n
Passo 16<\/strong><\/h4>\n\n\n\n
Passo 17<\/strong><\/h4>\n\n\n\n
Passo 18<\/strong><\/h3>\n\n\n\n
Explica\u00e7\u00e3o especializada e o Bug Bounty de 1,000,000 CHP<\/h2>\n\n\n\n
\n