Random.ORG – Conheça a história do site que gera números aleatórios através de ruído atmosférico

O RANDOM.ORG é um verdadeiro gerador de números aleatórios que gera aleatoriedade através de ruído atmosférico. Este artigo explica como o RANDOM.ORG surgiu em 1997 e passou por diferentes fases, evoluindo até chegar à forma atual. Segue abaixo a história do RANDOM.ORG nas palavras do próprio criador.

Capítulo 0: Como tudo começou… (1997)

O RANDOM.ORG nasceu durante o verão de 1997, quando eu trabalhava para uma startup que estava desenvolvendo um sistema de apostas online. Era um projeto modesto: apenas quatro sujeitos construindo um protótipo com objetivo de levantar fundos para investimentos futuros.

O sistema foi desenvolvido de modo que havia uma funcionalidade central, na qual diversos jogos pudessem ser criados. Nós implementamos um protótipo com uma série de modelos de apostas para loteria, blackjack e máquinas caça-níquéis, que funcionavam no navegador.

Já no início, percebemos que um sistema eficiente precisaria de números aleatórios para sustentar os jogos que envolviam dinheiro real. (Se você quiser saber o que acontece caso não use números aleatórios em um sistema de apostas online, leia este artigo sobre o programa de TV Press Your Luck.

Estudamos aleatoriedade e concluímos que captar ruido atmosférico através de rádio seria uma maneira elegante e barata de coletar entropia para a geração de números randômicos. Além disso, como o gerador ficaria em nosso escritório, usar rádio em vez de contadores Geiger (que também são bastante populares) tinha a vantagem de não exigir uma fonte radioativa.

A primeira versão do gerador de números aleatórios foi construída com um receptor de US$10 da Radio Shack. Nós nos divertimos bastante comprando aquele aparelho. Sabíamos que muitos rádios, até mesmo os baratos, vinham com filtros contra ruídos, de modo que só emitia som se estivesse efetivamente sintonizado em uma estação.

Então, quando chegamos à loja, explicamos ao vendedor que precisávamos do rádio mais barato que ele tivesse, porque queríamos que nosso computador ouvisse os ruídos. Ele pareceu duvidar da nossa sanidade. Também pedimos para testar o rádio na loja.

A ideia era verificar a qualidade do ruído, para saber se o aparelho realmente não tinha filtro. Incrivelmente, ele nos deixou fazer isso – créditos à Radio Shack, lembre-se de que era uma venda de US$10. Quando ouvimos o ruído, todos (acho que éramos três na loja) começamos a dar saltos, em êxtase. Rapidamente, pagamos os US$10 e levamos o rádio. Acho que saímos de lá parecendo ser bem loucos.

Nos dias seguintes, fizemos a primeira versão do gerador. Foi escrito em C/C++ e rodava no Windows NT, com uma placa de som padrão, cuja marca eu não me lembro. Era perfeitamente funcional, mas ainda um pouco bruto, no sentido de que gerava bits crus aleatórios, e não os bons intervalos configuráveis que você encontra hoje no RANDOM.ORG. Contudo, era o bastante para embalharar cartas de blackjack, girar rodas de caça-níqueis ou selecionar números de loteria.

Então, o que aconteceu com o sistema de apostas? Tecnicamente, o protótipo e sua arquitetura eram muito sólidos, mas a empresa acabou decidindo não levar o projeto adiante. Pensando em retrospectiva, nós provavalmente estávamos fazemos as coisas um pouco rápido demais.

Isso foi em 1997. Achávamos que o mercado de apostas online iria decolar dali a um ou dois anos, mas acabou demorando muito mais. O RANDOM.ORG é a única parte daquele projeto que sobrevive até hoje. Meus amigos decidiram não investir mais no projeto de jogos de azar e lançaram duas empresas de sucesso: a Pentia e a Sitecore.

Capítulo 1: Os Dias de Sol (1998-2001)

Em setembro de 1998, eu comecei um PhD em Ciência da Computação na Trinity College, em Dublin. Minha tese era na área de computação móvel – portanto, não tinha muito a ver com aleatoriedade. Mas, como eu havia feito a maior parte do trabalho no gerador de números aleatórios no ano anterior, decidi que deixar tudo isso de lado seria um desperdício.

Além disso, eu realmente gostava da ideia de usar ruído atmosférico para essa finalidade. Então, expliquei a ideia a Vinny Cahill, que era o diretor do meu grupo de pesquisa (o Distributed Systems Group), e sugeri que levássemos o projeto para lá. De bom grado, Vinny apoiou a ideia.

Assim, durante os próximos meses, eu limpei a poeira de um antigo Sun SPARCstation que estava no laboratório, reescrevi o gerador de números aleatórios para o sistema operacional Solaris e, finalmente, cheguei à primeira versão do site RANDOM.ORG, que entrou no ar em outubro de 1998.

Na ocasião, não havia serviços públicos de números randômicos que usassem ruído atmosférico, mas o HotBits e o Lavarand (na versão Silicon Graphics original) já existiam. Então, por que lançar mais um? A razão mais importante: era divertido de fazer.

A segunda razão mais importante é que os serviços já existentes eram voltados sobretudo a atividades educacionais e jogos. Minha intenção era que o RANDOM.ORG também servisse para educação e jogos, mas que além disso fosse útil para alguns aplicativos (não-críticos) que precisassem de números aleatórios.

Desde então, as pessoas têm utilizado o site com objetivos mais variados do que eu jamais poderia ter pensado. O serviço já foi atualizado diversas vezes para suportar aplicativos mais complexos do que eu havia cogitado inicialmente.

Random.ORG

A imagem mostra o primeiro RANDOM.ORG: essa foi sua configuração entre 1998 e 2001 (embora a foto na verdade tenha sido tirada em 2005). O rádio é um transistor Hitachi que consegui de graça, porque seu gravador de fitas estava quebrado.

Como tudo estava montado numa prateleira em nosso laboratório da pós-graduação, eu ficava preocupado com a possibilidade de alguém mexer no rádio sem querer ou por curiosidade, então coloquei um post-it pedindo que ninguém encostasse ali.

À esquerda do rádio está o painel traseiro do Sun SPARCstation que eu estava usando. Eu não faço ideia da sua velocidade, mas não parecia ser muito rápido, nem mesmo para aquele período. Contudo, tinha 96 MB de memória, o que era muito, então podia rodar o software tranquilamente, além de ter uma placa de som interna que facilitava a conexão com o rádio.

O sistema operacional do processador era o Solaris, que era incrivelmente estável e, portanto, perfeitamente adequado ao projeto. Mais à esquerda, está o disco de 500 MB (isso mesmo, megabytes) que guardava os arquivos.

E as garrafas? Elas estão aí porque nós temos uma tradição no grupo de pesquisa: sempre que um artigo é selecionado para uma conferência ou periódico científico, o autor compra uma garrafa de uísque irlandês (ou de alguma outra bebida agradável) para comemorar com o grupo. Como você pode ver pela imagem, cada garrafa tem um post-it que diz o nome do pesquisador selecionado, bem como da conferência ou periódico.

Capítulo 2: O Gerador Dual Radio (2001-2007)

No outono de 2000, o SPARCstation estava começando a ficar ultrapassado, então eu fui atrás de um novo processador. Além disso, eu estava orientando Antonio Arauzo Azofra em um trabalho de conclusão de curso de Ciências da Computação, com um projeto relacionado a aleatoriedade.

O objetivo do trabalho era implementar um módulo de estatísticas novo e sofisticado, que tivesse estabilidade o suficiente para ser usado nos eventuais desdobramentos do RANDOM.ORG. Ele fez isso muito bem, além de ter configurado o “novo” servidor – um Siemens Scenic 300 que eu havia resgatado.

Antonio me convenceu a usar o Debian GNU/Linux (eu preferia o Red Hat na época), depois instalou o hardware e software e até ajudou na manutenção, mesmo depois de terminar seus estudos em Dublin e retornar à Espanha para começar um PhD.

A partir do verão de 2001, o RANDOM.ORG passou a funcionar com o computador Siemens em uma configuração dual radio. O núcleo do PC era um Pentium III com 500 MHz. Inicialmente, a máquina tinha 128 MB de memória, mas logo teve um upgrade para 348 MB. Tinha ainda três placas de som Cirrus Logic Crystal CS4281 e dois sintonizadores FM, um da Sony e outro da Tensai – que eu havia comprado de segunda mão por cerca de 40 euros no Blackberry Market, em Dublin. A imagem abaixo mostra o equipamento.

Random.ORG

O computador Siemens é o que está deitado na horizontal sobre os outros dois, enquanto os rádios estão no topo. O equipamento ficava em meio escritório particular, e não mais em um laboratório de pós-graduação, mas ainda assim eu ainda tinha receio de que alguém (por exemplo, um faxineiro) acidentalmente interferisse nos rádios e prejudicasse o serviço, então eu coloquei outro aviso, pedindo às pessoas para terem cuidado.

O sistema operacional Debian GNU/Linux 3.0 (“Woody”) era incrivelmente estável. (Foi a primeira vez que usei um Debian, e sou cliente até hoje – créditos à Debian pelo excelente trabalho). O gerador era configurado para captar ruído dos rádios em amostras de áudio de 8 bits, em mono, com taxa de amostragem de 8 Khz. Isso rendia 1500 bits aleatórios em cada rádio por segundo, perfazendo um total de 3000 bits por segundo, com os dois rádios.

Caítulo 3: O Rádio Triplo (2007-2009)

Entre o início de 2007 e o fim de 2009, o RANDOM.ORG funcionou com duas configurações de hardware diferentes. Durante a maior parte de 2007, rodava com um Dell Dimension 5440 que havia sido gentilmente cedido por René Meier e Jim Dowling, do projeto Digital Business Ecosystem (DBE).

A máquina tinha um Pentium 4 com 2.53 GHz e 1 GB de memória. As placas de som eram três CM8738, da C-Media Electronics, e os dois sintonizadores FM eram os mesmos de antes, acrescidos de um Akai que eu havia comprado por 12 euros, num mercado de itens usados em Copenhague.

No fim de 2007, eu troquei o Dell Dimension por um IBM eServer com 1270 MB de memória e um Pentium III com 1.266 GHz. Apesar de ter especificações inferiores em relação ao Dimension, o eServer atendia tranquilamente à nossa demanda. Tinha ainda a vantagem de ser genuinamente um servidor, portanto trazia interfaces SCSI, que serviam bem ao nosso objetivo. As placas de som e rádios eram os mesmos de antes.

Essa configuração rendia cerca de 3000 bits por rádio, por segundo. Eu ainda usava o Debian GNU/Linux, atualizando para as versões 3.1 (“Sarge”) e 4.0 (“Etch”) quando foram lançadas. Essas novas versões eram tão estáveis quanto as anteriores e um pouco mais fáceis de configurar. Altamente recomendáveis.

Capítulo 4: RANDOM.ORG Hoje (2009-)

No fim de 2009, o RANDOM.ORG passou por uma reestrutração de grandes proporções em resposta ao crescente número de clientes e sua necessidade de um bom desempenho. Hoje, a configuração é distribuída: diferentes pontos em localidades geográficas diversas geram aleatoriedade, submetem-na a testes estatísticos e depois transmitem os bits randômicos para um serviço de nuvem.

Essa nova arquitetura impulsionou a confiabilidade e o desempenho do serviço, ajudando a fazer com que o RANDOM.ORG sirva para usos complexos (como sorteios de loteria) que agora oferecemos. Testado e aprovado, o ruído atmosférico continua sendo fonte da geração de números aleatórios, mas o hardware e software que usamos hoje está muito distante do receptor de US$10 da Radio Shack que deu início a tudo, lá em 1997.

Capítulo N: O Futuro?

O RANDOM.ORG segue em evolução, e muitos projetos empolgantes estão em andamento. Para ficar a par das novidades que estão para chegar, acompanhe a página de notícias em https://www.random.org/news/.

 

Compartilhe seu amor