In-Depth Understanding of TON Wallet Types: A Comprehensive Analysis of the Integrated V5 Wallet

TON (The Open Network) blockchain has set itself apart in the crypto space with its innovative approach to wallet contracts. The evolution from V1 to V4 wallets has been a journey of continuous improvement and innovation. Now, with the introduction of the V5 wallet, we are witnessing a significant leap forward—an extensible wallet specification designed to replace V4 and allow for arbitrary extensions, opening up a world of possibilities for users and developers alike.

Overview of Features

The V5 wallet ushers in a suite of new features and optimizations that enhance its functionality, efficiency, and security:

  • 25% reduction in computation fees: Through meticulous optimization of contract logic, the V5 wallet significantly reduces the cost associated with executing transactions, making it a more cost-effective choice for users.
  • Support for an arbitrary number of outgoing messages: By implementing an action list, the V5 wallet removes the previous limitations on the number of messages that can be sent per transaction, allowing for more complex and versatile operations.
  • Decentralized and conflict-free code extension: A groundbreaking feature, this allows anyone to extend the wallet code, enabling multiple feature extensions to coexist without conflict, fostering an ecosystem of innovation.
  • Extensions can execute operations on behalf of the owner: This empowers extensions to perform a wide range of actions, including emitting arbitrary messages, adding and removing other extensions, and more, all on behalf of the wallet owner.
  • Support for third-party payment of gas fees: By enabling signed requests to be delivered through internal messages, the V5 wallet facilitates the outsourcing of gas fee payments to third parties, introducing a new level of flexibility in transaction handling.
  • 32-bit opcode for external messages: For enhanced consistency and ease of indexing, external messages are now assigned a 32-bit opcode, streamlining the process of message handling and improving overall system efficiency.
  • Support for disabling signature authentication: This feature lays the groundwork for advanced security measures such as two-factor authentication (2FA) and account recovery, providing additional layers of protection for wallet owners.

Detailed Explanation of Wallet V5

Authentication Modes

The V5 wallet introduces two robust authentication modes to secure wallet operations:

  • Signature Authentication: Adhering to the traditional method, this mode relies on private key signatures to authenticate transactions, ensuring that only the wallet owner can initiate actions.
  • Extension Authentication: A novel approach, this mode authenticates transactions through installed extension contracts, allowing for more complex and secure operations that can be tailored to specific needs.

Types of Operations

The V5 wallet supports three primary types of operations, each serving a distinct purpose:

  • Standard “Send Message” operation: This operation allows for the sending of up to 255 messages in a single transaction, enabling efficient and batch message processing.
  • Enable/Disable signature authentication: This operation, which can only be invoked by an extension, provides the flexibility to enable or disable signature authentication as needed, offering an additional layer of control over wallet security.
  • Install/Remove extension: This operation empowers users to dynamically install or remove extensions, allowing for the wallet’s functionality to be adapted to changing requirements.

Delivery of Signed Messages

The V5 wallet offers flexibility in the delivery of signed messages, which can be transmitted via external or internal messages. This dual delivery mechanism enhances the wallet’s interoperability and its ability to interact with other contracts and users within the TON network.

Responsibilities of the Wallet

At its core, the primary responsibility of the V5 wallet is to send messages on behalf of a single user, identified by a unique public key, to various applications within the TON network. However, through the use of extensions, users can delegate this responsibility to other applications, expanding the wallet’s utility and reach.

Extending the Wallet

The extension mechanism is the cornerstone of the V5 wallet’s advanced functionality. By allowing access to the wallet to be delegated to other contracts, this mechanism enables a wide range of customizations and enhancements.
Each extension is capable of performing the same actions as the owner of the private key, with the added benefit of being able to enforce limits and capabilities. This is achieved through a custom storage scheme that can be tailored to fit specific use cases.

Outsourcing Payment for Gas Fees

The V5 wallet introduces a novel approach to gas fee payment by allowing signed messages to be delivered via internal messages from a third-party wallet. This effectively outsources the payment of gas fees, introducing a new dynamic to transaction economics and providing users with more options for managing their costs.

Plugin Subscriptions and Fund Collection

Plugins within the V5 wallet can emit arbitrary messages on behalf of the wallet, including token transfers. This capability enables a range of subscription and fund collection models, opening up new revenue streams for developers and services within the TON ecosystem.

Self-Destruction of Plugins

Plugins within the V5 wallet are not meant to be permanent fixtures. They can be designed with the capability to self-destruct by sending all their TONs to the wallet with a specific send mode (128) and adding an additional action to remove themselves from the list of active extensions. This ensures that plugins can be securely removed when they are no longer needed or have completed their intended tasks.

Deploying Plugins, Installing Code, and Sending Messages

The V5 wallet streamlines the process of deploying and installing plugins by allowing users to include two requests in their message body: the first to add the extension address and the second to send a message with stateInit to that address. This efficient approach simplifies the integration of new features and updates, reducing complexity and increasing the ease of use for developers and users alike.

Wallet Size and Number of Plugins

As the number of plugins within the V5 wallet increases, the wallet size also grows. However, for reasonably sized wallets (less than 100 plugins), the cost of authentication via dictionary lookup would not exceed the costs of indirect address authentication. This means that the wallet can accommodate a significant number of plugins without incurring excessive overhead, making it a scalable solution for both individual users and large-scale applications.

Use Cases for Disabling Signature Authentication

The ability to disable signature authentication in the V5 wallet opens up two significant use cases:

  • Two-Factor Authentication (2FA): This feature allows for the full delegation of wallet control to an extension that checks two signatures: the user’s and the signature from an authentication service. This ensures that even if the user’s signature is compromised, the wallet remains secure due to the additional layer of authentication.
  • Account Recovery: In the event of key compromise or loss, the ability to disable signature authentication and delegate full control to another wallet becomes invaluable. This is particularly useful for wallets containing larger amounts of assets or those tied to long-term contracts, as it allows for the delegation of control without the need to transfer the assets themselves.

Library on the MasterChain

The V5 wallet employs a special code storage mechanism known as a “library” on the master chain. This mechanism reduces the storage cost for new V5 wallet contract instances by storing the contract code in the library. When deploying the wallet contract, the original code hash is used as the contract code, while the library contract itself contains empty data and code cells. This ensures that the library code cannot be changed, deleted, or used to withdraw funds, providing an additional layer of security. Consequently, any Wallet V5 user can top up the library contract balance if they are concerned about the library code of their wallet being frozen, further enhancing the wallet’s resilience.

Conclusion

The V5 wallet represents a significant leap forward in the evolution of TON wallet technology. With its extensible and flexible design, the V5 wallet offers a richer feature set and a safer user experience, catering to the needs of both ordinary users and enterprise-level applications. The integration of advanced features such as third-party payment of gas fees, support for arbitrary message lengths, and the ability to disable signature authentication, sets the V5 wallet apart as a cutting-edge solution that paves the way for further blockchain application development. As the TON ecosystem continues to grow and evolve, the V5 wallet stands as a testament to the platform’s commitment to innovation and user-centric design.

1 Like