O hack da Binance de ontem está ligado ao EIP-7702, um recurso muito perigoso de que eu não gosto há tempos. Aproveitando, vou deixar um alerta pra galera.
Normalmente, muita gente acha que basta manter a chave privada em segredo e pronto, especialmente usando uma carteira fria, já que toda vez que vai transferir dinheiro precisa conectar o dispositivo e apertar o botão de confirmação físico. Aí a galera pensa que, por mais competente que seja, nenhum hacker consegue apertar o botão por ela.
Mas, na prática, com esse tal de EIP-7702, nem a carteira fria está a salvo. O processo é mais ou menos assim: você entra num dapp e aparece um pedido de assinatura para atualizar a carteira ou ativar algum recurso. Você conecta a carteira e, muitas vezes, a tela só mostra um monte de código hexadecimal que não dá pra entender porra nenhuma. Aí você confirma logo pra acabar com isso, e essa assinatura de autorização pode permitir que o endereço da sua carteira execute o código de um contrato.
Se for um contrato malicioso, o hacker pode usar a sua própria carteira para transferir fundos sem que você precise assinar nenhuma outra transação.
Ou seja, você continua com a carteira fria guardada no cofre, com a seed tão protegida que nem você mesmo sabe qual é, mas o dinheiro vai embora de fininho. É como trancar a porta com 100 cadeados e depois assinar uma procuração dando a outra pessoa plenos poderes para transferir a casa.
O perigo é que isso pode continuar valendo por muito tempo. Antigamente, se você assinasse algo errado, perdia um token, entrava em alguns sites de revogação, cancelava e pronto. Mas aqui a permissão é no nível da conta: dá pra transferir qualquer coisa que esteja na carteira, e os sites comuns de revogação não conseguem resolver. Para cancelar, você precisa assinar uma nova autorização EIP-7702 apontando para o endereço 0 e enviá-la para a blockchain. Resumindo: a maioria da galera não faz ideia de como fazer isso.
É por isso que eu não gosto desse design.
$NEAR $BTC $ETH
Normalmente, muita gente acha que basta manter a chave privada em segredo e pronto, especialmente usando uma carteira fria, já que toda vez que vai transferir dinheiro precisa conectar o dispositivo e apertar o botão de confirmação físico. Aí a galera pensa que, por mais competente que seja, nenhum hacker consegue apertar o botão por ela.
Mas, na prática, com esse tal de EIP-7702, nem a carteira fria está a salvo. O processo é mais ou menos assim: você entra num dapp e aparece um pedido de assinatura para atualizar a carteira ou ativar algum recurso. Você conecta a carteira e, muitas vezes, a tela só mostra um monte de código hexadecimal que não dá pra entender porra nenhuma. Aí você confirma logo pra acabar com isso, e essa assinatura de autorização pode permitir que o endereço da sua carteira execute o código de um contrato.
Se for um contrato malicioso, o hacker pode usar a sua própria carteira para transferir fundos sem que você precise assinar nenhuma outra transação.
Ou seja, você continua com a carteira fria guardada no cofre, com a seed tão protegida que nem você mesmo sabe qual é, mas o dinheiro vai embora de fininho. É como trancar a porta com 100 cadeados e depois assinar uma procuração dando a outra pessoa plenos poderes para transferir a casa.
O perigo é que isso pode continuar valendo por muito tempo. Antigamente, se você assinasse algo errado, perdia um token, entrava em alguns sites de revogação, cancelava e pronto. Mas aqui a permissão é no nível da conta: dá pra transferir qualquer coisa que esteja na carteira, e os sites comuns de revogação não conseguem resolver. Para cancelar, você precisa assinar uma nova autorização EIP-7702 apontando para o endereço 0 e enviá-la para a blockchain. Resumindo: a maioria da galera não faz ideia de como fazer isso.
É por isso que eu não gosto desse design.
$NEAR $BTC $ETH
