github RGB-WG/rgb v0.11.0-beta.5
RGB v0.11 beta 5

pre-release5 months ago

LNP/BP Standards Association is happy to announce the fifth beta release of RGB protocol version 0.11.

This is another milestone on the stabilization of the new v0.11 RGB version. It is the first
complete beta release of both consensus-level libraries, standard libraries and tools happening
in 2024, opening a way for independent developers integrating with RGB to test all the new
functionality.

What's new in Beta 5

In preparing Beta 5 release we were focusing on performing internal audit of all consensus-critical
code, ensuring both its security and ability to do a protocol upgrades in the future versions
without introducing any incompatibilities with the assets and software using v0.11.

The internal audit was performed by two teams: the dev team and documentation team. The developer
team was reviewing the source code and modelling different types of attacks; while the doc team
was independently creating formal specification explaining how the protocol actually works (basing
on the source code), which was later compared to the expected protocol behaviour.

Let's walk through the major areas of the improvements shipping in v0.11 beta 5.

Commitments

Cryptographic commitments, which go into Bitcoin blockchain in hidden form, are the core of RGB
security and anti-double-spending protection. They are a part of so-called “single-use seals”,
which you may have heard of before.

During the last three months (since Beta 3) we have passed through an extensive internal audit
of the commitment procedures and wrote a lot of tests. We have improved the security and safety
of many aspects of them and made sure they will be a proper foundation for the RGB.

One of the main changes which the end-users will notice is that now contracts (and assets) will
commit to the issuer identity, simplifying the verification by the wallets and preventing scam
attacks.

Contractum language and scripting

With v0.11 one of our main focuses was simplification of RGB developer experiences.

First, we have introduced more opcodes allowing scripts in RGB contracts to access the contract
state and use that information in validation. We have also developed RGB assembly, which can be
compiled using macro rgbasm directive right from the Rust!

Finally, we are moving fast in finalizing the initial Contractum version: the language intended
for RGB smart contract developers. In this release we add a Contractum representation for all
standard interfaces used by RGB (RGB20 fungible assets, RGB21 NFTs and RGB25 fungible collections).

Wallet functionality

With v0.11 RGB is integrated with wallet functionality out of the box. This solves one of the
major dev and user headaches.

With Beta 5, we are going even further: now the command-line tool and RGB runtime can filter and
present the information specific to a wallet of user choice and ignore the rest of the contract
state.

Another new feature is the support for legacy Electrum RPC API, in addition to Esplora REST APIs,
supported before.

Containers

In this beta we have refactored the concept of containers. Containers are they way user exchange
RGB data, for instance when they do distribute assets, perform transfers, -- or when developers
distribute new code and interfaces for asset issuers.

In Beta 5 we have improved ASCII armoring of container data, so all of them now use more compact
Base85 encoding and standard set of headers. We have simplified programming API for working with
containers, and made sure their IDs are uniquely reflect their content - such that even the same
contract disclosing different parts of information will have a distinct id.

We also simplified a life of devs and testers by providing an ability to convert any container
into a human-readable YAML representation, edit it and convert back into a binary form, which
can go into RGB system. This will simplify audit and debugging, allowing us to model different
kinds of attacks on the system.

Details on changes in this repository:

About RGB v0.11

RGB v0.11 is an evolution of the protocol coming with a lot of bug fixes and improvements, further
enhancing RGB smart contracting capabilities. It will be the first version which will be audited by
independent auditors, after which it can be considered by third-party issuers for the use in
production.

The main features shipping in v0.11 will be:

  • Wallet integration right into RGB runtime and command-line tool;
  • Basic support for Liquid sidechain, with ability to add more alternative scalability layers in the
    future;
  • Scripting, with new state introspection codes and RGB assembly compiler;
  • Initial support for Contractum language;
  • Ability to inherit interfaces (multiple inheritance!);
  • Support of Electrum RPC additionally to Esplora REST, present before;
  • Commitments to issuer and developer identities embedded into contracts, interfaces, libraries;
  • More compact consignments and better ASCII armoring.

What's next

With Beta 5 release RGB development enters a new phase of preparation for a public preview of
the RGB v0.11. The public preview will be a feature-complete version which will be used by
external auditors for evaluating the safety of the protocol. At the same time app devs and users
will be able to complete integration of RGB without expecting major API or consensus break with
the release.

Once there will be results of an audit, the preview version will become an official release (if
the audit will find any major issues however, they will be fixed even if the fixes will contain
a breaking changes).

You can track us on our journey towards v0.11 release with this GitHub dashboard.

Acknowledgements

We are grateful to Fulgur Ventures, providing another year of support for our efforts in
developing RGB. This year they were joined by Bitlight Labs, who had become a new full member of
the Association.

We have received a number of important contributions and bugfixes coming from commercial
companies, such as Pandora Prime, Bitfinex and DIBA. We are also grateful for individual
contributors, who do their small -- but still highly valuable and welcomed input in making RGB
better.

New Contributors

Full Changelog: v0.10.0...v0.11.0-beta.5

Don't miss a new rgb release

NewReleases is sending notifications on new releases.