Publication date: June 23, 2024
While we continue working on the initial version of our security research paper (opens in a new tab), which will introduce the research, the motivation, and the definition of security and privacy requirements for an enterprise-grade security model, we are also observing the development of the JAM protocol (JAM Chat (opens in a new tab); Gray Paper (opens in a new tab)).
During our review of the Gray Paper (opens in a new tab), we also translated it into German (JAM-gray-paper-v0.2.0_DE (opens in a new tab)) to reach a broader community spectrum, particularly because the Gray Paper is a technical specification and having a version in our language (in this case, German) can be helpful for analysis.
We want to address here an interesting topic related to Substrate, JAM and the approaches we intend to pursue with the Logos Chain.
First, we make the fundamental distinction between protocols and frameworks. A protocol is a set of rules and standards that define communication and behavior within a system. These rules and standards determine how data is formatted, transmitted, and received. Protocols are independent of implementations and are not tied to any specific software. Protocols dictate less about how the implementation should specifically look, allowing developers more freedom in their choice of technologies and methods. Well-known examples of protocols include HTTP (Hypertext Transfer Protocol), which defines how data is transferred on the web between a client and a web server, and TCP/IP (Transmission Control Protocol/Internet Protocol), which forms the foundation for data transmission on the internet. Protocols like HTTP and TCP/IP are not tied to any specific software implementation. Various systems and software can implement these protocols as long as they adhere to the defined rules and standards.
A framework, on the other hand, is a collection of libraries, tools, and best practices that provides a structured foundation for creating applications. A framework is a kind of "software infrastructure". It offers a pre-built structure and reusable components that facilitate software implementation. It provides a concrete "infrastructure" that includes specific functions and modules. A framework allows for customization and extension, although it is often opinionated, meaning it prescribes how certain things should be done. Well-known examples include Spring for Java, a framework for developing enterprise applications; Django for Python, a web development framework; and the powerful Substrate, a framework for creating custom blockchains.
JAM (Join-Accumulate Machine) (opens in a new tab) is a protocol that integrates elements from Polkadot and Ethereum to offer a scalable and trustless virtual machine. The main features of JAM encompass various aspects that make the protocol flexible and efficient. JAM operates as a permissionless system, allowing anyone to provide code as a service and pay for the use of these resources without a centralized authority controlling service provisioning or network participation. Core-Time is a metric for resource calculation, akin to gas in Ethereum, enabling efficient resource utilization. JAM's hybrid system includes both in-core (off-chain) and on-chain computations, enhancing scalability by distributing the computational load across different parts of the network. The system is highly resilient to disruptions, corruption, and censorship, ensuring reliable service even under extreme conditions. JAM can perform Turing-complete computations, making it a versatile tool for a wide range of applications. The protocol is designed to execute computations quickly and cost-effectively, ensuring high performance and efficiency within the network. It ensures a causal relationship between various states, improving the coherence and interoperability of individual applications.
Substrate (opens in a new tab) is a modular framework for creating custom blockchains, developed by Parity Technologies. It provides a pre-built structure and reusable components that significantly simplify and accelerate blockchain development. A key feature of Substrate is its modularity, offering flexibility to combine and customize various modules (pallets) to meet specific requirements. The framework supports various consensus mechanisms, allowing the blockchain to be designed securely and efficiently based on specific needs. Another notable feature is the WebAssembly (Wasm) runtime, which allows for flexibility in implementing and upgrading the blockchain without hard forks. This modular architecture and pluggable consensus mechanisms make Substrate an "opinionated" framework, providing a clear structure to simplify development and promote adherence to best practices. Substrate facilitates quick and efficient blockchain development by offering a clear and structured methodology along with pre-built components.
In summary, the JAM protocol offers flexibility and independence by enabling permissionless implementations in various environments, whereas Substrate provides a specific environment with a clearly predefined structure for blockchain development. Another important distinction is between the protocol itself and the blockchain. A JAM-Chain (opens in a new tab) will use the JAM protocol to implement specific rules and mechanisms. During the development of the JAM-Chain, a series of additional implementations will be probably developed, and existing protocols like GRANDPA (opens in a new tab) will be utilized. It is crucial to distinguish the implementation of the protocol from the protocol itself. For instance, the GRANDPA protocol is implemented in Substrate as a pallet (opens in a new tab), but it cannot be used in a JAM-Chain as it is a specific implementation.
One interesting perspective is integrating the JAM protocol into the Substrate framework. As before mentioned Substrate is an opinionated framework that prescribes specific methods and structures for blockchain development, contrasting with the flexibility and implementation freedom of the JAM protocol. Several design decisions in Substrate prevent the specific implementation of JAM, as Substrate, as a software framework, does not offer the necessary flexibility required by JAM as a protocol. A standalone implementation of JAM is necessary because Substrate represents not only a "software infrastructure" but also a specified method for blockchain development that cannot easily be adapted to JAM's requirements. Only well-specified logics that will be widely used outside the JAM/Polkadot community might be exceptions. This means that some fundamental cryptographic or network-related structures, which are widely adopted and well-audited, could potentially be integrated into Substrate. However, this does not apply to the entire JAM protocol, but only to specific, general components.
The Logos chain (opens in a new tab) is currently a conceptual proposal, with detailed specifications being worked on. The Logos chain is intended to be the blockchain component of the Logos network and will serve to provide a decentralized computing and storage infrastructure, operating under strict security measures, essentially forming a DePin (decentralized physical infrastructure network). The Logos Blockchain itself will not be a general-purpose blockchain as it is designed to provide a specific solution. We have fundamentally chosen the Substrate framework because it offers a certain level of modularity that helps us provide individual functionalities independently, as well as the possibility to perform fork-free updates without having to build everything from scratch, given that the framework's foundation is simple, stable, and highly adaptable. After the publication and analysis of the Gray Paper, we identified several approaches that could address our problem statements. This prompted us to delve deeper into the subject matter to examine the possibilities. As previously explained, the implementation of the JAM Protocol as described in the Gray Paper is not truly feasible in Substrate. However, it is important from our perspective to mention that the approaches or ideas discussed in the JAM Protocol lead us to similar approaches that could be implemented in a specific form. It is crucial to emphasize that these are individual (just) APPROACHES (e.g., handling of zk-rollups) which, although similar in concept, must be specifically developed for the Substrate framework, likely requiring the adaptation and development of the runtime itself.
The JAM Protocol is still under development, with several updates anticipated before it reaches version 1.0 and becomes fully defined. The available information is valuable for further research and specification of the Logos chain. However, the Logos chain will ultimately be based on Substrate with a specific runtime, incorporating some of the JAM Protocol's "ideas", but it will not implement the JAM Protocol itself.
Do you have questions or want to discuss more? Join our discussion on Discord (opens in a new tab)
References:
- From Polkadot to Jam - https://medium.com/@vjgaur/from-polkadot-to-jam-gavin-woods-vision-for-infinitely-scalable-blockchain-infrastructure-e625e29e8b29 (opens in a new tab)
- FAQ for Polkadot's JAM Chain - https://wiki.polkadot.network/docs/learn-jam-faq (opens in a new tab)
- Gavin's Talk about JAM at Token2049 Dubai - https://grillapp.net/@filippoweb3/gavin-s-talk-about-jam-at-token2049-dubai-136004?ref=10124 (opens in a new tab)
- Join-Accumulate Machine: A Semi-Coherent Scalable Trustless VM - https://graypaper.com (opens in a new tab)
- Public JAM chat - https://matrix.to/#/#jam:polkadot.io (opens in a new tab)
- Public Gray Paper chat - https://matrix.to/#/#graypaper:polkadot.io (opens in a new tab)
- Polkadot's JAM Chain - https://wiki.polkadot.network/docs/learn-jam-chain (opens in a new tab)
- Polkadot: Vision for a heterogeneous multi-chain framework - https://assets.polkadot.network/Polkadot-whitepaper.pdf (opens in a new tab)
- RFC-0031: CoreJam- https://github.com/polkadot-fellows/RFCs/blob/gav-corejam/text/0031-corejam.md (opens in a new tab)
- Substrate Docs https://docs.substrate.io/ (opens in a new tab)