Endereços Bitcoin

Endereços Bitcoin

Endereços bitcoin, o que são, para que servem, de onde vêm, diferentes endereços

Quando o bitcoin é enviado, é sempre enviado para um endereço. Um endereço pode ser visto como um cadeado. Quando se diz que um endereço tem X bitcoins, o que realmente quer dizer é que X bitcoins estão trancados naquele endereço.

Como quase todos os cadeados, o bitcoin de um endereço só pode ser desbloqueado através de uma chave. Mas alguns endereços podem ser mais complexos, tal como os cadeados, e precisam de várias chaves e a cooperação de várias pessoas para os desbloquear.

Endereço básico de Bitcoin

Vamos começar pela forma mais simples de endereço bitcoin.

Imagina que a Alice tem este endereço:

1mEBFZ2iGmrDL6GXmrCAM8ZJdg7XVYdCM

O "1" no início dá-nos a versão do endereço e o tipo de "cadeado" usado. Os endereços começados por 1 são os mais básicos e são chamados de endereços "Pay to Public Key Hash", ou pagamento ao hash da chave pública, e apenas precisam de uma assinatura, ou chave, para desbloquear.

Os endereços são chamados de "Pay to Public Key Hash", (P2PKH) porque a maior parte da informação contida no endereço é um hash da Public Key, chave pública, da Alice.

Mas porque usar um hash da chave pública e não apenas a chave pública? Na realidade os primeiros endereços bitcoin eram exactamente assim, "Pay to Public Key" - pagamento à chave pública. Só mais tarde se percebeu que utilizar um hash da chave pública trazia alguns benefícios à segurança e tornavam o protocolo um pouco mais seguro. Então P2PKH tornou-se o standard.

Temos então o endereço com o hash da chave pública da Alice. Como é que ela pode gastar essas moedas?

Para fazer uma transacção a Alice precisa de duas coisas:

  • a sua chave pública
  • a assinatura, com a chave privada, da informação da transacção que quer fazer, com a sua chave privada

Quando a Alice produz esta informação, esta é adicionada à transacção. Com isto o software em todos os Nós na rede Bitcoin podem verificar a sua validade. Eles vão verificar:

  • se o hash da chave pública que a Alice forneceu corresponde ao hash do endereço
  • se a assinatura é válida para aquela chave pública

Se estes dois forem verdadeiros, então a transacção da Alice é validada e ela desbloqueou com sucesso aquele endereço e pode gastar o que estiver nele.

Este é o formato mais simples de endereço. Vamos ver a seguir outras versões de endereços.

Pay to Script Hash

O próximo exemplo começa com "3", como este:

32JqHQWwSVh8J1ttdbVJ1TfPSm8TcyaHBo

Este é um endereço chamado "Pay to Script Hash" e permite algumas formas mais complexas para gastar o BTC que contêm. Obtém o seu nome porque os dados que contém codificam um hash de um script de computador. Como um mini programa de computador!

Se a Alice quiser gastar de um destes endereços, o seguinte tem que acontecer:

  • ela tem que produzir o script que corresponde ao hash da informação no endereço
  • tem de inserir todas as assinaturas ou informação secreta que o script precisar

Quando um Nó de Bitcoin obtém estes dados juntamente com a transação, ele executa o script - programa de computador - que a Alice forneceu juntamente com as Assinaturas / Segredos que inclui.

O script deve resultar em verdadeiro para que a transação seja válida.

Isto pode parecer um pouco vago, mas é porque este tipo de endereços podem codificar todos os tipos de scripts. O mais comum é um script "Multi-Signature", que requer assinaturas de vários intervenientes diferentes para se poder aceder aos fundos. Outros tipos de scripts podem incluir Timelocks (bitcoin bloqueado por um determinado período de tempo) entre muitas outras possibilidades.

Segregated Witness

Finalmente podemos ter também endereços com este formato:

bc1qp6sfhra4w57x7vsazeux2jhl65wx2jx7lpuq2m

Estes endereços, que começam com "bc" são chamados de "Segregated Witness", e têm funcionalidade semelhante às anteriores. O que têm de especial é que ao usar este tipo de endereço, a Alice poupa em taxas de transacção, as fees.

Ao usar este endereço, não são cobrados os dados da assinatura (em bitcoin paga-se pelos dados, ou quantidade de informação que vai numa transacção!)

Recapitulando, vimos 3 tipos de endereço Bitcoin:

  • P2PKH (Pay to Public Hash) - necessário uma chave
  • P2SH (Pay to Script Hash) - necessário um mini programa de computador
  • Segwit (Segregated Witness) - mesmas funcionalidades que as anteriores mas, poupa em fees

Isto é o básico em Endereços Bitcoin!