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!
[EN]
The Secret VRF, a secure and verifiable random number generator integrated with the Secret Network and accessible to all blockchains connected to the IBC, is now available for developers to start using!
The Secret VRF (Verifiable Random Function) enables the creation of truly random numbers on the blockchain without compromising security or usability. There is no need to rely on off-chain solutions that are often untrustworthy, centralized, expensive, and detrimental to the user experience. Instead, this verifiable random number generator exists on the blockchain itself, making it the ideal solution for all decentralized applications.
Keep reading to learn more about the technical challenges of on-chain RNG, how Secret VRF solves them, and the use cases it unlocks!
The On-Chain RNG Challenge
Randomness is an essential component in many types of applications. Games require it to remain unpredictable and fair. Security protocols require it to generate strong encryption keys. Lotteries and contests need it to select winners fairly. DAOs and other forms of governance can use it to select representatives for a position or decision-making process. However, generating true randomness on a blockchain is not a simple task.
Blockchain technology is designed to be deterministic, meaning the same input computed in the same state will always produce the same output. This feature can be a problem for RNG because random numbers are, by definition, unpredictable. A blockchain system must find a way to generate random numbers that are non-predictable while still being deterministic.
Furthermore, RNG solutions that attempt to obtain randomness from a blockchain are often susceptible to tampering due to the public nature of most blockchains. For example, if an RNG solution obtains randomness from block hashes, a validator could attempt to publish only one block if the hash results in a favorable outcome.
An alternative solution is to obtain randomness from off-chain data, or "oracles," but these sources are often centralized and untrustworthy, meaning the data may have been tampered with before being delivered to the blockchain.
Secret VRF solves all these problems!
How Secret VRF Solves the RNG
The Secret Network is built on Tendermint, a peer-to-peer networking protocol that provides Byzantine Fault Tolerant (BFT) consensus and Proof-of-Stake (PoS). Validators are selected based on a weighted average representing their delegated token stake.
Here's how a block is introduced and compiled in the Secret Network:
The selected proposer node initiates the process.
The proposer compiles mempool transactions into a block.
The proposed block is broadcasted to all nodes in a pre-vote stage, which verifies if a valid block has been submitted.
If a supermajority of nodes (2/3) pre-vote for this block, it becomes valid.
The valid block is added to the immutable network.
A key component for locking validation in the Secret Network is the aforementioned pre-vote stage. This is where Secret VRF comes in. During this pre-vote phase, a verifiable random number is appended to each proposed block. This number can be used by applications as an RNG seed on the network.
Maintaining the integrity of an RNG is multifaceted:
RNG has sufficient entropy.
The block proposer cannot know the random number ahead of others.
External actors cannot predict the number in advance.
The use of SGX technology by the Secret Network allows for private computation on the chain and provides a distinct advantage as a privacy provider in the interchain. To offer randomness across networks as a service, the Secret Network employs SGX to generate a random number on the network during the block proposal phase of Tendermint. Block proposers use the RDRAND/RDSEED instruction to generate a random number within the Trusted Execution Environment.
In addition to using SGX to generate random numbers, the Secret Network enhances the security of the generated random numbers by integrating an Initial Randomness Seed (IRS). The IRS stems from a common consensus seed that all network nodes share, and the random number and IRS are merged through an algorithm known as HKDF (RFC5869). This process ensures that the resulting number is genuinely random and remains unpredictable even if someone attempts to manipulate the generation of the original random number.
To ensure the security of the random number produced by the block proposer, a significant number of network validators must approve the proposed block before the encrypted number can be decrypted.
Secret-VRF - On-Chain Randomness - Secret Network
Description of the SecretVRF function
The pre-vote mechanism in Tendermint allows the blockchain to signal that the proposed block has been authorized by the majority of network validators, providing assurance for block execution attempts. As a result, the Initial Randomness Seed can only be decrypted if nodes send 2/3 of the majority of pre-commits/commits to the TEE. The TEE will then verify this majority and decrypt the seed, returning it to the requester in its decrypted form, which can be used for network randomness.
An additional proof is provided alongside the encrypted number to ensure maximum security. This proof guarantees that a proposed random number is consistent with the block height and the set of active validators.
A one-way function is used to generate the proof, taking into account the encrypted random value, the block height, the set of active validators, and the Random Encryption Key (which can only be decrypted by network nodes exclusively within the TEE). With the proof key, SGX enclaves can verify if the proof was generated within the enclave and is legitimate.
Use Cases
Games
Many Web3 dApps are games that use RNGs to determine game outcomes, such as dice rolls or card draws. RNGs are used to ensure that game results are random and cannot be manipulated.
Lotteries and Raffles
Web3-based lotteries and raffles use RNGs to select winners in a fair and random manner. This can extend beyond simple monetary lotteries to government-run municipal lotteries, such as those determining school admissions and enrollments.
Decentralized Finance (DeFi)
DeFi protocols use RNGs to select validators, distribute rewards, and determine interest rates for loan pools. RNGs can help ensure fairness and decentralization.
NFT Minting
RNGs are used to generate unique non-fungible tokens (NFTs) that are created on the blockchain. RNGs are used to ensure that NFTs are unique, non-consecutive, and cannot be duplicated
Governance
Some Web3 protocols use RNGs to select random participants for decision-making processes or to determine the order of votes.
Multi-Party Computation
dApps use RNGs in multi-party computations, where multiple parties jointly compute a function over their inputs without revealing their inputs to each other. The use of RNGs ensures that the computation is fair and unbiased, not favoring any party involved at the expense of another.
Limiting VRF Secret Attack Vectors
If RNG is a critical element in the security infrastructure of a dApp, it becomes a potential attack vector. Any weaknesses or vulnerabilities in the RNG algorithm can be exploited by attackers to compromise the entire blockchain system, so security must be the top priority. Secret Network is perfectly prepared to maintain security through the use of trusted execution environments (TEEs) – in this case, SGX.
SGX isolation can be used to limit attack vectors on random number generators (RNGs) in a blockchain system.
TEEs isolate code and data execution from the main operating system, limiting visibility and reducing the attack surface on the VRF. RNG can be implemented within SGX, making it significantly more secure than transparent on-chain computation.
Assurance
TEEs can also provide a way to verify the integrity of the code running inside the TEE. This provides assurance that the RNG is functioning correctly and has not been compromised.
Sealing
TEEs can also provide sealing, which is a mechanism to encrypt data and securely store it within the TEE. This is used to store the initial state of the RNG, making it more difficult for attackers to access or manipulate the RNG seed.
Secure Input/Output
TEEs provide a secure input/output mechanism, ensuring that sensitive data such as encrypted RNG output is not exposed to untrusted components. This mechanism ensures that encrypted RNG output is protected against external attacks.
By implementing an RNG within a TEE, the attack surface on the RNG can be reduced while still ensuring that the integrity of the VRF can be verified. This can help ensure the security and reliability of the blockchain system that relies on RNGs.
Secret Network is uniquely prepared to provide verifiable randomness on the network, unlocking many new use cases for Web3. It's up to you to build them! Visit our VRF homepage to access VRF developer documentation, explore new use cases, and start building with randomness!