Secret VRF : aleatoriedade segura e verificável para o ecossistema IBC
Obtenha números aleatórios seguros e verificáveis para seus contratos inteligentes com o Secret VRF, uma solução RNG on-chain compatível com IBC!
O Secret VRF , um gerador de números aleatórios seguro e verificável integrado à Secret Network e acessível a todos as blockchains conectadas ao IBC, agora está disponível para os desenvolvedores começarem a usar !
O VRF secreto ( função aleatória verificável ) permite a criação de números verdadeiramente aleatórios na blockchain, sem comprometer a segurança ou a usabilidade. Não há necessidade de confiar em soluções off-chain que geralmente não são confiáveis, centralizadas, caras e prejudiciais à experiência do usuário. Em vez disso, esse gerador de números aleatórios verificável existe na própria blockchain, tornando-o a solução ideal para todos os aplicativos descentralizados.
Continue lendo para saber mais sobre os desafios técnicos do RNG on-chain, como o Secret VRF os resolve e os casos de uso que ele desbloqueia!
O desafio do On-Chain RNG
A aleatoriedade é um componente essencial em muitos tipos de aplicações. Os jogos exigem isso para permanecer imprevisíveis e justos. Os protocolos de segurança exigem que ele gere chaves de criptografia fortes. Loterias e concursos precisam disso para selecionar os vencedores de forma justa. DAOs e outras formas de governança podem usá-lo para selecionar representantes para um cargo ou processo de tomada de decisão. No entanto, gerar aleatoriedade verdadeira em uma blockchain não é uma tarefa simples.
A tecnologia Blockchain foi projetada para ser determinística, o que significa que a mesma entrada computada no mesmo estado sempre produzirá a mesma saída. Esse recurso pode ser um problema para o RNG porque os números aleatórios são, por definição, imprevisíveis. Um sistema blockchain deve encontrar uma maneira de gerar números aleatórios que não são previsíveis enquanto ainda são determinísticos.
Além disso, as soluções RNG que tentam obter aleatoriedade de uma blockchain são frequentemente suscetíveis a adulteração devido à natureza pública da maioria das blockchains. Por exemplo, se uma solução RNG obtém aleatoriedade de hashes de bloco, um validador pode tentar publicar apenas um bloco se o hash resultar em um resultado favorável.
Uma solução alternativa é obter aleatoriedade de dados fora da rede, ou “oráculos”, mas essas fontes geralmente são centralizadas e não confiáveis, o que significa que os dados podem ter sido adulterados antes de serem entregues à blockchain.
O VRF secreto resolve todos esses problemas!
Como o Secret VRF resolve o RNG
A Secret Network é construída sobre o Tendermint , um protocolo de rede peer-to-peer que fornece consenso de Tolerância a Falhas Bizantinas (BFT) e Proof-of-Stake (PoS). Os validadores são selecionados com base em uma média ponderada que representa sua parcela de tokens delegados.
Veja como um bloco é introduzido e compilado na Secret Network:
- O node de proposta selecionado inicia o processo
- Proponente compila transações mempool em um bloco
- O bloco proposto é transmitido a todos os nodes em um estágio de pré-votação, que verifica se um bloco válido foi enviado
- Se uma supermaioria de nodes (⅔) pré-votar para este bloco, ele se torna válido
- O bloco válido é adicionado à rede imutável
Um componente-chave para bloquear a validação na Rede Secret é o estágio de pré-votação mencionado anteriormente. É aqui que entra o Secret VRF. Durante esta fase de pré-votação, um número aleatório verificável é anexado a cada bloco proposto. Esse número pode ser usado por aplicativos como uma Seed RNG na rede.
Manter a integridade de um RNG é multifacetado:
- RNG tem entropia suficiente
- O proponente do bloco não pode saber o número aleatório antes dos outros
- Atores externos não podem prever o número com antecedência
A utilização da tecnologia SGX pela Secret Network permite a computação privada na chain e oferece uma vantagem distinta como provedora de privacidade na interchain. Para oferecer aleatoriedade entre redes como um serviço, a Secret Network emprega SGX para gerar um número aleatório na rede durante a fase de proposta de bloco do Tendermint. Os proponentes do bloco usam a instrução RDRAND/RDSEED para gerar um número aleatório dentro do Trusted Execution Environment.
Além de usar o SGX para gerar números aleatórios, a Secret Network aumenta a segurança dos números aleatórios gerados integrando uma Seed de aleatoriedade inicial (IRS). O IRS decorre de uma seed de consenso comum que todos os nodes da rede compartilham e o número aleatório e o IRS são mesclados por meio de um algoritmo conhecido como HKDF (RFC5869). Esse processo garante que o número resultante seja genuinamente aleatório e permaneça imprevisível, mesmo que alguém tente manipular a geração do número aleatório original.
Para garantir a segurança do número aleatório produzido pelo proponente do bloco, um número significativo de validadores de rede deve aprovar o bloco proposto antes que o número criptografado possa ser decifrado.
Secret-VRF — Aleatoriedade na cadeia — Rede Secret
Uma descrição da função SecretVRF
O mecanismo de pré-votação no Tendermint permite que a blockchain sinalize que o bloco proposto foi autorizado pela maioria dos validadores de rede, fornecendo garantia para as tentativas de execução do bloco. Como resultado, a Seed de aleatoriedade inicial só pode ser descriptografada se os nós enviarem 2/3 da maioria dos pré-commits/commits para o TEE. O TEE verificará então essa maioria e descriptografará a seed, retornando-a ao solicitante em sua forma descriptografada, que pode ser usada para aleatoriedade da rede.
Uma prova extra é fornecida juntamente com o número criptografado para garantir a segurança máxima. Essa prova garante que um número aleatório proposto é consistente com a altura do bloco e o conjunto de validadores ativos.
Uma função unidirecional é utilizada para gerar a prova, levando em consideração o valor aleatório criptografado, a altura do bloco, o conjunto de validadores ativos e a Chave de Criptografia Aleatória (que é descriptografável exclusivamente por nodes de rede apenas dentro do TEE). Com a chave de prova, os enclaves SGX podem verificar se a prova foi gerada dentro do enclave e é legítima.
Casos de uso
Jogos
Muitos dApps Web3 são jogos que usam RNGs para determinar os resultados do jogo, como lançamentos de dados ou sorteios de cartas. Os RNGs são usados para garantir que os resultados do jogo sejam aleatórios e não possam ser manipulados.
Loterias e Sorteios
As loterias e rifas baseadas na Web3 usam RNGs para selecionar vencedores de forma justa e aleatória. Isso pode se estender além de simples loterias monetárias para loterias municipais administradas pelo governo, como aquelas que determinam admissões e matrículas escolares.
Finanças Descentralizadas (DeFi)
Os protocolos DeFi usam RNGs para selecionar validadores, distribuir recompensas e determinar a taxa de juros para pools de empréstimos. Os RNGs podem ajudar a garantir justiça e descentralização.
Mint de NFT
Os RNGs são usados para gerar tokens não fungíveis (NFTs) exclusivos que são criados na blockchain. Os RNGs são usados para garantir que os NFTs sejam únicos, não consecutivos e não possam ser duplicados.
Governança
Alguns protocolos Web3 usam RNGs para selecionar participantes aleatórios para processos de tomada de decisão ou para determinar a ordem dos votos.
Computação multipartidária
Os dApps usam RNGs em cálculos multipartidários, onde várias partes computam conjuntamente uma função sobre suas entradas sem revelar suas entradas umas às outras. O uso de RNGs garante que o cálculo seja justo e imparcial, não favorecendo nenhuma parte envolvida em detrimento de outra.
Limitando os vetores secretos de ataque VRF
Se o RNG for um elemento crítico na infraestrutura de segurança de um dApps, ele se torna um potencial vetor de ataque. Qualquer fraqueza ou vulnerabilidade no algoritmo RNG pode ser explorada por invasores para comprometer todo o sistema blockchain, portanto, a segurança deve ser a principal prioridade. A Secret Network está perfeitamente preparada para manter a segurança por meio do uso de ambientes de execução confiáveis – neste caso, SGX.
O isolamento do SGX pode ser usado para limitar os vetores de ataque em geradores de números aleatórios (RNGs) em um sistema blockchain.
Os TEEs isolam a execução de código e dados do sistema operacional principal, limitando a visibilidade e reduzindo a superfície de ataque no VRF. O RNG pode ser implementado dentro do SGX, tornando-o significativamente mais seguro do que a computação on-chain transparente.
Garantia
Os TEEs também podem fornecer uma maneira de verificar a integridade do código em execução no TEE. Isso fornece garantia de que o RNG está funcionando corretamente e não foi comprometido.
Vedação
TEEs também podem fornecer vedação, que é um mecanismo para criptografar dados e armazená-los com segurança dentro do TEE. Isso é usado para armazenar o estado inicial do RNG, tornando mais difícil para os invasores acessar ou manipular a seed do RNG.
Entrada/saída segura
Os TEEs fornecem um mecanismo de entrada/saída seguro, que garante que dados confidenciais, como a saída RNG criptografada, não sejam expostos a componentes não confiáveis. Esse mecanismo garante que a saída RNG criptografada seja protegida contra ataques externos.
Ao implementar um RNG dentro de um TEE, a superfície de ataque no RNG pode ser reduzida, enquanto ainda garante que a integridade do VRF possa ser verificada. Isso pode ajudar a garantir a segurança e a confiabilidade do sistema blockchain que depende de RNGs.
A Secret Network é exclusivamente preparada para fornecer aleatoriedade verificável na rede, desbloqueando muitos novos casos de uso do Web3. Cabe a você construí-los! Acesse nossa página inicial do VRF para ver a documentação do desenvolvedor do VRF , estude novos casos de uso e comece a construir com aleatoriedade!
Avante e para cima!
Para discutir Secret Network e Secret Apps, visite nossos canais da comunidade:
Saiba mais:
https://scrt.network
Dúvidas e caso queira se envolver mais no projeto da Secret Network, junte-se a nossas redes:
Telegram Secret em português: https://t.me/secret_portuguese
Twitter Secret português: https://twitter.com/scrt_portuguese