Multisig

O artigo da base de conhecimento a seguir explica como criar e usar um Carteira Haven Multisig CLI.
Essas instruções são baseadas em multisig 2/3, o que significa que de um total de três assinantes autorizados, dois são necessários para tornar uma transação válida.

Resumindo, estes são os passos necessários para criar e enviar uma transação, desde que uma carteira multisig já tenha sido criada:

  • Sincronize as carteiras A e B.
  • Exporte a imagem da chave multisig de A.
  • Importe a imagem da chave multisig para B.
  • Gere TX de B.
  • Importe TX para A, assine lá e envie.
Pré-requisitos

Este artigo pressupõe que você já usou a CLI antes.
Se este não for o caso, é aconselhável primeiro familiarizar-se com o uso da CLI. Pesquise “cli” e “nó local” em nossas páginas da base de conhecimento para começar.

Criar nova carteira
  1. Faça o download do mais recente Aplicativo CLI.
  2. Correr ter e certifique-se de que o daemon esteja totalmente sincronizado.
  3. Cada parte (3 neste caso) deve criar uma nova carteira usando paraíso-carteira-cli (certifique-se de que a mineração em segundo plano NÃO esteja habilitada).
  4. Saia da carteira e faça backup do seed e faça uma cópia dos arquivos da carteira (caso precise repetir os passos).
  5. Faça login novamente na carteira e execute os seguintes comandos:
    definir enable-multisig-experimental 1
    definir atualização automática 0
Prepare carteiras
  1. Todas as partes devem digitar o seguinte comando:
    prepare_multisig
    .
  2. Envie a saída para TODOS outras partes (use uma plataforma segura como Element para compartilhamento). A saída deve ficar assim:
    MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5KQNLUEpsFNpePMk W8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ
    .
  3. Todas as partes devem digitar o seguinte comando:
    make_multisig 2
    onde e corresponder ao outro dados das partes compartilhados na etapa 7.

    O comando deve ficar assim:
    make_multisig 2 MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5K QNLUEpsFNpePMkW8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ MultisigxV2R1MG7sQpykJTv4RMEuyQV6m1FBX9zVMPXva3dragVUh9F9FjTTmJ4DLvUNP57njearPRbHnFv1NvKMeL1yQTdbcy7nQ1r4rDvJ QzHhNvUeCFzAm6TLhwwjAiqfUBtS6ajBFZ8XVsGwLhCc1S3jK7ffsAKaRF9cLyEzJgpaXNShnrsY4hEK
    .
  4. Envie os dados gerados na Etapa 8 para TODOS outras partes. Os dados devem ficar assim:
    MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDaqQ9E1gsTRQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1AS65NxkJG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF2DUKKckJoYZ cRbCUeNP4PBrExea3na2TUm7FEw995ZL5N9n7nVxysH6JdwLfDjXaWDotxZtyPn1ifXvgJHJctsFPP
    .
  5. Todas as partes devem executar o seguinte comando (1ª passagem):
    exchange_multisig_keys
    onde e corresponde aos dados das outras partes compartilhados na etapa 9.

    O comando deve ficar assim:
    exchange_multisig_keys MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDart7ZPUh6A328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNNpyt2fiGgAxt9woCBXsFtdhKm2dmqqY9q F6ewuBXCDLdJ6rYv1Lm7RyuLN4TQBBccBUesMH6FhGB4FcCncaRh8sEEqcXgR1gbZnEzG6tk81TAthWRqFCZTStSNgD9WJKG7F5 MultisigxV2Rn1LV1jgtbFBZQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1 5GGTSNN6328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNZ7Q48j4TRAauoTVenC5ZmsS8EViFdie eHtzgPFwrg9cgAX93F7g4UHyAd82BeTRZb3cxsLGQ3nTZb6ey2HN8dJa6Y8ssCniTd6Kchn4cWh S9Qqz38whxCDNYd7UJCpGCa3k1
    .
  6. Envie os dados gerados na Etapa 10 para TODOS outras partes. Os dados devem ficar assim:
    MultisigxV2Rn1WC6rFTBNJkY4qjHv8UYXGifkHemhyRJmXnNVtQY8dcx4T2fZBnnCy2iMAFVerhacP1UytUMaGyAN5N5XvnXqqY7fyYAaBX639tG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF3X FVxmv3XjngbXYY47EXY1BgZk6UYxBAN12Ep2ETqR6rpTvUB8QJmQkrdUpiiu146zoiHieUj2He4KwCgkPj9vK7Y
    .
  7. Todas as partes devem executar o seguinte comando (2ª passagem):
    exchange_multisig_keys
    onde e corresponde aos dados dos demais signatários compartilhados na etapa 11.
    Esta etapa deve gerar a carteira multisig e solicitar o endereço da carteira.
    .
  8. Compare o endereço da carteira com todas as partes para garantir que sejam iguais.
    Se eles não forem iguais, algo deu errado e você precisará começar novamente a usar os arquivos da carteira cujo backup foi feito na Etapa 4.
    .
  9. Modelo semente e faça backup da sequência de sementes, que se parece com isto (a semente multisig é diferente da semente normal):
    020000000300000005cd2e5a01ef0830eb666b838d8402795ae8f24f6e3cf2068ff8e48899aed11f500473d4c3a9b9bb9451f19facfff91def79172ed466b808f9fa2173a25d149e4a1c1161be6c029b2c4d0ca5fc806ddc1d46edc7dc3d0727a68ad2f6d24bf6086d269cfd2255f73375939820a71802e25e12abd220271a16505059cb168ce90367c23b78dda9038037406aafa4e6d8ed363f998209ab2a6432c78e5597411a0fb43da66388574bda7edbe6122ee6e8ce987a5eb553ccf3cac170b8031448aa05436d4f88e749ea315b12c6c3b93e5905d63bd6f29df0ba3f4cc888318a1f49c45813af87c6d890797fd36bb2c61ec3f0cd009ec413d1e10d71b19e4f6b893381d6a58526d2f35a1726e847e4bed22ea71f7deb2dc7aff8c7c12505345af8611a
    .
  10. Feche a carteira e faça backup dos arquivos da carteira.
  11. Uma das partes precisa enviar fundos para o endereço compartilhado.
  12. Faça login novamente e sincronize a carteira para garantir que os fundos foram recebidos e confirmados por todas as partes.
Preparação para envio
  1. Para se preparar para o envio, a Pessoa 1 digita o comando:
    export_multisig_info
    <filename>
    é apenas um nome para o arquivo que você deseja exportar, deve ser algo simples.
    O arquivo gerado é chamado de Imagem principal, e é um instantâneo das saídas da carteira.
    .
  2. Envie o arquivo exportado para a Pessoa 2. A Pessoa 3 também pode fazer isso, mas não é obrigatório.
    .
  3. A Pessoa 2 e/ou Pessoa 3 baixa o arquivo compartilhado e o coloca no mesmo diretório do aplicativo CLI.
    .
  4. Pessoa 2 ou Pessoa 3 digita o comando:
    import_multisig_info
    <filename>
    é o mesmo arquivo criado na Etapa 18 e compartilhado na Etapa 19.
    .
  5. Quem importou a imagem chave na Etapa 21 agora pode criar uma Transação.
Enviando
  1. Pessoa 2 ou Pessoa 3 cria uma transação da maneira usual digitando:
    transferir

    Isso criará um arquivo chamado multisig_haven_tx que é enviado de volta para a Pessoa 1.
    .
  2. A pessoa 1 baixa e coloca o arquivo acima no mesmo diretório do aplicativo CLI e digita o comando:
    sign_multisig multisig_haven_tx
    .
  3. Depois de assinado com sucesso, a Pessoa 1 digita o seguinte comando para enviar o TX:
    submit_multisig multisig_haven_tx
Notas

Se a Pessoa 1 e a Pessoa 2 conduziram um ou mais TXs e a Pessoa 3 não estiver por perto, quando a Pessoa 3 sincronizar o cofre, ele não exibirá o valor correto.

Para resolver isso, a Pessoa 3 terá que importar a imagem chave mais recente compartilhada na Etapa 19 de qualquer um dos participantes usando o comando na Etapa 20. Uma vez importada, a Pessoa 3 pode fazer uma “atualização” e o saldo correto da carteira será exibido.

Se demorar muito entre a preparação para o envio (compartilhamento de imagens-chave) e a criação do TX, o processo pode expirar e você terá que fazer esta etapa novamente.

Fontes

https://resilience365.com/monero-multisig-how-to/

https://taiga.getmonero.org/project/rbrunner7-really-simple-multisig-transactions/wiki/23-multisig-in-cli-wallet

Anterior Carteira de governança - endereço e chave de visualização
pt_PTPortuguês