Joel Thorstensson: Ceramic – Building the Dataverse #482

9 Feb 2023 · 56:29

Epicenter hosts Friederike Ernst and Meher Roy talk with Joel Thorstensson, co-founder of 3Box Labs, about Ceramic's approach to decentralizing account-based, social data. Thorstensson explains Ceramic's event-stream design for user-generated data, how it differs from other data availability solutions, the privacy and interoperability it enables across applications, and the network's emerging business model.

Speakers

Topics

Transcript

welcome to epicenter the show which talks about the Technologies projects and people driving decentralization and the blockchain revolution I'm Frederica and I'm here with my hair Roy and today we're speaking with Joel dostensen who is the technical co-founder of three box Labs um the creator of ceramic and ceramic is this uh data storage solution um for web 3 projects and we'll talk about this um in just a little bit um but just before I'd like to tell you about our sponsor this week our sponsor this week is Omni Amnesia new favorite Mighty change Mobile Wallet Omni supports more than 25

protocols so you can manage all of your assets in one place but what's really special about Omni is what you can do inside the wallet once you get hit Omni allows you to get the best apy with zero fees and three tabs need to swap Omni Aggregates are major Bridges and taxes so you can bridge and swap across all supported networks in one transaction directly in your wallet live nfts Omni offers the broadest NFC support of any wallet so you can collect and manage your favorite nfts across all chains in one place Omni trulies the easiest way to use web3 and it's fully self-custodial meaning you never have to trust anyone with your assets other than yourself and they support Ledger as well give Omni a try at omni.app

Joey it's a pleasure to have you on yeah thanks great to be here I remember you from ages ago at consensus so clearly you've been in the ecosystem a while tell us what you've been up to yeah um what started I was playing around with ethereum before the launch in like 2015 did a bachelor project that led to an internship at consensus and eventually started working part-time at consensus as I was finishing my Master's in complex adaptive systems um and so at that time the project I was working at at consensus called uport so this was this early identity Focus

project um in the ethereum ecosystem so some of the older listeners might remember that and at viewport that's essentially where I met my co-founders and we started actually incubating inside a viewport uh what eventually has become ceramic Network right so how did you come up with the idea of ceramic or rather what is the grand idea behind ceramic yeah so one thing that we noticed with viewport was that we're building this identity solution and uh we kind of had to build our own wallet and even back in like 2016 2017 it felt like it doesn't seem right to

compete with metamask and all of the other walls that were was around at the time um and so one of the inquiries that led to the creation of our first prototype called three box JS was essentially like hey can we build a system that allows allows developers to build more data Rich applications but it works with any wallet and so we're prototyping on that and that led to this three box JS SDK and after like that having been used by a bunch of people over time uh we draw some main insights from that experience and and created uh ceramic

thinking back a while ago the first thing that I kind of um became aware of under the three box umbrella was this chat box and we actually at the time we kind of integrated it into um a prediction Market platform that we were offering at the time I mean still around you can still use them but uh yeah I mean and basically it was just a way to kind of put comments and stuff um so how how did you get from there to you know this very comprehensive data storage solution the JavaScript SDK that we're building was very ambitious we're trying to build this completely decentralized in browser um system that would allow you to make some basic social features like comments

and profiles and things like this um and have that be live inside of your browser so that was using a JavaScript implementation of ipfs at the time um and some of the learnings we got from that is that uh these kind of data structures that enable this really local first type of applications or really powerful Primitives and they are have similarities to blockchains in that you have these verifiable data structures um that can be shared across multiple nodes but doing actually doing it and starting to build that in browser first is really

difficult um and so we took the core insights of like these data structures how we can deal with identities and how we can create um basically use updates and events users create over time to create an actual database and take this and build a node application that your front-end applications can talk to so in the same way you talk to like an ethereum node you can also talk to a ceramic node that could deal with more of like the data Rich features I was going through all these ceramic ceramic documentation on the on the web today

and maybe I'll tell you my imagination of how like why you need something like ceramic or how this idea comes about and maybe you could corroborate if if I understand it right so to me the story really starts with just just the observation that you know the fact that you know I have data on ethereum and then I can use multiple front ends or multiple user interfaces for for my accounts yeah is really cool um and you always start to wonder why doesn't like the entire internet stack work that way meaning

um you start to wonder okay why doesn't social media work that way I can put my data onto Facebook and then I can use some other user interface to Facebook and this is like this is quite a standard thought experiment many of us have done and there are many projects that go down in this direction so I think one of the things that one starts to realize when you want this kind of composability that like there should be multiple user interfaces to some data I have is you don't really need blockchains or consensus all the time

right so if you have financial data that data should lie on ethereum or if you have a Dao that Financial logic should lie on ethereum but if it's my personal data um that I want to put somewhere and allow lots of people to build applications then my personal data may not need the blockchain at all and I necessarily don't want to pay the cost of the blockchain consensus at all so start to need some kind of data layer um where I can put I can push my data and and then other people can build

applications on on top of top of that um so that's kind of like the direction ceramic goes down uh goes toward but what ceramic is kind of also adding is the observation that for for good interoperability to exist among multiple applications we need you know standard ways of doing identity standard ways of doing profile standard ways of doing X like all of these news feeds and things like that and you're allowing for such standards to to exist so is that right uh is it it's like a data it's a data layer that any enables

people to build uis for these uis to be on interoperable with each other yeah I think that that's a good overview I think there's a few things there I could double click on so first of all like the the financial aspect of blockchains uh blockchains are hard to scale because we have this requirement of um what in the super systems is called strong consistency that means that basically all nodes in the network need to be able to have an agreement all the time like what the state of the system is and this is how we prevent double spends and in a system that doesn't deal with any kind of assets but it's more just data that's

produced by the user we can uh kind of loosen that constraint because we're fine with what is called eventual consistency and so we don't need to always have all the nodes have the same agreement on on what the state of the system is and the nice thing is that we can also have different nodes only synchronize different aspects of the network so you might care only about a subset of users or a subset of data models in the network and this is really what we achieve with ceramic yeah and then the second Point around like standards and things like this um I think that's something that is

really tricky and and our approach to it has been to like uh provide examples but we don't want to like set the standards right we want the community to come up with the things that works for their applications because ultimately like we are not gonna be able to know what different applications needs um and so the approach we take to it in in our graph database product which we're building on top of ceramic um uh called compost DB is that developers can come and create data models they can onboard their users and have their users write data to these data models uh and then other developers can import these data models into their

applications and kind of get the onboarding of those users for free because the data is already there so that's the composability that you were talking about I I have lots of questions for kind of these for lots of lots of different facets here but kind of I think I want to step back and kind of look at the larger landscape of um Data Solutions in the web 3 space first so I think um our listeners may be familiar with products such as are we even ipfs and sire and so how would you kind of um contextualize ceramic within that landscape how is it different or similar

to those so yeah all of the the three products you mentioned they have focused first on this like how can we store files I'm not going to store like pieces chunks of data in an efficient way that can scale um and those are all very useful things to have um in the ecosystem like storage of massive amount of data is is incredibly important uh our Focus From the Start has been on users their identity and like how to make these systems easy to use for people um so enceramic instead of having creating blocks where you either have deals with

minors to store data or you have big blocks that include a bunch of data as in um some of these systems do uh we used let we don't really have blocks in ceramic we rely on the security of ethereum and instead each user creates an event stream of actions they take in the network this event stream you can think of kind of like a micro Ledger that is signed by the user's key and all of these updates we can verify that they come from the user um and since we have like all of it like if we take that together um we can have a view of multiple users with all their independent event streams

and we can compose that into a database view so it's like a different approach to to the architecture but but does that mean that basically only the event Creator can write to the event stream because basically if different people have like right permissions this won't work right yeah so in ceramic right now each event stream has a controller which is essentially um a user account so right now there's support for I think three different blockchain wallets and most users use ethereum ethereum based wallets and so every event stream is controlled by one account but then you can take multiple

event streams and listen to all these events and create a combined view of that okay so say um one of the event streams let's say my Twitter output so things I tweet but also things I like and things I retweet and so on um you could just kind of this would kind of fit the uh I don't know whether broader social media um data structure or Twitter data structure and then it can be compared to other people's data structures and can be compiled into a view of a decentralized version of Twitter where they see I can say how I wanna how I wanna view things or which things I want

to prioritize or which things I want to be shown because basically the way that social media works right now is that I mean obviously there's you know uh very uh context algorithms at work to kind of calculate what to show you but what exactly they do and how they operate and what they prioritize this is this is not visible and there's no competition as to this so basically it would kind of ceramic enable um other people to kind of build on the same data streams and um kind of showcase this differently or prioritize things differently the the power of ceramic in this case is

that we can actually start to mimic a little bit more how the architecture of kind of web 2 social media works because uh web 2 social media networks like Twitter or Facebook they don't scale on a strong consistency model like a blockchain they have um they have some databases they have event streams in their systems and they have a bunch of microservices that take care of different tasks so we can imagine a very primitive social network on ceramic that is like oh here's my my tweets and then when I follow um Frederica and mayher I just compose that into my view but if I follow like thousands of people that's not really going to be efficient

but the cool thing with ceramic is that they could actually be a service somewhere that ingests all of these streams of my followers as an as a microservice run some computation over it and outputs that in a new event stream uh and then I consume that and this computation could be done in a verifiable manner either it's a deterministic competition that I can rerun and see that I was correct or maybe in the future if we can have like very efficient ckps like that could even be that but for for the time being like having a compute uh actually attributed by in the ceramic stream by the this

microservice provider actually gives us some better trust in the system and I can actually choose which of these service providers that I want to build my um my stream of of tweets or or what have you okay understand um is I mean you do distinguish between different kinds of consensus um but why do you need um consensus in the ceramic Network at all I mean if it's just a decentralized storage layer

and it can be proven that basically my data suit why does it need consensus well so we need some some basic form of consensus right like if if your node and my node get the exact same events we want to be sure that we end up in the same state right if we don't end up in the same state uh that's bad so it's not like a global consensus that uh in the in the sense of blockchains where there is an agreed upon state that everyone in the network agrees on it's more like if we consume the same events we end up at the same state so it would be terrible I could check them in distributed systems this is called consensus like that that your nodes can

actually arrive at the same conclusion okay I think then then I just have a very different mental representation of consensus because to me consensus kind of is is by default a global thing but I think this is maybe just a Corruption of kind of how the actual technical term is used by um unlearned communities okay so that then I kind of then then I kind of understand that part you said that you guys build on ethereum so basically what's kind of the connection between ceramic and ethereum yeah so I mentioned these event streams they're signed by end users um so they're good for like okay now we know we have attribution to who who created what and who wrote what into the

network uh but we also want some some guarantees about when certain events took place and this is where ethereum comes into the picture so every once in a while event streams are anchored into the blockchain and what this means is that there is a hash or some other kind of vector commitment that's included in in the blockchain that basically allows any consumer of this event stream to convince themselves that okay this event was published at least at this point in time um and obviously like making one uh ethereum transaction per event stream update would not really be scalable uh so what we do is is uh we

create a Merkle tree uh that batches a bunch of updates to a bunch of different streams and puts the root of that Merkel 3 on J so earlier you mentioned that data in ceramic will be eventually consistent which okay which kind of means that if if let's say I push two updates um so let's say I'm using the ceramic Twitter and I push two posts and one after the other ultimately the ceramic network will decide on which post came first and which came second right

and there might be a span of time where the network hasn't made a decision but ultimately it will uh eventually it will make make this decision that's how I think of eventual consistency yeah and in the case of your personal posts you actually when you make post one and then you make post two your post 2 will actually point back to your previous post so like for your personal things it will be like ordered uh but between like two different users it's not ordered in the same way and then we would rely on these anchors okay so how do you reach eventual consistency or in in the network is it is it down to is it down to the the anchor in the ethereum blockchain meanings like some

ceramic node at some point of time is going to put push an anchor and then whatever ordering they did is the ordering of the ceramic network is it like that or is there a different mechanism yeah so based on the anchor uh you can look at the blockchain and see like hey that's this block that was produced what's the block height and what's the timestamp in this block and so if you have two conflicting events in the network um you can look at like which one came first uh and and then you would know how to choose I'm actually I'm actually curious like so there there have been these computer science uh data structure is called like crdts

conflict-free data types where essentially it's a data structure different people can push updates to it and they will be eventual consistency of the data without there being like an active voting based consensus like in proof of stake proof of stake Networks so you have ways of of getting consistency of data in a decentralized network without you know practical Byzantine fault tolerant consensus uh I are you using something like that in ceramic uh as well or or are you are you actually getting eventual consistency via some other mechanism

yeah so so let's so CRT thesis is something that we're quite familiar with we're not actually using them yet but it's something we're intending to use as we uh improve the protocol so right now if we think about a single event stream um a single event stream is only allowed to have one canonical history uh kind of in the same way blockchain has like one canonical chain um and if there is a conflict if there is a fork in this um in this event log then we would basically choose the the fork that was anchored earliest and this is this actually is the property that allows us to do a key

rotation in a secure way and and that's a whole other Rabbit Hole um which I have an article on our blog on by the way uh but for many cases we don't actually need to choose one of these Forks we can actually just like do a merge and then do a crdt based logic to figure out the complete ordering of these events so that's that is an improvement that we're planning in the protocol okay so so essentially now the way I'm imagining ceramic is okay there's this huge Lake of data I can push my event stream uh to it and by virtue of how my event stream is designed and the fact

that ultimately this network will anchor something on the ethereum blockchain this kind of going to be eventual consistency in the network where the network can agree on what events came first and what events uh came came second uh roughly that's that's that's my that's my picture yeah exactly so if you have two nodes in the network and they observe the same events they even though they might not be talking to each other but they have seen the same events they can arrive at the same conclusion so let's talk about the nodes in the network right so basically anyone can what are the requirements for running a ceramic node

yeah so running a ceramic node in itself it doesn't have like super big requirements because when you start a ceramic node you don't have any data on it and then you have to tell your node that hey I want to subscribe to this particular event stream and so if if you're familiar with something like ipfs where you have to like pin individual objects you have to subscribe to individual event streams in ceramic um so for most users of ceramic right now um you actually uh or the developers that are building a ceramic they are running their own nodes to support their

applications um and and right now in ceramic there's no like built-in redundance one thing that uh we're doing with this database product uh composed DB that I mentioned is the ability to synchronize data between nodes so that they can have the same view for example if you have like a blog post model uh we can have two different applications that build on this blog um so that's like kind of allowing nodes to just like subscribe to the data which they care about now that's fine kind of for developers but

if I'm an end user I don't have any guarantees that like these two blog applications will be online um so one thing we are going to add in the future is a network incentive where you as a user or you as a developer can pay the network and pay um a set of nodes to keep this data available in the network but right now nodes are run mainly by application developers that wants to leverage the functionality of ceramic you kind of everyone kind of uh stores their own data and there's no way to kind of say I will backup someone else's estate or someone else will back up my

data it's just basically all in my own ceramic node no you can definitely it's a public open network so anyone can subscribe to any stream in the network uh so I could for example subscribe to uh to your stream and and provide like a redundant copy of the Stream so as as we kind of alluded to earlier um this is um for a very specific types of data it's kind of not it's not a um a general storage solution um you kind of we already talked about um social networks for a bit but what are kind of the verticals that kind of

what what what kind of data usage is this geared towards yeah so there's there's around four different uh niches that uh we look at being more common today and uh one of the most prominent ones right now is reputation so we have projects like git coin and disco that are putting different kinds of verifiable credentials on ceramic that are associated with your ethereum address or your other blockchain address and then be able to calculate some kind of score based on that and get coin's case you have um a civil resistance score but we already talked about social so

there's a few different applications building different kinds of web3 uh focused social networks or business one uh cyber connect is another one um then another category is knowledge graphs um so there we have mainly projects within the decentralized science base DSi one of the the most furthest along there is is lateral they're building essentially a knowledge graph that represents scientific discourse and the cool thing there of course is like you can look at this knowledge graph and since it's stored on ceramic you can see who actually contributed what to this knowledge graph because it's cryptographically linked to

your ethereum address and what they want to do eventually is is to trickle down um payments to people who actually contribute valuable knowledge then another Niche I think in in the ceramic Community is Dow tooling so basically if we think about the Dow ecosystem today we use a lot of like centralized tools we use Discord we use hosted forums that maybe like one guy on on the Dow is hosting and like this seems very fragile uh and um so one example here so ceramic could be used to like replace these things

with like a more decentralized and resilient infrastructure one place uh where this is starting to happen in particular is uh the um and also Safe Community where uh the safe app has a centralized backend that this stores a bunch of transactions that are pending and may be signed by some of the delegates uh so there's a there's a company called Dallas and systems they're building a decentralized safe registry for these pending transactions on in ceramic so so those are some of the like use cases we see today I think there's like interesting things uh in the future that might be more speculative but uh around

data provenance so that could be like um these new uh language and image models we're seeing in AI there's a bunch of copyright problems ceramic could be used to like provide attribution to who actually did what and how that fit into these systems um I think we want to have Supply chains have more attribution in their systems and similar with with iot so that's things that's worth exploring in the future does it have to be public data by default I mean can I put private data on ceramic and have it stay private or only accessible to some

yeah this is a great question and uh it's nuanced right so uh by default ceramic is a fully public network now the the first thing you might want to think about uh when putting some data on ceramics hey I can encrypt it so you can certainly encrypt data put it on ceramic and this will be private but you have to think about the future right because in the future uh we're going to have a very fancy quantum computers that might break some of our cryptography so if you're using any kind of like current asymmetric cryptography uh your private data might not be so private anymore uh and

um that might be you might also not be like satisfied with like uh ciphers that exist today uh they might be broken even though they're like supposed to be Quantum secure it really depends on like your risk and like how private this data really is in any decentralized system uh that is publicly verifiable you have this problem so the only way you can really be safe that your data is completely secure is probably to encrypt it and store it on your own machine or you trust someone to store it for you and then you trust that they don't get hacked and so on it's there's a possibility that we could explore in the future

um some kind of Access Control logic in ceramic where only if you have an authorized Identity or like account you're able to synchronize certain subsets of data but that's not something that we really focus on right now we think there's like a lot of exciting things in the public data or public but encrypted data ecosystem so yeah um so my imagination of ceramic is now okay so there's a network there's lots of nodes on the network I can publish my event stream in the early days of the network it's probably nice if I publish my event stream

either way that it doesn't contain my private data or it rather contains data that I am comfortable sharing with the world um and there's eventual consistency in the network so the network will agree on what came first uh eventually okay understood so we have that basic primitive but allude to uh the fact that okay you want to allow people to build applications uh on top where where ultimately ultimately they are interoperable with each other that's on your website so what is the meaning of interoperability for applications on top of ceramic and what might be some of the

tools you've built on top to enable it yeah so so at its core like ceramic is an event streaming uh protocol and this is not something that like most developers are familiar with in web 2 like there are a few different event streaming Solutions but it's it's it's more of like a thing that experienced back-end Engineers used to really scale to applications to like handle a lot of load and so we need some tooling to make it actually usable and easy to use for Developers um and so what we created for this is compose DB so compose DB is is a graph

database that allows developers to Define data models which is basically a is a schema for your data and this model you can it's it's kind of analogous to a Smart contract where um you you define the data model and then users come to an application they create objects or documents that conform to this schema uh and then the developer can query this data and and read like hey here's all the objects that conform to the schema and by all these different users or query like subsets of that and you can also have relationships between different models so if you have a blog

post you might have a comment that points to the blog post and you will be able to query like hey give me all blog posts or like this subset of blog post and also all the comments related to that subset of blog posts and so that's kind of the graph aspect of that and this tooling is built in something that's familiar with to many developers called graphql so you actually Define your data models in graphql and you query read and write the data using graphql as well and compost DB so I understand that basically when I write data to my own data stream I have to choose a data structure um but how um how is the knowledge about

which data structure I'm using and percolated in the network because as I understand it today um I you I I host my own data so how is how is the lateral connection made so you can run an indexer by spinning up your ceramic node and telling it to index and say like hey what are all the data models in the network um or if you have some application that you really like and you would like to use like oh I need that data then you can just look at if their application is open source you can look at their application code and it's like pull pull in the data model from there so like this is the early days I think um what what we're hoping to see in the

future is some kind of Explorer or catalog of data models where people can use browse the different data model C their popularity and how much usage they have and so on um and so that experience should become much easier over time and that is also what happens if there's two competing standards for the same data model that basically you just check what gets more usage or what people uh are more because you kind of there's a lock-in effect I mean if you want to be composable um the number of things you can composable with is uh super relevant right yeah so there might be two

competing standards for like a user profile um and you might want to choose the most popular one or you might just want to have a super application that can include both profiles and just like kind of display the information that's that's bested because then you have like reach to more more existing users but really it's like enabling the developer Community to figure out what's best for their needs so but data models are by default open source right so I can use any data model that's out there yeah exactly okay so maybe let's talk about the economics of everything a little bit um so if

um at the moment I kind of I I'm not actually guaranteed any redundancy um is any way to actually monetize data that I make available yeah so right now ceramic is a fully peer-to-peer Network and anyone can spin up a node and replicate the data so I think the the primary use case right now is not for people who want to monetize their data it's more for like Hey we're a dow Community we want to make sure that our pending transactions or or discussion governance Forum doesn't disappear and then you can have like multiple individuals in this participating in this style like

providing redundancy for this data um I think monetization of data is something that's really interesting uh it's not our core Focus right now uh and ceramic is a primarily a Data Network right now I think there's a lot of interesting combinations that could be made with uh Financial uh systems uh like ethereum and and other blockchains where uh we can Leverage The Best of Both Worlds like maybe like nfts and and erc20 tokens for doing some of the financial aspects of of social media or uh knowledge graphs or or something else and then using ceramic for that really

high throughput uh scalable data system okay yeah I think I understand where you're coming from I'm still kind of I think I still have a so um if basically if currently um people kind of replicate data um you know altruistically um and are not compensated for this how do I protect myself against censorship how do I protect myself against kind of having people replicate my data either incomplete or you know maliciously uh differently than I I

wanted it to be stored yeah so you can certainly not if you have your data you're running your own ceramic node and have that data there you can certainly not like guarantee that other nodes in the network right now can like are providing exactly the same data uh but however if there is one honest node in the network any honest node is like is wanting to synchronize data your data would eventually be able to get up to speed and and find all of the data that your node is providing so as long as there's one honest node the data will be in the network but how do I decide which one the honest version is right so say my I I was one of the

hosters for my Dow community and my computer went up in flames and there there's like a couple of people who kind of hosted the same content and now they're in disagreement about which the real content is hmm so the only thing that these nodes can do is to remove data and if your node that you know is honest disappears yeah then you kind of have to trust that they are providing all the data that was there before but they can't like say that hey this data is something completely different or uh here's a bunch of new data like they can only say here's all the data or like a subset of the data because all the data

is signed by the end users that are participants in the that one that's not really something you can fake and so yeah just be clear like this is this is the the current state of the network we are planning to add a network incentive where either developers or communities or individuals can pay to make sure that the data is kept available in the network could you add something like a proof of completeness or so yeah I mean I I think that's like uh kind of what blockchains do like they have this completeness because they have like this Global state in in an eventually consistent system you can't

really know if there's like some piece of data that someone's been hiding for a long time and then eventually reveals uh because there isn't like a the same completeness over time you kind of have to let go of some of those guarantees to to get this more uh scalable system okay that that that's fair so we kind of talked about um potential ways to kind of generate revenue from streams as a user what about ceramic so we see how how is ceramic Finance or how is it going to be financed in the long run yeah so as I mentioned ceramic is a fully peer-to-peer Network right now where anyone can run a node there's a

few aspects that we think it makes sense to introduce uh some kind of token model uh so the the aspect right now that is the biggest cost of the network as a whole and that three box Labs is currently subsidizing is the anchoring process uh so like actually making the on-chain ethereum transactions uh that's something that uh we we uh want to decentralize as soon as possible so that it's more of like a network activity where you participating in the network you participate also to this process of anchoring things um so so that's that's one aspect the other aspect is uh the availability of data so uh having

the ability for users to pay for their data to be available and node providers to get paid um by the network to just like run a node and keep some subset of the the network of data in the network available I think that's that's also like key to understand that like once we have this logic and and system for nodes to be compensated we're likely we can actually have each node only needs to provide a subset of the network and we can have this decentralization without having the throughput limitation uh we we have currency in blockchains

I hope that answered your question yeah it it to answer my question um so you already talked about kind of the four different niches that you feel could benefit from building on ceramic um there's already um a large number of uh projects already building on ceramic can you talk about kind of the ceramic ecosystem and which projects you're excited about yeah so I mentioned some of them already so I think the the largest one right now is git coin that they're building this passport functionality on top of ceramic uh disco is building their data backpack system uh in in The Social Network Niche there's like orbis uh and cyber connect

they're both building different kinds of social networks orbits is definitely doing a bunch of interesting things there and they are using uh some other um secure multi-party compute system to actually store encrypted data on ceramic so that's pretty exciting they're providing like an SDK for people to integrate comments and that kind of social functionality in in similar way that was on uh the the previous Omen prediction Market I believe it was called that that we mentioned in the beginning uh so what three books JS did way back lateral is a project in the design space that I mentioned before they're building these

scientific discourse graphs and the dial tooling ecosystem I mentioned the safe decentralized safe registry um I think I think the dial tooling space is there's a lot of opportunity there once people realize that this this like resilience aspect is actually rather important and what's on the road map for this year yeah so for this year uh next up is uh the release of composed to be on ceramic mainnet so that's something we're planning to go live with at East Denver so that's the end of February early March uh so that's that's kind of what we're in the team are the most excited

about right now beyond that there's a bunch of improvements that we want to make in terms of developer experience and performance to the composted B graph database and we're also working to make a lot of improvements on the core event streaming layer so right now there's a pretty tight coupling between the event streaming layer and compost DB we want to decouple this so the event streaming layers is more on its own and it essentially also enable other people to build a databases or different types of microservices and so on so those are like some of the um

most imminent focuses over the next year I'm trying to wrap my head around this problem that a lot of a lot of um what ceramic is doing seems very similar to the uh to the work done by protocol labs in the ipfs file coin file coin combo so in my imagination uh of Ceramics if I think like ceramic versus ipfs ipfs is similar right like I can put some data into ipfs but unless I run my node unless I kind of replicate my own data it can get deleted but nobody can mess

with the Integrity of that data that's that same seems very similar across ceramic and an ipfs ipfs does not provide eventual consistency so there will be no Global ordering of events but ceramic does so that seems to be a a big key difference uh ipfs natively did not have uh yeah a lot of incentives baked into it and ceramic as of today also doesn't have incentives baked into it but then protocol Labs built file coin where um there were incentives and people can basically be guaranteed that any data they put into ipfs will be replicated by

file coin and made available and ceramic also seems to make take steps in in that kind of Direction I'm trying to understand like what's the meaningful difference between between these two ecosystems and why would developers prefer one of the ecosystems over the other in this case why would somebody prefer ceramic over over the other other ecosystem yeah perfect so I I will comment on like what these systems do today to my understanding uh at least in the protocol Labs ecosystem and and what the differences are today um because things things are likely to change in the future so ipfs is really good if you have like static files right

I can put a file I get the hash or what they call a CID of that file and now I can synchronize that across the network and uh do a bunch of fun things with that and I have integrity proof in this hash um but there's no way to like update this file because if I update the file you get a new hash right uh and so there's no way to have like a an easy way to keep track of um updates uh in in ceramic our core Focus has been we are actually one important thing to know is actually ceramic is using the same data model as ipfs called ipld and that's how we represent this hash linked event plug and the the main thing

we add on top of that is that we provide Signet like a signature system so we have attribution of like who created what um and and I can like let me go in a little bit in how that works so essentially uh when you come to an application that uses ceramic there's a session key created in your browser you sign uh sign in with the theory message with your wallet that basically delegates some permissions to this session key on behalf of your ethereum address or other blockchain address and now the user can actually use the application like they would use any webto application without having to like for every like and for every comment there's like a pop-up that we need to

sign in their wallet like that user experience wouldn't be great um so I think yeah that's that's like one of the key differences is that there's like focus on this making the the user experience of how we do attributions really well uh and in ipfs natively you don't really have a tribution and currently in filecoin it's really good for storing large files and large chunks of data in in a kind of backup manner but it's not right now like something you can easily query and build like feature applications on top and so that has been our core focus with ceramic and so we see we see our our technology as kind of like um

it's it's kind of taking the best of like ethereum and ipfs and merging that to create a system that just like enables developers to uh really build something meaningful I also uh compare ceramic to orbit a little bit because this this fundamental um idea that uh there should be data and then there should be a lot of like people should be able to build uis for for interoperable data um this actually this value kind of repeats in many different ecosystems and orbit is another ecosystem or in which this this uh this value repeats and essentially on on

orbit the data you put on orbit is also such that many people can build different uis to it so but of course when you look at the difference between orbit and ceramic I think like the the trade-off space here is something like in in orbit you can push private data to orbit quite easily like it's it's designed for for privacy that's that's a strength that orbit offers along with data interoperability but then the big big challenge or weakness orbit offers on the other side is it's a completely new tech stack right from the ground up starting from operating system to networking protocol

and so and to even programming language so it it's the case that the the ambition in orbit is so big that they just might end up easily out competed by much simpler systems that also provide application interoperability like like ceramic so that's how I tend to view that trade-off what what are your thoughts on how ceramic and orbit differ from each other yeah so so I'm I'm afraid I can't make like uh super nuanced comments here because I'm not intimately familiar with orbit but from my what I understand you have your kind of own kind of virtual

private server with orbits which you could run on your computer or someone else's computer and that there you have the private data in in the way which uh we talked about earlier where uh yes it's private if you host it yourself or you trust the person that hosts it um but you don't necessarily have like public verifiability and and so that's that's like a core thing that we've been focused on in ceramic like how can we have public verifiability and then add privacy features on top of that but uh since we're coming from like the ethereum and blockchain space the the aspect of public verifiability and that neutrality that that provides is is been one of our kind of core principles

so uh I've also seen that ceramic raised a uh quite a big funding around in the in the recent past so how was that funding round structured and what what what did people buy in that funding round essentially and what kind of incentives um does does your funding round imply for the future I'm probably not the best person to answer this question uh because it was led both mainly by my co-founders um uh but yeah what was essentially sold is equity in uh the three box Labs company and there's also uh token warrants in uh

a potential token in the ceramic Network no one wants to build on ceramic or run a ceramic node um where where um should they go to kind of find out more about documentation and speak with people who are already doing this yeah so I think the the main place to go for everything is ceramic.network and uh if if we're specifically interested in uh developer documentations we have a developer portal at developers.ceramic.network cool fantastic thank you for coming on Joey this was super interesting

yeah thank you very much this was a great fun