Whether the first Blockchain you interacted with was Ethereum, Cardano, or some other chain, it’s likely that one of the first things you did was set up a “Wallet.” In this series, we are learning about Ethereum and Cardano by comparing them side-by-side, to see what we can learn from each. Today we will consider that universal starting point, the blockchain “Wallet.”
For most mainstream blockchain users, almost every interaction begins and ends with a blockchain wallet. Wallets are how you give your permission to blockchain applications to execute actions on your behalf. They can also provide an interface for you to sign simple messages to prove that you have control of something on the blockchain. We’ve written more about the different types of wallet software in this article: https://www.lidonation.com/en/posts/blockchain-crypto-wallet-your-cardano-citizenship-center. This installment in our Ethereum/Cardano series is less about Wallet Software and more about things wallet software lets you control on both chains. When people talk about their Ethereum or Cardano wallet, it is really all the elements in the rest of this article that make up all of what they are really talking about. Let's get into what these elements are.
Wallets & Accounts on Ethereum
On Ethereum, wallets provide an interface for you to control your Ethereum account. Joining the ‘Ethereum’ network starts with creating an account. Accounts on Ethereum are pretty straightforward and simple to understand.
Creating an account starts with generating a random cryptographic private key, either as a file or embedded into a 12 or 24-word mnemonic phrase. For the nerds, this is done using an Elliptic Curve Digital Signature Algorithm. A public hexadecimal string prefixed with 0x is created from your private key. This hex string is what you give out as your “account address.”
Your 12 or 24 words are to be kept secret and known only to you, your wallet software, and NEVER anyone else! This private key is the only thing needed to allow funds in your account to be spent. No legitimate service or app, other than a wallet, will ever ask for your private key.
The balance in your Ethereum account is the sum of the transactions in and out of your account. Without the full history of your incoming and outgoing transactions, the Ethereum network has no way of verifying how much you’re allowed to spend. This is an oversimplification, and there are clever optimizations that companies can use to avoid reading your entire history to prove how much you are allowed to spend. Those nuances are out of the scope of this article. I mention it because, at a high level, this works differently on Cardano. More on that later.
The last thing about accounts on Ethereum is that they can be “External” or “Internal” to the blockchain. Externally owned accounts (EOA) are created using the algorithm above to generate a random private and public key. Ethereum has no knowledge of an EOA until they are used in a transaction. Most wallets simply show EOA as just “Account.” Only Ether, Ethereum’s native currency, can be sent from one EOA account to another.
The other type is a Contract Account. These do not have private keys. They are created and given to the developer when they deploy a smart contract to the blockchain. Most wallets show them as “Contract”.“ While contract accounts can send and receive Ether and other assets, they can only transact after being triggered by an EOA sending Ether to the contract address. A Contract Account is required when creating custom tokens on the Ethereum network. The contract manages the monetary policy of your custom token.
Since only Ether can be sent between two EOA accounts, wallets help you send tokens on Ethereum by interacting with the contract responsible for managing the token on your behalf. Your wallet tells the contract the amount you want to send and to which receiving account.
There are over 35 different wallet vendors, according to ethereum.org. Popular vendors are MyEtherWallet, Argent, and MetaMask. Picking a wallet typically means deciding which vendor you trust to handle your private key properly and what features of the blockchain they support. For example, one of the well-known wallet vendors, MyEtherWallet, does not support Ethereum L2 applications. Others are only available on desktop as browser extensions, and some are only on mobile. Some wallets let you hold a copy of the entire blockchain history, so your transaction doesn’t have to go to a remote server to be submitted to the Ethereum network. Ethereum.org is an excellent resource run by the Ethereum Foundation with a directory of Wallet options and their features.
Wallets & Private Keys on Cardano
Wallets on Cardano more or less serve the same purpose as those on Ethereum–they let you control things on the blockchain you have keys to. However, the more you peel back the layers, the similarities quickly dissipate.
Because Cardano uses a cash-register (or e-UTXO) style of keeping track of who owns what (like Bitcoin), the concept of an account with balances is non-existent. If you are a human, your journey starts with a mnemonic phrase––a human-friendly way to represent cryptographic keys using words.
Mnemonic phrases on Cardano commonly come in 12, 15, or 24 words. Everything a wallet software needs to generate cryptographic key pairs for the different categories of transactions humans can perform is contained within these seemingly innocent and random words.
Your 12, 15, or 24 words are to be kept secret and known only to YOU and your wallet software. This private mnemonic or passphrase is the only thing needed to allow your coins to be spent, staking rewards claimed, or delegation and voting decisions to be broadcast to the network.
For the nerds, Cardano cryptographic key pairs are generated using the Edwards-curve Digital Signature Algorithm. The highly anticipated 2022 Vasil upgrade to Cardano added support for SECP256k1 cryptographic keys, an Elliptic Curve Digital Signature Algorithm. This is to enable greater interoperability between Cardano and Bitcoin and EVM-based blockchain networks since SECP256k1 can be used to generate private keys on those networks.
For most people, the common categories of transactions you will perform are stake delegation, rewards withdrawals, sending payments, and voting. These all have their own key pairs for approving each type of transaction.
You also get an additional three pairs of public/private keys if you operate a stake pool on the network. Cardano is structured in a way that allows the addition of new categories of transactions or capabilities as needed.
On Ethereum, you largely get a binary, external and internal accounts with two categories of operations (sending Ether or interacting with a smart contract).
On Cardano, Ada, the native token is treated the same way as custom tokens created on the network, without the need for smart contracts. This is why tokens on Cardano are called Native Tokens. You can send a Native Token from one Cardano address to another without going through a smart contract. You can send any combination of Ada and Native Tokens in the same transaction!
By having different, extensible, and unique transaction categories with unique public/private key pairs, regular users only have to worry about keeping a single mnemonic phrase secure since all key pairs live in your phrase. On the other hand, businesses and power users can create these key pairs directly and separately with different security protocols and custodianship within their organization.
The finance department manages the spending keys, while another department manages the voting key vs. the staking key used to collect staking rewards. Or perhaps stake keys can be stored in a software that automatically withdraws and distributes rewards to employees (or users of a dex) while the payment key with the funds generating the rewards is under lock and key and otherwise not easily accessible.
Speaking of software, if you are not a human actor on Cardano (ie, smart contracts or simple spending scripts), like Ethereum, you wouldn’t have a private key, just a public address or certificate. Cardano extends the bitcoin cash-register accounting style to allow verification to be done by any arbitrary piece of computer program as an alternative to a private key signature. This “any arbitrary piece of program” is the e in e-UTXO, which stands for “Extended.” Cardano knows that a program needs to give the final go-ahead because a hash of the program will be embedded in the public address or certificate. Cardano will then see this hash and know to run the program to get the final approval.
According to developers.cardano.org, a site operated by the Cardano Foundation, there are 11 popular wallets to choose from with varying sets of features and support for different kinds of Cardano transactions. Daedalus wallet lets you store the full blockchain history on your computer. Daedalus is a wallet created and maintained by IOG, the primary core developer of Cardano. Eternl pioneered interacting with DApps on Android and iOS mobile devices. Gamechanger is pioneering how a wallet might let anyone be a power user on Cardano without being technical. Typhon set the standard for great developer tooling for easily building websites that interact with a user’s wallet.
On both blockchains, your wallet is just a tool to help you control things on the blockchain. This is much like the way you might use a smart speaker to control things in your house. Your thermostat is NOT inside your speaker, but through your speaker, you can interact with your smart thermostat or other internet-connected devices. You can connect the same thermostat to multiple smart devices simultaneously. Likewise, you can connect and use the same passphrase in multiple wallets from different vendors, at the same time.
Since there are a lot more categories of things you can do on the Cardano blockchain, Cardano wallets tend to have more functionalities and features.
On both chains, since wallets are just tools for controlling things on the blockchain. If you just bought crypto on an exchange, or on Robinhood and are holding it there, you don’t own those assets and typically cannot use them for anything interesting. If you do not hold your mnemonic phrase to any particular ‘wallet,’ you do not own anything on the blockchain–not your keys, not your crypto, as the saying goes.
When you create a wallet, remember that you are your own bank. Make sure to guard your mnemonic phrase accordingly!