#tezos

Almost. We have the blocks, but some are missing.

What is account abstraction and why does it matter?

On Tezos we have two kinds of accounts:

  • implicit account: linked to a manager which owns a private key and public key pair.
  • originated account (aka smart contract): created with an origination operation. They don't have a private key and public key pair.

Blockchain security relies on cryptographic signatures to authenticate the author of an operation. Most wallets like Ledger, Temple, Airgap or Kukai are devices or applications vaulting your private keys in order to ease the use of blockchain with implicit accounts. So it ends with different capabilities between those wallets and Smart Contract wallets which are originated accounts.

Smart contract wallets can provide extra features like governance rules, programmable money spending or receiving, key recovery, pay the fees for a third party, etc…

Account abstraction is the idea of abstracting the kind of a wallet, so both implicit and originated accounts can be used by blockchain users in a transparent way.

I will use some emoji to visualize Tezos state for different items:

  • ✅: Tezos is ready
  • ❌: Tezos is not ready
  • 🔜: Developments are ongoing 

What is a wallet used for?

Every hardware or software wallet provides at least three essential functions:

  1. Logging into a decentralized application (dApp) ✅
  2. Signing off-chain messages ✅
  3. Signing blockchain operations ❌

For wallets linked to implicit accounts, each of these functions involves using a private key to sign data. This process verifies ownership of the corresponding public key linked to the wallet’s address.

Wallets linked to originated accounts lack a private key, necessitating an alternative method for data signing. Recently, Tezos introduced a new standard, known as Proof of Event and Simulated Proof of Event (incoming TZIP27). This standard establishes a mechanism allowing smart contract wallets to perform the first two functions: logging into dApps and signing off-chain messages.

The standard is already implemented by TzSafe, the multisig smart contract wallet by Marigold, and you can use Proof of Event to log-in on Tezos Domain, OBJKT or Akaswap, and sign messages on Akaswap.

On Tezos, the majority of smart contract wallets fall into two categories: multisig wallets or DAOs. These two categories primarily focus on governance, with implicit accounts serving as the participants. In this setup, participants do not directly sign operations from the originated account. Instead, the core functionality revolves around establishing governance protocols. These protocols define the conditions under which a participant is authorized to sign an operation, which is then executed on behalf of the multisig or DAO.

But what if a participant was an originated account?

What if we want to have other types of smart contract wallets?

This is not currently defined in the Tezos landscape.

 What can we expect from a smart contract wallet?

  1. Programmable money ❌

With smart contract-enabled blockchains such as Ethereum and Tezos, the simplicity of programmable money, a hallmark of Bitcoin, has diminished. Consider the scenarios where one wishes to automatically convert received XTZ into USDT, or to set XTZ transfers to be spendable for just one hour. Currently, this necessitates delegating these functions to a smart contract and signing each transaction with a wallet tied to an implicit account. Ideally, it would be more efficient if the smart contract itself could act as the wallet. However, this approach is not feasible at present due to the inherent limitation that smart contracts are unable to initiate transactions on their own.

  1. Pay gas fees for a third party or with another token than tez 🔜

When you are an application developer you may want to offer gas and burn fees to your players. You can already use an API like Gas Station to pay fees. Gas station is currently based on Tezos Permit (TZIP 17) and the incoming Sponsored Operation feature -likely in Q proposal from core teams- will simplify sponsoring. 

Thanks to programmable money we could go even further: Gas Station could be only used to provide a source for the transaction, but all the logic could be delegated to the smart contract wallet. This would improve the user experience a lot by removing the necessity to sign a permit or an operation for sponsorship at every action. 

  1. Share your account security with trusted devices ❌

Addressing this challenge in Tezos, particularly concerning the signature and hashing protocols, is complex and may require significant modifications. This issue was thoroughly examined in Benjamin Fuentes' blog post titled “signing on Tezos with Android devices”.

Enhancing wallet security beyond the traditional private key approach is a prominent subject, with projects like Cometh and Nicolas Bacca's latest initiative at the forefront. This topic promises further exploration and discussion in upcoming articles.

  1. Account recovery ❌

The adage "Not your key, not your coins" highlights a crucial aspect of cryptocurrency ownership but also has its limitations. Expecting every user to fully comprehend the potential risks associated with blockchain technology is an utopia. As the blockchain sector expands, there is a growing need for Poka-Yoke (mistake-proofing) mechanisms to safeguard users and, importantly, provide them with a way to recover their accounts.

Another significant issue is inheritance planning: how can one transfer ownership of their wallet without compromising their secrets during their lifetime? This area remains largely uncharted and necessitates further investigation.

At the end of the day, the concept of account abstraction presents numerous possibilities for innovation in user experiences, offering dApp and wallet developers a broader canvas to design more intuitive and secure platforms.

Marigold continues paving the way for it with TzSafe or Gas Station/Sponsored Operation and contributes with other core teams to the design and implementation of new TZIP.

Finally we are willing to hear your expectations about account abstraction for Tezos!

Scroll to top