Tentar entender o que é a Urbit pode ser uma dor de cabeça, mas não deveria. Neste artigo vou explicar o que é Urbit de uma maneira simples, assumindo que você não tenha nenhum conhecimento técnico sobre redes, máquinas virtuais ou programação de computadores.
A melhor maneira de entender Urbit é primeiro entender o que motivou sua criação.
Um pequeno contexto
Quando a Internet começou, nos anos 90, não havia grandes sites ou aplicações. Em outras palavras, não existiam corporações, apenas pessoas. O conceito da Internet consistia basicamente em computadores comunicando-se uns com os outros. Na verdade, é exatamente isto que define a Internet (caso você nunca tenha pensado a respeito).
Quando vários computadores compartilham arquivos em uma rede privada (pense em uma empresa, por exemplo), eles formam uma intranet. Para entrar nessa intranet, você precisará de permissão. A Internet, por outro lado, surgiu como uma rede onde qualquer computador poderia se conectar, encontrar outros computadores e se comunicar com eles.
Funcionou muito bem. Mas era limitada. Para que serve encontrar o computador de uma pessoa aleatória em outro lugar do mundo para trocar arquivos com ela? Mesmo as pessoas inteligentes eram céticas. Um ganhador do Prêmio Nobel de economia disse em 1998 “a maioria das pessoas não tem nada a dizer umas para as outras! Até 2005 mais ou menos, ficará claro que o impacto da Internet na economia não foi maior do que o do fax“.
Não podemos culpá-lo, ninguém sabia que a simples conexão entre computadores permitiria a criação de coisas antes inimagináveis. Por exemplo: um jornal poderia se tornar um site de notícias! Como? Uma pessoa escreve artigos de notícias em seu computador, e outras pessoas se conectam a ele para ver esses arquivos. Mas se muitas pessoas se conectassem ao mesmo computador, haveria milhares ou até milhões de solicitações feitas à mesma máquina, o que exigiria muitos recursos computacionais. Foi aí que os servidores passaram a existir.
Um servidor nada mais é do que um computador poderoso, modelado para lidar com muitos pedidos na Internet. É por isso que os sites ou aplicativos são “hospedados” em servidores.
Quando você acessa o site bbc.com, está fazendo uma chamada conexão cliente-servidor. Você é o cliente, que simplesmente faz um pedido a um servidor para ler informações. O servidor mantém todas as informações armazenadas localmente e transmite os dados solicitados sob demanda.
As solicitações não precisam ser somente de leitura. Quando você cria uma postagem no Twitter, está fazendo uma solicitação de escrita (solicitação POST, tecnicamente falando), enviando informações para um servidor para armazenar dados. As redes sociais foram viabilizadas graças a isso.
Mas pense por um momento: quando você envia uma mensagem para seu amigo no Instagram, Whatsapp, etc. você não está se comunicando diretamente com eles. Tudo passa por um servidor.
Isto é o que a Internet se tornou: alguns poucos servidores centralizados controlam a grande maioria dos dados online.
Os problemas com isso são muitos, desde censura e perda de privacidade até a venda de informações pessoais.
Mas também há problemas não tão óbvios. Por exemplo, cada site ou aplicativo vive em uma ilha isolada. A conta que você tem no WhatsApp não tem nenhuma relação com sua conta no Twitter. Se um desenvolvedor deseja criar algum aplicativo que utilize dados de diferentes plataformas, isso é uma dor de cabeça. E todo usuário que inicia uma nova conta tem que preencher todos os seus dados novamente, passar por verificações e iniciar seu perfil a partir do zero.
As coisas podem ser melhores. Urbit veio para mudar a forma como os computadores se comunicam, resgatando um princípio básico da internet: as pessoas no controle. Permita-me explicar então o que é Urbit.
O que é Urbit?
Urbit é uma plataforma de compartilhamento da Internet onde cada pessoa tem o controle total de seus dados e tem uma identidade. Há um número limitado e escasso de identidades: cerca de 4 bilhões. Outra diferença é que as aplicações na Urbit se comunicam facilmente umas com as outras.
Na prática, enquanto a Internet tradicional está rodando na arquitetura cliente-servidor, na Urbit cada usuário é um servidor. Em outras palavras, em vez de acessar a Internet como mero cliente enquanto todos os seus dados são armazenados em empresas, em Urbit seus dados são armazenados localmente.
Quando digo dados, não me refiro apenas às suas informações, mas a cada aplicação que você utiliza. Uma boa analogia é a forma como as aplicações funcionam em um telefone celular. Se você tem um telefone Android ou iOS, você precisa procurar por aplicativos na Play Store ou na Apple Store para fazer o download. O Google e a Apple são os donos dessas lojas. Eles controlam os aplicativos que lá residem, e cobram taxas elevadas por aplicativos pagos.
Depois de baixar um aplicativo em seu celular, você está baixando uma parte de um programa, enquanto outra parte dos dados do aplicativo será armazenada em servidores centralizados.
O que acontece se o desenvolvedor do aplicativo remover o aplicativo da loja e terminar seus serviços? O aplicativo torna-se inutilizável, e todos os seus dados são perdidos. Qualquer rede ou conexões que existiam no aplicativo são perdidas.
Na Urbit, você também faz o download de aplicativos, mas a primeira diferença é que não há nenhum Google ou Apple controlando as coisas. Trata-se de um portal aberto e descentralizado.
Alguns podem estar se perguntando: Se Urbit permite instalar aplicativos, mas não é nem Android nem IOS, isso significa que Urbit tem seu próprio sistema operacional (SO)? Sim. Seu nome é Arvo. Mas vou chamá-lo por enquanto de SO Urbit para não complicar a vida dos iniciantes.
Sem perder a linha de raciocínio, quando você baixa um aplicativo na Urbit, você está baixando o código fonte completo. Isso significa que se o desenvolvedor remover o aplicativo de Urbit, você (que possui o código completo do mesmo) poderá enviá-lo novamente para a Urbit. Nada é perdido.
Além disso, desenvolvedores podem aproveitar um aplicativo para construir outro, com base nos dados atuais. Por exemplo, se o Facebook existisse na Urbit, você poderia criar outra rede social, com outro projeto e proposta, onde o usuário, após o login, teria todas as conexões de seus amigos já salvas.
Observação: esta característica de deixar todo o código aberto é uma opção do desenvolvedor, não um requisito na Urbit. Mas tem sido a prática mais comum, um tipo de cultura da rede.
Lembrando o que eu comentei antes, você não precisaria criar uma conta depois de baixar um aplicativo. Na Urbit, sua conta é sempre a mesma, basta baixar um aplicativo e começar a usá-lo, não é preciso registrar seus dados toda vez.
A razão pela qual há um número limitado de identidades na Urbit (2^32 identidades = aproximadamente 4 bilhões) é para introduzir o conceito de escassez digital. Da mesma forma que Bitcoin introduziu a escassez digital para dinheiro, Urbit trouxe escassez para as identidades dos computadores. Mas por que isso é relevante?
A escassez traz valor e limita o spam. Já que o número de identidades digitais é limitado e você acessa todas as aplicações com a mesma identidade, é muito mais difícil criar bots com identidades falsas poluindo as redes sociais (por exemplo).
Como Urbit funciona (arquitetura)?
Agora que o conceito amplo de Urbit está melhor compreendido, podemos ir um pouco mais longe e falar sobre sua arquitetura, sem perder a simplicidade e a didática da explicação.
Já vimos que Urbit é uma rede peer-to-peer (P2P), porque os computadores se comunicam diretamente uns com os outros sem intermediários. Mas um problema comum com as redes P2P é que é difícil para um computador se comunicar com outro distante.
Digamos que o computador A quer se comunicar com o computador Y. Para que isto aconteça, o computador A teria que perguntar a seu vizinho B se “conhece” o computador Y. O computador B perguntaria C, e o computador C perguntaria D, e assim por diante, até chegar a Y. Em uma rede com milhões de computadores, isto poderia levar horas.
As redes P2P têm este problema porque são redes horizontais. Para resolver essa questão, Urbit tem uma arquitetura vertical, constituída de galáxias, estrelas e planetas.
A ideia é muito simples. Tudo o que eu disse até agora sobre um computador ser uma identidade digital esparsa diz respeito a um planeta. Ou seja, a Urbit tem cerca de 4 bilhões de planetas. Mas também há estrelas e galáxias para facilitar a comunicação.
Cada planeta está associado a uma estrela, e cada estrela está associada a uma galáxia. Na Urbit, há 256 galáxias e 65.000 estrelas. Portanto, quando um planeta precisa se comunicar com outro planeta, em vez de perguntar ao planeta vizinho como chegar ao seu destino, o planeta perguntará à sua estrela, que perguntará à sua galáxia. A galáxia conhecerá a galáxia do planeta de destino, que entrará em contato com sua estrela e, em seguida, com o planeta. Observe que, dessa forma, é possível estabelecer comunicação entre quaisquer duas partes em um sistema de bilhões de entidades em apenas algumas etapas.
Além de planetas, estrelas e galáxias, o Urbit também tem luas e cometas. Os cometas são entidades ilimitadas, você pode criar quantos quiser. Dessa forma, os cometas são úteis para bots ou para pessoas que desejam apenas navegar no Urbit sem o compromisso de ter uma identidade.
Obviamente, os cometas terão algumas limitações de acesso, e alguns aplicativos podem não aceitá-los.
As luas, por outro lado, também são entidades escassas, mas cada planeta pode criar cerca de 4 bilhões de luas. A ideia das luas é servir como uma identidade para dispositivos na Internet das Coisas (IoT).
Como começar a usar a Urbit?
Agora que você já não é mais um leigo completo em Urbit, pode pensar em navegar pela rede, descobrir aplicações e usar a plataforma. Confira o tutorial que escrevemos aqui: como começar a navegar na Urbit.
Próximos passos
Você pode aprender sobre algumas das aplicações mais populares da Urbit neste artigo.
Para continuar estudando e entendendo como a Urbit funciona, leia este artigo sobre o sistema operacional da Urbit.
Confira nosso curso gratuito organizado para entender melhor o Urbit.
Para obter uma visão geral completa do protocolo, leia nossa explicação detalhada do whitepaper do Urbit.