5 min read
Overview
In our earlier guide An Introduction to Crypto Wallets and How to Keep Them Secure, we covered the crypto wallet threat landscape as well as some basics and key terms. In this next guide, will cover smart contract wallets in depth and the unique and complex threat vectors to be aware of when interacting with them. We will also list some best practices to secure funds. Let's get started!
Smart Contract Wallet Overview
Smart contract wallets are capturing more attention across multiple ecosystems (Solana, Ethereum, etc.) due to their combination of features across security, flexibility, speed, and convenience. Smart contract wallets allow users to store cryptocurrency, NFTs, and access many popular decentralized applications (dApps). One common use case for smart contract wallets is using it as a safe deposit of joint funds controlled by multiple parties.
How Smart Contract Wallets Work
The funds in smart contract wallets are accessed and controlled through smart contract code. The smart contract allows for programmable features such as social recovery, transfer limits, and account locking/freezing. In addition to completing transactions, users have the ability to configure and set policy features and controls across their transactions.
Many smart contract wallets deploy a multi-signature security approach which enables users to add additional users to their wallet who can approve and sign transactions. At a minimum, two signatures are required. A trusted user can be a friend, a secondary wallet, or a third party who will typically have the ability to participate in any of the wallet owner actions. As a signer/approver, a trusted user can help recover the wallet in the event of compromise or when the owner cannot access it.
Additional functionality that smart contract wallets enable include but aren’t limited to; account freezing, transaction limits, transfer limits, multi-factor authentication, allowlisting, trusted parties, bundled transactions, and paid gas fees depending on the vendor offerings.
Smart Contract Wallet Security Risks
Any additional flexibility features being offered with wallet products come with trade-offs. Since smart contract wallets are smart contracts (code written by humans), many of the same risks we see inherent to smart contracts apply. Many of the top ten Smart Contract Risks fall into three main categories: Operational Risk, Implementation Risk, and Design Risk and are applicable to many of the smart contract wallets on the market today.
- Operational risks: these involve access, authorization, and privilege escalation risks that can be exploited when logic in the code is insufficient or flawed Examples include: Escalation of owner privileges, by-passing signers/approver, allowing an owner to also be a signer/approver, and the ability to change configurations arbitrarily.
- Implementation risks: these are errors that can result in unintended smart contract wallet behavior. Examples include: Unauthorized transfers or activities, bypassing limitations on transfers or other money movement activities, activities that can take place with none of the intended controls (locking, recovery, etc.), incorrect signatures, connecting to dApps without permission, restoring removed dApps, and signing malicious transactions.
- Design risks: these encompass wallet design features that are exploited to alter the intended smart contract behavior. Examples include: functions that can be triggered that are not defined in the code, asynchronous transaction processing, replay functions, return statement, and callback functions.