Para qualquer pessoa com participações substanciais em bitcoins, uma estrutura de custódia que inclua um único ponto de falha deve ser vista como inaceitável. Se uma carteira tiver um único componente que – quando perdido ou roubado – pode levar à perda permanente de fundos, então é simplesmente muito perigoso considerá-lo. Ninguém quer manter uma riqueza significativa à beira da catástrofe.

Os detentores individuais de bitcoins têm inúmeras ferramentas disponíveis que podem ajudar a reduzir o risco de perda ou roubo. Em um artigo anterior, abordamos algumas dessas ferramentas, destacando modificações comumente aplicadas em carteiras singlesig. No entanto, também explicamos por que essas abordagens não conseguem remover totalmente os pontos únicos de falha.

Para uma empresa, governo ou outra instituição que queira garantir um tesouro de bitcoin, eliminar pontos únicos de falha não é apenas algo bom de se ter, mas um pré-requisito. Os únicos modelos de custódia que vale a pena considerar para estas entidades são aqueles que incluem um requisito de limite para aceder a fundos. Um requisito de limite descreve uma estrutura que envolve vários componentes protegidos separadamente, onde um subconjunto desses componentes é necessário para aprovar qualquer retirada. Esta é a única forma de alcançar segurança de nível institucional, com pontos únicos de falha eliminados completamente.

Neste artigo, abordaremos como aplicar segurança de limite usando três métodos diferentes: script multisig, compartilhamento secreto de Shamir (SSS) e computação multipartidária (MPC). Também abordaremos as vantagens e desvantagens associadas a cada abordagem e como uma instituição pode escolher a melhor configuração para atender às suas necessidades.

O que é multisig?

Se você não tem certeza do que é script multisig, recomendamos verificar nosso artigo anterior dedicado a explicar como funcionam as carteiras multisig e para que são usadas. Como uma revisão rápida, uma carteira com múltiplas assinaturas envolve múltiplas chaves privadas e pode ser configurada para que um número específico (limiar) dessas chaves privadas seja necessário para assinar qualquer transação. As assinaturas podem ser produzidas em diferentes momentos e locais, permitindo que cada chave permaneça fisicamente separada. Uma vez produzido um número limite de assinaturas, elas podem ser combinadas em uma única transação de bitcoin capaz de gastar os fundos.

Um quórum multisig de script 2 de 3, onde um limite de duas assinaturas exclusivas de duas chaves é necessário para retiradas.

Esta forma relativamente simples de criar um requisito de limite é altamente eficaz na remoção de todos os pontos únicos de falha. Contanto que o limite de gastos seja maior que um, mas menor que o número total de chaves, qualquer chave pode ser perdida, roubada ou destruída sem que o bitcoin se torne irrecuperável. As chaves restantes poderiam assinar uma transação de recuperação transferindo fundos para uma nova configuração multisig.

Satoshi Nakamoto lançou as bases para o multisig quando o bitcoin foi lançado pela primeira vez, antecipando que poderia ser um mecanismo popular para garantir fundos. No entanto, foi somente com o softfork P2SH em 2012 que o multisig começou a se tornar uma ferramenta amplamente utilizada. Desde então, o Multisig provou ser um modelo de segurança testado em batalha por mais de uma década, em vários tipos de endereços diferentes.

Qual é o segredo compartilhado por Shamir?

O compartilhamento secreto de Shamir (SSS) é um algoritmo de compartilhamento secreto desenvolvido pelo renomado criptógrafo Adi Shamir em 1979. Ele pode ser usado como outra forma de introduzir um requisito de limite para proteger o bitcoin. O SSS permite que os usuários dividam uma chave em vários “compartilhamentos” distribuídos, com apenas um certo limite de compartilhamentos necessários para remontar a chave. Isso pode ser usado para projetar quóruns como 2 de 3 ou 3 de 5, semelhante ao multisig.

Um arranjo SSS 2 de 3, onde quaisquer duas ações, representadas pelas formas coloridas, podem remontar a chave para uma carteira singlesig. A chave pode produzir a assinatura única necessária para retirar fundos.

No entanto, esta abordagem ainda leva a pontos únicos de falha em certas instâncias durante o seu ciclo de vida. Um exemplo é quando a chave é inicialmente dividida em ações SSS. Essa operação geralmente é feita em um único dispositivo, em um único horário e local. Se um invasor comprometer esse dispositivo, o processo de geração de chave ou o processo de criação de compartilhamento, ele comprometeu a chave. Outro exemplo é sempre que o usuário precisa remontar a chave para assinar uma transação. Um número limite de compartilhamentos deve ser reunido, mais uma vez em um único dispositivo, em um único momento e local, que um invasor possa explorar.

Um método bastante simples e amplamente utilizado de implementação da tecnologia SSS para custódia de criptomoedas é através do backup Shamir, desenvolvido pela Satoshi Labs em 2017. Ele pode ser encontrado como uma opção em determinados modelos de carteira de hardware Trezor.

O que é MPC?

MPC, ou computação multipartidária, é um subcampo da criptografia que remonta à década de 1970. O objetivo do MPC é permitir que vários participantes realizem um cálculo em conjunto, enquanto a contribuição de cada participante para o cálculo não é revelada ao resto do grupo e, portanto, pode permanecer privada. Isso permite que várias partes colaborem em vários contextos sem a necessidade de confiar umas nas outras.

Quando aplicado à custódia de bitcoin, o MPC envolve “ações” distribuídas, semelhante ao SSS. No entanto, ao contrário do SSS, os compartilhamentos não são separados de uma chave privada nem usados ​​para reconstruir uma chave privada. Em vez disso, múltiplas partes computam uma única assinatura diretamente a partir de um limite de suas ações.

Um arranjo MPC 2 de 3, onde quaisquer dois compartilhamentos, representados pelas formas coloridas, podem produzir uma assinatura diretamente, sem montar primeiro uma chave.

Ao contrário do SSS, o MPC não necessita de um único ponto de falha. As ações MPC podem ser geradas separadamente umas das outras e nunca precisam ser reunidas para operar a carteira. As informações produzidas a partir de um compartilhamento podem ser comunicadas aos demais participantes, sem que o próprio compartilhamento seja revelado.

Como o bitcoin e outras criptomoedas usaram principalmente um sistema de assinatura baseado em ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica), o MPC teve que ser adaptado para este contexto. Os primeiros protocolos de limiar prático para ECDSA foram publicados em 2018. [GG18, LNR18]

Quais são as compensações entre os modelos de limite?

Com três modelos de segurança de limite diferentes para escolher, a próxima etapa é compreender os pontos fortes e fracos de cada opção.

Compensações com multisig

Script multisig é uma forma padronizada de atingir segurança de limite, nativa do protocolo bitcoin. A estrutura é considerada relativamente simples e robusta. A barreira de entrada também é pequena – se um usuário de bitcoin sabe como operar uma carteira singlesig, então não é um grande salto aprender como configurar e usar uma carteira multisig.

Quando uma carteira multisig é inicializada, os endereços produzidos para receber bitcoin na carteira possuem o requisito de limite incorporado. Uma vez financiado um endereço multisig, o bitcoin é protegido por um contrato imutável que foi essencialmente escrito no próprio blockchain. A única maneira de alterar o contrato (como alterar a política de controle de acesso, ajustar quais chaves protegem o bitcoin) é mover o bitcoin para um novo endereço que foi construído com um contrato diferente. Para várias partes que estão colaborando para proteger o bitcoin, esse mecanismo de contrato imutável de nível básico pode fornecer o mais alto grau de garantia de que o dinheiro está protegido de acordo com a intenção de todas as partes. Se alguma coisa fosse fundamentalmente alterada, isso se tornaria óbvio para todos pela ocorrência de uma transação pública, e as chaves que aprovaram a mudança seriam conhecidas. É por isso que provedores de custódia colaborativa como a Unchained contam com script multisig para nossos produtos.

No entanto, a implantação pública de contratos no blockchain traz compensações. Como o bitcoin é gasto em um endereço multisig, a política de controle de acesso para esse endereço deve ser publicada permanentemente no blockchain. Os observadores podem então ver os detalhes do quorum multisig que estava sendo usado. Embora os fundos restantes possam ser facilmente migrados para um novo endereço no futuro, o facto de os acordos de segurança anteriores estarem expostos não é o ideal. Além disso, a necessidade de mover bitcoin de um endereço para outro a fim de ajustar a política de controle de acesso significa que as taxas de transação estão sempre envolvidas no processo (e quanto maior o quórum, mais caro será).

Para entidades que valorizam a custódia de altcoins, como bolsas de criptomoedas, o script multisig pode representar um desafio maior do que os outros dois métodos de segurança de limite. Isso ocorre porque um quórum de limite multisig é imposto no nível do blockchain, e diferentes criptomoedas usam diferentes blockchains. Muitas criptomoedas nem sequer suportam uma implementação multisig nativa e robusta. Enquanto isso, SSS e MPC impõem quóruns limites no nível principal e se parecem publicamente com transações singlesig. Como quase todas as criptomoedas suportam um padrão semelhante para custódia singlesig (a mesma chave pode ser usada na maioria das criptomoedas), isso permite que SSS e MPC sejam mais compatíveis entre cadeias.

Compensações com o compartilhamento secreto de Shamir

O SSS oferece outra maneira de projetar um requisito de limite baseado em criptografia relativamente simples e testada em batalha. Para fins de custódia de criptomoedas, o SSS também possui um método amplamente implantado com baixa barreira de entrada (backup Shamir). Depois que alguém tiver experiência no uso de uma carteira singlesig convencional, não será um grande salto usar um Trezor para configurar uma carteira com um backup Shamir.

Ao contrário do multisig, o SSS opera completamente fora de endereços públicos e transações no blockchain. Em vez disso, o requisito do limite é decidido pela forma como a chave privada é dividida em partes. Isso significa que a divisão de uma chave em compartilhamentos e posterior reagrupamento delas pode ser feita de forma privada, para que apenas as pessoas participantes do acordo de custódia do bitcoin saibam que o SSS está sendo usado. Além das vantagens de privacidade, manter a estrutura de limite fora do blockchain também significa que as transações SSS não levarão ao aumento de taxas e podem ser usadas para proteger muitas criptomoedas diferentes. Embora a maioria das criptomoedas tenha seus próprios blockchains exclusivos, todas elas podem compartilhar a mesma chave privada como um ponto de acesso, e essa chave pode, por sua vez, ser dividida usando SSS.

A maior desvantagem do SSS já foi mencionada acima – a chave privada deve existir num local ao mesmo tempo, antes de ser dividida pela primeira vez em partes, e também quando as partes são recombinadas para efeitos de aprovação de uma retirada. Essas vulnerabilidades criam pontos únicos e temporários de falha, o que significa que o SSS por si só não oferece segurança de nível verdadeiramente institucional, ao contrário do multisig ou do MPC.

Além disso, o SSS não oferece nativamente um método para ajustar a política de controle de acesso. Depois que uma chave privada é dividida em um quórum de compartilhamentos, esses compartilhamentos sempre manterão a capacidade de reproduzir essa chave. Se um grupo estiver protegendo um tesouro usando SSS e um membro do grupo sair, revogar as permissões desse indivíduo de maneira segura pode representar um desafio. Os membros restantes do grupo poderiam remontar a chave e depois dividi-la em novas partes, mas as partes antigas precisariam ser destruídas de forma verificável. Caso contrário, os fundos teriam de ser enviados para uma carteira totalmente nova, protegida por uma chave diferente.

Compensações com MPC

Assim como o SSS, o MPC impõe o requisito de limite no nível da chave, em vez do nível do blockchain. Isto desbloqueia vantagens semelhantes, como a concessão de uma maior capacidade de privacidade, evitando o aumento das taxas de transação e permitindo que uma estrutura de custódia MPC seja usada em muitas criptomoedas diferentes.

É importante ressaltar que o MPC consegue evitar os pontos únicos e temporários de falha que acompanham o uso do SSS. Ao usar um método criptográfico diferente, os compartilhamentos de chaves podem existir separadamente desde o momento em que a carteira é criada pela primeira vez, e até mesmo permanecer separados durante a assinatura de transações de saque. A maioria das implementações de MPC também inclui um método nativo de ajuste da política de controle de acesso (criando um novo quorum de ações) sem a necessidade de enviar fundos para um novo endereço de carteira.

No entanto, o MPC para ECDSA de limite é considerado criptografia muito complexa e não existe um padrão acordado para seu uso. Existem muitos protocolos diferentes, sendo os dois primeiros desenvolvidos de forma independente em 2018 por Gennaro e Goldfeder [GG18] e Lindell et al. [LNR18]. Desde então, também vimos protocolos de Doerner et al. [DKLs19], Castagnos et al. [CCL+20], Damgård et al. [DJM+20], Canetti et al. [CMP20], Gągol et al. [GKSS20], Gennaro e Goldfeder [GG20], Canetti et al. [CGG+21], Abram et al. [ANO+21], Doerner et al. [DKLs23], e talvez outros. Embora os protocolos mais recentes tendam a fazer algumas melhorias em relação aos mais antigos, eles podem ter tido menos oportunidades para revisão por pares, auditoria e outros testes.

O maior nível de complexidade envolvido no MPC cria uma superfície de ataque ampliada. Com componentes e procedimentos adicionais, há mais espaço para erros e possíveis vulnerabilidades de segurança. Evidências de graves falhas de segurança, incluindo ataques completos de extração de chaves privadas, já se apresentaram mais de uma vez, afetando alguns dos protocolos ECDSA de limite listados acima.

Exemplos incluem:

Vulnerabilidades AS20, setembro de 2020, afetando implementações GG18

Vulnerabilidades Alpha-Rays, dezembro de 2021, afetando GG18 e GG20

Vulnerabilidades TSSHOCK, agosto de 2023, afetando GG18, GG20 e CGG+21

Vulnerabilidades BitForge, agosto de 2023, afetando GG18 e GG20

“A criptografia precisa passar no teste do tempo para atingir a longevidade, e esses novos protocolos claramente não passaram no teste do tempo[…] esta pesquisa não estava pronta para implementação ou adoção generalizada. Do meu ponto de vista, implementar e produzir pesquisas tão recentes é bastante perigoso.” - Charles Guillemet, CTO da Ledger, resposta de dezembro de 2021 ao Alpha-Rays

‍“[MPC é] mais complicado, há mais para errar. Os protocolos criptográficos avançados são frágeis nos detalhes e na implementação. Eu me sentiria mais confiante no multisig, que é super simples e sólido.” – Postagem do renomado criptógrafo Adam Back, janeiro de 2023

O MPC também é limitado por quem pode usá-lo de forma realista. Como mencionado anteriormente, o limite ECDSA é muito complicado. Para o indivíduo médio, não há ferramentas disponíveis para configurar o MPC de forma independente, com segurança ou facilidade. Embora algumas empresas ofereçam carteiras MPC de custódia colaborativa que são bastante fáceis de usar, essas empresas não oferecem uma maneira fácil para os usuários recuperarem fundos se o negócio desaparecer (ou de nenhuma maneira, caso em que são um ponto único de falha). Como o script multisig é um padrão simples e aberto, as empresas que fornecem soluções de custódia colaborativa usando multisig podem oferecer ferramentas de recuperação de código aberto e fáceis de usar. Isto cria um caminho simples para os clientes recuperarem os seus fundos, mesmo que o negócio colaborativo multisig já não esteja disponível para ajudar.

Qual modelo é melhor?

Como acabamos de abordar, existem inúmeras vantagens e desvantagens entre o uso de multisig, SSS e MPC. Eles podem ser organizados em um gráfico para comparação visual:

Este gráfico demonstra os pontos fortes (azul) e fracos (vermelho) de cada método de implementação de segurança de limite. Cinza pode ser um ponto forte ou fraco dependendo da perspectiva de cada um.

Se uma empresa se especializar na custódia de muitas criptomoedas diferentes, ela poderá se sentir motivada a contratar uma equipe de profissionais para configurar cuidadosamente um modelo de custódia MPC. No entanto, se uma empresa ou indivíduo estiver procurando uma maneira simples e confiável de proteger o Bitcoin no longo prazo, pode ser preferível usar o script multisig e aceitar as compensações de privacidade. O SSS raramente é utilizado isoladamente devido à sua incapacidade de aplicar sempre requisitos de limiar de nível institucional.

Combinando modelos para custódia colaborativa

Embora multisig, SSS e MPC sejam frequentemente considerados modelos de segurança concorrentes, é possível incorporar mais de um deles em uma estrutura geral de custódia. Conforme descrito anteriormente, o SSS e o MPC permitem um limite de compartilhamentos de chaves para produzir uma assinatura para uma transação. Se a assinatura fosse para gastar fundos de uma carteira singlesig, nada mais seria necessário para concluir a transação. No entanto, se em vez disso a assinatura fosse para gastar fundos de uma carteira multisig, também poderiam ser necessárias assinaturas adicionais de outras chaves.

Uma estrutura multisig 2 de 3, onde uma assinatura possível poderia ser produzida a partir de uma chave normal, outra assinatura possível poderia ser produzida a partir de uma chave que é remontada a partir de compartilhamentos SSS 2 de 3, e outra assinatura possível poderia ser produzida diretamente de 2 de 3 ações MPC.

Embora esta combinação de técnicas possa parecer desnecessária e complicada, existem de facto alguns contextos em que faz sentido prático. Com o aumento da popularidade dos principais agentes e da custódia multiinstitucional, há um número crescente de empresas especializadas que são contratadas por indivíduos e instituições para proteger uma das chaves de uma carteira multisig. Esses agentes-chave distribuídos podem ajudar a reduzir o risco de custódia. Mas como um agente chave deve proteger aquela chave única pela qual é responsável?

SSS ou MPC podem ser uma estratégia para minimizar ou remover pontos únicos de falha desta tarefa. Um agente corporativo de chaves pode projetar um sistema em que vários executivos diferentes dentro da empresa detenham, cada um, ações-chave e, portanto, uma assinatura só pode ser produzida mediante acordo a partir de um limite desses executivos. Além disso, se um ataque ocorrer durante uma remontagem de SSS, ou se uma implementação de MPC acabar sofrendo de uma nova vulnerabilidade de extração de chave como as listadas anteriormente, nenhum fundo de cliente estará imediatamente em risco. O agente principal teria tempo para reagir e resolver o problema, enquanto o bitcoin permaneceria protegido pela carteira multisig mais ampla.

Usar script multisig para criar um requisito de limite como um contrato imutável fundamental e, em seguida, contratar agentes de chave profissionais para cada um proteger uma chave multisig usando seu próprio limite SSS ou MPC é, de longe, o método mais seguro para uma instituição manter o bitcoin protegido para o longo prazo.

Novos recursos com Taproot

Em novembro de 2021, ocorreu o soft-fork Taproot, adicionando novas ferramentas ao ecossistema bitcoin. Algumas dessas ferramentas impactam o futuro da custódia de bitcoins de nível institucional, ao permitir certas melhorias e opcionalidades.

  • Assinaturas Schnorr: O algoritmo de assinatura Schnorr está agora disponível em bitcoin como uma alternativa ao ECDSA. A utilização do MPC em cima do Schnorr leva a esquemas de segurança de limite que são muito menos complicados e, portanto, também proporcionam maior confiança na sua segurança, em comparação com os protocolos ECDSA mencionados anteriormente. FROST é o principal protocolo de assinatura de limite Schnorr, enquanto MuSig2 também está disponível especificamente para quóruns N-de-N. Ambos os esquemas de assinatura estão a caminho de se tornarem ferramentas padronizadas em toda a indústria de bitcoin e espera-se que disponibilizem o MPC para indivíduos comuns, com uma experiência de usuário semelhante ao script multisig.

  • Privacidade do tipo de script: endereços Pay-to-Taproot (P2TR) são um novo tipo de endereço que permite que endereços bitcoin multisig de script pareçam idênticos aos endereços usados ​​para carteiras singlesig. Isso proporciona uma melhoria significativa na privacidade, porque significa que o endereço bitcoin em si não fornece nenhuma pista sobre o modelo de segurança de seu proprietário, como se ele pode ou não estar usando script multisig.

  • Múltiplos caminhos de gastos: os endereços P2TR também têm a capacidade de conter vários caminhos de gastos integrados a eles. Isto pode criar novas formas de estruturar limites de segurança para custódia de nível institucional, conforme descrito no BIP 342 (justificativa, secção 5). Por exemplo, um usuário pode criar um caminho de gastos multisig de script N-de-N para cada combinação de chaves que pode gastar fundos. Em vez de construir um quórum de 2 de 3 com as chaves A, B e C, um resultado semelhante pode ser alcançado com três quóruns de 2 de 2 separados como caminhos de gastos possíveis – um com as chaves A e B, outro com as chaves A e C, e um com as chaves B e C. Essa estratégia pode aumentar a privacidade, pois apenas será revelado o caminho de gastos que acabar sendo utilizado. Um conceito semelhante pode ser aplicado aos quóruns de compartilhamento de chaves MPC, permitindo que o MuSig2 seja utilizado para limites.

Essas ferramentas Taproot são relativamente novas e sua adoção ainda está nos estágios iniciais. Muitos softwares e serviços bitcoin ainda não oferecem suporte completo para o que Taproot tem a oferecer. Também é importante notar que a maioria das altcoins não possui essas ferramentas disponíveis nativamente.

Pensamentos finais

Um número crescente de instituições está interessado em garantir um tesouro de bitcoin e exige soluções eficazes. Evitar pontos únicos de falha e minimizar o risco da contraparte são considerações fundamentais. A melhor maneira de atender a esses critérios é aproveitar uma estrutura multisig, onde as chaves podem ser distribuídas entre vários agentes de chaves empresariais, nenhum dos quais terá controle unilateral sobre o bitcoin. Cada agente chave pode usar SSS ou MPC para adicionar proteção extra de limite para sua chave específica.

A Unchained foi pioneira em uma rede de custódia empresarial, construída para clientes institucionais que desejam estabelecer um acordo como este. É fácil de usar e personalizável, para que cada cliente possa escolher se deseja manter um número de controle de chaves ou apenas uma única chave, ou deixar a responsabilidade de proteger as chaves inteiramente para várias chaves corporativas independentes. agentes. Se você estiver interessado em saber mais, agende uma consulta gratuita conosco hoje mesmo!

‍Agradecimentos especiais a Dhruv Bansal por revisar este artigo e fornecer comentários valiosos.

Publicado originalmente em Unchained.com.

Unchained Capital é o parceiro oficial de custódia colaborativa dos EUA da Bitcoin Magazine e patrocinador integral de conteúdo relacionado publicado através da Bitcoin Magazine. Para obter mais informações sobre os serviços oferecidos, produtos de custódia e o relacionamento entre Unchained e Bitcoin Magazine, visite nosso site.

Fonte: Revista Bitcoin

A postagem Multisig, compartilhamento secreto de Shamir e comparação de MPC apareceu pela primeira vez em Crypto Breaking News.