Qual é a fraqueza fatal da blockchain? A transparência. Todos os nós conseguem ver todos os dados, o que torna praticamente impossível existir números verdadeiramente aleatórios.
Mas os programadores Web3 precisam muito disso — jogos precisam de loot aleatório, lotarias exigem sorteios justos, contratos inteligentes precisam de entradas imprevisíveis. Sem números aleatórios seguros na blockchain, as chaves podem ser deduzidas, os resultados dos jogos podem ser manipulados.
Como resolve a Oasis?
Usa duas estratégias:
Primeiro passo: gerar RNG a nível de bloco
Sapphire (o runtime EVM confidencial da Oasis) obtém uma chave secreta do gestor de chaves
Usa uma chave temporária (rodada a cada epoch) para encriptar o RNG, garantindo que chaves antigas não possam ser recuperadas
Estas chaves só existem dentro do TEE (Ambiente de Execução de Confiança), observadores externos não conseguem ver o estado do RNG
Usa algoritmos derivados do SHA-3 (TupleHash, KMAC256) para processar esta entropia e gerar um RNG raiz exclusivo para cada bloco
Segundo passo: separar RNG a nível de transação
Cada transação precisa do seu próprio número aleatório
Usa transcrições Merlin para derivar o RNG a nível de transação a partir do RNG raiz
Utiliza dados específicos da transação para customizar a aleatoriedade, garantindo privacidade, justiça e imprevisibilidade
✓ Abstração da complexidade — os programadores não precisam de perceber os detalhes técnicos do RNG na blockchain
✓ Rotação de chaves — uma nova chave é gerada em cada epoch, as antigas são destruídas automaticamente
✓ Proteção de privacidade — o estado do RNG só é visível dentro do TEE
✓ Verificável — baseado em VRF e primitivas criptográficas, pode ser auditado
Este avanço transformou os números aleatórios na blockchain de “praticamente impossíveis” para “prontos a usar”. É uma revolução para jogos NFT, lotarias on-chain e sorteios descentralizados.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
Como resolver números aleatórios on-chain? A Oasis deu a resposta
Qual é a fraqueza fatal da blockchain? A transparência. Todos os nós conseguem ver todos os dados, o que torna praticamente impossível existir números verdadeiramente aleatórios.
Mas os programadores Web3 precisam muito disso — jogos precisam de loot aleatório, lotarias exigem sorteios justos, contratos inteligentes precisam de entradas imprevisíveis. Sem números aleatórios seguros na blockchain, as chaves podem ser deduzidas, os resultados dos jogos podem ser manipulados.
Como resolve a Oasis?
Usa duas estratégias:
Primeiro passo: gerar RNG a nível de bloco
Segundo passo: separar RNG a nível de transação
Como é que os programadores usam isto?
Só uma linha de código:
bytes memory randomPad = Sapphire.randomBytes(32, “”);
Ou para gerar um par de chaves de assinatura aleatoriamente:
bytes memory pk; bytes memory sk; (pk, sk) = Sapphire.generateSigningKeyPair( Sapphire.SigningAlg.Ed25519Pure, Sapphire.randomBytes(32, “”) );
Vantagens principais
✓ Abstração da complexidade — os programadores não precisam de perceber os detalhes técnicos do RNG na blockchain ✓ Rotação de chaves — uma nova chave é gerada em cada epoch, as antigas são destruídas automaticamente ✓ Proteção de privacidade — o estado do RNG só é visível dentro do TEE ✓ Verificável — baseado em VRF e primitivas criptográficas, pode ser auditado
Este avanço transformou os números aleatórios na blockchain de “praticamente impossíveis” para “prontos a usar”. É uma revolução para jogos NFT, lotarias on-chain e sorteios descentralizados.