New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Unchained Index: A Purposefully Designed Schelling Point: A native Web3 API

Devcon 7 SEAWed, Nov 13, 2024, 11:21 AM · 10:12

The Unchained Index smart contract, part of TrueBlocks, acts as a purposefully-designed Schelling Point, creating a decentralized, permissionless store for blockchain index data. In this talk, we generalize the Unchained Index to show it can serve as a repository for other datasets such as event signatures and address labels. We contend we can replace costly APIs with a robust, reproducible public good, enhancing data accessibility & decentralization.

Transcript

My name is Thomas Rush. I think, was I introduced as Thomas Rush? Sorry about that. Yeah. So that is the correct slide.

I don't have the clicker. Thanks for coming. My name is Thomas Rush. I'm with a project called True Blocks. I've been in the space for a while.

I only have five minutes, so I'm going to try to go fairly quickly. I want to start with an experiment. I was going to ask you all to come forward so you could hear me but I'm not going to do that. I'm going to raise my hand and when I lower it I want you to sing the first line of happy birthday in your own native language. I want to make a point so help me out with this, all right?

And that's because today is my birthday. Thank you. Ready? Stop, stop, stop, stop, stop. In a non-English language, if you only know English, hum.

Don't speak English. Okay, that's good, that's good, that's good. All right. So I think coordination is every single place you look in the world. It's all over the place.

That song, I thought it would be much more combined, the same music, but it wasn't really. But anyway, let's just pretend like it was all the same music. The point I was trying to make was someone wrote that song in 1850, and within 20 years, it had percolated through the entire planet because it's a good way to wish someone the happy birthday. And I think that coordination is everywhere you look. Does anyone know what this thing is?

Just say the word. What is this? English. It's a bulletin board and I think every person on the planet understands this protocol. This is a protocol.

This is a standard and they're everywhere you look. So that's a bulletin board. What's this? This is a cave painting from 65,000 years ago. I think it's actually a bulletin board.

People think it's a religious object. I think it's a bulletin board. This guy here, he's saying, my cow has too much milk. Please take the milk. This guy says, camel races next Friday at the Rock.

This guy says, I need a ride to Mesopotamia or something like that. So I think bulletin boards are another example of people coordinating. And there's a very simple protocol. There's two participants, a producer and a consumer. And the producer's job is literally to pin an announcement to the board.

That's the entire job of the producer. The consumer's is to read the announcement. And everybody knows how this works, and it's super effective, as is indicated by that. There's thousands, hundreds of people in my town put up new things every week. In your town too, probably.

So I watch people build smart contracts and talk about coordinating with a blockchain and I think to myself, why is it so complicated? It's not complicated. You can build the simplest possible smart contract that lets you do bulletin board by the producer produces the data, the consumer consumes the data. So this is an example of one of the things that I'm pinning on my bulletin board, and I use the word pin on purpose because I'm pinning it on IPFS and IPFS to me is a bulletin board This contains enough information that that hash at the very top is a hash of the Specification of the data that I'm publishing it has enough information for you to parse the data and read it. And these hashes are the location on IPFS where we're storing pieces of the data that we want to share with people in the world.

And I published this to a smart contract called the Unchained Index. And it's on the Ethereum mainnet at a known address. Anyone can read it. Anyone can download the entire index for the entire mainnet Ethereum chain. And they can find a history of any address on that chain.

And we do this for five different chains. And we're doing it because I want to publish this data. Because I want my users to be able to access it. And you want to read it because it's valuable information to you because you can build software that knows where to look for the history of addresses on the chain. And it's a simple, simple idea.

and I think that my goal here today is to try to get us to look around a little bit and say, these things don't have to be anywhere near as complicated as they seem to be. So this is the interface for the contract. It has one function and one event. The function is called publish publish and the event is called something was published. And people can listen for us publishing this piece of data.

The thing about blockchain data that's really interesting is that it's reproducible and this is obviously true because everyone could just start up a blockchain and they can reproduce the entire history of the chain. And this indexing data, because it's built directly from the block data, is equally reproducible. So anyone can choose to simply download this data and use it, same way as a blockchain, or you can download it and reproduce it yourself if you don't believe that it's true. So we don't have any need to create a mechanism to prove this data. And that's one of the examples where I think people overcomplicate things.

As long as the data is reproducible, you don't really need to prove it because it's their responsibility to prove it to themselves if they want. So I think coordination is really easy. And the other thing about this is it costs $1,000 a year for me to publish an index every day for the entire year, and it's basically free, which is exactly like a bulletin board, which is free. It's also a shelling point. If people have something to say in a community, they put it on a bulletin board, and people read it from a bulletin board.

If you think about APIs for a minute, they're also bulletin boards. Someone saying, I have information, I want to give it to you. The thing about that that's different than what I'm talking about is that they can refuse to give it to you for free. They can rate limit you, they can charge you for access, they can spy on you as you're using their API. None of that is true if you're reading directly from a smart contract.

And I purposely built this as simple as possible could be so that people could get the idea that smart contracts do not have to be things that need to be audited for millions of dollars. They can literally just be simple things that work. I'm going to talk more about this on Friday, 2 o'clock, in the ETH Staker Hub, and I welcome anyone to come there. And I just wanted to say one final thing. There's supposed to be a clock there, but I don't know how much time I have left.

As I said, it's my birthday, and I'm 65 years old, 65 years old today. And another thing that the entire world has agreed to is that the older you get, it's directly proportional to how wise you are. So I want to just say I'm very wise, and you should listen to what I'm trying to tell you. So thank you. All right.

Thank you, Thomas, for the talk. Yes. So let's... You can move a little bit to the center. So we can take questions from the audience or would you like to...

No, no, it's okay. Okay. Okay. Let's take questions from the audience then. No?

Okay. questions from the audience then. No? Okay, all right. Oh, here, we have one question.

Oh, no. Oh, no. Hello. I have the question for you store in on-chain, you store the hash of the index, right? But in EPFS, what is the cost that has for you to store all the information?

I think it's a little bit more complicated. I think it's a little bit more complicated. I think it's a little bit more complicated. store in on changes to the hash of the index, right? But in EPFS, what is the cost that has for you to store all the information?

Because someone has to pin the thing, right, in EPFS? We store a manifest. It's called a manifest. And it contains records of each additional new piece of data. So the first piece is the first piece of data, and it just adds new pieces of data.

So the first piece is the first piece of data and it just adds new pieces. Yeah, so does this have a cost for you or you have a server running all the time pinning in the interface the information? The one nice thing about this type of way of doing things is that because people are downloading these pieces of data to their own machine, presumably, they can also pin the data on their own bulletin board, and they can also be part of the solution to how do we share this data, because they will also be serving it to other people. And that's the way IPFS works. So we kind of did that on purpose as well.

So there is enough people serving the... It's unfortunately the case that you need enough people. It's a chicken and egg problem. But what I'm trying to say is it's so simple. They figured out birth...

Automatic transcript — names and jargon may be misspelled.