The easiest path to non-fungible tokens in permissioned chains
Earlier this week, we released MultiChain 2.2 with integrated support for non-fungible tokens (NFTs). Over the past year, we’ve been talking to lots of customers about how they’d like to see NFTs supported on our platform. And with the release of MultiChain 2.2, we’re delivering exactly what they need.
What’s an NFT?
But first some background. If you’ve been watching the blockchain world for long enough, you’ll recognize the pattern. Every year or two, there’s a big new idea about how blockchains will transform some part of the economy. The media and money pile on and the price of everything skyrockets.
In 2013, it was all about bitcoin as a currency. In 2015, Ethereum and decentralized autonomous organizations (DAOs). In 2016, private blockchains for banks. In 2018, an explosion of new public blockchains. In 2020, decentralized finance (DeFi). Now, in 2021, it’s the turn of non-fungible tokens (NFTs).
So what is an NFT? It’s a single unit of value, issued onto a blockchain, which can be transferred, sold and exchanged by that blockchain’s users. Unlike cryptocurrencies or regular on-chain assets, only one unit of each NFT is available, so it can only be owned by one person or organization. By contrast, dollars and bitcoins are “fungible”, meaning that many units of these assets are in circulation, and each unit is perfectly interchangeable with any other.
But why would anyone pay for an NFT? Because it’s associated, through a piece of data on the blockchain, with an item of value. In theory, an NFT could represent the ownership of a house or car, so whoever owns the NFT on the blockchain has legal ownership of the related physical asset. In reality, most NFTs issued and bought today represent a piece of digital art, or some other type of digital collectible.
Digital but Unique
But surely digital things can be infinitely reproduced because, well, they’re digital? What is the value of owning the NFT for a big JPEG or viral video if anyone can easily duplicate the content? This question, while valid, could equally be asked about physical art. Right now, you can buy a full-sized “museum quality” replica of the Mona Lisa for a few hundred dollars online. And yet, the original is worth closer to a billion.
Whether it makes rational sense or not, we humans see psychological and cultural value in owning the original of something. The first copy that ever existed. The version produced by the artist herself. The same one that everyone else wants. In this respect, digital art, represented by a NFT, is not all that different from a classical painting. Sure, anyone can fake it. But everyone knows where the real one is.
Bragging rights aside, there can also be concrete benefits to owning an NFT. Holding the token can grant you the right to display the digital art in public or on a website. It can allow you to lend out a digital collectible or create derivative works. And all of this is enforced by old-school copyright law, with the artist maintaining the right to sue someone using their work illegally.
But what about organizations that can’t work with a free-for-all public blockchain? What about NFT applications that need predictable transaction cost and speed, in a blockchain with some degree of governance and control? Or what if the NFTs represent physical goods in a supply chain, rather than abstract financial assets?
NFTs in MultiChain 2.2
This is where MultiChain comes in. MultiChain has supported issuing, transacting and exchanging assets over a blockchain all the way back to version 1.0 in 2015. In a world just starting to move past bitcoin, this was the first blockchain feature we implemented. Any number of named assets can be created on a MultiChain blockchain, and there are easy API commands for checking asset balances, sending assets in transactions, and creating safe atomic swaps between multiple assets and parties.
In MultiChain 2.2, NFTs are implemented as a simple extension to this approach. When a new asset is created, it can optionally be declared as non-fungible. For non-fungible assets, each issuance of units creates a new token with a unique name. Each token is separately identified and tracked across transactions, and can be exchanged with other tokens or assets in atomic operations. Each asset offers full control over who can issue tokens, as well as optional restrictions on who can send and receive them. And there are several ways to permanently associate data with a new token being issued – a JSON object, up to 64 MB of on-chain data, or up to 1 GB of off-chain data.
Version 2.2 adds several other features to MultiChain assets, useful for both fungible or non-fungible assets. Depending on the options passed during creation, assets can now be closed and/or reopened for issuance, giving the asset administrator(s) more control. A limit can be set for the number of new units per issuance (for NFTs this should generally be 1). And a separate limit is available for the total amount issued over an asset’s lifetime. All of this could previously be implemented using smart filters, but now they’re available out-of-the-box with no programming required.
What else is new in MultiChain 2.2?
Aside from NFT support, MultiChain 2.2 introduces two other major enhancements. First, it supports MultiChain Explorer 2, a completely rewritten web-based blockchain browser. Explorer 2 is far faster and more scalable than the previous version, because it leverages MultiChain to track the blockchain’s state instead of its own local database. It supports multiple blockchains simultaneously and no longer needs to run on the same computer as a node. Explorer 2 is open source under the BSD license and available now on Github.
Second, read operations for MultiChain streams are now multi-threaded. Many of our users rely on streams for large-scale data applications, publishing thousands of pieces of data per second at peak times. While MultiChain can handle this load comfortably, nodes can take around a second to process the resulting large blocks. In previous versions of MultiChain, API commands to query streams would have to wait while the node was processing a block. Now, in MultiChain 2.2, all stream read operations are processed in parallel and receive immediate responses.
How to get started
To get started with NFTs on MultiChain, simply download MultiChain 2.2 and follow sections 1, 2, 3 and 7 of the Getting Started guide. For more information, check out the updated API documentation for details of how to issue non-fungible assets and their associated tokens with the issue and issuetoken commands.
MultiChain continues to be available in two editions – Community (open source) and Enterprise (commercial). The Enterprise edition adds a number of features relating to confidentiality, scalability and compliance, such as read-restricted streams, end-to-end encryption, external database integration and purging of off-chain data. A time-limited demo version of MultiChain Enterprise is available for download.
Finally, we’re interested in discussing ideas for setting up a low-cost, high-volume network for transacting NFTs, built on MultiChain. One idea raised is to create a blockchain which is open to the public but uses permission-based mining to avoid the energy demands of proof-of-work. If this sounds of interest, please get in touch.
Please post any comments on LinkedIn.