Esse artigo é uma tradução de Pierre Pollastri e Hugo Morosini feita por @bananlabs. Você pode encontrar o artigo original aqui
Quando a segurança encontra as Finanças Descentralizadas (DeFi)
Existem partes do setor financeiro legado que estão prontas para a disrupção através de tecnologias seguras e eficientes?
Se você respondeu SIM, você acredita em Finanças Descentralizadas (DeFi).
O crescimento das Finanças Descentralizadas (DeFi) está abrindo um novo mundo. A DeFi alavanca contratos inteligentes para trazer instrumentos financeiros sofisticados ao mercado, instrumentos descentralizados e executados em código blockchain.
Nós da Ledger realmente acreditamos em DeFi e queremos dar aos desenvolvedores em todo o mundo a oportunidade de criar aplicativos descentralizados (DApps) que usam nossa plataforma e os integram ao ecossistema da Ledger.
Acabamos de tornar o desenvolvimento para a Ledger mais fácil.
Neste artigo, explicamos como funciona o desenvolvimento para o ecossistema Ledger. Para ilustrar com um exemplo, mostramos o “ParaSwap”, um DApp que permite trocar moedas dentro da Ledger Live.
A Ledger Live já é capaz de gerenciar com segurança os tokens ETH e ERC20 na rede Ethereum. No entanto, adicionar suporte para DApps construídos em cima da Ethereum permaneceu difícil para os desenvolvedores. Isso muda hoje com o lançamento da Ledger Live 2.29.
Ledger Live se torna a carteira com suporte para DeFi mais segura
Sandboxing do DApp e acesso Blockchain
Um DApp geralmente é o primeiro lugar onde um usuário cria uma transação. É uma página simples “protegida” pelo modelo sandbox do navegador que, idealmente, garante o isolamento entre as diferentes abas. Esse isolamento é importante para proteger o usuário de qualquer interferência de ambiente não confiável.
Os DApps acessam a blockchain da Ethereum e as carteiras por meio de um provedor Web3 específico que precisa ser disponibilizado na página. Para conseguir isso, a maioria das carteiras de software precisam de uma extensão do navegador para funcionar. Infelizmente, para que as extensões funcionem, elas exigem direitos totais para injetar qualquer código JavaScript dentro da página. Isso significa que os usuários precisam confiar totalmente na extensão ao navegar em sites normais ou DApps.
Nossa solução é integrar DApps dentro de um iframe
para aproveitar o modelo de sandbox de navegador integrado. Além disso, disponibilizamos o provedor Web3 por meio de um “iframe Web3 provider
”. Esse “iframe Web3 provider
” é um projeto de código aberto que permite o roteamento de chamadas Web3 para o contêiner iframe pai usando postMessage
. Por sua vez, essa chamada postMessage
é roteada para um nó Ethereum padrão ou para a Ledger Live quando requer interação com a Nano S/X ou contas de usuário.
Com essa implementação, a Ledger não pode modificar nenhum código dentro do iframe
sem o consentimento do provedor do DApp e a carteira hardware fica totalmente isolada do código do DApp.
Como benefício adicional, os usuários da Ledger Live podem alterar instantaneamente a conta ativa usada pelo DApp sem sair do DApp.
Não confie, Verifique: o problema do blind signing
Finalmente, uma carteira hardware que pode entender DApps
A Ledger atualiza a segurança do usuário DeFi adicionando suporte nativo a DApps para usuários Nano S e Nano X na Ledger Live. Sem mais extensões, sem mais problemas de conexão com o navegador, sem mais blind signing. Usabilidade e segurança em um único pacote.
A maioria dos aplicativos DeFi estão sendo executados na blockchain Ethereum e usam contratos inteligentes da Ethereum para realizar operações complexas. Os usuários enviam transações para contratos inteligentes com todas as informações necessárias para executar funções específicas com um conjunto específico de parâmetros. As transações de contrato inteligente carregam um campo de dados adicional contendo parâmetros relevantes para o contrato inteligente.
Tanto a Ledger Nano S quanto a Nano X já são capazes de verificar campos padrão em transações Ethereum (from, to, value, gas limit, gas price, nonce). No entanto, quando se trata dos dados de entrada, anteriormente era impossível exibir a funcionalidade do contrato inteligente ativada pela transação porque a Nano S/X não tinha conhecimento do contrato e sua finalidade.
Com a introdução do navegador DApp na Ledger Live, damos à Nano S/X a capacidade de exibir e verificar os dados incluídos em uma transação de contrato inteligente sem alterações adicionais no DApp. Essa verificação resulta em um enorme aumento na segurança do ecossistema Ethereum. Descreveremos esse mecanismo de “plugin” em uma próxima postagem do blog.
Adicionando seu DApp para a Ledger Live
Para funcionar corretamente, os aplicativos descentralizados, primeiro precisam estar conectados a uma carteira. A carteira fornecerá novas informações diretamente da blockchain (como saldos de usuários ou estado de contrato inteligente) e oferecerá assinatura de transação segura mediante solicitação. Como muitas carteiras são compatíveis com DApps, a comunidade criou um padrão para uma interface comum. Este padrão é chamado EIP-1193. Para explicar brevemente esse padrão, toda carteira precisa implementar um provedor, respeitando a interface definida pelo padrão. O DApp então solicita ao usuário que selecione um dos provedores disponíveis, permitindo que ele selecione sua carteira.
Instalando o provedor de iframe
Para tornar seu DApp compatível com a Ledger Live, primeiro você precisa adicionar a biblioteca do provedor de iframe
ao seu projeto. Este pacote está atualmente hospedado no npm como @ledgerhq/iframe-provider. Observe que esse novo recurso, que permite integrar um DApp à Ledger Live, não altera os recursos existentes na Nano S/X.
Muitas implementações de carteira populares usam injeção de JavaScript para injetar dinamicamente seu provedor. Essa abordagem é eficaz, mas pode permitir que o injetor modifique a página, apresentando um risco de segurança. Evitamos esse problema de segurança colocando DApps em sandbox em execução na Ledger Live. A única maneira de se comunicar entre a Ledger Live e o DApp é usar a API bidirecional PostMessage, permitindo comunicação cross-origin segura.
Permitindo que seu DApp seja incorporado
Para que um navegador permita que uma página incorpore o conteúdo de outra página quando hospedada em origens diferentes, você precisa da aprovação específica do servidor da página hospedada. Essa aprovação é expressa na forma de cabeçalhos de resposta.
Para permitir que o Ledger Live incorpore seu DApp, talvez seja necessário editar a configuração do seu servidor e editar o Content-Security-Policy header:
Para permitir que qualquer site incorpore sua página:
Content-Security-Policy: frame-ancestors
Para permitir que apenas o navegador Ledger DApp incorpore sua página:
Content-Security-Policy: frame-ancestors https://dapp-browser.apps.ledger.com/
Adicionando a propriedade “o que você vê é o que você assina”
A partir de hoje, a maioria das interações de contratos inteligentes em carteiras hardware são bastante difíceis de entender para os usuários:
Quando o contrato inteligente não é bem suportado, os usuários não têm como verificar o que estão prestes a assinar. Nesse caso, a carteira hardware protege sua seed contra malware, mas não seus fundos ethereum dessa ameaça.
Quando a carteira hardware exibe o payload que os usuários estão prestes a assinar com o mínimo de análise, fica difícil verificar o que eles estão prestes a consentir.
Para resolver esse problema, desenvolvemos um mecanismo simples de plug-in Ethereum, minimizando a carga para os desenvolvedores de suportar a interação do contrato inteligente, fornecendo segurança máxima aos usuários graças à exibição segura. Esse mecanismo será explicado em detalhes em um post adicional.
Conclusão
Com a versão 2.29 da Ledger Live, pretendemos fornecer um ambiente para integrar facilmente um DApp, com modificações mínimas e padrão.
Estamos muito animados com este lançamento e as possibilidades que ele cria para integrar facilmente o mundo da DeFi e DApps à Ledger Live. Esperamos adicionar muito mais DApps em um futuro próximo. Este é apenas o começo de nossa jornada para tornar a Ledger Live mais aberta e facilmente extensível.
Fique atento enquanto nos esforçamos para reunir todos os serviços cripto na mesma plataforma sem comprometer a segurança!
Latest comments (0)