We are seeing new possibilities as more chains join the Cosmos network and start to transfer value. Blockchains are now able to interact with one another and gain more value from each connection. Cross-chain DeFi gains momentum, and the more robust and inclusive alternative financial system is gaining more weight.
As is to be expected in overseeing the development of new technologies, there are always opportunities for improvement in certain areas. In other areas, however, we discover new ways of doing things that don’t make sense. This was clearly illustrated by the Cosmos versioning upgrade.
The Cosmos SDK versioning had always reflected that of a Beta. Every new iteration began with a “0” despite years of being tested, run in production, and recognized by the industry. The Tendermint team decided it was time to make the change. And, as we go further down the unbeaten path of interoperability to make the Internet of Blockchains a reality, we’ve identified a need to make another modification, this time to private and public key generation.
The Cosmos Derivation Path Spec Proposal
Currently, the way that keys are generated within the Cosmos ecosystem means that if a user wants to use several blockchains with just one seed phrase and one set of keys, they can. However, because most chains in the Cosmos ecosystem are using the same identifying number, the public and private keys generated for each chain end up being the same, making it hard to maintain privacy between these chains.
So, say you didn’t want anyone to connect your identity on Cosmos Hub with your identity on Terra. You would need to have an extra mnemonic phrase for one of those chains. Clearly, this quickly becomes inconvenient as you transact across further chains.
We, therefore, propose an important upgrade that allows the convenience of using just one seed phrase to manage all your keys, yet keeps their identities separate, even on Cosmos chains. It’s called the Cosmos Derivation Path Spec Proposal and it has been completed by Confio blockchain engineers and key contributors to our popular smart contract engine CosmWasm. Confio’s proposal changes the way that keys are generated within the Cosmos ecosystem.
Without getting too deep in the weeds, that means making some adjustments to Hierarchical Deterministic (HD) wallets. HD wallets allow users to generate public and private keys for multiple blockchains with one single mnemonic seed phrase, and they follow a specification called BIP44 spec.
As mentioned, currently, Cosmos Hub and many other chains in the Cosmos ecosystem are using the same identifier which allows for the simplification of other operations, such as the seamless use of tools built for the Cosmos Hub (like the Cosmos Ledger app) by Cosmos chains without any modifications. However, it also means that most chains using the Cosmos SDK use the same key pair, so users cannot keep their identities on all chains separated.
Confio’s proposal will still allow Cosmos chains to easily share important tools and functionality yet will keep users’ activity separate across all chains in the ecosystem. One unique key and one mnemonic phrase to manage all your cross-chain activity, yet separate identities. We encourage you to read a more technical summary on the Interchain blog here and the full Confio proposal on Github here.