“Wallets” can mean different things in web3. Usually, they’re understood as the interfaces where users keep track of their assets, sign in to dApps, and create or approve transactions. They could even be seen as a web3 analogy to a browser and many popular wallet applications are, in fact, browser extensions. While this is currently valid and true from a UX perspective, it is only half true in a technical sense.
Our understanding of wallets has been colored by something called path-dependency. We’re only using them the way we do because everything so far has been built under one particular understanding of what wallets can be… but they can be so much more.
What are wallets in the first place?
At their core, wallets are just a system for signing with private keys. That’s it. Everything you do in any of the popular wallet applications — sending funds, signing into a dApp, authorizing smart contract transactions — is built on top of a basic functionality where these private keys are used to sign a message sent to the blockchain network you’re using. However, this signing mechanism can be turned into something more useful, secure, and interoperable than what it’s currently known for.
We’re used to talking about wallets in very limited and binary terms. Either this key holds the assets or the other, they’re secured in either a hot or cold way, and exist in this chain or that chain — take it or leave it. But when we strip it down to the fundamentals and redesign the way the signing mechanism works we see that all of these capabilities can live along a spectrum.
What if the private key management could follow a set of predefined rules? What if these rules could be applied securely? What if their execution could have secondary effects in other blockchain networks? This is what dWallets can do.
Defining dWallets
A strictly technical definition of a dWallet is that it is a “signing mechanism paired to a public key and constrained by dynamic access control that operates within a decentralized state machine (e.g. blockchain).” Let’s break this down.
Access Control
dWallets are signing mechanisms that can be programmed with special smart contracts, known as wallet contracts, that run on their own dedicated blockchain, the Odsy Network. This gives them the capability for dynamic access control which is an important leap in wallet functionality. It lets users do all sorts of new things with their wallets. They can create their own set of conditions for who, when, and where to sign or not sign a transaction with their private keys. They can even program their wallets so that they are transferred to other users.
Security
Because the Odsy Network is the environment in which these wallet contracts are executed, its decentralization and underlying security mechanisms are of paramount importance to dWallets. To keep this in check, the Odsy Network implementation makes use of Multi-Party Computation (MPC), specifically Threshold Signature Schemes (TSS), and Trusted Execution Environments (TEEs) to ensure that dWallets run on an ultra-secure system that is not reliant on any single point of failure. This implementation makes it so that transactions need to be approved by both the user and the network in order to be executed.
Compatibility
Another byproduct of redefining wallets at a fundamental level, from the signing mechanism up, is that they can be made blockchain-agnostic. This means that the transactions that are signed by a dWallet can be executed on other blockchain networks that use the same signature algorithm (e.g. ECDSA, EdDSA) in their implementation. Since this is the case for most blockchain networks, a dWallet can be used as a single multi-chain interface for all of web3.
dWallets as a building block
Having a dedicated network for wallet contracts turns wallets into a web3 primitive. That is to say, wallets are now building blocks that are useful by themselves but can also be plugged into more complex programs. This is similar to how smart contracts themselves were a new concept a few years ago and are now used in almost all blockchain networks to build elaborate dApps. The only limit here is the developer’s imagination.
dWallets will have a large impact on the user’s journey into web3. To say that building dApps that make use of them will provide a better UX is an understatement. An entire new class of dApps that couldn't have been built before in a trustless way can be done with dWallets. All of which will offer improvements in access control and security as well as less ecosystem fragmentation.
Dive deeper into dWallets in the Odsy Litepaper and stay tuned to find out how you will soon be able to use and implement them.