Oddbean new post about | logout

Notes by Song Jong | export

 Fala, pessoal! Existe alguma maneira de derivar uma nova chave privada a partir da chave mestra, que possa ser usada para assinar ações sem comprometer a segurança da chave principal? Digo isso porque não me sinto à vontade compartilhando minha chave privada diretamente com clientes ou mesmo com extensões. Sei que existem as extensões de assinatura, mas percebo que elas ainda precisam da chave privada, e muitos clientes continuam solicitando isso diretamente. Alguma solução mais segura ou alternativa?

 
 Não sei se me expressei bem, vou tentar de outra forma. Minha nsec que define minha identidade aqui, certo?! A chave privada assina o evento e garante que eu sou eu. Há mecanismo que gere uma nova nsec a partir da outra, uma chave derivada. De forma que ao assinar com a segunda chave eu garanta a mesma identidade, mas não expondo a chave principal e podendo a chave principal revogar a derivada.  
 Mas cada nsec terá uma identidade própria. Pensei em manter a mesma identidade entre as chaves.  
 Olá, mundo! Essa é a primeira publicação da comunidade e gostaria de compartilhar com vocês um script rápido e prático pra instalar o Jupyter Notebook no Termux:

```bash
#!/bin/bash

# Install Jupyter notebook and dependencies on Termux
pkg update -y
pkg upgrade -y

apt install -y git clang
apt install -y python
apt install -y libzmq
apt install -y rust
pkg install -y binutils
pip install maturin
apt install -y cmake
pip install pyzmq

_file="$(find $PREFIX/lib/python3.12 -name "_sysconfigdata*.py")"
rm -rf $PREFIX/lib/python3.12/__pycache__
cp "$_file" "$_file".backup
sed -i 's|-fno-openmp-implicit-rpath||g' "$_file"

pip install jupyter
pkg install -y patchelf
patchelf --add-needed libpython3.12.so /data/data/com.termux/files/usr/lib/python3.12/site-packages/zmq/backend/cython/_zmq.cpython-312.so
pkg install -y matplotlib
``` 
 Olá a todos! Nesta publicação, quero compartilhar com vocês um resumo abrangente do que entendi sobre o Nostr e como ele se integra com o Bitcoin e a Lightning Network. Sintam-se à vontade para corrigir ou adicionar qualquer informação. Meu objetivo é expor as ideias de forma clara e, se alguém perceber alguma lacuna, que possa me orientar para que eu compreenda plenamente. Vamos lá!

O que é o Nostr?

O Nostr não é uma rede social nem um aplicativo; ele é um protocolo, cujo nome significa Notes and Other Stuff Transmitted by Relay (Notas e Outras Coisas Transmitidas por Relés). O nome já dá uma pista do seu propósito: facilitar a transmissão de informações de forma descentralizada. Para entender completamente como o Nostr funciona, vamos explorar alguns conceitos fundamentais.

Conceitos-Chave

Protocolo

Um protocolo é um conjunto de regras que define como sistemas trocam informações. No contexto do Nostr, ele estabelece as normas para a comunicação entre clientes e relés, garantindo que todos entendam e sigam as mesmas diretrizes para a troca de dados.

Cliente

Um cliente é a interface que o usuário utiliza para criar, enviar, receber e visualizar eventos, conectando-se aos relés. Os clientes são responsáveis por oferecer funcionalidades e experiências específicas aos usuários. Como o Nostr é um protocolo flexível, os clientes podem variar enormemente em suas aplicações:

Amethyst: Um cliente que lembra o Twitter, focado em microblogging.

Damus: Outro cliente popular para interação social.

Possibilidades Futuras: Clientes que poderiam substituir serviços como Uber, iFood, AWS ou Telegram, utilizando o Nostr como base.


Evento

Um evento no Nostr é uma estrutura de dados assinada digitalmente que segue um formato padronizado e contém informações específicas. Os eventos podem representar mensagens, atualizações de status, arquivos ou qualquer outro tipo de dado que o protocolo suporte. Cada evento possui os seguintes campos:

id: Um hash SHA-256 de todo o evento, que serve como identificador único.

pubkey: A chave pública do autor, que identifica quem criou o evento.

created_at: Um timestamp Unix (número de segundos desde 1º de janeiro de 1970) indicando quando o evento foi criado.

kind: Um número inteiro que representa o tipo de evento (exemplo: 1 para mensagens de texto, 2 para recomendações de servidores, etc.).

tags: Uma matriz de tags que fornece metadados adicionais, como menções a outros usuários, referências a eventos anteriores, entre outros.

content: O conteúdo principal do evento, que pode ser uma mensagem, um link ou qualquer dado que o cliente suporte.

sig: A assinatura digital do evento, gerada com a chave privada do autor. Essa assinatura garante a autenticidade (que o evento foi criado pelo autor) e a integridade (que o conteúdo não foi alterado).

Esses campos formam a base da interoperabilidade do Nostr, permitindo que os eventos sejam verificados de forma descentralizada e transmitidos por diferentes relay servers sem depender de uma autoridade central.

Relé

Um relé é um servidor que recebe, armazena e retransmite eventos entre os usuários. Ele atua como um intermediário simples, sem exercer controle centralizado ou censura. Os relés não interpretam o conteúdo dos eventos; eles apenas encaminham as informações de acordo com o protocolo.

Arquitetura do Nostr

A filosofia do Nostr é ter clientes inteligentes e servidores burros. Isso significa que a lógica e as funcionalidades complexas residem no lado do cliente, enquanto os servidores (relés) têm a função simples de transmitir dados. Essa arquitetura promove:

Descentralização: Não há um ponto único de controle ou falha.

Resistência à Censura: Como os dados são assinados pelos usuários e transmitidos por múltiplos relés, é difícil censurar ou alterar informações.

Escalabilidade: Novos relés podem ser adicionados facilmente, e os clientes podem se conectar a múltiplos relés simultaneamente.


Criptografia e Assinaturas Digitais

A segurança e autenticidade no Nostr são garantidas através da criptografia assimétrica, que utiliza um par de chaves criptográficas:

Chave Privada: Mantida em segredo pelo usuário e usada para assinar eventos.

Chave Pública: Compartilhada com outros usuários e relés, usada para verificar assinaturas.


Como Funciona

1. Criação do Evento: O usuário cria um evento com o conteúdo desejado.


2. Assinatura do Evento: O evento é assinado digitalmente com a chave privada do usuário.


3. Verificação: Outros usuários e relés usam a chave pública do autor para verificar a assinatura, garantindo que o evento não foi alterado e que realmente veio daquele usuário.



Benefícios

Autenticidade: Garante que o evento foi criado pelo proprietário da chave privada correspondente.

Integridade: Qualquer alteração no evento invalidaria a assinatura.

Segurança: As chaves privadas nunca são compartilhadas, protegendo a identidade e os dados dos usuários.


NIPs e BIPs: Semelhanças

NIPs: Nostr Implementation Possibilities

Os NIPs (Nostr Implementation Possibilities) são documentos que descrevem novas funcionalidades, extensões ou alterações ao protocolo Nostr. Eles servem como propostas para melhorar o protocolo e são discutidos e implementados pela comunidade.

Exemplos de NIPs

NIP-01: Define a forma básica dos eventos e a comunicação padrão entre clientes e relés.

NIP-05: Introduz um sistema de identificação de usuários baseado em nomes de domínio, facilitando a descoberta e verificação de identidades.

NIP-57: Especifica o sistema de Zaps, permitindo micropagamentos através da Lightning Network.


BIPs: Bitcoin Improvement Proposals

Os BIPs (Bitcoin Improvement Proposals) são documentos que propõem mudanças, melhorias ou novas funcionalidades para o protocolo Bitcoin. Assim como os NIPs, os BIPs são discutidos e desenvolvidos pela comunidade.

Semelhanças entre NIPs e BIPs

Processo Colaborativo: Ambos permitem que membros da comunidade proponham e discutam melhorias.

Evolução do Protocolo: Servem como meio para atualizar e adaptar os protocolos às novas necessidades.

Documentação Padronizada: Fornecem especificações técnicas claras para desenvolvedores.


Integração com o Bitcoin e a Lightning Network

Bitcoin

O Bitcoin é a maior criptomoeda, que funciona como um sistema de dinheiro eletrônico peer-to-peer descentralizado. Ele utiliza um sistema de blockchain para registrar todas as transações.

Lightning Network

A Lightning Network é uma solução de segunda camada para o Bitcoin, projetada para facilitar transações rápidas e baratas. Ela permite que os usuários realizem micropagamentos quase instantaneamente e a baixíssimo custo.

Integração com o Nostr

A integração do Nostr com o Bitcoin e a Lightning Network amplia as funcionalidades do protocolo, permitindo:

Micropagamentos: Transações rápidas e baratas dentro do Nostr.

Monetização de Conteúdo: Criadores podem receber pagamentos diretos por seu trabalho.

Serviços Pagos: Possibilidade de oferecer serviços em troca de Bitcoin.


Zaps e Micropagamentos em Satoshis

O que são Zaps?

Zaps são micropagamentos em satoshis realizados através da Lightning Network dentro do Nostr. Eles permitem que usuários enviem pequenas quantias de Bitcoin para outros usuários como forma de:

Apreciação de Conteúdo: Similar a um "like" remunerado.

Doações: Apoiar financeiramente criadores e projetos.

Pagamentos por Serviços: Remunerar serviços ou conteúdos exclusivos.


NIP-57: Especificação dos Zaps

O NIP-57 define como os Zaps são implementados no Nostr. Ele especifica:

Formato das Transações: Como os pagamentos são estruturados e assinados.

Integração com Eventos: Associar pagamentos a eventos específicos.

Verificação: Garantir que os pagamentos são legítimos e verificáveis.


Como Funcionam os Zaps

1. Solicitação de Pagamento: O usuário A deseja enviar um Zap para o usuário B.


2. Criação da Fatura: O usuário B fornece uma fatura da Lightning Network.


3. Pagamento: O usuário A paga a fatura, enviando satoshis para o usuário B.


4. Confirmação: O evento de pagamento é registrado no Nostr, podendo ser verificado por outros usuários.



Possibilidades de Serviços Pagos com Bitcoin

A integração do Nostr com o Bitcoin e a Lightning Network abre um leque de possibilidades para serviços pagos:

Monetização de Conteúdo

Artigos Premium: Autores podem cobrar satoshis para acesso a conteúdo exclusivo.

Streaming de Vídeo/Áudio: Pagamentos por minuto assistido ou ouvido.

Arte Digital: Vendas diretas de NFTs ou obras digitais.


Serviços Profissionais

Consultorias: Pagamentos por hora ou sessão.

Desenvolvimento de Software: Contratação de programadores para projetos específicos.

Design e Criatividade: Serviços de design gráfico, produção de conteúdo, etc.


Comércio e Mercados

E-commerce Descentralizado: Venda de produtos físicos ou digitais diretamente no Nostr.

Mercados de Serviços: Plataformas onde prestadores e clientes se conectam e transacionam em Bitcoin.


Benefícios da Integração com Bitcoin

Transações Rápidas e Baratas: A Lightning Network permite micropagamentos eficientes.

Descentralização Financeira: Elimina intermediários financeiros tradicionais.

Acessibilidade Global: Qualquer pessoa com acesso à internet pode participar.

Segurança: Transações seguras e verificáveis através da blockchain do Bitcoin.


Como Começar a Usar o Nostr com Bitcoin

1. Escolha um Cliente com Suporte a Lightning: Clientes como Damus e Amethyst já oferecem integração com a Lightning Network.


2. Configure uma Carteira Lightning: Utilize uma carteira compatível, como Wallet of Satoshi ou BlueWallet.


3. Gere suas Chaves Nostr: Ao iniciar o cliente, você gerará um par de chaves criptográficas.


4. Conecte-se a Relés: Configure o cliente para se conectar a relés que suportam eventos de pagamento.


5. Interaja e Monetize: Comece a enviar e receber Zaps, ofereça serviços ou monetize seu conteúdo.


Desafios e Considerações

Taxas de Transação: Embora baixas, as taxas da Lightning Network ainda existem.

Segurança das Carteiras: Proteja suas chaves privadas e use carteiras confiáveis.

Adoção: A integração plena ainda depende da adoção em massa pelos usuários e desenvolvedores.

Fechamento

Ufa! Falei demais! Espero ter entendido bem tudo isso e não ter falado nenhuma besteira. Por favor, se discorda de algo ou quiser complementar, sinta-se à vontade, apreciarei muito seu comentário! 

Aproveitando esse momento pra fazer um merchan rsrs Sou engenheiro de DevSecOps e aceito Bitcoins como pagamento. Se precisar criar um pipeline, automatizar SAST, DAST e outros testes, criar e configurar clusters Kubernetes ou fazer aquela Dockerimagezinha marota, só chamar! Vlw e um abraço! :)

 
 Galerinha, quem puder melhorar ou corrigir esse texto, a ideia é ver se deixei passar algo e ter uma referência clara e direta por aqui mesmo: nostr:nevent1qqsxw84w8y3drh8mjy7wa7s05fae76pv0fc2807py9q3cgh82g7npvgpz3mhxw309ucnydewxqhrqt338g6rsd3e9upzqhwpw9z7mrqu3wt49ks7snkjum2wz2st9yy7zljn8fpxd90ecrswqvzqqqqqqyrq4jmy 
 Às vezes me pergunto porquê o pessoal da empresa não usa a rede Tor para assuntos internos, parece tão mais seguro. Sério, não sei se sou muito emocionados, mas estou apaixonado pelos serviços onion. Farei um site pessoal pra brincar com isso, anotem isso.  
 Show! Obrigado pela dica, nostr:nprofile1qqs0f74kketdcv63r53mlzgzfh93we3dkgzkldv2p6g62a8gf3g92yqpzemhxue69uhhyetvv9ujuvrcvd5xzapwvdhk6q2gwaehxw309amhxte0dau8gunyv4mxza3kx3arvdrevgmhsdnjdfnngmn50fck56r9v3kn2c340f48zatvw4nkkmng0fergdnw0ye8zcnpvshx7mnfdahqzsmhwvaz7tmhd9hx2enfd36x2unddpckj7rc0fkku7ncdpex6ct4vecxuen3xdex66nrdsmx26f5x45hjdrpd9j8ymn8wpehj6ty9ehku6t0dcfps8fc! Assuntos internos eu me refiro a coisas do cotidiano da empresa. Acesso ssh, furar NAT, DevSecOps... Sério, acho que isso tem um puta potencial econômico. Tem alguma empresa cujo core business use fortemente o Tor? Algo tipo o que aconteceu com o Linux.