
Um endereço de carteira parece algo simples: uma sequência que você copia, cola e para a qual envia dinheiro. No Bitcoin, é quase isso de simples. Na Solana, colocar uma carteira compartilhada — um multisig — por trás de um endereço é surpreendentemente difícil. Este artigo explica por quê e prepara a pergunta que o restante desta série responde.
O que um endereço multisig precisa prometer
Uma carteira multisig é controlada por várias chaves, em que um número fixo delas precisa concordar antes que o dinheiro se mova. Um multisig "2 de 3", por exemplo, tem três chaves e precisa que duas quaisquer aprovem um pagamento. O objetivo é eliminar os pontos únicos de falha: você perde uma chave, ou uma chave é roubada, e seus fundos continuam seguros.
Para que isso seja útil, o endereço precisa manter duas promessas. Primeiro, ele precisa ser conhecido com antecedência — você quer entregar a alguém um endereço de depósito antes de terminar de configurar qualquer coisa. Segundo, ele precisa ser honesto: quem enviar dinheiro para esse endereço deve poder confiar que só o grupo de chaves combinado, sob a regra combinada, poderá gastar dele. Guarde essas duas promessas. Elas são o fio condutor de tudo o que vem a seguir.
No Bitcoin, o endereço é a regra
O Bitcoin faz isso parecer fácil. Um multisig de Bitcoin é descrito por um pequeno script: a lista de chaves públicas mais a regra "M de N". Para obter o endereço, você pega esse script e o coloca em hash. O endereço (um endereço P2WSH) literalmente é o hash das regras de gasto.
Isso tem uma consequência discretamente poderosa. Qualquer pessoa pode calcular o endereço offline, em um notebook sem internet, antes de transmitir uma única transação. Não há etapa de "criar a carteira" — a carteira não precisa existir na rede para receber dinheiro. O script é revelado só mais tarde, quando os fundos são gastos, e a rede verifica se o script revelado bate com o endereço e se há assinaturas válidas suficientes. Endereço conhecido com antecedência: sim. Honesto: sim — porque o endereço deriva da própria regra, um conjunto diferente de chaves produz um endereço diferente.
Na Solana, um endereço é uma conta que precisa ser criada
A Solana funciona de forma diferente. Na Solana, tudo é uma conta — um espaço de armazenamento on-chain com um dono. Seus fundos vivem em contas, os programas vivem em contas, e a configuração de um multisig também vive em uma conta. É crucial que as contas não surjam de graça. Uma conta precisa ser criada e paga explicitamente: alguém a financia com uma pequena quantia de SOL chamada "aluguel" para que a rede armazene seus dados.
Um multisig na Solana, portanto, não é apenas um endereço — é uma conta controlada por um programa que guarda a lista de membros e o limite. E essa conta precisa ser criada por uma transação antes que o multisig possa fazer qualquer coisa. Essa é a raiz da dificuldade: uma carteira compartilhada na Solana tem uma etapa de configuração que o Bitcoin simplesmente não tem.
PDAs: endereços sem chave privada
A Solana tem, sim, uma ferramenta elegante para isso, chamada Endereço Derivado de Programa, ou PDA. Um endereço normal da Solana tem uma chave privada correspondente — quem tem a chave controla o endereço. Um PDA é construído deliberadamente para ficar fora da curva: é um endereço de aparência válida para o qual nenhuma chave privada existe e nenhuma chave privada pode existir. Ninguém pode assinar por ele pessoalmente.
Em vez disso, um PDA é derivado de forma determinística. Você pega alguns valores de entrada — chamados de "sementes" — mais o ID de um programa, passa tudo por uma função de mão única e sai o endereço. As mesmas sementes e o mesmo programa sempre produzem o mesmo PDA, então qualquer um pode reproduzi-lo. E como não há chave privada, só o programa dono pode autorizar ações para esse endereço, o que ele faz por meio de um mecanismo chamado invocação entre programas com invoke_signed: o programa apresenta as sementes ao runtime da Solana, e o runtime concede a ele autoridade de assinatura para o PDA. Nenhuma assinatura criptográfica é produzida — o direito de agir vem de conhecer as sementes, não de ter uma chave.
Um PDA é exatamente a casa certa para um multisig: um endereço controlado pela lógica do programa em vez de por uma única pessoa. Até aqui, tudo bem. A parte difícil é o que se escolhe como sementes.
O problema de financiar antes de criar
É aqui que os multisigs dominantes da Solana esbarram em dificuldade. Ao contrário do modelo determinístico do Bitcoin, os multisigs mais usados da Solana — o Squads V4 é o exemplo líder, maduro e muito auditado — derivam o endereço do multisig de um valor aleatório recém-gerado, escolhido no momento da criação, e não do conjunto de membros. No Squads V4 esse valor se chama create_key, uma chave efêmera produzida quando um criador executa a transação de criação.
Derivar o endereço de um create_key aleatório é uma escolha de design deliberada e razoável — contorna um caso de borda incômodo em que dois grupos diferentes querem exatamente a mesma composição de membros. Mas tem duas consequências que vale entender com clareza:
- Você não pode conhecer o endereço com antecedência. A semente não existe até que alguém execute a transação de criação, então o endereço também não. Não há como imprimir um endereço de depósito e financiá-lo antes da configuração — o problema de financiar antes de criar. A primeira promessa se quebra.
- O criador é um ponto único de confiança na configuração. Uma conta específica precisa executar essa transação de criação e escolher esse valor aleatório. Pela breve janela da configuração, você confia que essa parte faça isso corretamente.
Nada disso torna o Squads V4 inseguro — é o multisig mais testado em batalha da Solana e custodia somas muito grandes. É simplesmente um formato diferente de confiança em relação ao do Bitcoin. O endereço já não é "o hash da regra"; é "seja lá o que a transação de criação tenha produzido".
A Ethereum encontrou um caminho do meio
A Ethereum enfrentou um problema parecido e respondeu com um recurso chamado CREATE2. Ele permite calcular o endereço de um contrato inteligente antes de o contrato ser implantado, a partir de entradas fixas. Carteiras como a Safe usam isso para lhe dar um chamado endereço contrafactual: um endereço real e financiável que você pode compartilhar e no qual receber dinheiro, enquanto o contrato real é implantado de forma preguiçosa — só quando os fundos precisam se mover pela primeira vez. O padrão mais recente de abstração de contas, ERC-4337, formaliza a mesma ideia. A Ethereum recupera assim a promessa de "conhecido com antecedência" mesmo que, como a Solana, precise que um objeto on-chain exista no fim.
A pergunta que esta série responde
Coloque os três modelos lado a lado. Bitcoin: o endereço é o hash da regra — conhecível offline, honesto por construção, sem etapa de criação. Ethereum: um endereço contrafactual — conhecível com antecedência, com a implantação adiada. Os multisigs gerais da Solana: o endereço vem de aleatoriedade do momento da criação — não conhecível com antecedência, com um criador em quem confiar na configuração.
Então aqui está a pergunta. A Solana precisa de contas, e contas precisam ser criadas — isso não vai mudar. Mas um multisig da Solana precisa abrir mão da propriedade do Bitcoin? O endereço poderia, em vez disso, ser derivado puramente do conjunto de membros e do limite — a própria regra — de modo que seja conhecível offline, financiável antes da configuração e honesto porque um grupo diferente de chaves produz um endereço diferente?
Essa é exatamente a propriedade que a equipe da SSP incorporou ao seu próprio programa de multisig da Solana. O próximo artigo mostra como: um endereço que é o conjunto de membros, um cofre que você pode financiar antes de qualquer coisa estar registrada on-chain e uma etapa de registro que não precisa de criador nenhum. O design foi lançado junto com o suporte à Solana no SSP Wallet — veja o anúncio de lançamento — e, em linha com como a SSP trata segurança, o programa está atualmente só na devnet e aguardando uma auditoria externa antes da mainnet. Se você ainda é novo no multisig em si, comece por o que é um multisig e por que ele importa; caso contrário, siga em frente.


