Solana: Address lookup table does not compress addresses as expected
A recent transaction on the Solana blockchain revealed a problem with the address lookup table, which is a key component of the network’s decentralized finance (DeFi) ecosystem. The problem occurs when a user tries to view their address in Solana Explorer.
Deal
On December 2, the developer shared a transaction in Solana’s blockchain explorer, Explorer.Solana.com, which revealed a problem with the address lookup table. In particular, the transaction included sending a transaction with the following data:
- Transaction ID:
5FvqJxfoffeBGMwQHh618KzZcNSHCmfdvY4xwNJBsSDyfNEqWpJ9R1FZSWRccyKkrsUDt4ZG3YaZEdvmawHSPT2X
- Cluster:
devnet
Problem
After verifying the transaction, it became obvious that the address lookup table was not compressing the address as expected. In Solana, addresses are usually presented in a specific format that includes a checksum of the entire address, which is used to verify the authenticity and integrity of the transaction. However, when calculating this checksum for an address, it does not always match the original address.
Problem
The problem arises because the address lookup table uses a simple hash function to calculate the checksum of each address. Although this approach may seem sufficient in many cases, it is not robust enough to handle certain types of addresses or edge cases. In particular:
- Single character address: When using a single character address (eg
abc
), the address lookup table does not calculate the checksum correctly.
- Address Extensions
: Some Solana addresses have extensions that require additional data that may be lost when calculating the checksum.
Conclusion
It is important to highlight the problem with the Solana address lookup table. Although the blockchain design has many strengths, its reliance on a simple hash function to calculate checksums can in some cases lead to errors and inconsistencies. Developers and users should be aware of this potential problem when working with Solana network addresses.
Recommendations
To mitigate this problem, developers are encouraged to:
- Use more reliable address formats, such as multicharacter addresses or addresses with extensions.
- Implement additional checks to confirm the integrity of an address before using it for transactions.
In addition, users should exercise caution when working with addresses on the Solana network and consider seeking help from experienced developers or Solana experts if they encounter problems with the address lookup tables.