Pular para o conteúdo principal

Bitsocial e Nostr

O Nostr não se encaixa direito nem na caixa da federação nem na do blockchain. Os usuários não recebem contas de instâncias, e não há cadeia, consenso, gás nem ordem global. O Nostr é mais bem descrito como mídia social baseada em relays: os usuários têm pares de chaves, assinam eventos e os publicam em relays, que são servidores comuns que os armazenam e servem (NIP-01). O próprio README do Nostr diz que ele não depende de técnicas peer-to-peer.

Isso coloca o Nostr mais perto do Bitsocial do que os sistemas federados ou em blockchain em um ponto importante: a identidade é criptográfica e portátil. As diferenças estão na camada de dados e em quem controla a porta de entrada.

Como o Nostr funciona​

  • Eventos e relays. Cada post, perfil ou reação é um evento JSON assinado. Os clientes publicam eventos em relays via WebSockets e se inscrevem com filtros; os relays armazenam os eventos e os servem de volta. Os relays não se comunicam entre si.
  • Replicação. Os usuários costumam publicar em vários relays. Um estudo de 712 relays em 2023 encontrou o post médio em 34,6 deles (Wei e Tyson).
  • Encontrar os posts de alguém. Os usuários publicam uma lista dos relays em que escrevem e dos quais leem (NIP-65), e os clientes buscam os posts de um usuário nos relays de escrita dele.
  • Identidade. Cada usuário é uma chave secp256k1 que assina com assinaturas Schnorr. As especificações não definem rotação nem recuperação de chaves, então perder a chave é perder a conta. Identificadores opcionais no formato name@domain (NIP-05) são verificados com base em um arquivo no servidor web desse domínio.
  • Grupos. O mecanismo recomendado para comunidades são os grupos baseados em relays (NIP-29): um relay hospeda um grupo, aplica as regras de associação e de publicação antes de aceitar um post e assina os metadados do grupo. As comunidades mais antigas aprovadas por moderadores (NIP-72) agora estão marcadas como não recomendadas, em favor do NIP-29.
  • Controle de spam. Cada relay escolhe sua barreira: prova de trabalho (NIP-13), autenticação e listas de permissão (NIP-42), pagamento ou limites de taxa. Os clientes acrescentam listas de silenciamento e pontuações de confiança.
  • Mídia. Imagens e vídeos são enviados para servidores de arquivos HTTP separados.

Onde eles diferem​

Quem armazena e serve os posts​

No Nostr, os relays são a camada de armazenamento e entrega: um servidor precisa manter cada post online. No Bitsocial, os roteadores HTTP só ajudam os clientes a encontrar peers. Eles não armazenam posts, perfis, metadados de comunidades nem estado de moderação; os clientes buscam o conteúdo no nó da comunidade e nos peers que fazem seed dela. Veja Protocolo peer-to-peer.

Quem controla a porta de entrada​

No Nostr, as barreiras de escrita pertencem aos operadores de relays. Fora dos grupos NIP-29, uma chave rejeitada por um relay pode publicar o mesmo evento em qualquer relay que o aceite, e o que os leitores veem depende dos relays que o cliente deles lê. Um grupo NIP-29 é mais parecido com uma comunidade Bitsocial: seu relay anfitrião aceita ou rejeita posts. Ainda assim, é o relay que define o que os papéis do grupo podem fazer, e o histórico do grupo continua preso a esse relay, a menos que outro relay concorde em assumi-lo.

No Bitsocial, uma comunidade é um objeto criptográfico com seu próprio par de chaves. O nó da comunidade executa o desafio que o dono escolher e publica o estado aceito na rede peer-to-peer. Veja Desafios antispam personalizados.

Manter a infraestrutura​

Um relay é um servidor com um domínio e um endpoint WebSocket, e os relays populares arcam com o custo de armazenamento e de banda do que servem. O estudo de 2023 estimou que cerca de 95% dos relays gratuitos não conseguiam cobrir seus custos com doações. Um nó de comunidade Bitsocial roda em hardware doméstico, e os peers que leem uma comunidade podem ajudar a compartilhá-la.

Um cliente web do Nostr abre conexões WebSocket diretamente com os relays, então não é preciso um servidor de aplicação. Um app web do Bitsocial roda um nó peer-to-peer na aba e busca o conteúdo nos peers. Veja Peer-to-Peer no navegador.

Conteúdo antigo​

Os posts do Nostr são amplamente replicados entre relays, o que ajuda posts antigos a sobreviver. O Bitsocial mantém o estado mais recente da comunidade e não garante o conteúdo antigo para sempre.

Comparação​

PerguntaNostrBitsocial
CategoriaProtocolo baseado em relaysRede de comunidades peer-to-peer
IdentidadeChave de usuário secp256k1, sem rotação nas especificaçõesPares de chaves Ed25519 para usuários e comunidades
Onde ficam os postsRelays escolhidos pelo autor, muitas vezes váriosO nó do dono da comunidade e os peers que a leem e fazem seed dela
Quem mantém no arOperadores de relaysNó do dono da comunidade mais seeders auxiliares
ComunidadesGrupos hospedados em relays (NIP-29)Objetos de primeira classe cujo nó aceita ou rejeita posts
Controle de spamPolítica de cada relay: prova de trabalho, autenticação, pagamento, listas de permissão, limites de taxaO desafio de cada comunidade antes de um post ser aceito
ModeraçãoPolíticas dos relays, listas de silenciamento nos clientes, rótulos e denúnciasDonos de comunidades moderam a própria comunidade; os apps escolhem o que mostram
NomesIdentificadores opcionais no formato name@domain, verificados via HTTPSNomes .bso e .eth que resolvem para chaves
NavegadorCliente WebSocket de relaysNó peer-to-peer dentro de uma aba comum do navegador
Contrapartida principalIdentidade portátil e ampla replicação, mas disponibilidade e política dependentes dos relaysMenos dependência de relays, mas o conteúdo antigo não é garantido para sempre