Note: This blog post by Polymath's CTO Adam Dossa was originally published on Medium on November 20, 2019.
In May of this year Polymath announced, during Consensus New York, that work had begun on building out a new base layer blockchain. Codenamed Polymesh, this is a public blockchain designed from the ground up to enable compliant tokenized assets and transform how we think about securities in regulated markets.
The team at Polymath has been hard at work refining requirements, engaging with service providers, and building out our core blockchain technology over the last 9 months. We completed our first major internal milestone of the proof of concept at the end of October, with a team of 6 developers and over 100 Pull Requests into the project repo.
We are now excited to announce that we are building Polymesh on top of the excellent Parity Substrate framework. This was the technology stack we used for the proof of concept, so we’ve been working with this framework for several months now. Whilst there are challenges with engaging with any new and innovative technology, the experience overall has been very impressive.
Open Source
Our code base has now been moved from private to public under a GPL3 license. Polymath is committed to open-source software and development practices, and we’re really excited to unveil all of the exciting technology we’ve been building for Polymesh.
Why Substrate?
During the research phase of Polymesh we considered multiple approaches, including forking an existing blockchain runtime like Geth for Ethereum, building our own network from scratch, and using a framework like Parity Substrate or the Cosmos SDK. The decision process involved many variables, involving technology, roadmaps, product fit, and community aspects.
Modularity
Polymath has been building protocols for regulated markets, security tokens, and compliance for over two years. We’ve been through multiple iterations of our protocol on Ethereum and built up considerable expertise and experience in this intersection of finance, regulation, and decentralized technology.
This experience leads us to believe that modularity is critical to our architecture — this is reflected in the modular approach taken by the ST20 protocol, where new features, compliance rules, and functionality can easily be added to our core infrastructure through new modules, as well as our interoperable library approach to standardization which allows different assets and jurisdictions to use only those parts of the ERC-1400 specification that make sense to them.
Parity Substrate follows a similar modular architecture — out of the box, it comes with a well-featured library of modules covering things such as block production and finality, balance management and governance features as well as support for smart contracts. We are extending these core Substrate capabilities by building a suite of modules that provide financial primitives at the base blockchain layer. These cover critical functionality such as identity, the regulated assets themselves, settlement, and other key categories of capital market functionality.
This ability to focus on areas where we have deep domain experience whilst relying on the framework for core blockchain functionality such as finality and networking, allows us to build and iterate rapidly whilst leveraging our deep domain experience in regulated markets.
Future-proof technologyWhilst Substrate is technically language agnostic as the runtime is compiled down to a WASM blob, in practice most of the core components are written in Rust — a language that is optimized for memory safety guarantees, low runtime size, and performance. We have observed many distributed and decentralized technologies adopt Rust, along with many of the cryptographic and low-level libraries used within the ecosystem. Our experience has been that, whilst there is a steep learning curve to coding in Rust, the payoff is more than worth it, with the compiler providing strong compile-time guarantees and checks, which are extremely valuable in providing confidence in mission-critical software.
Substrate also builds on industry-wide standards, such as LibP2P and WASM. These technologies are slowly being adopted by other blockchains, such as Ethereum, and reflect cutting-edge choices for decentralized software, giving Polymesh great options around interoperability with other tooling stacks as we progress and develop the chain.
When we look to the future, one of the other key advantages of building on Substrate is that there is a pathway to interoperability with other blockchains. The Polkadot network, built by Parity using Substrate, is a relay network that effectively allows parachains (other standalone blockchains connected to Polkadot) to communicate and exchange assets or another state. Whilst there are no immediate plans to register Polymesh as a parachain, Parity is continuing to refine and extend the options to interact with Polkadot such as using a bridge or a parathread, and it is an area we continue to closely track and research.
Finality, governance, and network upgrades
Polymesh is not a general-purpose blockchain — instead, it is highly optimized for compliant assets operating in regulated markets. As such there were some core requirements for the network driven by our experience in building on Ethereum and hundreds of discussions with stakeholders such as banks, trading houses, broker-dealers, exchanges, KYC service providers, custodians, and many more.
Substrate ships with a finality gadget called GRANDPA which provides deterministic guarantees around finality, rather than a probabilistic finality common to proof of work networks like Ethereum and Bitcoin. For capital markets, this is absolutely critical with T+0 settlement being one key advantage of using public blockchains, and a necessity to avoid block re-organizations which we’ve seen extend over a day in some major proof of work networks.
Another great feature of Substrate is their so-called Forkless Upgrades. Governance and forks in public blockchains is an area of concern to many institutions looking to engage with this type of technology, presenting severe risk in the event of a contentious fork and requiring institutions to build risk teams and associated competencies to deal with this eventuality. Substrate takes a different approach with the key innovation that the state transition function itself (i.e. the blockchain logic) is held under consensus on the network. This means that upgrades can be triggered directly through clear on-chain governance and simplifies the operational process of rolling out upgraded runtime software. Shawn Tabrizi from the Parity team gives a great explanation in more detail here.
Community
One consequence of using Parity Substrate is that we are engaging with the technology at an early stage. When we began working with Substrate, version 1.0 had just been released, and we’re now working on version 2.0 which is still rapidly evolving. Whilst this brings in some challenges from an integration and coordination perspective, the silver lining is that we have been able to collaboratively and constructively engage directly with the Parity team and Substrate community to help inform the functionality being delivered through Substrate.
Polymath has always been deeply involved in the blockchain community, attending and sponsoring many major technical conferences, participating in lots of hackathons, as well as participating in open source projects and initiatives. That Substrate comes with its own community of passionate developers and teams building tools, blockchains, and infrastructure around Substrate is a huge advantage. Being able to contribute back to this community and leverage the work done by the community not only offers us great efficiencies, but also an important sense of shared purpose and community.