Loader
logologo
Alpha Zone
Analysts
My Reading List
Log in
DeFiGaming & MetaverseInfrastructureMarketsNFTs
Ceramic Network: the Composable Data Network
main

TLDR

  • Ceramic Network is a Layer-1 network that aspires to bring composable data to Web3 in a decentralized, scalable, and secure manner. Developers can access a “marketplace” of data models and utilize data to build better applications like decentralized social media and identity protocols.
  • Ceramic promotes the adoption of decentralized identifiers (DIDs) as a means to build a digital persona and identity within Web3. DIDs open up more possibilities for the utilization of personal data in a cryptographic manner.
  • Ceramic is a pioneer in bringing database functionality to the data landscape in Web3. Current data storage solutions are successful, but lack functionality like computation and state management of data. Ceramic provides both of those utilities with its design.
  • Data on Ceramic Network is stored and updated in a “Stream”. Streams are series of commits/records of updated data, the latest of which represents the most current state of that data. Updates to the Stream are controlled by the owner through their DID.
  • Data is composable on Ceramic, meaning that it is accessible and interoperable in different environments. Developers can browse data models, implement them rapidly, and produce richer applications utilizing past data. Due to its composability, users can bring their data with them when visiting different applications on Ceramic.
  • Ceramic is horizontally scalable due to the sharding of its execution environment. Transactions are processed locally at each node before being synced to the rest of the network, meaning that its scalability is theoretically limited only by the number of nodes on the network. Ceramic leverages IPLD and Libp2p technology to connect their nodes together.
  • There are currently no clear investment opportunities with Ceramic as they do not feature a token nor are they looking to raise funds at the moment. However, there are a host of projects being built on Ceramic.

Key Terms

TermDescription
Anchor CommitsAn individual IPFS record that contains a blockchain timestamp. This provides an immutable record of time and is essential to ordering commits in the Stream. This method of consensus is known as proof-of-publication. More information can be found here.
Ceramic Anchor Service (CAS)A “Layer-2” solution for creating anchor commits / timestamps for Stream transactions. CAS eliminates the need for each Stream transaction to have its own blockchain transaction. More information can be found here.
Composable DataData that is interoperable and available for access and utilization. Ceramic’s goal is to create a data marketplace where developers can browse specific data models, implement those models in their application, and access all the corresponding data.
Data Object/StreamData Stream - DAG-based data structure for storing continuous, updatable streams of content on IPFS and tracking state in a decentralized, peer-to-peer manner. Data Object - how data is stored on Ceramic, consists of Data Streams. More information can be found here.
DIDA decentralized identifier (DID) is an identifier that enables verifiable decentralized identity. The World Wide Web Consortium (W3C) has proposed this standard in order to enable further developments with identity within Web3. More information can be found here.
IDXAn identity protocol for applications to utilize on Ceramic. It provides a decentralized index that allows structured data to be linked to a decentralized identifier (DID). More information can be found here.
IPFS/IPLDIPFS - The Interplanetary File System (IPFS), is a way to assign addresses to static content with content identifiers. Users can discover this content over a peer-to-peer network of nodes. IPLD - Interplanetary Linked Data (IPLD) is the data structure layer of IPFS and is used to link content identifiers together. Ceramic uses IPLD to create the data structures for Streams. More information can be found here.
Libp2pA peer-to-peer networking protocol from IPFS that is used by Ceramic. It is used for the discovery of data over the network and for communication between Ceramic nodes. More information can be found here

ELI5 Ceramic Network

The Ceramic Network is a decentralized data network that brings data composability to Web3 applications. In simpler terms, Ceramic is similar to a decentralized version of databases. Ceramic will serve as an equivalent Layer-1 ecosystem within the dataverse realm in Web3, paving the way for application development on aspects like decentralized social media and identity protocols. Developers on Ceramic can access a marketplace of data models, implement them rapidly, store, update, and retrieve data from these models. All data models on Ceramic are accessible - meaning developers can leverage the prior data collected in other data models, which allows for maximum composability for data across applications. In this manner, Ceramic is a global, decentralized, and scalable database that developers can easily access and build upon.

Introduction

With the rise of the prevalence and importance of data in the 21st century, data has become one of the most coveted and prized possessions in Web2. Many of the biggest companies today have data-centric business models, and capture enormous quantities of data - it is estimated that Google Search processes up to 200 petabytes a day. Tech giants have utilized this accumulated data edge extremely lucratively, with advertising amounting to 98% of Meta’s and 81% of Google’s total revenue respectively. Due to the great monetary value of data, large tech giants have no incentive to share this data freely or cheaply. Over time, this behavior has led to data gatekeeping, creating higher barriers to entry and stifling development due to the lack of data accessibility.

Ceramic hopes to introduce a paradigm shift by creating composable data. Composable data allows for a shared data hub, where developers can access previously acquired data that would otherwise require substantial fees. This has the potential to greatly facilitate the rate at which developers can take an idea and turn it into a product. Ideally, composable data brings forth a positive feedback loop of innovation; developers utilize past data, create better applications, accumulate more data, and repeat. For example, imagine accessing a decentralized version of Twitter where a user’s tweets and followers are stored in data models on Ceramic. A decentralized Linkedin on Ceramic would be able to pull users' tweets for utilization on that platform. The dataverse is still a relatively minor part of Web3 and development has yet to explode; Ceramic network aspires to usher in a place where data can be accessed and utilized by many.

What is the Core Thesis on the Ceramic Network?

Ceramic’s primary goal is to achieve data composability for Web3. Data that is user-centric, user-owned, and is still accessible to developers looking to build enriching experiences. With this goal in mind, Ceramic wants to address the issue of data inaccessibility currently prevalent in Web2. By allowing data to be composable amongst applications, developers can rapidly take ideas and turn them into applications leveraging the data accumulated on Ceramic. Additionally, the composability allows for users to carry their data with them from application to application, providing a seamless and richer experience as they build their Web3 identity. How Ceramic aims to achieve this is best summarized by the diagram below.

Ceramic
Source: Ceramic

Dynamic content streams enable mutable data for the applications built on Ceramic. This data is shared amongst a peer-to-peer network of nodes, each maintaining the state of select data. This allows more scalability as the data is not managed by a global ledger. The flexible data models allow for a multitude of data types on Ceramic, limited only by what developers need. Ceramic achieves all of this while still maintaining security and authentication by using decentralized identities to sign and control the data streams. Ultimately, Ceramic’s end product is a network of composable data for the Web3 ecosystem.

How It Works: Ceramic Network

At its core, Ceramic Network is building a scalable, decentralized data network that consists of a set of permissionless nodes that provide data availability, computations, and consensus for changes of state. Ceramic is specifically designed to handle high throughput applications such as social networks, decentralized identity, and gaming. One example of how an application built on Ceramic operates is shown on the next page.

Basic User Profile Example

Ceramic, IDX
Source: Ceramic, IDX

This example showcases how a basic user profile is managed in IDX, a framework for structured data to be stored and assigned to a decentralized identifier (DID), that is built on top of Ceramic. In IDX, users are assigned a data store, which is a mapping of the DefinitionID to the RecordID. The DefinitionID describes the data being stored while the RecordID creates a record of the data for that specific user.

Starting from number 1 in the diagram, a developer creates a Schema for a basic profile definition. A Schema defines the structure of the data and is written with JSON. Secondly, the DefinitionID describes the data to be stored, in this case, it is a basic user profile. At the orange highlighted tables above, User 1 comes to the application and creates a Record which stores their profile. Each user has their own unique RecordID after interacting with the basic user profile DefinitionID. This is shown in number 3, where User 2 arrives at IDX and interacts with the same Definition ID, but receives their own unique RecordID with their respective data. All of the data recorded remains available and public.

The compelling feature here is that with this data composability, more developers can come to Ceramic, access this data, and leverage the network effects of prior applications that first created the data.

Data Infrastructure

A cornerstone of Ceramic’s operation is the data infrastructure in place. There are several key concepts integral to Ceramic Network’s data infrastructure which are as follows:

  1. Decentralized Content Computation
  2. Data Objects
  3. Node Network

Decentralized Content Computation

Current decentralized file storage solutions have proven successful. IPFS (including IPLD and Libp2p) provide robust content addressing and routing. Storage persistence networks like Filecoin, Arweave, and Sia ensure that content remains available for access. What is currently missing from these decentralized file solutions is the ability to perform computation and state management of those files.

Ceramic provides added functionality and allows for database features such as mutability, version / access control, and programmable logic. On Ceramic, static files can be composed into higher-order mutable data structures, programmed with specific behavior, after which the resulting state is recorded and replicated across the network of nodes.

Data Objects

Information stored in Ceramic is represented in what's known as a Data Object, and each object is made up of different data called a “Stream.” A Stream is a linked list of signed records that contain a link to the previous record. This is similar to a Merkle DAG data structure from IPLD. An illustration of this concept is shown in the diagram below.

Ceramic
Source: Ceramic

Version 0 serves as the origin of the Stream and is where the immutable StreamID is based on the Genesis Record or initial commit. The StreamID gives it a global namespace; there is one global network of all of these Data Objects which any user can reference. Additionally, the owner and controller of the data Stream will be specified in the Genesis Record, using their respective DID. To complete version 0, commits and records are anchored to a blockchain which creates a timestamp of when the commit/record occurred. More information on the anchoring process will be covered later. Lastly, the Stream is assigned a StreamState, a verifiable state of the data which is updated to reflect any changes to the Stream.

The next update of the Data Object is shown in Version 1. The Signature Record after the Genesis Record indicates that an update has been made to the Data Object and any such update is approved by the owner of the Stream. These updates can consist of a patch or a mutation to the state of the data object. Likewise, these updates will also be anchored through a blockchain for the timestamp. This process can continue indefinitely, with each version and update requiring authorization from the owner of the data Stream.

Each Stream on Ceramic must specify a StreamType, the processing logic used by the Stream. The aspects defined by the StreamType are as follows:

  1. Rules and Logic of the Stream
  2. Data Structure
  3. Content Format
  4. Access and Authentication
  5. Consensus Algorithm

If updates do not conform to the StreamType, they are disregarded. Valid commits will be reflected in the StreamState and broadcasted to the rest of the network.

Ceramic has designed several standard StreamTypes for a variety of applications. The most popular of which is the Tile Document StreamType. This StreamType stores a JSON document and functions similarly to a NoSQL document store. Tile Documents are ideal for identity metadata, user-generated content, user tables, DID documents, and verifiable claims. Authentication and update signatures for Tile Documents rely entirely on DIDs. If the current StreamType templates do not fit the desired use case, developers can also create custom StreamTypes as well.

Node Network

The final component of Ceramic’s design is their decentralized and scalable node network. Ceramic doesn’t function like a typical Layer-1 blockchain, as there is no global ledger for maintaining the state of data Streams on Ceramic. Instead, Ceramic’s nodes each handle transactions locally for each Stream.

To achieve this, Ceramic’s node network runs over the Libp2p network protocol. Libp2p is a modular system of protocols, specifications, and libraries that enable the development of peer-to-peer network applications.

The features of Libp2p afford Ceramic a sharded execution environment. What this entails is that each node of the network acts as an individual execution environment, performing computations and processing transactions for its Streams. Ceramic differs from typical blockchain networks, as there is no global ledger that manages all the data Streams. The sharded execution environment allows for horizontal scaling and parallel processing as each node handles the transactions and updates for the Streams it is monitoring. This is a necessary scaling feature in order to match the magnitude of data the world currently produces. Lastly, the sharded design allows each Ceramic node to perform Stream transactions and updates offline and synchronize the updates with the rest of the network once it returns online.

Each node on the Ceramic network manages the Streams in its space, but all Streams exist on a global namespace that can be accessed by any other node or referenced by other Streams. This effectively creates the public data web of open source information. To illustrate how this looks, the diagram below shows the layout of the Ceramic network.

Ceramic
Source: Ceramic

In the diagram above, the encompassing circles represent a node. Within each node are several document symbols - these represent the Streams that the node has selected and is maintaining state for. Streams supported by several nodes are shown in the intersection area of those node circles. Lastly, the triangle symbols represent the blockchain anchors used for retrieving timestamps.

Each node on the network is responsible for the selection of Streams for upkeep, known as “pinning” of Streams. Pinning a Stream means that the Node will maintain its StreamState, maintaining its state as updates are added and reflected in the Stream. Different nodes can monitor different Streams, but multiple nodes can maintain a single StreamState. This is depicted in the diagram above by the shared Streams in the intersection of node circles.

Other node responsibilities include:

  1. Commit log storage - maintaining a copy of all commits to the pinned Streams.
  2. Persistence connectors - storage backups of commits to the Streams, this is achieved through persistence networks like Sia, Arweave, and Filecoin (in progress).
  3. Query response - supplying the required StreamState or information of a Stream, if the Stream is not pinned, the node requests the information from other nodes.
  4. Broadcasting updates - successful transactions and updates are broadcasted so the rest of the nodes can update accordingly.

The infrastructure of an example Ceramic node is shown below

Ceramic
Source: Ceramic

Ceramic network uses IPFS to connect and share data, ceramic nodes connect to a dedicated IPFS node over HTTP. The IPFS storage of the Ceramic node is used to store the IPFS datastore which holds the IPFS repository and the raw blocks that make up the Streams. The Ceramic StreamStates are also stored locally in the Ceramic State Store.

The Ceramic Anchor Service (CAS) is the protocol that creates anchor commits for Ceramic and is essential for consensus on Ceramic. For reference, the CAS is responsible for the blockchain transactions in the diagram below.

Ceramic
Source: Ceramic

An anchor commit contains a blockchain timestamp, providing an immutable record of time. This is key to ordering commits in the stream and is known as proof-of-publication. Anchor commits are necessary because Ceramic’s data structure has no notion of time to build consensus. Since the anchor only requires a timestamp, CAS is blockchain agnostic as it can use any blockchain’s timestamp for its purposes.

Consensus for the Ceramic network relies on two main principles. The Earliest Anchor Wins is used when conflicting histories for the Stream log occur. This means that when there is a conflict of updates to a Stream, whichever update was validated earlier will be taken as consensus. When there are simultaneous conflicts and neither of the logs has been anchored, the longer log is preferred. The log with a greater active history and more updates is preserved. In the case that there are simultaneous conflicts and both log commits are the same length, the system selects the winning log arbitrarily.

Decentralized Identity

Decentralized identity plays an important role in Ceramic Network. Firstly, decentralized identity is used for authentication. StreamTypes on Ceramic specify their authentication requirements; by default, the Tile Document StreamType uses DIDs for authentication. The means of authentication on Ceramic are as follows:

  1. 3D DID - DID method for end user accounts, controlled with any number of blockchain accounts from any L1 or L2 network and is intended to unify users’ identities.
  2. NFT DID - Upcoming DID method that allows authorization to be attached to any NFT on any blockchain. The owner’s DID account of the NFT holder is the only account authorized to act and authenticate updates
  3. Safe DID - Upcoming DID method for a Gnosis Safe contract on any blockchain to perform authorization. This is ideal for DAOs and multisig entities.

Ceramic’s view of decentralized identity is to provide users full sovereign control over their data. User information associated with the decentralized identity will exist where no individual application or company could remove, tamper, or monetize. Using DIDs, users will be able to build a comprehensive, blockchain agnostic, identity in Web3.

Furthermore, the use of DIDs in conjunction with Verifiable Credentials (VC) opens up a new world of possibilities for creating a reputation within Web3. Verifiable Credentials are a mechanism to issue credentials that are cryptographically secure, private, and verifiable. With VCs assigned to DIDs, users can better curate a persona for themselves in Web3. Education credentials, event participation, user contributions, and many more can all be assigned to a DID and verified through a VC. Some of the most intriguing possibilities from this feature include financial credentialing or proof of humanity. In regards to financial credentials, a person’s credit score can become digitally native as the user participates in DeFi and builds a credit history. With this data available to developers, advanced DeFi protocols can be built that allow undercollateralized loans or extensive margin based on the verifiable trustworthiness of the clients.

Data Models Marketplace

The last cornerstone of the Ceramic network’s design is the data composability and “marketplace” of data that developers have access to. Ceramic hopes to build a vibrant ecosystem of open source data models with cross-application data composability. One such example of an application built with Ceramic is a decentralized Twitter. User tweets, social graphs, and DMs are all examples of composable data models. By adopting those data models, other developers would be able to interoperate with that data.

Ceramic aspires to bring its data model standards to the masses. Similar to how Ethereum introduced the ERC-20 and ERC-721 token standards which gave rise to ecosystems of tokens, Ceramic aspires to do the same for data. Ceramic certainly stands to benefit from network effects, as more data will facilitate the development of applications. The goal is to have developers browse the marketplace for data, implement it within their applications, and provide seamless and richer user experiences.

Privacy

Given that Ceramic aims to facilitate ease of accessing data and bringing composable data to Web3, the privacy of this data is also important. As Ceramic is still nascent, the current Stream types (TileDocument and Caip10) display data publicly. This means that if the data is unencrypted, it is visible upon accessing the corresponding data model. Fortunately, there is a method to encrypt content placed on the Stream. This is done by using features like key-did-provider-ed25519. To summarize it simply, this feature allows for the encryption of data using a user’s Key DID.

Ceramic is also working on adding confidentiality to the TileDocument StreamType. This would entail that the content of each Stream update would be encrypted by a symmetric key. The symmetric key is necessary for any node to read the Stream upon synchronization.

Since sensitive data cannot be public and readily accessible, Ceramic is taking the steps to ensure it has proper frameworks for handling such data. While all the features are not yet complete, Ceramic is looking to develop this area of its design extensively. This is fundamental to Ceramic’s success - as the platform will fail to gain any meaningful traction if it infringes on data privacy laws. This should be worth observing closely.

Why Ceramic Network?

The current landscape of Web3 hasn’t emphasized the importance of data that is currently defining the Web2 landscape. Ceramic looks to change that by bringing data and more importantly, composability to Web3. The benefits of this are potentially immense. Development of richer user experiences using Ceramic’s network and data make financial credentialing, proof of humanity, and other breakthrough concepts within reach in Web3.

Ceramic’s design and features position it for success as well. The sharding of the execution environment allows Ceramic’s node network immense scalability. Developers can build upon prior data collected due to the interoperability of the data models. Due to Ceramic being blockchain agnostic, its success is not tied to the prevalence or sustainability of any singular blockchain. Given all of its aspects and features, Ceramic is a compelling project in the Web3 space for data.

Success and Failure of Ceramic Network

The success of Ceramic, like many other blockchain networks and Web3 projects, depends heavily on the adoption and construction of applications on the network. If Ceramic can garner the attention and usage from enough users, it stands to benefit from the snowball effect of the accumulation of data on Ceramic. Adoption of decentralized identities is also key to its success, as they are critical for authentication on the network. One feature in Ceramic’s favor is that the current developer client used is a JavaScript client, which offers familiarity to the substantial number of JavaScript developers out there. This could certainly encourage them to build applications on Ceramic. Perhaps one of the key indicators will be if pioneering breakthrough concepts can be delivered on Ceramic. Decentralized identities and digital Web3 reputation will usher in new opportunities and avenues for advancement. Financial credentialing is an exciting and intriguing opportunity that is made possible if decentralized identities are accepted.

There are several obstructions to Ceramic network’s success that need to be addressed. Firstly, sufficient nodes on the network can potentially be an issue. The scalability of Ceramic’s capability is determined by the number of nodes on the network, as more nodes are necessary for each to run its own parallel processing. Other than developers hosting their applications on Ceramic, there are few reasons for others to create nodes on the network. This could be mitigated by incentivizing node creation and support but that is yet to be unveiled by the Ceramic team. A key challenge will be creating an economically sustainable model around this.

Additionally, there is a technological issue called the Earliest Anchor problem. Controllers of Streams can create anchored commits in secret while offline and reveal them when they synchronize with the rest of the network. This potentially changes the history of the Stream. To mitigate this, Ceramic has proposed only allowing anchor services that publish all created anchor commits but currently, there is no solution to prevent this from happening.

Another obstruction faced is the Simultaneous Update problem. Currently, as long as updates occur more than 30 seconds apart, there is sufficient time for the network to update and prevent conflicts. Given that 30 seconds is a substantial amount of time, as network effects increase, conflicts will become increasingly more likely with more data being updated simultaneously. In the event that consensus protocols like Earliest Anchor and Longest Log are unable to determine the order, updates made at the same time to the same stream can result in data loss. There exists a 50% chance that the system will prefer one update over the other due to the arbitrary nature of the selection. Ultimately, the owners of the data Stream will need to authorize any update to the Stream and thus should provide a decision. However, Ceramic in its current state is not well suited for applications requiring multiple end users to update a single Stream.

Currently, Ceramic network does not feature publicly available investment opportunities. They do not have a token for the network but it may be a possibility for incentivizing node creation and maintenance on the network. Multicoin Capital led a seed round in Feb 22 of $30m for Ceramic but it is unclear if there are future rounds presently.

Key Takeaways

  • Ceramic network is a decentralized and scalable network that brings composable data to Web3. Data stored on Ceramic is mutable, as a user’s data can be consistently updated in a series of commits to the data Stream. The data on Ceramic is also composable, as developers can access a marketplace of data models, facilitating the development of better applications. At its core, Ceramic leverages IPFS and Libp2p protocols to establish a robust node network supporting the data. Additionally, each node functions as an execution environment, allowing for mass horizontal scalability and parallel processing. This is an essential feature as Ceramic aspires to handle data on a magnitude of Web2’s scale.
  • Decentralized identities are a strong focus of Ceramic. Not only do DIDs play a key function in authentication on Ceramic, but they will also be used for users to build a Web3 persona and reputation for themselves. This potentially opens up new avenues of advancement, including proof of humanity and verifiable financial credentialing.
  • While there are a lot of exciting features of Ceramic, there are still obstructions to its success. Ceramic’s network is still in its infancy and its scalability and robustness have not been proven capable of handling data of substantial scale. Technical problems do exist, such as the Earliest Anchor or Simultaneous Update problems. Additionally, Ceramic will need to develop the necessary privacy frameworks so that sensitive information can be handled securely as Ceramic’s network expands. Ceramic will have to solve these issues for it to achieve its grand aspirations.
  • Ceramic’s design is unique and is well positioned to solve a missing part of the Web3 ecosystem. Bringing data, both mutable and composable, while maintaining cryptographic security, and all in a decentralized manner, is highly valuable to the community. If Ceramic network can achieve its aims, it has the potential to add enormous value to the wider Web3 ecosystem.
You might also like
Article cover
Initia: Powering the Next Evolution of App-Chains?
Disclosure: The authors of this content and members of Nansen may be participating or invested in some of the protocols or tokens mentioned herein. The foregoing statement acts as a disclosure of potential conflicts of interest and is not a recommendation to purchase or invest in any token or participate in any protocol. Nansen does not recommend any particular course of action in relation to any token or protocol. The content herein is meant purely for educational and informational purposes only and should not be relied upon as financial, investment, legal, tax or any other professional or other advice. None of the content and information herein is presented to induce or to attempt to induce any reader or other person to buy, sell or hold any token or participate in any protocol or enter into, or offer to enter into, any agreement for or with a view to buying or selling any token or participating in any protocol. Statements made herein (including statements of opinion, if any) are wholly generic and not tailored to take into account the personal needs and unique circumstances of any reader or any other person. Readers are strongly urged to exercise caution and have regard to their own personal needs and circumstances before making any decision to buy or sell any token or participate in any protocol. Observations and views expressed herein may be changed by Nansen at any time without notice. Nansen accepts no liability whatsoever for any losses or liabilities arising from the use of or reliance on any of this content.