Epicenter - Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies - Mike Hearn: Lighthouse, Assurance Contracts, bitcoinj, Transaction Fees & Core Dev Team

Episode Date: June 21, 2014

Today out guest is Mike Hearn who many of you are familiar with. He’s one of the first Bitcoin users and the developer of bitcoinj, a Java library used by a number of popular Bitcoin wallets such as... the Andoid wallet, Multibit and Hive. Until recently he was working at Google and is now working full-time on Bitcoin, including an interesting crowd-funding platform called Lighthouse. Episode links: Lighthouse Assurance contracts Arianna Simpson - Game Theory, Assurance Contracts, and Crowdfunding with Bitcoin Venumeris Mike Hearn talk at Coinscrum 2014 in London BitcoinJ BitcoinJ on Github This episode is hosted by Brian Fabian Crain and Sébastien Couture. Show notes and listening options: epicenter.tv/025

Transcript
Discussion (0)
Starting point is 00:00:03 Hello, everyone. My name is Sipa Senkudu. And I'm Brian Kareemn. And welcome to Epcenter Bitcoin, the show which talks about the technologies, projects, and startups, driving decentralization and the global cryptocurrency revolution. Today's June 21st, 2014. And thanks so much for joining us on episode 25. So today, our guest is Mike Hearn, who I'm sure many of you are familiar with. He's one of the first Bitcoin users and the developer of Bitcoin J. Bitcoin J is a Bitcoin Java, so a library that's used by a number of popular Bitcoin wallet, such as the Android wallet by Andreas Shilpak, multi-bit, and hive. Until recently he was working at Google, and now he's working full-time on Bitcoin and Bitcoin projects, including the Lighthouse, which is a crowdfunding platform.
Starting point is 00:00:49 And we're really excited about having them on today to talk about Lighthouse, Bitcoin J and kind of Bitcoin development in general. So, hey, Mike. Okay. We'd also like to just briefly let you guys know about Coin Summit. Last time we kind of put in a little interview that's set up with Premier. So we want to kind of mention again that CoinSummit is coming up in July 10th and 11th. We'll be there.
Starting point is 00:01:13 So if you'll be there too or if you want to go there, you know, get your tickets. You can do that at Coinsum.it. And I'm sure it will be a great conference. So I guess let's get started. So Mike, I wanted to kind of ask you just before we get started and talk about the different topics that we've got the cover. What's taking up most of your time right now? What are you working on, say, like full time at the moment? I'm spending about half my time working on Bitcoin J and maintaining that, you know, reviewing work as being submitted, improvements, things like that.
Starting point is 00:01:50 And in particular, HD wallets. and the other half of my time is being spent on my company on Lighthouse, doing some consulting work, things like that, but mostly it's split 50-50 between general Bitcoin development, which I've always done and this new crowdfunding platform that I'm working. Well, perhaps we can start with the first topic right with this Lighthouse, which is a topic. I find the crowdfunding thing very interesting also because I'm originally an economist.
Starting point is 00:02:19 And I've for a long time, you know, I saw these crowdfunding things coming up and it didn't really make sense to me why this was such a huge deal. And I think I'm slowly kind of starting to come around that I do think this is really important. And you know, we've, we've been talking with Adam Levine often about this LTV coin. We've had Joe Dietz on last time to talk about Swarm. and I know in the Amsterdam conference you were talking about Lighthouse. Unfortunately, we both missed that talk. We read your blog posts on it and we really are excited to talk with you today about Lighthouse.
Starting point is 00:03:00 So perhaps can you give people an introduction about what Lighthouse is? Yeah, sure. So Lighthouse is a way of building assurance contracts, which are this financial construct that's been popularized by the Sites like Kickstarter. So this is where people pledge money to fund the construction or the creation of something that everyone would benefit from. And then the cost for it is estimated and people pledge, but they only end up paying if enough other people pledge to reach the goal. The original, I mean, although this has sort of been popularized recently, this idea has been around a long time. And the goal was that, you know, it should be, these are a way of funding the creation of public. goods, where a public good is defined as something that once it's been created, it costs money
Starting point is 00:03:50 to create, but once it's been created, you can't stop people from benefiting from it. You can't charge the money for benefiting from it. You know, in traditional economics, public goods are things like clean air, you know, public roads, and indeed lighthouses, which is where the project gets its name. So I talked about how Bitcoin protocols supports this back in 2012, and I gave it as an example of things we could do in future, using the features that Satoshi put into the protocol, but no one was using because we lacked good user interfaces for it. And Lighthouse is my attempt to fix that to build a good user interface for the construction of these projects. So correct me if I'm wrong. Am I correcting assuming that Lighthouse is essentially, a wallet which
Starting point is 00:04:41 implements assurance contracts as it is defined in Bitcoin? Yeah, so Lighthouse is a specialized wallet. So you can send money into it, so you can withdraw money out of it and it makes transactions on the blockchain. It's an SPV wallet.
Starting point is 00:04:58 It's a lightweight wallet that talks directly to the Bitcoin network and uses the blockchain. But it doesn't have features that you would associate with a traditional wallet like a history view so you can see your transactions or contact lists, for example. It has very base features that you would need in a wallet.
Starting point is 00:05:16 But the idea is you put money in and then the bulk of the app is dedicated to allowing you to do things with that money once you put it into the lighthouse. Okay. Now, I'm curious if these features exist in Bitcoin and they are interesting and promising in terms of what we can do and where we can take this new technology, I'm curious as to why none of the other wallets and particularly, the core wallet doesn't have these assurance contracts built in. Well, it's not clear to me that you want this to be integrated into a general purpose
Starting point is 00:05:49 wallet. It's a very specialized sort of thing. Most people aren't going to take part in this kind of contracts. And if you look at the use interface, there's actually, I'm actually in the process of redesigning the user interface at the moment. So what you see on the blog post I made is not the final UI by any means. But, you know, the bulk of the screen. is taken up with management of these contracts. The bulk of the user interface is creating them, allowing you to gather pledges, to create pledges, to revoke your pledge.
Starting point is 00:06:20 Something I didn't mention is if you pledge money and then you decide you want that money back before the contract reached its goal, then you can just take the money back. It's not a commitment that you're forced into. And all of those features, you know, they all require planning and user interface design. They require protocol design.
Starting point is 00:06:38 It's actually a large, amount of work. Even though the core Bitcoin protocol has the core feature that's needed, everything else layered on top. It takes a lot of work and wallet providers are all busy with more basic features. So perhaps before we can get into the economics applications of this, which I think is the really interesting part, can we talk very briefly about how this works on a technical level? So I read the, you know, on assurance contracts. I read Ariana Simpson's post and, you know, there's something, I think, on the Bitcoin Wiki, but perhaps you can run us through briefly about, you know, how these transactions are created.
Starting point is 00:07:17 Yeah, sure. So a red Bitcoin transaction has a slightly funny structure, right? You would imagine, if you didn't know anything about it was designed, you would imagine that a Bitcoin transaction looks a little bit like a bank transaction where it identifies an account to take money from an account. to debit money to and then, you know, the amounts of money that's being moved. That's not actually how it works internally. What actually happens is a transaction has a list of what we call inputs and outputs.
Starting point is 00:07:44 And the inputs effectively identify payments that were made to you. And the outputs identify payments you're creating to someone. So the inputs of the transaction contain the digital signatures and the proof that you can claim those payments. And then the outputs redistribute that money into. a different set of conditions, so different ownership, for example. But nothing really stops you from creating a transaction that just pays yourself. For example, you can do that, that's no problem. Now, the way Bitcoin works is if you have a transaction with, say, three inputs,
Starting point is 00:08:22 then you have three signatures, one to each input normally. And each one of those digital signatures, obviously, just like a real signature, you're signing some kind of document, right? It's not just an abstract signature floating in space, it's actually a signature that covers some document. And what you're covering is a transaction itself. So when you're signing, you sign a transaction in such a way that if that transaction were to be changed,
Starting point is 00:08:48 like for example by a network node that is relaying your transaction for you, the signature would break. Now, Satoshi, he thought ahead quite impressively, I must say. He allowed you to create signatures that only cover parts of the transaction, not the whole thing, if you want to. It's not the default behavior. If you want to, you can create a transaction which it is possible to modify, and the signature will still be valid.
Starting point is 00:09:13 So the way Lighthouse works is it creates an invalid Bitcoin transaction by itself breaks the rules of the system. It has an input that connects to some of your money and claims it with a signature, and it has an output, which is a payment to the purse of the fundraiser, person who's raising money, but the amount of money you're putting in is much less than the amount of money you're trying to send to the project creator, which isn't allowed. If that was allowed, anyone could just invent money out of thin air. So the Bitcoin network won't accept that transaction by itself.
Starting point is 00:09:47 It will be ignored. But now, if the project creator gathers these kinds of partially signed invalid transactions, what they can do is merge them together, because they've been signed in a special way. And by merging together enough of those transactions, you can effectively add enough inputs to meet the goal and eventually create a valid transaction the network will accept. So that's how it works. You submit these invalid transactions. And when the project creator has enough, he combines them together and broadcasts them onto the Bitcoin network where it becomes like a regular payment. Yeah, I mean, this is brilliant.
Starting point is 00:10:24 I wasn't even aware that it's possible to partially sign a transaction in a way. that you can then put them together, you know, to get the required output. So that's, yeah, it's very interesting and I guess very cool how you can essentially replicate something like what Kickstarter does in such an elegant way. Yeah. It's not an exact good for what Kickstarter allows because Kickstarter allows you to raise more money than your goal. And, you know, sometimes you find the projects, you know, they said, well, we'll use, we need at least
Starting point is 00:10:58 $50,000 and any more money that we raised, we will spend on doing something even more awesome, right? But with Bitcoin, you can't do that because it has to be exact. It has to be exact. If any additional money were to be put in, it would end up going to minus fees, actually, because of how the protocols designed. I was actually thinking about that. So if you, let's say, I mean, because you can't control that, right? People will send in different amounts and then let's say you wanted to have 100 Bitcoins, but now it's 107. Would that actually mean that you'll have to throw out some transactions and perhaps make your own contribution to get it to exactly 100?
Starting point is 00:11:41 It depends how you organize things. Yes, you could do that. You could, if you get pledges that don't quite line up, you could post them out and make it the difference yourself. But part of the infrastructure that Lighthouse provides or is in the process of providing is, you know, for example, I've written a server that gathers pledges and it will tell you how much money has been raised. So then, you know, the software, it won't let you accidentally pledge more than when it's allowed.
Starting point is 00:12:08 You can use Lighthouse in other ways where there's no server involved at all, completely decentralized and people are just sending files around. And in that mode, nothing stops anyone from just, you know, creating pledges that don't pack correctly and end up going under, you know, undershooting or overshooting. But you can always just arrange out of bands for people not to do that. But you say, hey, everyone, you know, please pledge, you know, one Bitcoin each or some multiple of one Bitcoin.
Starting point is 00:12:38 And, you know, don't just pick a random number and put that in, please. You know, I will like more pledges that don't follow these rules. And then, you know, you just organize with people who are interested in supporting your project. Yeah, that makes sense. So we talked about. you know, sworn, for example, last time. And their idea, I guess, is that essentially projects are selling coins, and then those coins hopefully will have a value if the project is successful.
Starting point is 00:13:07 But in your case, this is purely a donation-based funding of public goods. Is that correct? Well, I would phrase it as being a donation. The reason, like, if you look at the economics, textbooks and so on, right, The way the assurance contracts are used are the people who are expected to put money in, people who will benefit from the outcome. The classical example is the sailors who would like to see the light from the lighthouse. They all put money in.
Starting point is 00:13:37 It's not a donation exactly. They understand they will get something useful out of it. This construct is designed to resolve the deadlock that can occur when there's no way to charge a small recurring fee for something. So I wouldn't expect this use for donations exactly, but you can imagine lots of different use cases. For example, let's go back to the question of packing the pledges, right? One thing that Lighthouse could be used for, because it's just an app. There's really no setup overhead at all is, you know, you could create a project in and lighthouse, drag it to your Gmail Compose window because the way the app works, you can drag these projects and these pledges in and out of the window.
Starting point is 00:14:17 You just drop it onto an email and then send it to say 50 of your friends and you say, hey, I'm going to organize a house party, right? And there'll be beer and there'll be games and stuff. But I need at least 20 people to come for it to be worth it. And to buy all the stuff, I need at least, you know, 10 bucks each. So I need at least 20 people contribute 10 bucks. Otherwise, it won't go ahead. This is exactly the kind of, this is an assurance contract kind of thing, right?
Starting point is 00:14:43 Like everyone will benefit if the party goes ahead. And so people can just reply to your email and attach the pledge they made with the app. And then when you have enough replies, the party is organized. But you know, you probably don't want to like issue tickets and things, right? Like once it's going ahead, the people who chipped into $10, they're happy. So why bother, you know, trying to prevent other people from coming. Everyone would benefit from a party that's bigger. So this is a kind of thing where, you know, you could use this financial construct.
Starting point is 00:15:11 And maybe you wouldn't really have ever imagined doing it that way because of the limitations of existing platforms. But this doesn't really address the issue of free riders, no? Because you still have the incentive that you'd be the person not paying if there's 20 other people paying the $10. Yeah, right. I mean, it's inherent in the nature of a public good that once it's been created, there will be people who benefit from it for free. The question is, if not, if less than 20 people have chipped in, right, how much do you? care about it happening versus not happening. Maybe you don't care about this party at all,
Starting point is 00:15:51 so you don't put any money in. But maybe you would actually like to see it go ahead, but you don't want to be the sucker who pays for all of it. So in that case, you can make a pledge. And you just accept, yeah, that in some cases, you know, other people benefit and they won't have paid, right? It's inherent. It's happening in things like Kickstarter projects as well.
Starting point is 00:16:11 The same thing when you support your favorite band, you buy their album, you understand that, you know, some people will just pirates. it they will benefit for free. But you know, you buy the album because you want to support your favorite band. Now, I have a question. Can you kind of walk us through how you create an insurance contract with Lighthouse and how you would essentially make it known to others?
Starting point is 00:16:37 So you had two modes. You have the server mode and the self-hosted mode or standalone, rather. So can you kind of just walk us through? Yeah, sure. the experience of creating a contract. Yeah, sure. So it's still in flux a little bit, right? Because I'm actually redesigning the UI a little bit.
Starting point is 00:16:53 But most of it is already, is this already designed and sorted out. So as you mentioned, there's two modes. There's serverless mode and there's server-assisted mode is what I call it. And this is partly because, you know, Lighthouse, it's about a bunch of things. So one is about allowing people to make these contracts and solving that problem.
Starting point is 00:17:14 But it's also about showing people how I, how I think decentralized infrastructure can be built and, you know, demonstrating the way I prefer to build decentralized applications. And so Lighthouse is like a desktop app. You downloaded and you run it. It doesn't have any dependencies on any servers or it shouldn't do in the long run. So it's just, so it's like an HTML5 app? No, no, it's actually not.
Starting point is 00:17:39 It's just a regular desktop app that runs on Windows, Mac and Linux. Okay. And that's, you know, how it can connect directly to the P.S.P. Network and process of blockchain directly and so there's no dependency or in the ideal world, there's no dependency on anything like money. And then you have a choice. You can create a contract in the app, which allows you to do very simple things like typing a title for it, a description, saying how much money you want to raise, saying which addresses, you know, you want the money to be. pay to things like that. And then what it gives you is an icon, which you can then drag to... in serverless mode, it's actually a file.
Starting point is 00:18:24 You can drag it right out of that window into a directory, for example, or into Dropbox, or Google Drive, or to an email, or a chat window, or to, you know, some other websites that you upload the file to, a web forum, for example. Anywhere you can put a file or link to a file, this project can go. And then it's up to you.
Starting point is 00:18:44 And it's entirely up to you to get that project out there for people, you know, to help people discover that. Lighthouse by itself is not a complete replacement. Everything Kickstarter does. It only handles moving money. So it doesn't have... It's not a platform. Right. It's not a, well, it's a platform, but it's not, it's only a platform for the handling of the money.
Starting point is 00:19:02 It doesn't provide discovery, for example. It's not like a single place where everyone, where people just say, I have some money and I want to do something cool with it. But I don't know what. The idea is that people can be. build such platforms on top of Lighthouse, but the Lighthouse app itself is not such a platform. So basically, a serverless mode, you're just moving files from out, right? So someone gets hold of this file, they click a link in a web forum or whatever. They open it in the app or they drag it into the app.
Starting point is 00:19:30 It works both ways. And then they can use it like a regular wallet. They can send money from their phone or from their regular wallet, from Hive, from multi-bit, whatever. can make pledges, of course. They can take the pledges back after a while if they don't think the project is really going to make it. And once they make a pledge, again, what they get back is an icon, which they can then, you
Starting point is 00:19:56 know, again, drag it out of the app and get it back to the project creator. So this is a little bit like sort of moving documents around with office or whatever. It works. You don't need any infrastructure. You're effectively using the infrastructure that already exists. maybe it's not as convenient as you would want, especially not when the number of people taking part gets high. The advantage of this is, like, if you already have a system that is managing access, control,
Starting point is 00:20:22 and identity, and so on, then you can just reuse that. Like, you know, if there's some reason why inside a company or inside a collection of companies, you would want to have one of these contracts, then, you know, you can use your private work spaces and so on, right? There's no dependency on any other service. On the other hand, if you do want to do a larger scale crowdfunding, you know, you've made a little website or you've got to, you want to build one of these platforms like Kickstarter for Discovery.
Starting point is 00:20:48 Then Lighthouse also has a server that just sits there. And in this case, you know, you can actually basically just tell Lighthouse, you know, open up this server and show me the projects it has. You can pledge. And then when you click pledge, it just uploads directly to the service. So there's no, there's no moving the files around or dragging and dropping when used in that mode, but obviously someone has to run that server.
Starting point is 00:21:10 So if I understand correctly, then if you're on standalone mode, and so I created a cause and an insurance contract, I send that file, let's say in the example of the party, I send that file to all my friends, they have to have the lighthouse app on their computer, they open the file with the lighthouse app, they pledge money to it,
Starting point is 00:21:31 and then they have to export that file again and then send it back to me in order for the, pledges to go through? Right, because you don't have any system in place it collects files. Now, to export this file, you know, like I said, you can actually, all you have to do is drag the icon onto your Gmail reply window. That will work. So it's not a particularly complicated operation. But yes, you do have to take some explicit action to get it back to the user. Right. And then as the host, I have to get those files back into my house app. And then
Starting point is 00:22:03 all together they will construct the they will sign the transactions so actually the way it works is when you create a project you give lighthouse a directory somewhere or a folder somewhere in your computer and then it watches this folder for pledges so for example what you can also do if you don't they use email is you can create a shared directory a shared folder on google drive or slotbox exactly right and if you've got the app installed you just save the project there and then when people you know when people create a pledge, they just drop it back onto the web app, the Dropbox web page, right, in the web browser uploads, it gets synced down to your computer, and then you just, you just have Lighthouse in the background, and you can see the pledges, like, stack up, right? There's no requirement
Starting point is 00:22:47 that you do anything, just as the files appear in the shared directory, then the pledges stack up, and eventually you can claim the contract. And is there, are there any plans to make mobile apps as well as desktop? Well, I've thought about it, but my gut sense is that, You know, for the early use cases, it's a somewhat serious step to make a pledge and make a contract. So probably a desktop computer is appropriate. But if we do want to move into things like, yeah, using it to organize parties or, you know, small things like these micro contracts, right? If people do want to do that kind of thing, then a mobile app would make a lot of sense, sure. And in that case, like, it probably would be somewhat integrated with, you know, an Android wallet or something like that.
Starting point is 00:23:30 because moving files around and dragging and dropping on mobile platforms doesn't work, so you need to design the user interface in some other way. Right. And so I suppose it would then have to be built on top of the server-assisted mode. Well, yeah, probably. I mean, you can do things with mobile phones that, you know, you can't do with desktop so easily or laptops. So, you know, you could have the files be made available to the people in the room via
Starting point is 00:23:55 Wi-Fi Direct or whatever. But there's other interesting things you can do there, especially if you have physical proximity. But yeah, probably in the mobile use case, some method of sharing files and moving files around would have to be adopted. And most likely, given the way these platforms work, that would be some Apple or Google service.
Starting point is 00:24:16 So it's possible, of course, in this case, to revoke your contribution, right, by essentially double spending it before the threshold is reached. Now, I understand why this is technically, you know, that's just how it works the way this is constructed. Do you think this is a good thing or it's just a thing that, you know, is a consequence of how insurance contracts work in Bitcoin? Well, I mean, it's fundamental to the definition of an insurance contract, right? The whole point of a contract like this is that you're pledging that you will give money. That's why it's called a pledge.
Starting point is 00:24:52 But if not enough other people pledge, you don't lose that money. It's still your money. You could spend it on something else if you wanted to. Otherwise, you're just giving the guy the money. But the issue here is, right? You can take your money back even if it went over. If you, I mean, if you do it before, it reached it. Right.
Starting point is 00:25:14 So once enough pledges have been gathered that, you know, the contract is claimable. Once, you know, at that point, the guy, all the guy has to do is click the button and the money becomes his. But you can revoke your pledge before. do that sure if you don't want to take part of them so because I was thinking like here would be a possible attack scenario right so let's say I I want to fund the projects and I want to raise a thousand big points now if somebody doesn't like my project and you know I say let's say I put in a 30-day window if somebody doesn't like my project you know they could put in 500
Starting point is 00:25:49 bitcoins perhaps from different accounts you know so it would look like 200 different people and then you know maybe as it approaches 80, 90%, you start revoking payments. And you start, you know, and then the project like as a potentially... You mean like just to mess with them psychologically? Yeah, I mean, right then, you know, like, you look 25 days in. And from like maybe 80%, it goes down to 30%, you know, gradually because people, I think this would be dramatically...
Starting point is 00:26:21 Well, I mean, you know, first of all... Yeah, you know, it's in, like I said, it's inherent in your arrangement that you can say you will pay and then you actually don't. You know, Lighthouse prevents things getting jammed where people claim they will pay and then you try and collect the money and you can't collect it, right? You don't have to do any manual work to collect this money. Now, if you're in a position where someone really hates you and they just want to like just mess with you by pretending you've got the money when really you haven't,
Starting point is 00:26:45 well, firstly, that's kind of risky for them, right? Because if someone did make a big contribution at the last minute, then they can still take their money. So it's a potentially expensive attack for them. But also, like I said, Lighthouse is solving one very specific problem, and it tries to solve that problem well. But nothing stops you from having a platform on top that, you know, has ID verification or, you know, verifies that people really are different people in some ways and watches out for, you know, people engaging in abuse of some kind. You could effectively go and find some additional service on top of it, you know, in the case where that was an issue for your project, which I would hope mostly it isn't.
Starting point is 00:27:25 Could you maybe talk about some of these services that could emerge from Lighthouse? Sure. So actually, that's a good segue into my company. So I've created, I left Google and I created this company, Venuous, and the goal of this company is to fund decentralized infrastructure, which is a wider remit than just Bitcoin. Well, actually, the goal of the company is just to earn me a living when it boils down to it. And I would like to do that by building the centralized infrastructure. So one of the things that I'm developing in and around the time I have and I'm not doing these other tasks is Venumerous will be one of these platforms.
Starting point is 00:28:06 It will be a platform where I post projects and maybe I post projects on the behalf of other people, which are about upgrades to Bitcoin. So if you're interested in, if you have some Bitcoins and you're interested in investing in the Bitcoin system itself, you can go tovenoros.com. You'll be able to find, you know, projects where there are like new features for wallets, privacy upgrades, security upgrades, scalability upgrades, decentralization upgrades, you know, cool new apps, all kinds of projects you can pledge towards. And then this will be effectively how I decide what to spend my time on.
Starting point is 00:28:44 I'll look at what the market is interested in effectively. AndvenorS.com will be one of these special, crowdfunding platforms, which brings people together who have a very specific niche interest, which is the development of decentralized digital infrastructure. So basically your funding feature requests and bug reports? Yeah, so all of this got started because, you know, I've been very worried for a long time. The Bitcoin, the core Bitcoin system is radically underfunded, underdeveloped compared to where it needs to be. So a ton of work is being done in the Bitcoin space around startups.
Starting point is 00:29:23 They're developing services. This is great. But the core system itself still has, you know, glaring problems that we've known about for years. And they don't get fixed because basically the only people who are working on Bitcoin core at this point are paid by the foundation and occasional volunteers. You know, volunteers who contribute, you know, fixes here and there for small things. But the big upgrades of protocol needs are not getting done. And, you know, a part of this is obvious.
Starting point is 00:29:49 Bitcoin itself is a public good. If you upgrade the core infrastructure, if you design a new protocol, you can't really stop anyone from using that. It's not like a Bitcoin ATM or an exchange or a wallet provider where you could charge people for access to it. The core system is open to everyone. So this is a public good and way to fund public goods is assurance contracts and what better ways to fund Bitcoin development itself than with Bitcoin insurance contracts. Now that's interesting. So you say that there's obviously,
Starting point is 00:30:18 obviously there's a lot more investment and time being spent building on these other things or these services and Bitcoin 2.0, Ethereum and all this stuff. And in the end, not a whole lot of time and effort and resources being allocated or being spent on the Bitcoin protocol itself. Why do you think that is? Why do you think not more people aren't investing their time and resources in the Bitcoin protocol? Well, I think there are a bunch of reasons.
Starting point is 00:30:48 So one is obviously this money reason, right? How do you make money? How do you even pay for yourself if you're going to upgrade the Bitcoin protocol? Yeah, but I mean, there's lots of open source projects out there with lots of people contributing and not making any money. Well, you know, you'd be surprised, right? Like the big projects like the Linux kernel and so on, actually most people are paid. You know, volunteers still make up a really important role in the open source world,
Starting point is 00:31:14 of course, right? They're doing a lot of things. There are volunteers contributing to Bitcoin J as well for example. That's great. But, you know, if you scratch the surface, you'll discover that a lot of people who look superficially like their volunteers, they're actually doing the heavy lifting during work hours because their employer benefits from that software in some way, right? Sometimes they make it explicit and sometimes they don't.
Starting point is 00:31:36 Now, in the Bitcoin world, basically we solve this problem. Today, this funding issue, this public good issue actually to the Bitcoin Foundation, which is sort of another way of solving the public good problem, right? You have like a charitable foundation. Companies that want to benefit the core system, they all donate. There's kind of a social expectation that if you're a big company and you're building on top of Bitcoin, that you will take part of the Bitcoin Foundation
Starting point is 00:32:02 to help fund Gavin and Corey and Vladimir and these guys. But the problem is, you know, I mean, progress on the core protocol has slowed down for a lot of reasons. funding is one, but there's a lot of problems within the core development community as well, which are social problems. You know, my plan with Lighthouse and Ben Urius is only to tackle the funding issue. People should be able to quit their job and upgrade Bitcoin in some way and not have to work for the foundation. They should be able to do other things.
Starting point is 00:32:36 So it seems to me like the best way this would have happened, and this is kind of a theoretical point, I don't think it was possible at the time. But if, you know, Satoshi in the beginning had said, you know, from the transaction fees, part of all that transaction fees go in this kind of bounty fund and then, you know, Bitcoin holders can use a proof of stake to vote on, you know, which projects should get funding. Do you agree with that? Do you think that would, that could have been at least theoretical if the means had been
Starting point is 00:33:14 I mean, there the time. No, I don't. I mean, I think, you know, if you look at the feature that Lighthouse is built on, the sick hash any one can paddy, there were not that many uses for it outside of assurance contracts. So I think maybe he did think about this. But to say to put aside some fraction of transaction fees for some fund, you know, the obvious question then is who decides who gets the money from that fund.
Starting point is 00:33:36 And you say, well, maybe everyone can decide through proof of stake. But the issue with, with bounties and so on is, they are first come first. Bounties have been tried a lot of times in Bitcoin developments. People have often tried to incentivize development with bounties. But there are a couple of problems. One is that they often are too small. So, you know, you find people saying,
Starting point is 00:33:59 oh, I've put like, there's a bounty of $500 and I want, you know, a complete upgrade of Bitcoin to some new thing and it'll take a year. It's like, well, you're not going to get, you know, you'll get like a few hours of work out of a skilled guy for $500, right? You're not going to get like a massive upgrade. grid. So that's one problem. And the second problem is that it creates a race where the first person to, you know, technically meet the criteria of the bounty gets all the money. And anyone else who is a little slower but did a better job, it gets nothing. So this incentivizes people
Starting point is 00:34:29 to cut corners as aggressively as possible and to produce something that's, you know, really atrocious in many cases or has, you know, yes, it's a program that does what the bounty requires, but it doesn't have a user interface. It's only usable by geeks or whatever. So bounties, largely been a failure. Assurance contracts resolve this problem because, you know, you can stand up and say, I will, you know, I will solve problem X and it will cost Y amount of money. And what you can even do what I'm hopefully intending to mostly do, which is actually already create the solution, and then stand up to say, this is what it costs me, is it's what I'm going to charge, like, this is my price. And then you know what you're going to get.
Starting point is 00:35:07 There's no danger of, you know, someone nipping in early and you get a terrible product out, because you're pledging towards a very specific outcome. Now, I don't know how you could integrate that with some kind of, you know, like who even decides what fraction of the fees get sent to developers. Developers, I think it's very hard. Yeah. It seems like your approach is economically, though, a bit irrational, though, because in a sense, if you developed something, then this is a sunk cost
Starting point is 00:35:37 and you're probably not going to not want to release it. Well, right, so that's something I'm going to be exploring. Is it, how easy is it to sit on my hands and not give stuff away for free? Yeah. You know, when I came up with this idea and I decided, I thought this was a solution. I looked around for other companies with this business model and couldn't find any. I didn't spend my months looking, so maybe there are some companies out there, but it's not a common business model.
Starting point is 00:36:03 So this is an experiment just as much as Bitcoin is an experiment. Will it work? That's the question. If it doesn't, I have backup plans. Backup plans, my backup plans, you know, in other cases, I just won't do Bitcoin stuff anymore. I'll just go work on some other unrelated piece of software. But I'm hoping...
Starting point is 00:36:20 Don't do that. Well, I'm hoping I don't have to do that, but we'll see. Bitcoin is not guaranteed to be a success, and everyone involved in it must bear that in mind. Now, my plan is that on this... on my company website, which is primarily going to be this kind of, you know,
Starting point is 00:36:38 platform finding projects just like Kickstarter is that there will be an ability to pre-pledge so people can say this solves two problems people can say you know I agree to put $200 towards this $500 but no actual
Starting point is 00:36:54 money is moving there's no credit cards there's no Bitcoins there's no lighthouse out at this point it's just a promise effectively and then the idea there is this act as a hint about what people would be interested in funding right so the idea is that it's just a promise, right, people could go back on that promise, but the goal is that by just taking a few basic precautions,
Starting point is 00:37:18 collecting email addresses and things like that, should be able to get a rough feel for what people are interested in funding. And then also people have pledged in stable currencies. So, you know, if people pre-pledge to a certain project, and then I go and write that project and say, okay, it's available now, then, you know, obviously once the contract is fixed in Bitcoins, then you're kind of stuck with it until the project closes. So at that point, you would hope that, you know, you could actually get most people
Starting point is 00:37:48 who promised to actually pledge for real with real bitcoins within the space of a week or two. So you're not too affected by volatility. Now, are you the only person that's going to be working on these sort of pledged upgrades or are there other people who will be joining you to? be paid in effect for upgrading the corporate call. Well, a lot of people, like, so a lot of people have expressed interest in this funding model, a lot of people who would like to work on Bitcoin full time or they already are, but they don't really have a business model yet.
Starting point is 00:38:21 They've been talking to me and say, hey, I would love to be able to use this app. Let me know when it's ready. Now, to start with, it would just be me. I want to see if I can actually make a living this way. Obviously, if I'm successful and there's a bit of a bit of, backlog of projects, you know, more people have pre-pledged, more people are pledging money to these projects than I can actually get through myself, then it would make total sense to open this up and allow other people to be taking part in this platform as well. Like,
Starting point is 00:38:49 because there's plenty of work to do. That's not, running out of work is not an issue. The question is to what extent will the Bitcoin community step up and funded? Because the companies have the funding, they've got the profit, they've got the venture capital, and they are they need Bitcoin to work well. So my plan is to mostly try and get these companies to pledge. And this results a problem that you know, BitPay or Coinbase or, you know, whoever, none of these companies want to become the sucker who is always paying for the upgrades to Bitcoin and the other companies sort of get away Scott free, right? So it's a way of breaking the deadline between Bitcoin startups as well as individual people.
Starting point is 00:39:28 I guess there would be one issue. I mean, if say, for instance, you're the only one who ends up working on these protocol upgrades on this platform that in effect we're kind of centralizing the development of the Bitcoin protocol. Do you know what I mean? Well, you know, it's already centralized, right? Basically, only people doing any heavy. But even more centralized.
Starting point is 00:39:56 Right. Well, the only people doing any kind of heavy lifting on the protocol today are people paid by the Bitcoin Foundation. And when I say people, all I mean is Gavin because actually there's only three people paid by the foundation to work on Bitcoin code-wise. And of those, Vladimir and Corey both refused to work on the protocol, partly because of these social issues that have come up, right? Basically, progress on the Bitcoin Protocol is ground to a halt, complete halt. So this is a crisis period for Bitcoin in that sense. So if I was to be working on it and I had a sustainable income stream, this could only decentralize things further, even if it's just me, because now you've got the Bitcoin Foundation and the numerous. And especially if I'm working on things that people are pledging money towards and I'm kind of being pulled around by the market, right?
Starting point is 00:40:42 I see. This is free market-driven development. It wouldn't be like I say, this is the next project, you know, take it or leave it, right? I have lots of projects that I could do. And which things get done will depend partly on where the money is. So this is a way that the regular Bitcoin community can also influence development hours as well. I'm hoping to create a marketplace where, you know, people who can put money up can help direct things within reason. Right.
Starting point is 00:41:10 Obviously, you don't want, you don't want Bitcoin to be just controlled by rich people. There has to be some reason to it. But they can certainly help funded. I think that could also be a great way to just get more people involved in the development process. Because I guess most people, even working on Bitcoin startups, et cetera, you don't really know too well what exactly the core developers are working on. So perhaps this would be a way to change that someone. Well, I mean, what these developers are working on is open and you can just go look at GitHub or the mailing lists. The real problem we have now is that people at these startups, they're sending.
Starting point is 00:41:48 me and Gavin feedback saying they're not willing to take part because of these social problems that have accrued in the project. So that's obviously a concern. There could be people working on this stuff, but the environment has become so toxic, they're not willing to. And partly, you know, if you feel like you don't know what the core developers are doing, the brutal reality is that most of them do not much. There's almost nothing happening, actually, on Bitcoin core development. Only Gavin is working on any major. upgrades and he can only tackle one at a time. So last year, a lot of time was spent on, you know, payment protocol. I did a lot of work on that as well. A lot of time I spent on random
Starting point is 00:42:28 misc things that crop up like, you know, change forks and performance and, you know, transaction malleability stuff. But if you look at, you know, new features and other improvements, then only Gavin is doing that. So he's just one guy. So that's the problem I'm trying to help us. That is very worrying, though. I wasn't aware. is quite as bad. Yes, I'm afraid it is. I mean, if you, there's a sort of group of people who, I've never seen this in any other open source project, by the way.
Starting point is 00:42:58 This notion of a core developer is something that's unique to Bitcoin as far as I know. And I've been involved in open source projects for 15 years. So, you know, I'm not a newbie when it comes to open source. But yeah, no, it worries me too, right? But two of the three people, I've talked to them about it, two of the three people paid by the foundation, they're not willing to think about protocol upgrades at all. Is that because they're just too busy, like the bug fixes and sort of keeping things running?
Starting point is 00:43:27 Or is there another reason for that? Well, you know, there is a fair amount of work involved in just keeping sticking over. But no, I mean, the core problem is that basically any change to the protocol gets, well, any proposed change that's non-trivial, tends to devolve into giant arguments. And historically, Bitcoin has had a consensus space. development approach. So proposals be changed and reasonable people would discuss them and some consensus would arise. And in recent times that process has broken down completely, such as now even quite simple changes, can't get consensus anymore. So, and people see this and
Starting point is 00:44:04 they see these giant flame wars effectively and they say, I don't want to, you know, it's not fun to work on this stuff. I don't want to go anywhere near that. You know, I'm not interested in doing work that then gets rejected. or ignored because, you know, this ever larger group of people, they all wield veto power overchanges. So there's a structural problem there. The chain of command has become less clear and less asserted effectively. And the problem is that it makes it difficult to get things done. So that's the reason that a lot of this stuff is moving very slowly, right? Improvements that have been talked about for years, no one even starts work on them now.
Starting point is 00:44:43 And so you said Gavin is sort of the only one working on upgrades to the, the protocol. Can you talk about some, what those upgrades are? Yeah. So Gavin, last year, me and him tag teamed on the payment protocol, of course, which was rolled out. I started to roll out at the start of this year. Now he's working on floating fees, which I know you mentioned earlier. This is, you know, this is attempting to fix the problem that fees are pretty broken in Bitcoin. There's no fee market to speak of. it means that as Bitcoin gets more valuable in dollar terms, the effective fee we're paying in dollar terms per transaction goes up
Starting point is 00:45:22 for no real reason. It's not like an transaction actually got more expensive to process. It's just because of the way the software works. So he's been working for a while now trying to fix that. But, you know, like I said, he's just one guy in and progress is slow and upgrade. A lot of these things are upgrades to the entire ecosystem, right? Everyone has to opt in and upgrade to floating fees for that to work. So it's a very difficult sort of change.
Starting point is 00:45:46 So can he tell us how he's thinking about going about that? Well, so what he's been working on in recent times is changes to Bitcoin core that will it effectively watches the behavior of the network and uses data it records to estimate what fees have paid to confirm in what amount of time. So I worked on this with him over Christmas as well. We modify the algorithm. And the idea is that Bitcoin core, the wallet, you'll be able to specify, I want my transaction to confirm, you know, within one block, within 10 blocks.
Starting point is 00:46:30 I don't care if I weighed 100 blocks. And the outcome of this is that, you know, when you send a payment in Bitcoin, you'll be able to actually drag a slider from left to right, you know, from slows or fast. faster slope and the wallet apps will estimate the fees they have to pay in order to get confirmed within that time. This is the first part of like establishing a fee market where miners compete with each other on their fee policies. But as a minor you kind of have an incentive to just include you know whatever transactions pay higher fee than your you know marginal cost or your cost of including the transaction. I actually ask guys
Starting point is 00:47:13 Gavin about that because I thought like, well, you know, the cost of including transactions is basically going to be zero. And he said it wasn't the case because of a because it makes you a block bigger and then it takes longer to propagate so you have a higher risk of an orphan block. So that this would sort of define the lower bound of the fees, which seems like a very strange way of determining the fees? It's not. I mean, so a lot of the things you realize is a lot of these issues were flashed out in various forums, you know, as way back as 2010. You're correct. The establishment of a fee market should drive fees close to zero, not actually to zero,
Starting point is 00:47:58 because, you know, there is some cost associated with including a transaction. But in theory, in a healthy mining market, you know, miners should prefer to take the fees rather than leave money on the table. And this means the fees should drop to what it actually costs to include a Bitcoin transaction, ignoring without the cost of mining itself being considered, which for now is being funded by inflation. This is, this might seem useless or reckless in some way, but it's actually by design. So transaction fees in Bitcoin, it doesn't work as a way to fund mining, actually, which is how Satoshi originally. envisioned it and it doesn't work for exactly the reason you specified.
Starting point is 00:48:42 If miners are genuinely competing with each other and we don't have a cartel, then the fees should spiral downwards to the marginal cost of inclusion in the block. And so for now, we don't care because, you know, miners are getting 25 bitcoins per block anyway, and in future they'll still be getting money per block, even if they include no transactions at all. And in the long run, we need some other way of funding this. And this resulted in huge flame wars a long time ago.
Starting point is 00:49:12 I say a long time ago. It's not really a long time ago. 2010, 2011, 2011, I think is when most of these debates happened. And people came up with all kinds of interesting solutions to this problem. The most annoying of which was, you know, hey, we should just limit Bitcoin so it can hardly process any transactions. Because it's so amazing, you know, people will attach huge fees to their transaction. just because they want to use Bitcoin, and this will, this artificial throttling of supply, of block space supply, will force fees to be as high as we need to protect the system.
Starting point is 00:49:49 This was not a very convincing argument. For example, Peter Todd made this argument a lot. The problem being, of course, that, you know, we don't want a system that's kind of useless and only rich people can afford. That's not really a very inspiring thing to work on. We want a system that is accessible to everyone, including poor people. So I proposed an alternative which is, hey, guess what? Assurance contracts, right?
Starting point is 00:50:09 You can actually, you wouldn't do it with Lighthouse because Lighthouse is a GOO app that's designed for end users, but you could have a different kind of app that forms what I call network assurance contracts. And this is what are people who benefit from hash power, people who benefit from difficult to construct blockchains. They form like rapid micro assurance contracts. So they can have a peer-to-peer network where they're actually forming transactions that spend, all the money to fees and which effectively force people to chip in and help pay for mining cash power because effectively mining is a public good right because this because miners have this incentive to include every transaction no matter what the fee you can't really stop someone
Starting point is 00:50:56 from getting their transactions like yeah so this is this is not hugely well thought out because it's a problem that will occur, you know, along the way in the future we think. But at least in theory, you know, we recognize mining as a public good, maybe some kind of assurance contract contains a solution. You're still going to have the free rider problem in that case, though. Yes. Yeah, I mean, I've been thinking about that as well. And I agree, it's a very strange thing that, you know, in a sense you have the, essentially
Starting point is 00:51:27 all the Bitcoin holders are paying for the security of network through the inflation. now and that's going down and there seems to be no clear way, you know, to solve this problem with the transaction fees. I mean, I think you described it extremely well. The idea is interesting. I guess if you could sort of include this insurance contract automatically in wallet software and maybe it would be cheap enough. Yeah, sure.
Starting point is 00:51:55 So, I mean, you can imagine everything from, you know, payment processes like BitPay doing this. So, you know, everybody being integrated. into wallets and everyone's wallets, you know, taking part through some big peer-to-peer network. You can imagine lots of scenarios. That's super interesting. I've never heard about that, but yeah, that's a very interesting idea, I think. Speaking of fees, you mentioned in one of the talks, I forget which one it was, but
Starting point is 00:52:18 when speaking about the payment protocol, that the payment protocol should allow the receiver to pay the fees. Can you talk a bit more about that? Yeah, right. So, I mean, the funny thing about the way Bitcoin is to cycle, is senders pay fees, but it's a receiver who cares about double spending this. So, you know, it became obvious while we were thinking about these questions around the economics of mining and so on. And I remember actually giving presentations to management inside Google back in 2011. And, you know, these are smart guys, right? So I gave a presentation to the head of Google research.
Starting point is 00:52:53 And he immediately, like, seized on this question of how does the economics of mining work? Does it work, you know? Does it turn into a race to the bottom where there's no one is. mining because no one is paying for it. And, you know, these are very challenging questions. For example, how much mining does the blockchain really need at all? I think we're in this really terrible situation at the moment. Bitcoin has got itself into this really terrible situation
Starting point is 00:53:18 where there's huge amounts of energy being put into mining, and yet the chain is extremely insecure because of, you know, g-hash.io, because of mining pools, mining centralization. We've got this absurd scenario where people are building an entire data center farms, just to mine Bitcoins, yet we are still insecure, very insecure, right? The whole system could be overridden and people would double spend just one guy deciding it effectively at this point. You know, Jeffrey Smith at G-Hadio could double spend. But even if he didn't have the majority that he seems to have more close to it, you know,
Starting point is 00:53:51 he could team up with another guy and two guys could double spend. So right now we've got too much mining and yet somehow we're still insecure. So this question of, you know, how much money does, do the receivers of transactions want to spend in order to secure their transactions against double spending is a very complex question. Not everyone cares about double spending equally. But especially the people who don't care about double spending and the people sending people money because they know they're honest. Or they know they're malicious and they don't want to attach any fee because they want to be able to double spend. So it's always a receiver that cares about fees. And, you know, we need to fix this.
Starting point is 00:54:31 So the payment, currently we scrape on by with everyone just attaching a kind of a hard-coded fee by convention. But ultimately, what we need is receivers to be able to say through the payment protocol. I think, you know, you're a double spending risk. So I'm not going to accept this payment unless you attach a reasonably high fee. Or they could say the opposite. You know, you're a trusted value customer. I don't care if this payment takes two weeks to confirm. You know, don't attach any fee at all.
Starting point is 00:54:59 for example. And then the payment protocol is the ideal way to communicate that. I see. Okay. Well, maybe we should move on to Bitcoin J. So you developed Bitcoin J in 2011? No, I started in 2010. No.
Starting point is 00:55:21 But it wasn't released until 2011. Okay. And so Bitcoin J is this library, Java library, which allows you to create an app essentially or a program and interact with the blockchain. It's used by the Android wallet by Andreas Schilkbach. It's used by multi-bit by Hive. Now, recently it's been talked about that you want to include Tor in Bitcoin J, where all traffic essentially moving in and out of a wallet would,
Starting point is 00:55:58 Transact through Tor. Is that already implemented? Or is that in the process of being implemented? No, it's actually been merged into the master branch of Bitcoin J. So that's the version of the code that's being developed. It's not been released yet. But yes, it works. And, you know, I have an example Bitcoin wallet on my desktop that connects through Tor.
Starting point is 00:56:17 And it works fine. There are a couple of things we're going to need to do before. That's usable by everyone. One is that the tour library we use is quite new. It seems to work pretty well, but we know it has a couple of bugs. And if we know the bugs exists, it can break it, we should probably fix it. So there's a bit of maturing that needs to happen with that library that we're using for Tor. And the second one is it does slow down startup a little bit, or it can do.
Starting point is 00:56:47 And you know, not everyone cares about additional privacy or the additional security. So, you know, for example, if you're at home, it doesn't really make a whole lot of sense to use Torp because we probably trust your cable company, for example, your home Wi-Fi is private to you. So, you know, we need to figure out how to deal with that. Probably what we'll see in the next generation of that, next sort of generation of wallets built on Bitcoin J, you know, the next versions of Hyde and the mobile wallets and so on. It's like a tick box, right, in the preferences that say, do you want additional privacy and security at a trade-off that the app will take longer to start up? And then we can get feedback and testing and maybe find a few more bugs.
Starting point is 00:57:28 from the people who are, you know, willing to opt in. With the eventual goal being that maybe all traffic should be rooted this way by default, but, you know, we need to make sure it's not going to harm stability. So the idea of integrating Tor into Bitcoin J was primarily to stop man in the middle attacks, for instance, on a public Wi-Fi network, or are there other risks? Well, there are a couple of reasons. You know, one is this issue of, yeah, if your internet connection, is not trustworthy, or I should say if your internet connection is less trustworthy, if you've
Starting point is 00:58:02 even Tor, then obviously you can use Tor to upgrade. The other reason is, you know, to try and just raise the bar a bit for snooping by national governments and other people who are doing bulk intercepts on the wire. It's not completely clear to me how successful Tor can be at that when using Bitcoin because of the details of how it works. But, you know, it can't really make me easier. it can only really make them harder. So that's another reason to do it. Now, you mentioned in this talk, so the talk I was referring to earlier
Starting point is 00:58:38 was the one you did at the CoinSrum earlier this year. So you mentioned that there are some other issues with using Torr, which is that the peers that you connect to are now hidden, or at least their IP addresses are hidden. So there's a problem of trust of the peers that you're actually connecting to and sending transactions to from your wallet. And so you mentioned some possible ways of solving this.
Starting point is 00:59:08 So there's a proof of sacrifice, which is essentially miners-only trusting nodes that would sacrifice a small amount of Bitcoin, so it would make it expensive for someone to run a large amount of nodes. And also this other kind of really this thing that I had never really heard about, which is a proof of passport, which is to prove that you're in fact a real person because you have a passport. Now, can you kind of go into detail about how this would work? Because, I mean, not all passports have.
Starting point is 00:59:43 Of course, this is a proposal. I mean, I understand it's something that you propose in theory if all past, if everybody had a passport or if all passports had an if she chips in them. Can you just talk about how this would work and how you, how you, you can verify that somebody has a passport? Yeah, sure. So actually, let me just correct something you said a bit earlier. The way that we've implemented Tor in Bitcoin J currently, that's not a risk, actually, because we're not connecting to Tor hidden services.
Starting point is 01:00:11 We're connecting to Bitcoin nodes on the regular internet through Tor. So just like you would if you browsed a website through Tor. Okay, so the Bitcoin nodes themselves are not. Right. So Bitcoin nodes themselves are not hidden services. So you can still pick a collection of IP addresses, and as long as you trust that your internet connection is not being interfered with...
Starting point is 01:00:33 Well, no, let me rephrase that. Without Tor, you assume that if you connect to 10 IP addresses chosen randomly from a set of 8,000, 9,000, you probably got like 10 nodes that are not collaborating against you, right? If there's someone sitting on your internet connection and giving you a false view of the internet, then maybe that assumption is violated.
Starting point is 01:00:53 Now, you know, if you connect to hidden services with Tor, you don't even have that, you know, that issue of the IP addresses and, you know, most Bitcoin notes are not run on Tor either, so you have much smaller set, which is why we don't do it. So I'm not worried about this risk for the way we're using Bitcoin J and Tor together today. This is really future thinking. Now, the proof of passport thing is it's highly theoretical, as you say, partly because the software needed to do it. is not available. In fact, it doesn't even exist yet, right? So this is theory based on academic literature. It's not something you could implement or I could implement today.
Starting point is 01:01:35 It's just an idea of the future based on recent science. So it's still science fiction, effectively, but just quite close to not being. And yeah, so like you said, you know, there are other issues. Not everyone has a passport. Not everyone has an NFC passport. The point of this is really to solve the underlying. problem that Bitcoin is trying to solve, which is how do you obtain consensus amongst a group of people on the internet? And this is, this turns out to be really hard because online there's no
Starting point is 01:02:04 strict definition of what a person is, right? So you can sign up for multiple email accounts, you can have multiple devices, you can have multiple IP addresses, you know, there's nothing really that ties these things together. So creating fake identities is really easy. A mining is an attempt to solve that by saying one CPU, one vote. Each person has a computer with a CPU in it. Of course, we saw how badly this works. The original idea of mining was that everyone would mine, actually.
Starting point is 01:02:37 That's why it was integrated into the original Bitcoin software. You could click a button in the GUI and would mine. And proof of work has failed in that sense, because in reality what we have now is a handful of pools. And the entire system boils down to votes by like five to ten people. So Bitcoin mining is an attempt to solve this problem. So far it hasn't been working. Maybe it's fixable.
Starting point is 01:03:00 So far it wasn't working. Proof the passport takes a really direct approach. It says, you know, if you look at the details on your passport, you know, everyone has a name and birth date and some kind of other attributes that, you know, they will collide occasionally, but we can claim this as your identity and you have only one of them. And then if you could somehow digest this into some kind of anonymous cryptogrammed, credential, you would only be able to have one of them.
Starting point is 01:03:26 And then you could use it for things like voting and you could actually get 10 of these votes and know they came from 10 different people, or at least 10 different passports. And the underlying maths that makes this possible, this is a very uninsuitive concept. So when I first explained it, I got a lot of feedback saying, why do you want to make everyone reveal their passport to take part of Bitcoin? I was like, no, no, no, that's not how it works. We're talking about zero knowledge proofs. So you don't reveal your passport data.
Starting point is 01:03:54 You reveal some mathematical derivative of it that's actually a solution to a set of very complicated equations. These equations prove that you are a unique individual with some cryptographic identifier, some big number, which is your number, and you only have one of those numbers, but it's still an opaque number, right?
Starting point is 01:04:15 You can't see through that number to figure out who really owns it behind the scenes. So, you know, in theory, you wouldn't even need mining or the blockchain in some ways if you could build such a system because you could go back to this world that Satoshi wanted actually, which was one person, one vote, actually. But he lacked the technology to do it. And that's what the proof of passport idea is all about. The reason, by the way, you hadn't heard about it before is I invented it for the purpose of that talk. You mentioned some interesting research that allowed this proof of passport to exist. which was ZK snacks.
Starting point is 01:04:52 Snacks. Yeah. So some really long and complex acronym. But I just thought it was very interesting because, I mean, like you said, this unlocks the potential for other applications as well, you know, like voting or things like that. You know, not identity verification, but I mean, the proof of being one person and not being multiple people.
Starting point is 01:05:16 Now, what about in the event that you have two passports? Like if you have a dual citizenship, for instance. Yeah. Well, that's up to the designers of the system, how they handle that right. Like if you're a dual citizen, you can select. So the interesting thing about these zero knowledge proofs is you decide what data to expose the passport. So what the proof does is it proves that the passport data was valid. And then it allows you to selectively reveal some of that data or none of it or a derivative of it, like a hash of that data.
Starting point is 01:05:46 So, for example, you could say, I'm not going to include the issuing country in the output. And then it wouldn't matter if you had two passports if the names and the birth dates and other things were the same. Now, in reality, of course, names collide. Birth days collide, right? So you can get passports, which are two different people, but they have the same details inside. You can also have the photo, of course, but photos change. So none of these things are perfect, right? You've got an approximate.
Starting point is 01:06:14 Yeah, so it depends. Passport numbers are not supposed to collide, but I mean, this is a huge system, right? It's certainly not perfect, right? You get forged passports, you get fake passports. The digital signatures, theory, you're not forgeable, right? But I'm sure there are some governments that don't take care of their keys properly and so on. Now, it's not a perfect approximation of a person by any means. Some people would be able to get two or three identities.
Starting point is 01:06:39 Some people, you know, would be able to steal passports and generate a stream of identities from them. You know, if you convince people to give up your passports, other people would sell their passports, right? They wouldn't care about your weird cryptocurrency or whatever. They would just say, hey, if I could get 10 bucks and show this guy my passport and let him scan out with his phone, why would I not do that? So it's free money for me and I don't care what my identity is used for. So there are all kinds of interesting questions raised by this. And if someone were to try it, it would be an experimental side Bitcoin.
Starting point is 01:07:11 It's right, you don't know if it would work or not. It might be like mining, it might end up not working because people were just too many people would sell their vote, for example. But yeah, you're right, it allows, it's not only about voting in cryptocurrency, but you know, you could use this. For example, if you expose all of it or your name and your photo, then you can solve the problem of encrypting, of encrypted email. Like if you think about PGP, it really sucks and no one really uses it. And the main reason no one really uses it is because getting people's keys and verifying you actually got. the correct key is really, really hard. The PKI tries to solve this by, you know, having companies which verify people's identities
Starting point is 01:07:51 and issue certificates. And that's almost like a proof of passport, you know, maybe sometimes you have to submit ID verification to get your key. But it's kind of inconvenient and it relies on these trusted third parties who, you know, they can be corrupted and so on. So, you know, if you could just create your own certificate that people could trust, then, you know, you could just watch a video of me talking on your. YouTube and then go look me up in some directory of keys and you could see the key that I created
Starting point is 01:08:19 associated with my passport and you could have a very strong assurance that it really is me, right? It's not just an impersonator. So it can be solved all kinds of problems. I think, I mean, I've been thinking about this whole idea of like how do you verify somebody is a person and somebody is unique for a while and I think there is a tremendous amount of applications for that. And one that I find the most fascinating is, you know, remember something sort of similar was done, or I actually don't know to what extent it was done, but at least they announced they would do it, which was an aurora coin in Iceland where they wanted to give, you know, a certain amount of their currency to every person. Now, I think what would be really fascinating is if you did something like a global basic income that, you know, your monthly, you would give like, let's say, a
Starting point is 01:09:11 thousand of your world coins to every person in the world. And, you know, it doesn't have to be any approval by any government. It doesn't have to be legal tender anywhere. It will just establish its value in the free market. You know, some people will like it. Some people will ignore it. I think that would be extremely interesting. Yeah, sure.
Starting point is 01:09:33 I mean, a lot of what we do in computing and cryptography and so on is working around this fact that identity on the internet. So it's not ideal for what we want. You know, sometimes it's not private enough and sometimes it's too private. And if you think about even very basic things like spam filtering, you know, why does so many people use Gmail? I used to work on Gmail.
Starting point is 01:09:54 It's a great product. I'm very proud of what we accomplished. But, you know, we've got to be blunt, right? A big part of the reason that Gmail is the biggest email network on the planet is because it's got the best spam filter. And people don't want to run their own spam filters because it's so hard. And why is spam filtering hard? well because you can't really ban anyone from sending you email, right?
Starting point is 01:10:13 Because IP addresses can be sold with your botnets and all kinds of things. There's no real way of stopping someone to sending you money, send you email if they are really determined. But, you know, with such a system, in theory, if we had had this right from day one, you know, maybe anyone could have a really excellent spam filter. And people would not be centralizing around the hands of a big email networks. As Jeff Jarvis puts it, emails broken because it's sender controlled. Yeah, right. Well, email is broken because, you know, it doesn't have any real way of banning people who abuse it and it's free. So you get a lot of abuse, it's dominated by abuse.
Starting point is 01:10:51 Now, just coming back to Bitcoin J, we talked to Wendell Davis a few weeks ago about Hive. And so Hive uses Bitcoin J. So when I installed Hive, I was surprised to find out that I had to install Java in order to work and later found out that it was using Bitcoin J in the background. although the app is developed in Coco. Now, do you have any plans or are there any ways to port Bitcoin J to another language that maybe may be less resource intensive or like work better in a native platform? Well, I hope that all you have to do is press the button to install Java. Like it's a bit annoying that you have to do this, but it's actually Apple made it pretty easy.
Starting point is 01:11:33 What we're working on is bundling a stripped down version of Java into Hive. I've been looking at that. It's one of these million things on my platefront, so it makes a little bit of slow progress. The hive guys want me to do that. And then, you know, you wouldn't see this pop-up message the first time you use it. In terms of resource usage, I mean,
Starting point is 01:11:53 we haven't encountered any problems with that right. There my Bitcoin J was written to work on old Android smartphones. Back when gingerbread was the most common, and the most you're going to get there is like 16 or 32 megs of round. So by the standards of modern apps, you know, the fact the whole thing connects to the period network it down as a blockchain, it runs a wallet, all in, you know, it can actually do that in 16 megs of RAM is not that bad. We're going back to like the mid-90s the last time computers
Starting point is 01:12:18 had that much memory. So I'm not worried about that as a language. The way language design is going as a trend is that people who design new languages, by and large, they don't design native languages anymore. And the reason is that you don't get access to any good libraries if you do that. You can only use libraries written in C effectively. Apple are kind of breaking that trend a little bit with Swift because they have this big legacy of Objective C stuff and they want to like evolve that platform. But you know, like you can't easily use Objective C libraries from Python, for example, you would need a lot of complicated binding to do that. So what new languages tend to be developed on is either dot net or the JVM because that way they can try out all kinds of new
Starting point is 01:13:05 ideas and language design. But still, access to all of those great libraries because the type system is a lot more well defined. So Bitcoin J, there are people using it from LISP, from Scala, from JavaScript, from Python, even, and they're doing that through the JVM. I would love to expand it out more to cover even more languages. It's not going to be rewritten any time soon. It's a big code base by now, but we can do things like automatically transpiling into C++ and stuff like that. So I think most people should not be building one as in C++ because it's too risky but if you know people want to do that
Starting point is 01:13:43 then it would be possible cool well um i think we're kind of at the end of the show is if there people want to learn more about your projects so is you can sign up i think for your blog updates is that right yeah if you go to veneumeris.com there's an email list and there's a blog as well so if you're interested you can just sign up there it's very low i haven't even sent any emails yet So it's very low traffic. Talking about spam and things, you know, I'm not intending on sending lots of updates, but you can sign up that.
Starting point is 01:14:13 Yeah, but I guess once Lighthouse is out, or perhaps if the talk, I would love to see the talk you gave at the Amsterdam conference. So if those are out, perhaps you'll send an email. When the video is available, I will email them out. Okay, perfect. Do you have any idea of when that video is coming out? Are you waiting for a record foundation to put out?
Starting point is 01:14:32 Yes, yes. I don't know what the delay is. Okay. I think they haven't put out anything. except maybe the keynote. No, they've put on a few talks, I think. But yeah, yeah, we're still waiting for it. I want to watch it.
Starting point is 01:14:43 Now, when's Lighthouse coming out, do you have any idea of when we'll see a first beta? Well, to some extent, it's done when it's done, but I'm aiming, you know, I want to push myself to try and get some kind of beta out by the end of July. We'll see how that goes. The initial versions will almost certainly be locked down
Starting point is 01:15:02 or crippled in some way or proprietary. You know, they won't be open source, because I want to raise the money to release Lighthouse with Lighthouse. So by definition, it can't be given away, can't be given away for free. So the first version, maybe it will only be usable with projects that come from me, for example. But I'm still figuring out the exact details of how to raise the money for Lighthouse itself. And are you looking for any open source developers to join you on this project? You know, right now what's happened in recent months is a Bitcoin J has really taken off.
Starting point is 01:15:35 We've been getting a ton of new contributors, a ton of big major feature upgrades going in there. Like one guy now is working on multi-sig wallets. So, you know, you can have a third-party risk analysis provider with your multi-sig wallet. And if you want to help out, you know, right now, lighthouse is not open source, right? I will have to wait to raise the money before this. But if you want to help out on these kind of ideas, then working on Bitcoin J is a very easy and very straightforward way to do that. Okay, great.
Starting point is 01:16:04 And that's, I guess, on GitHub. You just go GitHub.com slash BitcoinJ, Bitcoin. Yeah, you can go to BitcoinJ.org, and that's our website. And yes, the code is on GitHub. And there's a mailing list. It's friendly. It's got a lot of people on it. You know, if you're looking for work, you can just ask them.
Starting point is 01:16:20 And people will give you ideas for what to do. Cool. Well, thanks so much for joining us. It was really lots of fun to talk to you. And extremely interesting to hear both about Lighthouse, about, you know, the fees and sort of the future of Bitcoin J. Bitcoin development. So thanks so much for joining us today. Thanks. It's been a pleasure. So a few things. If as we come kind of the annual show, if you want to support
Starting point is 01:16:46 Epcenter Bitcoin, you know, you can leave tips. It's episode of Bitcoin.com slash tips. You can also follow us on Twitter at Epicenter BTC. And if you like to show if you want to leave some feedback, if you feel like you can do something better, you can also leave a review on iTunes, which also helps new people find a show. And finally, every Friday I send out a newsletter. It kind of goes through the most important news and developments, some links to blog posts. So you can sign up for that at episode of Bitcoin.com slash newsletter.
Starting point is 01:17:21 So thanks so much for listening and we'll be blacked next week. See you. Bye-bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.