An Air-Gapped 2-Factor Authentication for Smart-Contract Wallets
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 lack either essential security features, or usability, or do not allow users to express their spending rules. In this paper, we propose a smart-contract cryptocurrency wallet framework that gives a flexible, usable, and secure way of managing crypto-tokens in a self-sovereign fashion. The proposed framework consists of three components (i.e., an authenticator, a client, and a smart contract) and provides 2-factor authentication performed in two stages of interaction with the blockchain. Our framework utilizes one-time passwords (OTPs) aggregated by a Merkle tree that is distributed across the components in such a way that for every authentication only a single OTP is transferred from the authenticator to the client. Such a novel setting enables us to make a fully air-gapped authenticator with 16B-long OTPs, while offering resilience against quantum cryptanalysis. We implemented our approach basing on the Ethereum cryptocurrency and the Solidity language. We have performed a cost analysis of the implementation and showed that the average cost of a transfer operation is less than 0.15.
READ FULL TEXT