UPLC Link verifica contratos da Cardano em relação ao código publicado
A integração com o Cexplorer leva a verificação de código fonte à navegação de contratos, enquanto os registros na blockchain preservam os detalhes de que desenvolvedores e auditores precisam para repetir a verificação.
By SongMarketCap
Updated:
UPLC Link permite que usuários da Cardano verifiquem se um contrato inteligente implantado corresponde ao código fonte publicado para ele. A plataforma de código aberto reconstrói contratos e compara suas impressões digitais criptográficas. Pelo Cexplorer, os usuários podem acessar o repositório e as informações de build associadas ao script que estão inspecionando.
Cexplorer conecta scripts da Cardano ao seu código fonte
A opção “Verificar Fonte” do Cexplorer vincula a inspeção do contrato ao UPLC Link, fornecendo acesso ao repositório do código, à revisão exata do código, à versão do compilador e aos parâmetros do contrato.
Giovanni Gargiulo, Arquiteto Sênior de Blockchain na Cardano Foundation, demonstrou o fluxo de trabalho durante o Developers Office Hours em 25 de setembro. Um resumo da sessão, publicado em 7 de outubro, documentou a integração e os planos para ampliar o suporte a compiladores.
A ferramenta aborda uma lacuna entre publicar o código e identificar o que de fato roda na blockchain. Um projeto pode divulgar seu código fonte e contratar uma auditoria, mas os usuários ainda precisam de uma forma de estabelecer que o contrato implantado corresponde à versão revisada.
Para aplicações que lidam com ADA e outros ativos da Cardano, isso conecta as regras disponíveis para inspeção aos scripts que regem trocas, empréstimos ou fundos bloqueados. A verificação do código fonte estabelece essa conexão, já uma auditoria de segurança avalia o código em busca de vulnerabilidades.
Reconstruir contratos produz uma correspondência verificável
Contratos inteligentes da Cardano executam como Untyped Plutus Core compilado, ou UPLC. Seus hashes de script identificam os programas compilados sem revelar qual revisão do código fonte ou quais configurações de build os produziram.
UPLC Link começa com um commit específico do GitHub e a versão do compilador. Ele faz o build do código, calcula os hashes de script resultantes e os compara com os identificadores esperados na blockchain.
A plataforma também lida com contratos parametrizados, cuja forma final depende de valores fornecidos durante a configuração. Desenvolvedores podem inserir esses valores pela interface, incluindo referências a outros scripts, e recalcular o resultado.
A correspondência exige o código fonte correto, o compilador correto e os parâmetros corretos.
A interface pública está atualmente rotulada como alpha e dá suporte a contratos em Aiken. A apresentação descreveu trabalhos em direção ao suporte para Scalus, Plutarch e plu-ts, juntamente com uma conexão planejada com o Blaster para verificação formal automatizada de propriedades de contratos.
Essas extensões ampliariam a cobertura da plataforma além do seu fluxo de trabalho atual em Aiken.
Registros na blockchain dão suporte à verificação independente
CIP-0171 propõe um formato de metadados compartilhado para registrar as informações necessárias para reproduzir o build de um contrato da Cardano. Ele usa o rótulo 1984 de metadados de transação para identificar o repositório do código, a revisão do código, o compilador, o ambiente de build e os parâmetros.
O código fonte permanece no seu repositório, enquanto a blockchain preserva as instruções de build. Auditores e pesquisadores podem publicar registros de forma independente do implantador original, e depois realizar testes reconstruindo o código referenciado e verificando o hash resultante.
A especificação permanece uma proposta no registro oficial de CIPs. Seu formato acomoda várias famílias de compiladores, e cada ferramenta de verificação determina quais delas suporta.
UPLC Link já oferece registro por meio de uma transação da Cardano assinada, com a taxa de rede paga em ADA. Seu backend indexa os registros enviados para descoberta por meio do registro público. O projeto também fornece uma API para outros serviços e publica instruções para executar a plataforma localmente.
Para um contrato registrado, os revisores podem começar a partir do seu endereço ou do hash do script, recuperar os detalhes de build registrados e verificar por si mesmos a conexão com o código fonte. As equipes de aplicação podem fornecer esse registro reprodutível junto com seu código e relatórios de auditoria.