Hashing It Out
Hashing It Out

Episode 66 · 3 years ago

Hashing It Out #66 - Trueblocks - Thomas Jay Rush

ABOUT THIS EPISODE

The Ethereum ecosystem is very attractive to creators and data analysts, attracting tops engineers with its novel set of problems. Thomas Jay Rush, CEO of TrueBlocks.io is one such mind. He saw a problem with Ethereum's accounting and built a suite of tools to enable highly-details and lightning fast dives into the data of Ethereum, allowing users to find information about anything their address has touched. This is a far more compelling problem than most realize, and T.J. gives a great look into the design required to make such a service fast and responsive.  

  • http://trueblocks.io
  • https://medium.com/@tjayrush
  • https://twitter.com/quickblocks
  • http://github.com/Great-Hill-Corporation/trueblocks-core

 

 

No entering work. Welcome to hashing it out, a podcast where we talked to the tech innovators behind blocked in infrastructure and decentralized networks. We dive into the weeds to get at why and how people build this technology the problems they face along the way. Come listen and learn from the best in the business so you can join their ranks. Welcome back, everybody, to another episode of hashing it out, as always, on your host, Dr Corey Petty, with My cohost Colin Cuche. Say what's up all column what's Up all Colin? Yeah, but I don't know what else to say anymore to make it fresh for you. I just started. I'm gonna started thinking about it. If you make a fresh every couple episodes, that's cool, but like, we should definitely keep the thematic part of it going. So, like you know, every once in a while you do something, we'll change it. That you have a good idea may one day. That was terrible one. So today's episode we brought on an og in the crypto space, in my opinion, Tom to Jay rush to talk about troop blocks and kind of get the word out on what he's done with software he's been building for a long time. I've personally known TJ, Thomas J Ja goes by Mani names, and the space since since around the Dow Haack when we were trying to figure out what was happening, how it happened, what went wrong and how to fix it. So, TJ, why don't you give us a quick introduction as to like how you got introduced into the space and we'll go from there? Yeah, sure, absolutely so. I tell people ever since I was about nine I've been experiencing new computing environments and then running around with my hair on fire telling people exciting they are. So desktop computers, web stuff back in the early s and most recently Iot, just prior to getting into the blockchain space, and then the blockchain, and I've been on fire for about four years with the blockchain stuff. So just prior to getting into the blockchain O it's really into Iot. And back then, this was mid to late two thousand and fifteen. If you were reading about Iot, you bumped into a theium because slock it was talking about using Iot and a theorium to rent bicycles, basically, I think. And then from there I got really heavily into the Dow and just I'd never seen anything so interesting. I hope we can try to tease out exactly what it was that I found so interesting about the doll when it was happening. And then, of course, the hack. And I was just kind of stunned when the hack happened because, first of all, we all, at that time, at least some of us, me included, believed that it was impossible to hack a block chain and the distinction was a little fuzzy at the time, for me at least. And so it got hacked and that was just, you know, stunning. And then we also are, at least I believe, that you could get every piece of data instantaneously and worldwide. And then people started trying to get the data from the chain to understand what happened with the hack, and...

...that also was just amazing how how difficult it was to get really good quality understanding and data from the chain. So that's kind of where true blocks got started. I that's a great way to start this injector start us this conversation. Let's talk about the doubt and why you thought that was so interesting. Are What what it was doing that was so that was so revolutionary. And then how it got HAP. I'm not necessarily how it got hacked, as plenty of stuff on there, but like the the process of trying to whole information to figure out what happened and how that was so thwarting to you, which led to troop blocks, which will spend the rest of the time on. Yeah, so I mentioned that I was really into the early Web, and I use the Internet prior to the wet back in early S, late s and early S, and the ethos there was that everyone was sharing and everyone was working together to create something interesting and when the web came out, everyone I knew that understood the web was excited because we were going to create this new world order where we were going to share information and everyone was going to have a voice, everyone was going to be able to, you know, participate in the conversation, and I wish they didn't. Well that way. Ye, that may or may not be true. I'm not sure everyone should participate in the conversation, but let's just say far. Let's just say that it's a good thing if everyone participates. But no one anticipated that seven or eight companies would come to dominate the space the way it has and I had by the time, by like two thousand and ten or two thousand and eleven, I was kind of disillusioned with the whole thing. I actually left the space. I wasn't working in the computer science area. And then in two thousand and fifteen I hear about a theory and I start hearing people talk about exactly the same things we were talking about twenty years earlier, how we're going to you know, disintermediate power, how power was not going to be centralized, and all of those things that people were talking about in early two thousand and sixteen. In late two thousand and fifteen, especially people like Joe Lubin, it was just, you know, if if you listen to the interviews, he was talking about some really amazing stuff back in late two thousand and fifteen, in early two thousand and sixteen, and all the guys associated with the doubt and the Tao when it was first when I first started looking at the Tao, it was a completely decentralized, uncontrol I call it an uncontrollable piece of software, because there was no I forget what they called them. The there was people that had special privilege in the Dow. At the end what were they called the moderators cut curator security. There were curators in the Doo who could make it was there were basically owners of the software and they could make decisions, but prior to that the Dow was had no curator. So the decisions we're going to come from the entire population of the users, and I thought that that would build a piece of software that had never existed before in the world, which is a software controlled by controlled by forty five or Fiftyzero users, which that was so exciting. Yeah, I remember that. I remember that sentiment. That was like before, maybe in February and March before it was released. By the time we got released, I think people kind of got scared and they put in the curators, and I actually think that was unfortunate. I mean, I guess it was good in the end because there was a bug, but it took away this sense that we were creating something that could only be controlled by all of us at the same time. So we all, I guess, the mature where the people,...

I'd say, who are listening to this, understood that that software was written, it was deployed, people put money into it. A lot of people put money into it and then a bug was found in the solidity code or the EVM Code that allowed for reentrancy, and then all that money basically was taken out, which subsequently moved into one of the hard forks of etherium, which split, split between et and Etcat, and here we are today. But I remember during the process of there's there, there's a group of us in the Dal slack channel trying to figure out what was going on and how to mitigate it. Can you talk a little bit about the difficulties you faced trying to pull information from the block chain, because the blockchain has all the information, but you know, realistically, when you try and query it it gets a bit difficult. Absolutely, and I remember you were doing some visualizations and stuff, which is, I think, probably why you and I met, because I was so interested in what you were doing. Before I do that, let me just let me just say the other part of the doll's sort of ethos was not only that no one could no one had special privilege, but that every single participant could see what was happening and had as much information as any other participant. And because of those two things, where only the whole community can control it and the entire community understands it, then we were going to get this really amazing group decision making, or wisdom of the masses they were calling it, stuff like that. So that's that's what was so surprising to me when the hack happened, because I thought it was true that you could get that, everyone could get the data easily. But it turned out not to be the case at all. And I won't go into this unless we unless you want me to, but it turns out to be internal transactions that are kind of the problem. You can't really just say give me every transaction that happened. So you have to you have to scan the history of the chain looking for these internal transactions if you don't already have an index of the transactions, and at that time there was no index of transactions, even from ether scan. There was no index of transaction. They didn't have internal transactions index. Yeah, I remember that because I mean I was I was doing a lot of distribution analysis on all the icos that were happening, I think a little bit after that, and it was incredibly difficult to get appropriate accounting of what happened within a smart contracts because of these internal transactions. That's right. So what happens? Like and and it manifested itself soon after the hack, because I think I can't remember the first person who did an analysis. It might have been Bochy Pooh Bah or something, or maybe Nick Johnson did an analysis and he said here's all the transactions that happened on the dowt and then Boffy Poo bad did one and he said I agree with all of Nick's transactions, plus here's a few more, right M. and then lyrical poly math, his name is Beltran, he he wrote another one where he found more of these transactions than the previous two. So within a week of the Dow Hack, or maybe a couple weeks of the dowhack, there were three different accountings for what happened in the doubt and they were all different and they all had different values and different numbers. And I was under the impression that we were building an eighteen decimal place accurate accounting system,...

...right and well, maybe, let me say it this way, an instantaneous every block, you know, eighteen decimal place, one hundred percent to centralized accounting system. That's what I thought we were building and it just was absolutely not that. Now, what was the case, what was the cause for the discrepancy? Sure, so it turns out that it was all these internal transactions. And so if I had a multisig wallet, I might send to transactions to the multisig wallet that ended up buying Dal Tokens and then, depending on when you bought a dolt token, you would have gotten, let me see, I think every time someone bought a dolt token, a certain amount of that ether went into a separate reserve account or something like that. So there were these things. Like when you call a smart contract at the transaction level, you can easily find that, but what you can't easily find is all the things that happen under the transaction when the smart contract calls into other smart contracts. Yeah, Moor it self for that matter, or in or back into itself, as a good example with the Dow hat. I see. I see, that makes sense. Okay, so like and and it's Sel all the transactions then in order to find out where things were actually well, because there's no index of what I call appearance. See, I call these things appearances of the address. So the now address appears in all of those internal transactions, but at the time either scan wasn't indexing all of that stuff and it's still isn't. Actually, I find that's what full notes usually try and keep track of. The keep different indexes of various things. Are Like archive notes. Sorry, archive knows they do, but they don't keep it's still dexes of what I call appearance deaths. So the only way to get those appearances is to literally scan every single transaction because you don't know where that thing is going to appear, because a transaction against a wallet comes from j rush to the wallet. It doesn't index anything related to you know what the what the meaning of the transaction is. And the more complex software you build in terms of how the different smart contracts are interact with each other and the wallets that interact with the smart contracts, you a bit multi sags and things like that, the more difficult it is to stress out how money is flowing and keeping appropriate like audits of where money goes from there, from the initiator to the endpoint. I can't I can't agree with you more. That's exactly true, and I'll give you two perfect examples. So the set protocol, which is a recent thing that I was looking at in a single transaction, it calls into a hundred and in some of their transactions they call into more than a hundred other smart contracts. And well, actually they call into probably ten and then those ten call into ten others or something, so that it gets deeper and deeper, especially as defy starts to get more and more complicated. So set protocol calls Kiber Network, which calls unit or it calls Una swap and then cyber network, and then cyber network calls six internal smart contracts. So when I'm looking at the call trace of that thing, you know, I might find the address that I'm interested in thirteen levels deep of the seventeen smart contract that got called inside of a single transaction, and literally...

...that's the only place that that address appears. But I want to know about that because I'm anal retentive. Eighteen decimal place, instantaneous, fully decentralized accounting, right. So it gets really crazy. And then the other thing I'm noticing is ether scan has matured and it provides different interfaces to get different kinds of transactions. So they provide the top level transaction, they provide internal transactions, they provide token transfers and they provide mining, mining transactions. But I just used NS, the NS smart contract, which calls and has this structure where it calls into itself or into other smart contracts, and what I do is I do my scrape against my own address and I find seven or eight transactions or internal transactions in a in the NS which don't appear from either scan. So I just find it really interesting that we created this thing that we can't actually query. So that's kind of what true blocks does. Okay, so that's a great way to introduce kind of like okay, that's that's the problem. We've discussed kind of or making the system that's difficult to query for things that people really want to know in order to keep good accounting systems and if you're going to have digital money, you need good digital accounting and software that does this appropriately. So what have you've done with true blocks to help mitigate some of this? So there's kind of two parts to this. The first part was I just wanted to get the data in the depth and the quality that I want, I which was every single thing that possibly happened. So that's one part. The second part is, once I have that data, then I want to understand how to share it with the world without becoming a centralizing, intermediating, you know, force, the way that I think ether scan is probably going to turn into. So there's kind of the accumulation of the data and then the distribution of the data. So there's two different things that happened. So how do I gather it? Now? Do I scale it in such a way where people don't depend on me particularly, but they can do it themselves? Not only do they not rely on me or depend on me, they I can't possibly make them depend on me. That's what I wanted to build. I want to build it so that it would be impossible for anyone to capture the users because of that second part of the beauty of the Tao idea, which was that everyone could see everything without permission. Okay, so let me talk about the first part first, which is getting the data. So this I I went down a number of bad paths, or one happy as yeah, I didn't. PAT's exactly. It took me a long time to realize that. I mean you can't scan eight million trans that eight million blocks. You just can't do that in a anything short of days, basically. So it I had started where I was scanning and trying to store like a bloom filter at each block that contained a bloom filter of every address in the block, but that was way too slow. So so we went to first of all, we change the code to go instead...

...of C plus plus, so it's now parallelized, so we can run like fifty processes against and each block is unique or easily handled separately. So we increase the speed by about fifty times over, so we can go. We can scrape the entire chain in a day and a half now, and that's at the resolution of block by block, where every block and then after and then at every block we get every transaction and then we look at every transaction for anything that looks like an address. And there's a couple places where it's easy to find, like the two in the front address. But there's also the input data, which has what are clearly addresses because they have twelve leading zeros in front of them and they're on thirty two bite boundaries in the input data, and this is where we get all of the all of the appearances that we find that ether scan doesn't find comes from US looking in the input data now. So then we get every receipt from every transaction. Then we get every log from every transaction, and the logs have some other information, like they have a data field and that has the same quality as the input field, where there's clear addresses in there, so we pick those off as well. Now we do get some false looking addresses, but I'd rather get more addresses, some of which are false, than less. So we're a little bit permissive about what we call an address. But then when we're doing and then we store that, what we used to do is store that in a database index. Okay, and now we have the second problem, which is distributing this thing. So if we have the data stored in a database index, the difficulty with it, with that is that whenever we get a new address at a new block, we have to insert that into the index and that makes us sort the index, which changes the if we wanted to put it on like IPFs or some kind of content addressable store, it changes a hash of where that store would be. So and that to me makes it it's so much easier to just say this is an immutable store of all the addresses that appeared prior to block one million or prior to block two million or something, and just share that Hash with people and then what I've done is I've made it impossible for me to take that data back or to withhold that data. I'm not explaining it well, I think, but I think it's going well. It's one of the situations where, like using naive data stores is it doesn't help you with a second part of your problem. So you need to find a way to break up all this information and it's a pro and it's, you know, I guess, relative indexing in a way that's easily accessible by others, and that's and change over time. So I Canan. What's the time you use a decent joy like, but you're currently using, as a decitualized filestorage, IPFs and like, how do you how are you breaking the block chain up in such a way where people can pull what they need to pull quickly? Right? So, yeah, this was another many, you know, crazy paths, but we ended up at something that feels okay. So at first well, first of all we just had to recognize that we couldn't create a single large index because of that problem where if we in certain new data, we lose the Hash of the IPFs Hash. So we just had to decide that we're going to create snapshots, basically,...

...and then we were creating snapshots every onezero blocks or every tenzero blocks or whatever. The trouble with that is that the sizes of the files on the hard drive were wildly different depending on which tenzero blocks you were storing together. So if you were storing the D dos attacks from, you know, October of two thousand and sixteen, tenzero blocks might be three or four or five hundred megabytes or even maybe as much as a gig update or something. Maybe not quite that big, but and then transactions from other periods for Tenzero blocks might be I'm discussing but a Hundredzero K or something, or a hundred K. sorry, yeah, depending on the I guess use of the network at that time is going to dictate how big those blocks end up being on your hard drive. That's right. So we were getting these files that were wildly different sizes. So if someone were to cleary this index and I would tell them, oh, you're in block two point seven million, they'd have to download a hundred megabytes of data, whereas if I if they were in block three hundred three million two hundred thousand, they might get a hundred k. So that didn't seem that didn't do what I wanted it to do, which was to make it fair. I want, I wanted to be fair when people start distributing this data. And by fair what I mean is each individual carries the part of the index that is proportionate to their usage. So Ja rush interacted in two hundred blocks across the whole chain, so I should be able to download just a small amount of the index, because that's what I want. But crypto kiddies interacts in almost every block. So if they wanted to have this index, they should carry the burden of the whole index. So when they query my when they ask me which parts of the index should I use, I'm going to tell them everyone, whereas I might tell you that you should use part ten, twenty seven and ninety four, and I want all of those parts to be the same size because I want to. It feels more fair to me that you don't accidentally bump into the D dos attack and are able to do that. Metric for this kind of stuff, like gas consumed, like would not be a better way of measuring or maybe a misunderstanding something with regard to this. Well, I don't know, I haven't really thought about that. It's a nice question, but what we decided was because when we do the query on this index, what we're queering for his appearances, we decided to make the files of equal size based on the number of appearances. So every one of these snapshots or chunks has about five Hundredzero appearances in it is down, it feels, and I haven't really done the mathematics, but I have an intuition that if every file is of equal size based on the number of appearances, then the likelihood of you hitting any of the particular files will be about the same and it will be dependent on when you use the chain. That's nice about that. Potentially, someone running the software on their own computer who's a relatively new user isn't necessarily burdened by the entire history of the blockchain in terms of what they're they're they're disc space...

...is involved and less. They want to look into specific contracts that have existed for a long period of time. That's exactly right. So I kind of say you get what you want. If you want to query the first contract that ever existed and every appearance that it's had since then, then you would need the entire index, where you need at least you need to know which portions of the index that that contract appears in. If you start tomorrow, then you just kind of care about from now until the end of time and you should be able to start at the end start now. There's a lot of complications. But something you mentioned about this that I that I really liked previously for this discussion was that, like and the process of people looking at things and being encumbered by the burden associated with those things, they're simultaneously making it more available, those particular things more available to the network for others who were important be interested. So interesting because that's exactly what IPFs kind of does naturally. So if I have one user and he has one copy of the index and it's and the other thing is you can pin. IPFs allows you to pin data. So if I have one user and I pin every piece of data, there's one copy of this index across the whole planet Earth. But if I get a second user, now there's there's there's not two copies of the whole index, but there's two copies of the files that that that second person wants to use. And you know it multiplies by the number of people that that use the system, so that, like, naturally, it becomes more available as more and more people use it, which I which I also really like, because that feels like it has legs kind of. Well, this is this, is this, in my opinion, as closer to the original vision of what atherium was when they release the white paper. It wasn't just a blockchain as a block chain, decentralized storage and decentralized messaging that it in order to build applications appropriately, at least with the ideals that it set out to do. You definitely, definitely do need decentralized storage so you can do things in a manner in which you're trying to do right now with through blocks. That's right, that's exactly right, and it's so interesting because we don't have centralized storage right now and the IPFs is just an addressing system and the actual true decentralized storage is still pretty much a pipe dream, although I know that fall coins working on it and storage has their possible solution. Like there's a lot of things out there that we're in that white paper that just aren't as feasible as they seem to have really thought I agree with you. I kind of not to be flippant. I'm truly not trying to be flippant, but I live thirty years in the future. What do you mean by that? Yeah, I'm actually I get. I got what you're saying with that. So, basically, he's thinking about what's coming, and I agree because I've been pushing real hard for decentralized filestorage. Effect, we have an engineered our company WHO's about to interest peach program and you know, he's like, I think I'm going to work on decentralized filestorage because that's a just an interesting problem. And so like, yeah, I get what you're saying, but again, I was referencing the original white paper and what you're trying to build and like these are things that are really difficult problems and you know, just I really want to break things down in the indexing system that you just said with for replication, but you just can't guarantee the replication. Yeah, and I I get that. As it stands currently, even if the replication isn't there, does it perform better in terms of getting information from the blockchain than anything else that exists today as as an individual user. So one...

...thing that it does better than anything else that I know of is it's impossible for me to take it back or to withhold it once I give it to you, which I like because my biggest, one of my biggest concerns is that, because of the way software gets built, where you build things on top of other things, and the fact that it's so completely centralized right now, the access to the data, we're building a system that's going to be completely centralized and we're not going to be able to get away from that if not careful. I think. So it's really important to me this part where you know, if you have the Hash of where the data is, I cannot get it back from you. That that to me. Now, whether that actually works in reality, because IPFs does or doesn't work, I can't really fix that problem. I can just sort of, you know, try to help people understand what that look like if we actually did things that way instead of just falling back on web two API data delivery, which just doesn't work for me totally. I agree and like the cool thing about IPFs is is an addressing system. That is, the addressing system itself is decentralized and if you query and get that IPFs, you get a file back and it doesn't check some to that address that you got, because the dress is literally a check them, then you know the day is not correct. So it decentralizes the addressing and and doing so it makes things very, very secure from a decentralized system, but it doesn't necessarily guarantee liveness. It's got this safetiness built in, but not liveness built in because you can't guarantee availability. And this lends to a question I think you would be really, really love to hear your thoughts on, based off of what you've told told me so far. What does it mean to be decentralized? I was just going to actually talk about this for a second. So it's really interesting when you start bringing the data local on too literally, I call it onto the hard drive of the users machine. So to me I really think it means where is the data on the hard drive? With which hard drive is the data on? Who owns the hard drive that the data is on? And if you're truly truly decentralized, you every single user has the data on their hard drive and no one can take it back and the system it's not even possible for the system to withhold the data. So one of the things that I've learned, because I've cut I kind of made a commitment way back when that I was going to run a node. So I'm actually running nodes in my house and the software I'm building is unlike software that you build for a web server environments. It's nothing like a web server piece of software because it's servicing a single user. So in a web environment you're servicing thousands of users. Are Hundreds of thousands of users, so you have to do all kinds of crazy stuff that you don't have to do if you're only servicing a single user, for example, you can't. I was just thinking about this. It's like member I was saying, I was really into the early web. So prior to the early web we were basically building software that has a single user and when we went to the web, we discovered after a while that you couldn't do things the way that you would have done with a single user because you have two thousand or Tenzero users hitting your server at the same exact time. So...

...you have to protect against writing concurrently, you have to protect against you have to be really fast when it comes to having the data available in memory, for example. You couldn't use the hard drive directly because if the system would just bog down and all of those things kind of disappear when you have a single user. So to me, in my most maximalist way, decentralization is a single user with data on their heart drive and the ability to get is it like, is like a free distribution of software that allows them to do what they want to do. So so we're only what's forks. Before that there was no real like connectivity between applications. So you had a standalone application with standalone date on a standalone machine. So the web brings connectivity, so you can do all the kinds of these crazy, you know, much broader applications. And the way I see it as the the blockchain preserves that connectivity, but it brings the data back local, all the way to the hard drive. So I ask your question again, Cory. I already forgot what it was by listen, I'm so, I think. So let's just talk about true blocks for a second. So I'm still trying to grab your system. That's okay. Yeah, and I think, I think what I'm hearing is is it's really just a great way to just do analysis on on the smart contract the depths of how deep the accounting goes. Is it though? Is it, though, something that people are demanding at the moment? And who do you see potentially using this? Because, from my perspective, and this is probably incorrect, this is really good for auditing the blockchain to for like regulators or for you know, see how terror is funding is using it and that kind of thing. It's really good for that kind of stuff. I'm kind of wondering where would a person want to use this for their own personal accounting when, at the end of the day, they really just care about who did I send the transaction to and what is my balance? I think you're absolutely right. I think it's very it's difficult for me to find it a real user, to be perfectly honest, because the first thing I say to them is, Oh, you have to be running your own nose would and they say, well, I'm not going to do that. So it's kind of difficult for me to find users. I feel like it's true that's it feels like it would be most useful for analysis across the whole chain or, you know, sort of big data analysis. But going back to a single user on a single machine. I J rush just want to know, like what Tokens do I own? What smart contracts have I've been involved with? I want to entire history of everything that's ever happened on my accounts. I want to know. One of the things I'm seeing is I own literally seven or eight hundred tokens because of air drops. Oh Dude, see now that's a really good product in every one of my accounts. Dude, I have no idea, across all the addresses I've ever encountered in my life, how many of them got a little fractional amount of a token here and there, how much it sums up to? I've no way of saying what that balance is. There are people who have it way worse than me, who might have, you know, thousands of dollars an assets just strown across like a hundred different accounts and like there's no way to get their fractual assets...

...out because you don't even know what you or S. Twenty Tokens exist on it. If I could just cook addresses and come out with, Hey, there's here's where all the here's all the contracts where that next year C twenty standard, that your your addresses in like like, oh sweet, you mean I would draw all these? That's awesome. That's exactly right and it's exactly it's a perfect example of what internal transactions are like, because if you read the Arc twenty token standard carefully, you'll see that it does not require the contract to generate a minting event or even a transfer on a mint. So what happens is a lot of these smart contracts, specially the early ones, were just dropping tokens without telling anybody. They weren't making an event. Yeah, there are, most of the time they were just they were taking a pool of Tokens, taking a snapshot of the Blockchain at some point and then just transferring over across all those people. And basically what that means is they were just inserting addresses into a map inside of their own smart contract. Yep, not telling the addresses that they hold that token. Rap. So now and then, and then you want to even think about another thing that is crazy that my friend told me about, is if I buy an ether at, you know, a hundred dollars three years ago and then I use it for gas today, technically I have to claim a gain on that piece of gas. That I've used to be honest, if you were like being anal retentive, really aim attentive. But yeah, I'm like, I'm like, I'm I'm appily and proudly an no retentive. So I kind of stuff does ad up for organizations like you know what the organizations that's like. I mean at some point I think the tax people are probably going to say, you know, that's a taxable game, because it is. It's clearly a taxable game. Yeah, I agree. How do you keep track of that? You know, how do you know this? What you don't? You have a personal accounting system that's really complicated. And you know, if he could just, at the end of the year, do one calculation rather than this this gradual calculation, that might be better for certain organizations, although I well, do you think a lot of organizations would rather just kind of keep a running tally of how that worked? Yeah, I want I want that kind of quality and depth of insight into what's happening at every block. I want that every fourteen seconds. So now here's what, here's what I be happening. That level of insight will be available to people that have a lot of money and a lot of development talent and a lot of resources. But for the general population there's no chance they're ever going to get that kind of level detail. Not that they would want it necessarily, but they should be able to get it without having to pay someone else to get it, because things like a Fedcin, like the federal government, these pennies add up and like they do care about this stuff and if they're going to conduct audits on on on people in an automated fashion, for instance, let's say they use it an automated taxing tool through some future fedpoint system, they're going to need to keep track of these kind of level detail items. You know, they just are and I always say, why are we building eighteen tesimal place accuracy if we're going to use, you know, one ten of one percent of the data? Because it doesn't make any sense. So so there's not to be perfectly honest, there's not a lot of users. There's no users now except for me and a couple of other people that have started, but then, because you have to run your node, they kind of dripped off. I'm trying to figure out a way to coordinate with people that provide note software, so like Infura and so forth. So I've talked to them in the past,...

...but it's hard to figure where I fit in because I'm kind of so decentralizing. I just want to stay in this decentralizing world because I can't figure it out any other way. If I complicated by centralizing parts of it, I kind of feel like I'd lose focus on what I'm working on. So what are the next steps, like, where do you see yourself going so that you can you can kind of stay the path? Yeah, and I'm curious how you you in a grate future design of etherium into this like shrouting, like that's going to get really complicated for you really quick. So I kind of I make the argument, and it's not an easy argument to make, that if you think about it from a single user on a single machine, if they can interact with a sharded blockchain, then my software will interact in the same at the same relationship as that single user will. You're making the argument that if they can pull it off in your software wheel too, more easily than something like ether scan that has to take on a burden of a thousand times more block chains and they ever want to be decentralized in any way. So so either we're going to end up with a super giant big data solution that is utterly not decentralized, or we're going to have to figure out how to interact with a single user from a single machine to get all this data, to get the data that they want. So I say, I claim, and I don't know this, because I don't think anybody knows anything about it, is I'm in the right position to actually end up surviving in a decentralized way. So if we're going to say they could admit the only way, the only way forward, if we want to maintain a guise of decentralization, is the method when what you're doing it, anything else will lead to the same centralizing infrastructure we have today with web. Do point out that's that's what that's the argument you're making. I'm making the argument. Let's go figure that, let's go look at it in a way where you actually force yourself to be in that position to understand if that's true. You know, I don't know that I fully have it all figured out, but any stretch of the imagination. But I know, I'm almost certain that putting it into a sequel database is never going to be the solution. Yeah, that's that's a people who will do that are going to be the ones who are incentivized to do so, which means are basically going to be the businesses that are making money at that time, because they can afford the infrastructure required. and and why would they ever decentralize at that point? They have no impetus to do that. So, and you know, I'm coming from having seen nearly the exact same thing happen with the web, from the very early web. This almost exactly the same thing happened. So I don't know. Actually, supplice, let's talk about that. Analogy you have pretty early on liquor. You know, used to be that, you know, if you owned a simple computer. Of course those are very rare. You can throw up a go for site or something, you know, and just for you know, there's always also services like prodigy and comfy serve and all these things like popping up in Naol. That's sort of like get people online, and they were central services and they were very, very much you know and then. But you're right, like the media itself, the actual content itself was very...

...democratized back then. You can post literally anything and as long as it wasn't too illegal, the people leave it alone. Still that's kind of the case, but the people controlling the point of entry have reduced to a handful of mostly people in Silicon Valley or China, and so we see this everything certain to coalesced to a handful of of centralized organizations to curate and own the content and that we are giving them for free. We see the same kind of thing sometimes as almost happening in the blockchain world. So we talked about all this talk of decentralization, but what do you feel about the idea that it only takes like three or four phone calls to specific owners of mining pools and etherium if you want to revert a single transaction? How do you feel like decentralization will with can withstand the same coalescing effect of this this this this people coming together building these centralized organizations to have actual control over the systems that are being utilized, the intended to be utilized in a Democrat Democratic Way? I I told someone earlier that you know, a generation ago, which would have been in the S, there was, you know, x number of people that were on fire about these kinds of ideas, and now a generation later there's x times a hundred people that are or x times of thousand. So maybe we might descend back into this centralized place, but hopefully in another generation we have tenzero times x people that are you know, it may be a multigenerational thing because I think the the death. And then the other thing I think that's really interesting is the blockchain itself and this sort of cryptographically secured data and data that can't be modified. And going back to when I first started listening to Joe Lubin talk about the what this technology allows us to do it it. It's the same thing we were talking about a generation ago, but now we have this amazing new tool that can help us do it better. So I feel like we might make the mistake of falling back into the centralization, but but we do have a much better tool this time and we have a lot more people that are aware of it and, you know, hopefully it comes back again around. I really I feel like it might have to come back again around, because I actually think what we're building, if you just look objectively at what we're building, we're building a completely centralized system to surveil every human being with every transaction they make. That's just what it feels like we're building, lest we continue to make tradeoffs in terms of convenience and user experience. It tends towards that, seems, I think. I think the applications that we want to build just like just like in the s, the applications we want to build almost overpower the hardware's ability to deliver that. So that's one of the reasons why it centralizes, because we want to do these applications, but we can't do them because maybe IPFs doesn't really work yet. So maybe it takes a while till that works and then, but by that time we're already down a path that it's really hard to get back from and and no one's incentivized to re disintermediate the thing. So so we might have to wait again until the whole thing has to disintermediate again and in fifteen, twenty years when IPFs works or something like that. And I think that's...

...why it took ten years or twelve years from when the web first came out until Bitcoin came out, because the hardware wasn't ready that. People were doing digital money back in the S, but I just don't think the hardware was ready but in the fifteen years in between, the hardware became what Tenzero or a hundred thousand times faster, so maybe that's what has to happen. I don't know. But anyway, my project is really truly just let's commit to being completely decentralized. Let's just go see what it's like there, see if there's any interesting things we can find. Maybe I'll never get a user because it's just too hard to get but I want to write about I want to do a lot more writing than I used to do a lot more writing than I do now, but I want to get back to writing about what I've learned, you know, and maybe it'll be useful to other people. What is the greatest lesson you've taken from this project so far, just in terms of like the the ecosystem were in? I really truly think that it's that a decentralized piece of software deals with a single user. It's just a completely different way of thinking about what you're doing when you're building an application, and I don't think that's sunk into the ecosystem at all. So okay, there's there's context to that. I think maybe maybe helpful for helping people understand why, and that is the software still allowing you to communicate with whoever you want to communicate with. Social networks are not going to go away. People want to use software with the context of being able to communicate and transact and work with other people. What you're saying is the application layer deals with a single individual and the infrastructure stack in which it talks to is handling all the humunication between users. That's exactly what I'm saying. And and if you're running a node locally, it's all local and all of the and the data that you're getting. If you're writing an application that is straight against a locally running node, the data that you're getting is worldwide agreed to data. So you don't have to concern yourself with, you know, phony data. Yep, YEP, so a little it's confirmed in a global consensus. That work. Yep. That's what we're building. I call it hiding behind the node. So I want to hide. I want my application to hide behind the node. I want it to rely only on data from the node. Now, right now, that's where it's not half. You have consistency across or guarantees around the data that comes through it. Yeah, but now you have to build a really different kind of piece of software because you know, like if I wanted to communicate with you only through the node, you and I would have to have a piece of software that knows how to do that. So the application developer has to write it so that that it, that works. It's hard for me to explain. I I guess what I'm saying is we should really interact through smart contracts or something. I guess the problem I have with what you're saying is that so that is correct or a correct way of doing things. But I see the problem there being that you can't expect the user to have all the data. It's not a reasonable expectation in the long run, especially if adoption TM happens, because these blockchains are quite large and even, let's say it's not a blotchain, it's just a some DAG system or...

...whatever like, to contain to hold the entire state of the the network across all nodes like the same and hold that locally is just it's a lot of sinking, causes a lot of boot up times. The fact we can't run these on mobile devices is a telling factor. So I have to think that your explanation, although not completely wrong and it will be a operational one, it's not the one I would think we went out because ultimately what we're trying to do is d couple consensus, which is what which is one half of what you're saying, from the data. And if you can decouple consensus from the data, you can query other people's data and be assured that it's that what you are doing is correct. And if they're coupled like what you're suggesting, that you have this problem where massive nodes are required in order to do what would otherwise be traditionally basic operation. So I'm kind of this is like there's now multiple paradigms of how we're going to develop this the centralized software. For me, that's that's that's take an account. You want the entire state, right, yeah, you don't. You don't have to under what he's doing now and you don't have to have the entire state. So what you're doing breaks up that state. Then maybe I've missed that part. I thought that you still need to run it all. I guess you still read them at you you still need to run a fold on the initial creation of this index, this Snapshot Index, Somebody has to have the initial state, the full state. Yeah, because you have to scrape through the entire thing, and that's why I get increasingly difficult. But it's immutable data. So it's conceivable to me that human beings are smart enough to recognize that it's immutable and we can just check it once and just say, Hey, you know what, this is it, this is the data, and now you can are that out in a way that I look at consented to data or data that's already been consented to as so I think that's completely different data than data that has not been consented to, and any data that you derive from what I call consented to data can be trusted as much as the consented to data. So I think human beings can just choose to share this data in a way that maybe doesn't require anyone to have the full state except the initial person, the initial creation of what I call derived data, if I'm making any sense at all now. Yeah, carbage and grabbage up. So I wanted to talk about something that Colin said as well. Back in the day, no one on earth would ever have thought that we would share videos across the Internet. So one of the things I say in response to not having the entire state on a single machine is in thirty years from now we will have thousand terabyte hard drives, nine hundred ninety five terabytes of which are blockchain Didda, and not a single person on earth will care about that. Sure, but also ideally have more people participating at a global scale. So these is only one part of the equation. If we get to two thousand transactions per second, we're essentially matching what these does on an average day, although they can get up to sixty fivezero now. And the other thing is that the transaction volume goes up the more people adopt. So yeah, we would have a thousand terribine hard drives or whatever, but we are also facing the fact that we want people to use this and that increases the problem exponentially each time we do that. All right, I completely agree and I think there's a couple...

...things you could do. You get you don't have to store the entire history of every block for all time. Currently banks only store seven years of history, so you at some point you have to cut the history off and then the smart contracts just have to figure out how to deal with that. It's also not necessarily clear to me that the nodes operating by bringing every single piece of data onto the hard drive makes sense either. I don't agree. I mean, I'm sorry, I completely agree. Like that is exact hard to be looked at. Like what could the nodes possibly do to kind of help the whole world not fall down the path of centralization? I think, and I don't think there's been a lot of work done there. I totally agree. So, yeah, centralization is a consensus problem. It's a governance and consensus problem, and that actually data upkeep in management and it's file storage and all these other things we can do individually have a different tailored plan and even maybe on a network level have a different tailed plan, but ultimately coming to global consensus is kind of the ultimate goal here. Yeah, so, you know, I always consider my project as much sort of thought project as it is a practical thing. It works for me, as Cory saw on my machine, and it works pretty well to do exactly what I wanted to do. It's very difficult for me to understand how to get people to use it because they have to commit to this being decentralized thing, which I don't think very many people care about. To be honest. Well, yeah, for those that are interested. I mean I'd say a good cohort of the people who listen to US would be interested in at least trying or trying to understand more. Where can I go to reach out to you and learn more about true blocks? Sure you can go to our GITHUB, which is I'll posted. You have show notes or something we'll put in the shout outs. I've written a fair amount about a lot of these ideas because I'm trying to communicate them out. So I have a medium thing that I'll share as well, and you can go to true box dot io to get some information. All right, that's a great way to wrap up. Kind of have to run out of time here. Thanks, come on a show. I definitely have appreciate the kind of fresh perspective of problems that we're seeing on the horizon and ways to maybe conduct ourselves now to potentially get past them. Well, thank you. Thank you calm. Thank you.

In-Stream Audio Search

NEW

Search across all episodes within this podcast

Episodes (126)