As passkeys são uma abordagem segura e amigável para autenticação que também pode ser usada para criar e armazenar com segurança carteiras de criptomoedas, graças ao seu uso de criptografia de curva elíptica.
Neste post, iremos abordar como funcionam as passkeys, explorar os riscos de usar passkeys para carteiras de criptomoedas e aprofundar como a abstração de contas permite que as passkeys sejam utilizadas quando combinadas com contratos inteligentes.
As passkeys são uma forma simples e segura para os utilizadores entrarem numa aplicação sem necessidade de armazenar palavras-passe sensíveis ou de se lembrarem de quaisquer detalhes de login. Em vez disso, os utilizadores criam e acedem a contas utilizando métodos familiares como biometria, como Face ID ou Touch ID.
Isso permite que os usuários façam login e interajam facilmente com aplicativos de maneira autorizada sem nunca armazenar credenciais sensíveis; fornecendo uma experiência perfeita e segurança adicional contra violações de dados e vetores de ataque comuns, como phishing.
Na maioria dos dispositivos, como o iPhone, as senhas de acesso são armazenadas dentro de hardware especializado chamado o Enclave Seguro; um ambiente dedicado e isolado projetado para proteger dados sensíveis, mesmo se o processador principal for comprometido.
Passkeys utilizam criptografia de chave públicagerar um par de chaves público-privadas no dispositivo do utilizador, consistindo em duas chaves:
Como carteiras de blockchainA chave privada de uma senha pode ser usada para assinar mensagens e transações que podem ser enviadas para fazer alterações de estado em uma blockchain.
Para assinar uma transação com a chave privada de uma senha, a transação é enviada para o hardware seguro, onde é assinada, e a assinatura resultante é então gerada. Ao longo deste processo, nem o proprietário nem o desenvolvedor do aplicativo têm acesso à chave privada; eles apenas recebem as assinaturas geradas.
Isso oferece segurança aprimorada para o usuário, pois a chave privada geralmente não é carregada na memória do aplicativo, reduzindo o risco de exposição a possíveis ataques. Por exemplo, no iPhone, o usuário nem mesmo pode acessar o valor da senha em suas configurações, pois a chave é gerada e armazenada em hardware especializado que não é acessível à interface.
As chaves de acesso e as carteiras criptográficas partilham a mesma tecnologia subjacente da criptografia de curva elíptica para gerar pares de chaves públicas-privadas. Os programadores de aplicações blockchain podem utilizar as chaves de acesso para criar carteiras seguras na aplicação para os utilizadores com uma experiência de utilização poderosa.
No entanto, há uma diferença importante que introduz complexidade ao usar senhas para contas de blockchain; senhas usam uma curva elíptica diferente das contas de blockchain.
Enquanto a Apple, o Android e o WebAuthn usam todos a curva secp256r1 (também conhecida como curva P-256) para as chaves de acesso, as contas de blockchain usam a curva elíptica secp256k1.
Isto significa que as transações assinadas pela chave privada de uma chave de acesso não são compreendidas (e, portanto, rejeitadas) por blockchains como o Ethereum ou o Abstract. A expectativa padrão dos blockchains é que a transação seja assinada por um par de chaves gerado na curva secp256k1.
Uma vez que as carteiras regulares (EOA) são geradas na curva k1, as carteiras de contratos inteligentes são, portanto, necessárias, pois podem incluir lógica personalizada que verifica transações assinadas por chaves privadas geradas por passkeys antes de autorizar a execução da transação.
O Bitcoin foi o primeiro a adotar a curva secp256k1 para operações criptográficas, o que estabeleceu o padrão para o Ethereum e outras cadeias baseadas na EVM usarem a variação k1 da curva para contas.
A variação k1 da curva também carece de certas características como coeficientes adicionais que tornam o secp256r1 ligeiramente mais complexo, o que significa que o secp256k1 é mais eficiente computacionalmente para geração de chave, criação de assinatura e verificação.
Embora não tenham sido encontradas vulnerabilidades diretas, também existem teorias da conspiração que afirmam que o Bitcoin escolheu usar a curva k1 em vez da curva r1 mais adotada para evitar qualquer potencial para uma porta dos fundos que poderia ter sido introduzida secretamente por agências governamentais como a NSA, dada a sua participação no desenvolvimento de padrões criptográficos endossados pelo NIST.
Carteiras de contratos inteligentes (como as suportadas pela Gate.ioAbstração de conta nativa do Abstract) pode conter lógica arbitrária para a EVM executar; incluindo verificação de assinatura para mensagens que recebe assinadas por uma chave privada criada na curva r1.
Bibliotecas de código aberto como Verificador P256 de código aberto da Daimoforam construídos para verificar assinaturas na curva secp256r1 dentro de contratos inteligentes escritos em Solidity.
Na Ethereum, isso significa que você pode usar contratos inteligentes construídos com a Padrão de abstração de conta ERC-4337para verificar a assinatura r1 da Operação do Utilizador dentro do validateUserOp
função da carteira de contrato inteligente.
Em Abstract, abstração de conta nativapermite que as carteiras de contratos inteligentes enviem transações com o campo de assinatura definido como a mensagem assinada pela chave privada da chave de acesso. Se a conta que enviou a transação for um contrato inteligente que inclui lógica para verificar assinaturas r1 (em validarTransação
função), a transação é aceite.
As carteiras de contratos inteligentes usam código (na forma de um contrato inteligente) para gerenciar e controlar sua funcionalidade, o que significa que elas podem ter recursos personalizados; incluindo módulos de recuperação, vários signatários aprovados, limites de gastos, chaves de sessão e muito mais.
As carteiras de contratos inteligentes oferecem mais flexibilidade do que as carteiras tradicionais de EOA (Contas de Propriedade Externa) e, como podem incluir código EVM arbitrário, têm o poder de verificar assinaturas (ou seja, autorizar transações) a partir de pares de chaves criados na curva elíptica r1.
Como verificar assinaturas na curva r1 não é nativo de blockchains como Ethereum ou Abstract, é computacionalmente caro executar essa verificação; resultando em custos de gás drasticamente aumentados para verificar assinaturas r1 em comparação com assinaturas k1 (aproximadamente 100 vezes mais caro).
RIP-7212 (Proposta de Melhoria Rollup) propõe a adição de um contrato inteligente pré-compilado para L2s Ethereum para uma verificação de assinatura mais eficiente em relação ao consumo de gás na curva r1. Embora isso ainda não esteja incluído no Ethereum, soluções de escalabilidade compatíveis com EVM, como Abstract, já implementaram isso e oferecem uma redução de 100x no consumo de gás para verificações de assinatura r1.
A desvantagem das carteiras de chave de acesso é o fato de estarem ligadas a um único domínio. Por exemplo, se criar uma carteira em algumdomínio.com, a sua chave de acesso (e, portanto, a sua carteira) só poderá conectar-se a esse domínio específico.
Esta é uma escolha de design intencional para evitar ataques de phishing, no entanto, representa uma grande falha para os utilizadores que valorizam a auto-guarda, pois a sua carteira está diretamente ligada a uma aplicação; o que significa:
Por essas razões, as carteiras de chave de acesso são mais adequadas para pequenas quantias de dinheiro ou para atrair usuários iniciantes para suas primeiras experiências com criptomoedas até que eles se tornem mais experientes com carteiras de autocustódia.
Isso depende de como escolher fazer backup da sua senha. Existem várias opções para fazer backup da sua senha na nuvem (como o Apple Keychain) para que seja acessível em outros dispositivos mesmo que perca o original.
A chave privada não pode ser lida no dispositivo em nenhum momento, uma vez que está na Enclave Segura. No entanto, se eles tiverem acesso aos seus dados biométricos, podem realizar operações como se tivessem controle da sua chave de acesso / carteira.
Não. Os seus dados biométricos não são enviados para qualquer lugar; eles permanecem no seu dispositivo. Os seus dados biométricos são simplesmente utilizados para "desbloquear" a chave de acesso.
As passkeys são uma abordagem segura e amigável para autenticação que também pode ser usada para criar e armazenar com segurança carteiras de criptomoedas, graças ao seu uso de criptografia de curva elíptica.
Neste post, iremos abordar como funcionam as passkeys, explorar os riscos de usar passkeys para carteiras de criptomoedas e aprofundar como a abstração de contas permite que as passkeys sejam utilizadas quando combinadas com contratos inteligentes.
As passkeys são uma forma simples e segura para os utilizadores entrarem numa aplicação sem necessidade de armazenar palavras-passe sensíveis ou de se lembrarem de quaisquer detalhes de login. Em vez disso, os utilizadores criam e acedem a contas utilizando métodos familiares como biometria, como Face ID ou Touch ID.
Isso permite que os usuários façam login e interajam facilmente com aplicativos de maneira autorizada sem nunca armazenar credenciais sensíveis; fornecendo uma experiência perfeita e segurança adicional contra violações de dados e vetores de ataque comuns, como phishing.
Na maioria dos dispositivos, como o iPhone, as senhas de acesso são armazenadas dentro de hardware especializado chamado o Enclave Seguro; um ambiente dedicado e isolado projetado para proteger dados sensíveis, mesmo se o processador principal for comprometido.
Passkeys utilizam criptografia de chave públicagerar um par de chaves público-privadas no dispositivo do utilizador, consistindo em duas chaves:
Como carteiras de blockchainA chave privada de uma senha pode ser usada para assinar mensagens e transações que podem ser enviadas para fazer alterações de estado em uma blockchain.
Para assinar uma transação com a chave privada de uma senha, a transação é enviada para o hardware seguro, onde é assinada, e a assinatura resultante é então gerada. Ao longo deste processo, nem o proprietário nem o desenvolvedor do aplicativo têm acesso à chave privada; eles apenas recebem as assinaturas geradas.
Isso oferece segurança aprimorada para o usuário, pois a chave privada geralmente não é carregada na memória do aplicativo, reduzindo o risco de exposição a possíveis ataques. Por exemplo, no iPhone, o usuário nem mesmo pode acessar o valor da senha em suas configurações, pois a chave é gerada e armazenada em hardware especializado que não é acessível à interface.
As chaves de acesso e as carteiras criptográficas partilham a mesma tecnologia subjacente da criptografia de curva elíptica para gerar pares de chaves públicas-privadas. Os programadores de aplicações blockchain podem utilizar as chaves de acesso para criar carteiras seguras na aplicação para os utilizadores com uma experiência de utilização poderosa.
No entanto, há uma diferença importante que introduz complexidade ao usar senhas para contas de blockchain; senhas usam uma curva elíptica diferente das contas de blockchain.
Enquanto a Apple, o Android e o WebAuthn usam todos a curva secp256r1 (também conhecida como curva P-256) para as chaves de acesso, as contas de blockchain usam a curva elíptica secp256k1.
Isto significa que as transações assinadas pela chave privada de uma chave de acesso não são compreendidas (e, portanto, rejeitadas) por blockchains como o Ethereum ou o Abstract. A expectativa padrão dos blockchains é que a transação seja assinada por um par de chaves gerado na curva secp256k1.
Uma vez que as carteiras regulares (EOA) são geradas na curva k1, as carteiras de contratos inteligentes são, portanto, necessárias, pois podem incluir lógica personalizada que verifica transações assinadas por chaves privadas geradas por passkeys antes de autorizar a execução da transação.
O Bitcoin foi o primeiro a adotar a curva secp256k1 para operações criptográficas, o que estabeleceu o padrão para o Ethereum e outras cadeias baseadas na EVM usarem a variação k1 da curva para contas.
A variação k1 da curva também carece de certas características como coeficientes adicionais que tornam o secp256r1 ligeiramente mais complexo, o que significa que o secp256k1 é mais eficiente computacionalmente para geração de chave, criação de assinatura e verificação.
Embora não tenham sido encontradas vulnerabilidades diretas, também existem teorias da conspiração que afirmam que o Bitcoin escolheu usar a curva k1 em vez da curva r1 mais adotada para evitar qualquer potencial para uma porta dos fundos que poderia ter sido introduzida secretamente por agências governamentais como a NSA, dada a sua participação no desenvolvimento de padrões criptográficos endossados pelo NIST.
Carteiras de contratos inteligentes (como as suportadas pela Gate.ioAbstração de conta nativa do Abstract) pode conter lógica arbitrária para a EVM executar; incluindo verificação de assinatura para mensagens que recebe assinadas por uma chave privada criada na curva r1.
Bibliotecas de código aberto como Verificador P256 de código aberto da Daimoforam construídos para verificar assinaturas na curva secp256r1 dentro de contratos inteligentes escritos em Solidity.
Na Ethereum, isso significa que você pode usar contratos inteligentes construídos com a Padrão de abstração de conta ERC-4337para verificar a assinatura r1 da Operação do Utilizador dentro do validateUserOp
função da carteira de contrato inteligente.
Em Abstract, abstração de conta nativapermite que as carteiras de contratos inteligentes enviem transações com o campo de assinatura definido como a mensagem assinada pela chave privada da chave de acesso. Se a conta que enviou a transação for um contrato inteligente que inclui lógica para verificar assinaturas r1 (em validarTransação
função), a transação é aceite.
As carteiras de contratos inteligentes usam código (na forma de um contrato inteligente) para gerenciar e controlar sua funcionalidade, o que significa que elas podem ter recursos personalizados; incluindo módulos de recuperação, vários signatários aprovados, limites de gastos, chaves de sessão e muito mais.
As carteiras de contratos inteligentes oferecem mais flexibilidade do que as carteiras tradicionais de EOA (Contas de Propriedade Externa) e, como podem incluir código EVM arbitrário, têm o poder de verificar assinaturas (ou seja, autorizar transações) a partir de pares de chaves criados na curva elíptica r1.
Como verificar assinaturas na curva r1 não é nativo de blockchains como Ethereum ou Abstract, é computacionalmente caro executar essa verificação; resultando em custos de gás drasticamente aumentados para verificar assinaturas r1 em comparação com assinaturas k1 (aproximadamente 100 vezes mais caro).
RIP-7212 (Proposta de Melhoria Rollup) propõe a adição de um contrato inteligente pré-compilado para L2s Ethereum para uma verificação de assinatura mais eficiente em relação ao consumo de gás na curva r1. Embora isso ainda não esteja incluído no Ethereum, soluções de escalabilidade compatíveis com EVM, como Abstract, já implementaram isso e oferecem uma redução de 100x no consumo de gás para verificações de assinatura r1.
A desvantagem das carteiras de chave de acesso é o fato de estarem ligadas a um único domínio. Por exemplo, se criar uma carteira em algumdomínio.com, a sua chave de acesso (e, portanto, a sua carteira) só poderá conectar-se a esse domínio específico.
Esta é uma escolha de design intencional para evitar ataques de phishing, no entanto, representa uma grande falha para os utilizadores que valorizam a auto-guarda, pois a sua carteira está diretamente ligada a uma aplicação; o que significa:
Por essas razões, as carteiras de chave de acesso são mais adequadas para pequenas quantias de dinheiro ou para atrair usuários iniciantes para suas primeiras experiências com criptomoedas até que eles se tornem mais experientes com carteiras de autocustódia.
Isso depende de como escolher fazer backup da sua senha. Existem várias opções para fazer backup da sua senha na nuvem (como o Apple Keychain) para que seja acessível em outros dispositivos mesmo que perca o original.
A chave privada não pode ser lida no dispositivo em nenhum momento, uma vez que está na Enclave Segura. No entanto, se eles tiverem acesso aos seus dados biométricos, podem realizar operações como se tivessem controle da sua chave de acesso / carteira.
Não. Os seus dados biométricos não são enviados para qualquer lugar; eles permanecem no seu dispositivo. Os seus dados biométricos são simplesmente utilizados para "desbloquear" a chave de acesso.