


Para compreender o Threshold Signature Scheme (TSS), é fundamental começar por dominar os princípios da criptografia. Desde os anos 1970, cada vez mais sistemas de Internet, como TLS (Transport Layer Security) e PGP (Pretty Good Privacy), utilizam criptografia assimétrica, também designada como criptografia de chave pública (PKC). Este método recorre a duas chaves distintas: a pública e a privada. A chave pública pode ser divulgada livremente e utilizada por qualquer pessoa sem comprometer a segurança, enquanto a chave privada permanece confidencial, constituindo o elemento central da arquitetura de segurança do sistema.
A encriptação e as assinaturas digitais são as aplicações nucleares da PKC. Ambos os sistemas dependem de três algoritmos fundamentais: o primeiro gere a criação do par de chaves privada e pública, estabelecendo a relação entre elas; o segundo produz o texto cifrado (na encriptação) ou a assinatura (na assinatura digital); o terceiro gere a desencriptação ou a verificação, permitindo validar as operações criptográficas por entidades autorizadas.
No caso das assinaturas digitais, o algoritmo de assinatura exige a chave privada, conhecida apenas pelo titular, para gerar uma assinatura exclusiva. Esta assinatura é matematicamente associada à mensagem, permitindo que qualquer pessoa com a chave pública correspondente confirme a autenticidade e a exatidão da assinatura. O processo de verificação garante que a mensagem não foi alterada e que provém efetivamente do titular da chave privada, assegurando integridade e não-repúdio nas comunicações digitais.
É indiscutível que a tecnologia blockchain constitui um avanço revolucionário em sistemas distribuídos. Proporciona uma camada de consenso robusta, capaz de organizar e registar eventos de forma transparente e imutável. Esta infraestrutura confere aos utilizadores o poder de criar economias descentralizadas, sistemas de governança e aplicações financeiras sem recorrer a intermediários centralizados. Curiosamente, a criptografia que permite operar uma blockchain básica pode basear-se exclusivamente em assinaturas digitais, o que representa uma das utilizações mais elegantes da criptografia de chave pública.
No universo blockchain, as chaves privadas representam identidades ou direitos de propriedade, enquanto a assinatura funciona como declaração pública dessa identidade. A rede blockchain organiza estas declarações cronologicamente e valida-as mediante regras de consenso pré-definidas. Estas regras garantem, entre outros aspetos essenciais, que as assinaturas não podem ser falsificadas e são matematicamente corretas, proporcionando garantias de segurança indispensáveis para transações sem confiança.
Ao contrário da criptografia clássica usada nas primeiras blockchains, a moderna caixa de ferramentas criptográficas integra técnicas avançadas de grande potencial, como provas de conhecimento nulo (zero-knowledge proofs), que permitem provar conhecimento sem revelar informação; encriptação homomórfica, que torna possível calcular sobre dados encriptados; e computação multipartidária, que permite que várias partes calculem conjuntamente uma função mantendo os seus inputs privados. Nos últimos anos, a investigação em blockchain fez progredir exponencialmente a criptografia aplicada, com avanços pioneiros nestas áreas e em outras.
Neste artigo, abordamos um destes avanços que assume especial importância para a segurança blockchain e gestão de chaves: assinaturas threshold seguras e eficientes.
A computação multipartidária (MPC) é uma área especializada da criptografia, criada a partir do trabalho de Andrew C. Yao há cerca de quatro décadas. Em protocolos MPC, um grupo de participantes, que não necessariamente confiam uns nos outros, colabora para calcular uma função sobre os seus dados privados, sem revelar esses dados entre si. Isto permite cálculos conjuntos sem necessidade de expor informação sensível.
Como exemplo prático, imagine n colaboradores de uma empresa que pretendem saber quem tem o salário mais elevado sem revelar os valores individuais. Os inputs privados são os salários e o output é apenas o nome da pessoa que recebe mais. Ao recorrer à MPC, garante-se que nenhum valor é divulgado, preservando a privacidade e alcançando o resultado pretendido.
Duas propriedades definem os protocolos MPC: correção e privacidade:
Estes princípios podem ser aplicados à geração distribuída de assinaturas digitais, originando o threshold signature scheme. Vejamos como funcionam estas propriedades neste contexto. Recorde-se que as assinaturas digitais tradicionais envolvem três passos, todos eles adaptados à configuração distribuída:
Geração de chave: Este primeiro passo é o mais complexo em ambiente distribuído. É preciso criar uma chave pública para verificar futuras assinaturas, mas sem que ninguém detenha a chave privada completa. Cada participante recebe uma parcela secreta individual. A função de geração de chave distribui a mesma chave pública por todos e uma parcela distinta por participante. A privacidade assegura que nenhuma parcela é divulgada durante o processo, e a correção garante que a chave pública resulta da combinação de todas as parcelas secretas.
Assinatura: Este passo envolve um protocolo distribuído de geração de assinatura. Cada parte utiliza a sua parcela secreta, gerada previamente, e existe um input público, a mensagem a assinar. O resultado é uma assinatura digital igual à que seria produzida por alguém com a chave privada completa. A privacidade assegura que nenhuma parcela secreta é exposta durante o cálculo, mesmo que algum participante tente obter informação de outros.
Verificação: Este algoritmo mantém-se igual ao modelo de chave única clássico. Para garantir compatibilidade com a infraestrutura blockchain, qualquer pessoa com a chave pública pode validar as assinaturas pelos processos habituais. Os nós validadores da blockchain processam transações sem distinguir entre assinaturas geradas por TSS ou métodos tradicionais.
Threshold Signature Scheme (TSS) designa este sistema de geração de chave e assinatura distribuídas, criando uma solução completa para gestão distribuída de chaves criptográficas.
A integração natural do TSS na infraestrutura blockchain implica modificar o software do cliente da blockchain para gerar chaves e assinaturas com protocolos TSS em vez de métodos convencionais de chave única. Por "cliente blockchain" entende-se o conjunto de comandos e operações que um nó completo executa na rede. O TSS permite substituir todas as operações relacionadas com chaves privadas por cálculos distribuídos envolvendo vários participantes.
Para detalhar esta integração, vejamos o processo tradicional de criação de novos endereços numa blockchain. Normalmente, gera-se uma chave privada através de um gerador de números aleatórios seguro, calcula-se a chave pública por multiplicação de curva elíptica ou método equivalente, e deriva-se o endereço blockchain da chave pública via funções de hash e codificação.
Com o TSS, este processo muda radicalmente. Em vez de uma única parte gerar a chave privada, um conjunto de n participantes calcula em conjunto a chave pública através de protocolo distribuído. Cada um guarda apenas uma parcela secreta da chave privada, nunca revelada aos restantes. O endereço blockchain resulta da chave pública conjunta, tal como no modelo tradicional, tornando a rede blockchain indiferente ao método de geração. A grande vantagem é que a chave privada deixa de ser um ponto único de falha, pois cada participante detém apenas uma parte, impossibilitando assinaturas isoladas.
O mesmo método pode ser usado ao assinar transações. Em vez de uma parte única utilizar a chave privada, é preciso executar um protocolo distribuído de geração de assinatura entre vários participantes. Cada um usa a sua parcela secreta e produzem juntos uma assinatura válida, verificável pela chave pública. A assinatura é idêntica à convencional, mas só pode ser gerada por um número mínimo de participantes em cooperação. Isto elimina o ponto único de falha e aumenta a resiliência contra ataques.
Importa referir que a geração distribuída de chaves pode ser configurada com diferentes estruturas de acesso. O padrão é o modelo “t de n”, onde qualquer t de n participantes podem criar uma assinatura válida. Assim, até t-1 falhas ou compromissos não comprometem a segurança global. Esta flexibilidade permite ajustar o modelo de segurança ao perfil de risco e necessidades de cada organização.
Algumas plataformas blockchain oferecem funcionalidades semelhantes ao TSS, integradas ou programáveis no protocolo, conhecidas como multisig ou multi-assinatura. Multisig implementa funcionalidades comparáveis ao TSS na camada de aplicação da blockchain, enquanto o TSS atua na camada criptográfica.
Tanto o multisig como o TSS procuram garantir segurança exigindo múltiplas autorizações para uma transação, mas por mecanismos muito distintos. O TSS gera, fora da cadeia, uma assinatura padrão única; o multisig exige validação de múltiplas assinaturas separadas diretamente na blockchain.
Esta diferença tem implicações relevantes. A blockchain deve ser capaz de codificar e processar transações multisig, o que afeta a privacidade, pois a estrutura de acesso, o número de signatários e as suas identidades ficam expostos publicamente. Além disso, o custo das transações multisig é maior, pois exige comunicação e armazenamento de todas as assinaturas e signatários na blockchain.
Pelo contrário, o TSS agrega todos os detalhes numa transação que parece conter apenas uma assinatura. Isto reduz custos de transação e exposição de informação, protegendo melhor a privacidade dos participantes. Por outro lado, o multisig é não interativo após a transmissão da transação, evitando a necessidade de comunicação entre signatários durante a assinatura.
O multisig é específico de cada blockchain e requer implementação dedicada para cada protocolo. Em redes antigas, a funcionalidade multisig pode nem existir ou ser limitada. O TSS, por depender apenas de criptografia, é aplicável a qualquer blockchain que utilize esquemas de assinatura digital padrão.
O Shamir Secret Sharing Scheme (SSSS) propõe uma abordagem diferente para distribuir material de chave privada. Permite armazenar a chave privada dividida em múltiplos locais enquanto está inativa. Contudo, distinguem-se do TSS em dois pontos críticos, determinando diferentes casos de uso:
Geração de chave: No SSSS, um dealer gera a chave privada completa e depois divide-a em parcelas secretas. Assim, na fase de geração, a chave privada existe num único local e é distribuída pelo dealer. Isto constitui uma vulnerabilidade crítica. O TSS elimina o dealer, distribuindo o próprio processo de geração. Nunca existe a chave privada completa num só local, garantindo maior segurança desde o início.
Assinatura: Com SSSS, é preciso reconstruir a chave privada completa a partir das parcelas para criar uma assinatura. Cada vez que isso acontece, existe um ponto único de falha, pois a chave completa está acessível, mesmo que temporariamente. O TSS permite assinar sem nunca reconstruir a chave completa: cada participante usa apenas a sua parcela e todos interagem para produzir uma assinatura válida, sem que alguém aceda à chave total.
No TSS, a chave privada nunca está presente num só local durante todo o seu ciclo de vida, seja na geração, na assinatura ou noutra operação. Isto representa uma melhoria fundamental de segurança face ao SSSS para operações ativas de criptografia.
Uma wallet de criptomoedas baseada em TSS funciona de forma muito distinta das tradicionais. Normalmente, uma wallet convencional gera uma seed phrase (habitualmente 12 ou 24 palavras) e, a partir dela, deriva todos os endereços e respetivas chaves privadas. O utilizador pode utilizar esta estrutura determinística para aceder às chaves privadas e assinar transações, ou recuperar todas as chaves com a seed phrase caso a wallet se perca ou danifique.
Numa wallet threshold, a arquitetura é substancialmente mais complexa. É possível ter uma estrutura HD semelhante, mas a geração tem de ser distribuída através de um protocolo MPC. Os participantes devem decidir em conjunto qual o próximo item a derivar, seguindo o caminho HD. Cada parte tem uma seed phrase distinta, gerada separadamente num processo distribuído e nunca combinada, impedindo que algum participante derive sozinho as chaves privadas a partir da sua seed e mantendo a segurança distribuída em todo o processo.
As wallets TSS permitem ainda rodar a chave privada sem mudar a chave pública ou o endereço blockchain, uma funcionalidade de segurança não disponível nas wallets convencionais. A rotação da chave privada, conhecida como proactive secret sharing, é mais um protocolo MPC que recebe as parcelas antigas e gera novas. As antigas podem ser eliminadas e as novas utilizadas para assinar, mantendo a chave pública e o endereço.
Este modelo acrescenta uma dimensão temporal à segurança: um atacante teria de comprometer vários locais ao mesmo tempo para atacar uma wallet threshold. Combinar parcelas antigas com novas não facilita a falsificação de assinaturas. O sistema torna-se resistente a ataques prolongados, nos quais o atacante compromete diferentes partes em momentos distintos.
Uma limitação deste tipo de wallet é a incompatibilidade com sistemas convencionais de recuperação. Não é possível anotar 12 palavras e recuperar a wallet noutro sistema. É por isso crítico decidir quem guarda as parcelas secretas e como gerir backups e recuperação.
Existem várias arquiteturas possíveis para implementar wallets threshold:
Externalização do TSS: O utilizador delega o cálculo TSS a n servidores independentes, que executam os protocolos. Externaliza a geração, gestão e assinatura para prestadores de serviços que não têm posse legal dos ativos, mas oferecem segurança em troca de incentivo ou taxa, como acontece em muitos serviços cloud.
Utilização de múltiplos dispositivos: O utilizador executa os protocolos TSS em vários dispositivos seus, como um IoT em casa, o telemóvel ou o portátil. Dá total controlo ao utilizador, mas exige coordenação entre dispositivos.
Abordagem híbrida: Parte dos protocolos TSS são executados por prestadores de serviços externos e parte em dispositivos do utilizador, conjugando as vantagens dos modelos anteriores.
A primeira opção permite ao utilizador libertar os seus dispositivos das operações TSS, que são exigentes. Contudo, existe o risco de conluio entre prestadores, que podem ser pressionados judicialmente ou alvo de ataques coordenados.
A segunda opção elimina o risco de terceiros, mas pode dificultar transações, pois requer vários dispositivos online e participação ativa no cálculo TSS, o que nem sempre é prático.
A terceira opção é frequentemente a mais equilibrada: permite ao utilizador realizar transações de forma rápida e conveniente, mantendo a necessidade de autorização própria. Mesmo que alguns prestadores sejam comprometidos, o atacante não pode assinar sem também comprometer os dispositivos do utilizador.
Ao longo dos anos, a investigação revelou aplicações inovadoras para assinaturas digitais, algumas de grande sofisticação. O TSS é um primitivo criptográfico que pode reforçar de forma significativa a segurança dos sistemas blockchain. Muitas funcionalidades habitualmente implementadas por smart contracts podem ser substituídas por protocolos criptográficos baseados em TSS.
Aplicações descentralizadas, soluções layer 2, atomic swaps, protocolos de mistura, mecanismos de herança e muito mais podem ser construídos em frameworks TSS, permitindo substituir operações on-chain dispendiosas por alternativas off-chain mais baratas, eficientes e fiáveis. Transferindo lógica complexa para protocolos criptográficos, reduzem-se custos de transação e aumenta-se a privacidade.
Exemplos práticos: Multi-Hop Locks utiliza assinaturas de duas partes para redes de canais de pagamento layer 2, tornando-as mais privadas e seguras. ShareLock é uma das soluções de mistura on-chain mais económicas para plataformas de smart contracts, baseada na verificação de uma assinatura threshold única. Estes casos demonstram como o TSS viabiliza novos designs anteriormente impraticáveis.
Nos últimos anos, a quantidade e qualidade das implementações TSS aumentou significativamente. No entanto, como tecnologia recente, ainda apresenta limitações e desafios. A criptografia de chave pública convencional foi testada exaustivamente ao longo de décadas, enquanto os protocolos TSS são mais complexos e exigem escrutínio adicional.
A complexidade dos protocolos TSS significa que ainda não foram submetidos ao mesmo nível de validação real dos primitivos tradicionais. Normalmente, exigem pressupostos criptográficos adicionais, por vezes menos robustos, como esquemas de compromisso, provas de conhecimento nulo ou outros auxiliares. Continuam a surgir e a ser resolvidos novos vetores de ataque que não existiam nos modelos de chave única.
Erros de implementação são também uma preocupação, pois a distribuição dos protocolos TSS aumenta as possibilidades de falhas subtis no código. É fundamental envolver engenheiros de segurança e criptógrafos especializados em MPC e TSS na implementação em sistemas produtivos, com auditoria e testes rigorosos.
O ecossistema de soluções TSS está cada vez mais robusto, impulsionado por contribuições científicas, revisões profissionais, auditorias especializadas e melhorias contínuas de performance. À medida que a tecnologia evolui e as implementações são testadas em situações reais, cresce a confiança na segurança do TSS.
Apesar dos desafios, os benefícios do TSS na segurança blockchain e gestão de chaves justificam o seu desenvolvimento e adoção contínuos.
A implementação do TSS em sistemas blockchain implica várias considerações: a comunicação entre partes pode ser exigente, especialmente em protocolos com múltiplas rondas de interação. Latência de rede e fiabilidade são críticas para o desempenho. É necessário desenhar cuidadosamente a arquitetura para garantir comunicações eficientes durante a geração de chaves e assinaturas.
Outro aspeto essencial é a gestão de falhas e recuperação. Em sistemas distribuídos, algumas partes podem ficar offline. Os protocolos TSS devem ser robustos, permitindo funcionamento mesmo com partes indisponíveis, desde que se cumpra o threshold. Também é importante planear e implementar procedimentos para adicionar ou remover partes comprometidas.
A escolha dos parâmetros threshold (t e n num esquema t-de-n) é fundamental, dependendo dos requisitos de segurança e das limitações operacionais. Thresholds elevados reforçam a segurança, mas exigem cooperação mais extensa, o que pode afetar disponibilidade e performance. É imprescindível equilibrar segurança, disponibilidade e eficiência operacional.
Por fim, a experiência do utilizador é relevante: a natureza distribuída do TSS pode introduzir latência e complexidade. Interfaces claras e comunicação sobre os benefícios de segurança ajudam os utilizadores a compreender e aceitar esses compromissos. À medida que a tecnologia evolui e as soluções se tornam mais eficientes, muitos destes desafios serão superados, tornando o TSS mais acessível ao público geral.
As Threshold Signatures permitem que vários participantes gerem em conjunto uma assinatura sem que nenhum deles detenha a chave privada completa. Ao contrário das assinaturas digitais convencionais, reforçam a segurança e resiliência ao distribuir a autoridade de assinatura por múltiplos intervenientes.
As Threshold Signatures distribuem a autoridade de assinatura por múltiplos participantes, permitindo autorizações conjuntas e reforçando a segurança. São utilizadas em wallets multi-assinatura, soluções de custódia descentralizada e mecanismos de governança distribuída para evitar pontos únicos de falha.
Ambas exigem múltiplas assinaturas para transações. As wallets multi-assinatura utilizam smart contracts com várias chaves privadas independentes, enquanto as Threshold Signatures recorrem a partilha criptográfica de segredos para dividir as chaves. As Threshold Signatures são mais privadas e eficientes, porque as assinaturas são geradas off-chain sem expor fragmentos individuais de chave.
As Threshold Signatures exigem assinatura colaborativa de transações por múltiplos intervenientes. Mesmo que algumas chaves sejam comprometidas, os ativos mantêm-se seguros desde que se cumpra o threshold. Este modelo reforça a segurança e governança descentralizada, protegendo contra pontos únicos de falha.
As Threshold Signatures distribuem o controlo das chaves por vários participantes, eliminando pontos únicos de falha. Nenhum interveniente detém total autoridade de assinatura, reduzindo o risco de comprometimento. Exigem consenso de quórum para transações, garantindo proteção superior contra roubo de chaves e acesso não autorizado.
As Threshold Signatures exigem conhecimento do algoritmo Shamir Secret Sharing, esquemas multi-assinatura e princípios de gestão distribuída de chaves para dividir e reconstruir chaves criptográficas entre várias partes de forma segura.











