In continuing with our commitment to open-sourcing the implementation of RenVM, we have published more of our codebases under various open-source licenses:
Multichain
The multichain is a new project by the Ren team to create a common language for communicating with all blockchains. By doing so, any project (including RenVM) is able to access different assets and chains without undergoing complex integration development.
This infrastructure will be used by RenVM to communicate with all blockchains through a single unified API. This allows RenVM to support new chains quickly and safely. The multichain already supports Bitcoin, Bitcoin Cash, DigiByte, Dogecoin, Ethereum, Substrate, and Zcash, with many more already on the way; people have already begun contributing to the multichain by opening pull requests to support their chains (see #3, #4, and #6).
This is a big step forward for the Ren project. The creation of the multichain as an open-source and collaborative effort will accelerate the adoption of chains into many different projects. Of particular interest is, of course, RenVM itself. By open-sourcing the multichain, everyone can contribute, and accelerate the rate at which RenVM can connect chains together.
Pack
Pack is the well-typed serialisation library used by RenVM. All distributed systems are faced with the challenge of how to send messages between the nodes that power the system. Pack makes sending and understanding messages simple and fast. It also has minimal dependencies; it does not depend on other codebases. This makes it trivial to audit for correctness, a property that is very nice for open-source codebases.
Low-level Cryptography
The secp256k1 curve is used by Bitcoin, Ethereum, and their variants for public/private key cryptography. As such, it is also used by RenVM. We have open-sourced our Go wrapper around the Bitcoin libsecp256k1 implementation. This kind of low-level library is necessary to build the RZL MPC algorithm, and it is likely that others would also find this library useful.
Soon, our team will also be open-sourcing the MPC library that we have built that uses these secp256k1 operations. This marks the first, albeit small, step in open-sourcing the RZL MPC implementation. By next month, more components will be available!