72
23

SmartOTPs: An Air-Gapped 2-Factor Authentication for Smart-Contract Wallets

Abstract

With the recent rise of cryptocurrencies, the security and management of crypto-tokens have become critical. We have witnessed many attacks on users, their software, or their providers, which have resulted in significant financial losses. To remedy these issues, many wallet solutions have been proposed to store users' crypto-tokens. However, these solutions often lack either essential security features, usability, or do not allow users to customize their spending rules. In this paper, we propose SmartOTPs, a smart-contract cryptocurrency wallet framework that gives a flexible, usable, and secure way of managing crypto-tokens in a self-sovereign (i.e., non-custodial) fashion. The proposed framework consists of four components (i.e., a client, a private key hardware wallet, a smart contract, and an authenticator) and provides 2-factor authentication performed in two stages of interaction with the blockchain. To the best of our knowledge, our framework is the first one that utilizes one-time passwords (OTPs) in the setting of the public blockchain. OTPs are aggregated by a Merkle tree and hash chains in such a way that for every authentication only a 16B-long OTP is transferred from the authenticator to the client. Such a novel setting enables us to make a fully air-gapped authenticator utilizing transcription of mnemonic words, while additionally offering resilience against quantum cryptanalysis. We have made a proof-of-concept basing on the Ethereum platform. A cost analysis of our implementation shows that the average cost of a transfer operation is comparable to existing 2-factor authentication solutions using smart contracts with multi-signatures. In contrast to the previous version of our work \cite{homoliak2018air}, we change the protocol to utilize a hardware wallet with a display, enabling us to protect against the attacker that tampers with the client.

View on arXiv
Comments on this paper