Hoje analisamos o que são funções aleatórias verificáveis e quais são suas principais características. Siga-nos para saber todas as informações relacionadas ao VRF que você possa ter interesse em conhecer. Una Verifiable Random Function o Función Aleatoria Verificable, mejor conocida por sus siglas VRF, no es una más que una función criptográfica especial que nos permite generar números pseudoaletorios que pueden ser verificados de forma formal, mediante el uso de técnicas criptográficas, por cualquier persona, sempre. O desenho dessas funções foi possível graças ao trabalho de Silvio Micali, Michael Rabin e Salil Vadhan, que em 1999 apresentaram seu trabalho «Funções aleatórias verificáveis«. O nome de Silvio Micali certamente será familiar para você, já que foi ele quem criou a blockchain da Algorand, que utiliza um sistema VRF em seu mecanismo de consenso Proof of Stake (PoS).
Com isso, podemos basicamente definir um VRF como um gerador pseudo-aleatório cuja saída pode ser verificada a todo momento, resultando na capacidade de auditar e confiar que os dados são realmente confiáveis e não foram adulterados de forma alguma. Isso é de extrema importância no mundo da computação e blockchain, pois garante que os números fornecidos sejam seguros, e que, portanto, o uso correto dos mesmos resultará em um resultado seguro.
A utilidade dos números pseudoaleatórios na computação é especialmente relevante, e ainda mais quando falamos de criptografia, onde toda a segurança do sistema se baseia na premissa de que geradores pseudoaleatórios, sejam eles hardware ou software, estão sempre seguros. De fato, um PRNG (Pseudorandom Random Number Generator) ou também como costumam ser chamados (RNG ou Random Number Generator) que foi manipulado de alguma forma pode ser facilmente quebrado, resultando em graves falhas de segurança em dispositivos que dependem do mesmo. Por exemplo, o PlayStation 3 da Sony poderia ter sido hackeado devido a uma falha em seu sistema de geração de números pseudo-aleatórios, já que esses números eram previsíveis.
No blockchain, onde a criptografia é a base da segurança da rede, a geração e utilização de algoritmos seguros para PRNGs é vital, e neste ponto, os VRFs vêm complementar uma necessidade que não está apenas no blockchain, mas também em contratos inteligentes e outros funções não-blockchain que podem tirar proveito dessa tecnologia.
Características de um VRF
Como o próprio nome sugere, uma função aleatória verificável é definida por duas características principais:
- É verificável. Isso significa que qualquer um pode verificar se o número aleatório gerado por um VRF é válido. Tudo o que eles precisam fazer é inspecionar a prova criptográfica gerada ao lado do número fornecido e com isso poderão verificar a exatidão da saída do hash. Por outro lado, apenas o detentor da chave secreta do VRF pode calcular o hash, qualquer pessoa que possua a chave pública pode verificar a veracidade do hash.
- Aleatório. A saída de um VRF é um número imprevisível (distribuído estatisticamente uniformemente no universo de possibilidades do sistema). Essa aleatoriedade é gerada combinando a semente e a chave privada de forma única, embora outras fontes que alimentam a entropia do sistema também possam ser utilizadas e serão adicionadas ao teste para posterior verificação.
Assim, as VRFs tentam fazer com que os algoritmos PRNG produzam provas criptográficas que possam gerar formalmente provas de sua veracidade, e que essas provas permitam sua posterior verificação por quem consome os referidos números.
Casos de uso de VRF
Os VRFs possuem um grande número de usos, dentre os quais podemos destacar:
- Melhorias nos sistemas de segurança da Internet. Por exemplo, um gerador de certificados TLS, infraestruturas PKI ou certificados para criptografia de DNS pode usar VRF para gerar meios seguros de comunicação entre as partes, pois tais certificados podem ser verificados ao longo do processo por todas as partes envolvidas.
- A geração de dispositivos conectados (eg IoT) capazes de manter conexões seguras por meio de comunicações criptografadas cuja entropia é baseada em funções VRF.
- Geração segura de novos esquemas criptográficos. Este é o caso das Provas de Conhecimento Zero (ZKP), que podem usar VRFs para gerar os conjuntos de dados de que precisam e que podem ser verificados pelas partes. Este caso de uso é totalmente explicado no artigo de 1999 de Silvio Micali, Michael Rabin e Salil Vadhan.
- Geração de esquemas de segurança blockchain. Por exemplo, os VRFs podem ser usados para gerar cadeias de custódia de transações seguras e verificáveis. Da mesma forma, eles também podem ser usados em oráculos de blockchain para verificar operações (como no Chainlink) ou mesmo em protocolos de consenso (como no Algorand).