Content Identification on the Blockchain — The International Standard Content Code (ISCC)
By Sebastian Posth
The Content Blockchain Project is building the foundational tools that enable journalists, publishers, and media start-ups to create new innovative products, services and business models in the open blockchain economy.
The fundamental idea behind the Content Blockchain Project was to create the technical foundation for a trading environment for digital media content that would facilitate new and innovative ways to offer and purchase content on a decentralized blockchain network.
Its goal is to simplify the complex processes of license management and distribution of digital content by offering a registry of rights and licenses on an open, transparent and universal blockchain ledger.
For rights owners and intermediaries it should be easy and cost effective to publish license terms for their content.
For business and individual users it should be easy and cost effective to get access to license terms and purchase the content licenses according to the offered terms.
It applies to any application or service that aims to offer and license digital content on the blockchain in a (semi-)automated way: Content identification and license management are indispensable prerequisites.
The major challenges for the Content Blockchain Project have been:
- To find a way to unambiguously identify digital media content;
- To offer a smart solution for the management of rights and license information, that would make license terms machine-readable for automated execution of licensing transactions.
In this first of two posts, I would like to describe the approach for content identification the Content Blockchain Project has pursued in the past months. It addresses stakeholders in the media industry with a non-technical and non-legal introduction to two elements that we the developed in the project: the ISCC content identifier and Smart Licenses for digital media. Please consider the approach as a proposal. We very much appreciate any kind of feedback.
The Content Blockchain
After careful evaluation of various business approaches and blockchain protocols, the Content Blockchain Project has decided to choose Multichain technology to set up a blockchain especially dedicated to media content.
Multichain offers a technology that allows organizations to build and deploy blockchains and applications on top of their own chains. It supports a consortial governance and a decentralized approach to manage granular chain rights and permissions for those who would like to participate in the maintenance or use of the blockchain or the development of applications.
Multichain also allows the creation of streams that can store small amounts of data on the native blockchain and apply permissions for writing data on those streams.
On the testnet implementation of the Content Blockchain, two major streams will be set up, one for the registration of ISCC identifiers, the other one for the registration of the corresponding smart licenses, the concepts of which will be described below.
Technical evaluation of Multichain:
The Coblo Wallet
The Content Blockchain Project has developed a desktop wallet software that allows users to run a full Content Blockchain node on a computer (PC and Mac) and participate in testing the platform. Furthermore it supports:
- The creation of an account on the blockchain;
- Testing the experimental voting based consensus;
- Sending and receiving native blockchain coins;
- Timestamping content on the blockchain;
- Creating ISCC content identifiers and registering them on the Content Blockchain.
Download the Coblo Wallet (for PC and Mac):
In the following paragraphs I will describe the basic principles of creating and registering an ISCC.
Please keep in mind that the current implementation of the Content Blockchain is only a testnet in order to test the chain, its settings and permissions as well as its governance and the applications that have been built for the Content Blockchain.
Creating an ISCC from the Content
In order to understand the various business opportunities emerging from the Content Blockchain environment it is crucial to fully grasp the nature and concept of the ISCC, the International Standard Content Code.
The ISCC is not simply a surrogate identifier key, randomly assigned to the content. As a generic identifier the ISCC derives from the content itself.
The ISCC is defined as an open and decentralized digital media identifier, unambiguously identifying digital content. It is a unique, hierarchically structured composite identifier, that is generated algorithmically and in a decentralized way. It is built from a generic and balanced mix of content-derived, locality-sensitive and similarity-preserving hashes generated from metadata and content. This inseparably links any specific content to a specific ISCC identifier.
The specification of the ISCC standard can be found here:
Coblo wallet app for Mac & Windows
A reference implementation that developers can use to generate ISCCs (software library in python) is available here:
Coblo MCRPC library
The ISCC can be created from the digital content and its basic metadata by anyone who follows the procedures of the ISCC specification or by using open source software that supports ISCC creation according to the ISCC specification. This means, that by using any available app anyone with access to the content will be able to generate the ISCC from the content itself, whether it is the rights owner, an intermediary, a retailer or the user of the content. Whoever has access to the content will generate the same ISCC on every individual local machine, decentrally and off-chain.
One possible way of generating an ISCC is by using the Coblo wallet app. The app is available for download for Windows (and, soon, for Mac): https://github.com/coblo/gui-demo.
In its current release, the Coblo wallet app will generate ISCC for digital text and images. ISCC generation for audio and video content will be available in later software releases.
Registering an ISCC in the ‘ISCC Stream’
The Coblo Wallet app will generate the ISCC. It is possible to register it in the ‘ISCC stream’ of the Content Blockchain. The registration of an ISCC is itself a transaction on the Content Blockchain.
The Content Blockchain, based on Multichain technology, allows for the creation of separate streams, that can store keys and corresponding data on the chain — just like the ISCC — and makes it possible to apply permissions for writing those keys and data.
According to the current specification, anyone can write in the ‘ISCC stream’ of the Content Blockchain. As the Content Blockchain is considered to be a public blockchain, anyone can read the information that is written in the ‘ISCC stream’.
Please note, that the content files themselves will not (and never) be uploaded and stored on the Content Blockchain. The content will not leave the local drive when registering ISCC’s on the blockchain. Only the ISCC content identifier as a reference to the content will be stored on the blockchain, not the content itself.
Like on any blockchain, data storage space is limited. This also applies to the distributed ledger of the Content Blockchain. Accordingly, the ‘ISCC stream’ will only store specific information and a limited amount of data upon ISCC registration:
- The ISCC Identifier (“Keys”);
- Metadata for the digital media content (“Data”);
- The timestamp of the ISCC registration transaction (“Time”);
- Other details of the transaction that generated the stream item (“Transaction”);
- The public wallet-ID of the registrar (“Publishers”).
Entries for ISCC registrations on the ‘iscc stream’ of the testnet implementation can be found via the Coblo Explorer and will look like this:
Some remarks to highlight the option to enter metadata for the registered ISCC: A data entry requires the ‘title’ of the designated media content as a minimum registry entry value. But the stream offers a flexible and extendable way to supply additional industry specific title metadata about the identified content (such as Dublin Core, IPTC, ID3v2, ONIX). This means that registrars could either write metadata directly on the blockchain by adding custom inline metadata (JSON data) or link to off-chain data repositories that host the metadata for the registered content. See further details on the ISCC stream and its metadata in the specification: http://iscc.codes/specification/
Please note, that the registrar of the ISCC is not to be confused with the rights owner of the registered content. The ‘publisher’ in a stream simply refers to the institution or individual that has registered the ISCC in a transaction. The publisher is solely identified by his wallet-ID.
The registration entry on the Content Blockchain basically says: There is a content with a specific ISCC, and a registrar with a specific wallet-ID has registered it and provided some metadata for this specific ISCC. As the registration of the ISCC and the metadata does not involve any claim of content ownership or entitlement, it is at this point not intended to personally identify and verify the registrar. In this regard, the ISCC stream of the Content Blockchain is simply a public ledger with no claim for the metadata to be accurate and other than that of a proof of existence of a content with a specific ISCC.
In an open and public stream of the Content Blockchain there could as well be multiple entries for one ISCC. The decision which entry to trust can be based on the accuracy of the metadata or whether the wallet-ID is trusted or verified, self-authenticated or otherwise publicly connected to a known institution.
Furthermore, it is possible for rights owners to open closed streams on the Content Blockchain. In closed streams it could be a requirement that every registrar of a stream item needs to be personally identified and verified in order to have write permission for that stream and for transactions to be valid. These regulations and permissions will become a crucial and integral part of the governance of the Content Blockchain.