At the core of everything we do on Ethereum, whether it’s sending ETH to a friend, taking out a loan on Maker or buying digital art on OpenSea is the concept of an account. An account on Ethereum holds everything we own, allows us to interact with the network and gives us an identity. This account is identified with a 42 character string of numbers and letters, prefixed with 0x.

Since 2017, Ethereum has seen an explosion in unique accounts created on the network. At this point in time there are 71,000,000 unique accounts and that number is growing at a pace of 70,000 per day. At the same time, these accounts are securing nearly $40,000,000,000 in value between ETH and ERC20 tokens. With the rapid pace of adoption and wealth, we should make sure that we are using accounts to the best of their ability.

Account types

Not all accounts on Ethereum are created equally. There are actually two different types: externally owned accounts and contract accounts.

Preethi Kasireddy’s article about how Ethereum works gives us a nice visual of the two.

To date, most accounts created on the Ethereum network fall under the category of externally owned accounts. These accounts are secured with a private key, often transformed into a 12 word “seed phrase” for the user. The onus is then on the end user to not lose this phrase and if they do the funds in the account are lost forever.

Sounds…awful?

I‘d argue this is one of the biggest barriers to mass adoption of cyrpto and it must be fixed.

This is where the other account type on Ethereum comes into play. The contract account is secured by code which allows for better security and a wide range of additional features that externally owned accounts cannot offer. Let’s explore the depth of those additional benefits…

So, how smart are they?

At the end of the day, most users will want the same securities and guarantees that a traditional banking experience can offer them. Users are offered fraud protection, withdrawal limits and the general comfort of knowing their funds can’t just be lost.

So, can we provide that to them on Ethereum? Well, given that we are now putting a layer of code on top of accounts, the answer is yes. There are a handful of features that rise to the top, all of which can greatly improve user experience, security and trust in using the Ethereum network. At Gnosis, we are currently working on or have implemented all of the following ideas into Gnosis Safe.

Unique Recovery Options

Earlier in the article I explained how externally owned accounts (the most common type on Ethereum) are secured by a private key, which if lost makes the account unrecoverable. With smart contract wallets, we can introduce new concepts around fund recovery such as social recovery and time based recovery. These options are still being researched for the Gnosis Safe but below are some examples of how the process could work.

The concept of social recovery is perhaps the most interesting. Let’s take an example and assume you have 2 family members and 1 friend that you really trust. You would be able to designate these 3 people as your “backups” in a social recovery setup in Gnosis Safe.

Setting up backups for recovery

Now let’s say you didn’t have your seed phrase backed up and you lost your phone. Traditionally with an externally owned account, all of your funds would be gone. However, if using a smart contract wallet, you would be able to trigger a recovery process to restore your funds assuming a majority of your backups agree. It’s important to note that your backups can never capture your funds, they just have unique permission to complete the recovery process.

For recovery, backups do not always have to be family or friends. They could also be a mixture of hardware wallet devices and other accounts that you have access to.

This idea can even be taken a step further to where the seed phase concept is never even introduced to the user, something that many new people find intimidating. At that point, the user always falls back on social recovery in the case of a lost wallet.

The other unique recovery option that can be enabled is a time based recovery. A user would be able to tell his wallet that if no transactions are made for a year, another designated account can trigger a command and recover the funds.

Two-factor authentication

A feature that Gnosis Safe currently has implemented is 2FA, something that most people use for their important accounts online. In this process, a user puts in their password and is then prompted again to enter an addition passcode for verification. This is a no-brainer for crypto transactions.

2FA Process in Gnosis Safe

Upon setting up a Safe, the user is prompted to sync with a browser extension which is then used to verify transactions. At any point in the future when a transaction is sent from the Safe, the user must also confirm it in their browser. We are currently working on expanding the options 2FA devices, including hardware wallet options such as the Status Keycard.

Pay gas fees in ERC20 tokens

No one likes to go send Dai or an NFT only to find the “insufficient funds” warning pop up on your wallet. This is a common user experience snag caused by the fact that gas fees must be paid in ETH on the Ethereum network. Luckily, Gnosis Safe allows us to do really cool things with meta transactions, including letting the user select what token they’d like to pay gas in. When a transaction occurs, the token selected for gas payment is relayed to a service which pays the fee in ETH to the miner and takes the ERC20 token payment as compensation.

Currently there are 6 tokens enabled for this feature: ETH, Dai, KNC, MKR, OWL and WETH.

Transfer limits

Withdrawal limits are an extremely common security feature for the transitional banking system because they are a great way to prevent theft and catch fraud before it gets worse. This is also a feature that could be enabled with smart contract wallets.

The user would be able to set their max transfer limit for any given transaction (despite transactions to a predefined whitelist of accounts). If a transaction is triggered over that amount to a non-whitelisted address, the transaction would be halted until a set amount of time clears. During that time, the user could cancel the transaction.

This feature obviously has some overlap with 2FA but is at the same time complimentary and may be preferred by someone that wouldn’t always have their 2FA device on them.

Security

We’d be remiss if security was not talked about when discussing the evolution of smart contract wallets. We take security very seriously at Gnosis and the Gnosis Safe has been thoroughly audited and formally verified. There is currently a bug bounty program that could pay out $50,000 per bug and we have personally deposited 5,000 ETH into the Safe contract to prove our trust in it.

Batched Transactions

Another great feature that smart contract wallets can enable is the idea of batched transactions. As composability between dapps start to grow, this will become something that allows for much better UX to the end user. Let’s take for example the InstaDapp Bridge which allows users to move DeFi debt from one platform (Maker) to another (Compound). If the user did this manually, they would have to go through 10+ transactions. Instead, the wallet can batch these for the user and bundle them into just 1.

David Hoffman shares his InstaDapp Bridge transaction

In conclusion…

Links

Safe of iOS

Safe for Android

Twitter