Vitalik Buterin and Peter Todd Discuss Blockchain
Ethereum Developers Toronto Meetups · 3 Feb 2016 · 1:13:52
Blockchain scaling is framed as a trade-off: fewer resources can deliver more scale, but leave fewer people in control and require more trust. Sidechains are described as functionality and interoperability tools, not a scaling solution, while prospective alternatives use random sampling or keep agreed state-channel updates off-chain until settlement. The discussion qualifies the technology as experimental and notes that privacy can still leak through IP addresses, timing and transaction correlations.
Speakers
Topics
From Ethereum Developers Toronto Meetups, hosted by Ethereum Developers (Toronto).
Transcript
and Peter to uh vitalic won the coin toss it was totally fair I promise but we can't prove it to you and uh I'm gonna initially ask some questions to italic um we'll explore some things I'll invite him up here pass on a microphone the seat to to sit on and uh after we chat for a little while we're gonna invite Peter up um my colleague Ethan is gonna ask Peter a few questions and then we're going to open it up to the floor we're going to have you guys uh ask some questions of these guys what their work has been lately so let's dig in hello welcome here um a lots has been happening with ethereum lately um I know that I mean um more attention has been U being paid to
the valuation of the token in that end T has been mostly a development project up until this base so uh congratulations on that um the next sort of uh Landmark that we're looking to technically for ethereum is the Homestead release yes can you tell us a little bit more about that and yeah so originally the plan was that a theum was meant to kind of release in several stages where Frontier is this sort of developer preview Herby dragons type of thing and you know command line client no guarantee that there won't be bugs even on our website the word safe is kind of crossed out um Homestead is meant to be the sort of second release where we kind of say that this is the point where norum is actually safe and you know after that
Metropolis is supposed to the gooey Serenity is like you know originally the plan was for serenity to kind of be a theem 1.1 containing proof of stake and maybe a couple other things I think at this point given her PL for Renity would probably be more accurate to kind of Rebrand to with your in 1.5 but in any case you know theide Homestead you know originally ethereum but you know with safety so one of the Milestones that we were targeting is basically that has for the network to be without any kind of consensus books for four weeks so that's been true for eight months at this point so uh fantas yeah yeah so that's so the other thing that we wanted to do is we also had the
graphical so graphical user interface so missed we wanted that to be ready for Metropolis but we're taking this path where we're starting off with a kind of minimalistic version which is the wallet and then going up from there so H that is going to include a kind of a kind of user friendly release of the of the ethereum wallet um then there's a hard Fork so there are a couple of features that you know people have decided that are kind of not the were a bit lacking in Frontier some sort of very very technical things about about the way that specific op codes work in gas consumption um there's one interest um one question that was that's probably
worth adding to the certified a theorum exam is during the frontier phase how do you send someone ether using only 11,600 gas instead of the minimum 21,000 that PL Lop coal was shutting it off in Homestead um and along along with a sort of slight block a tiny block time a decrease possibly so we're just sort of testing those those changes right now and uh the so we got like you know all of our test Suites uh you testing every single every single case as usual got three at least three clients I think possibly four or five I'm not too sure on these on the
exact details passing them for quite a while now so we're just uh figuring out some final details with the peer-to-peer Network protocol so a homest that release should be ready pretty soon and the release would consist of you know the wallet new version of the client download it yay it works um and you know at the same time we also re on some block during which the sort of Homestead rules are going to flip on so you know that'll probably be you know maybe a couple of weeks after after the release so make sure to make sure to upgrade within that time fantastic it's been great to see uh the development of ethereum over the past year um one of the other comments that someone has made
to me about this past year is uh in terms of blockchain this is kind of been the year of Enterprise for blockchain um we've seen a huge upsurge in Enterprise interests from financial institutions from other institutions um I wonder if if you could comment a little bit on some of the applications that you see and that that you are interested in for blockchain technology and Enterprise um there's a few categories I mean I think there's first of all there's a sort of Private blockchain Financial clearing and settlements type of applications so using you know other blockchains as some kind of database to keep track of ownership of various assets or smart contracts for you know things like clearing derivatives uh different kinds of financial contracts
keeping track even keeping track of collateral and so forth um so yeah in general the idea there is that you have these sort of small consortiums of banks or single banks that want to just sort of create some kind of blockchain platform and you know trade assets around on top of it that's interesting um it seems like you know with one of the benefits of private blockchains particular C always that you know the fact is that they are 100 times more scalable at the current state of technology so you know if there are the sort of onramp that gets us to uh applications that have millions of users quickly than great um there's also iot applications you know IBM's
been working working on that stuff for stuff for a while um and you know there's sort of S type of type of projects sort of all the way all the way on the other end there and everything for for those who aren't familiar what the the yeah so S Walk the idea is it's a stands for smartw walk the S stands for smart um and the uh idea is that it's a lock which which is kind of connected to a token on the blockchain and the theory is that you can only open the loog if the token on the blockchain is kind of assigned to you at that particular time so the theory is that makes it possible to do sort of automated air andb type of applications where you can kind of send your token
into a smart contract it automatically rents it out for a few hours in exchange for some kind of fee that's cool yeah that's uh on the other on there's also the sort of public blockchain side and that could be anything from like company share registration issuing different kinds of digital assets different kinds of financial contracts even sort of time stamping and authorization you know could be anything wow that's uh sounds like a lot and you mentioned some of the challenges of scaling blockchains out to handle all this stuff so I know there's been a lot of different ideas bouncing around the space that talk about ways that we can get the scalability um the first one I'll I'll ask you about is um this idea of of side chaining and of
being able to split something uh move tokens across different networks and specifically um uh I know there's an example of some people who've been working on side chaining something to ethereum uh the the Dogecoin project I think is trying to side chain their coin onto e so talk a little bit about that and the idea of side chain General I mean first of all we'll have to say the exact same thing which you know have to Cle specify even Vlog even Vlog stream said a couple of times which is side chains aren't a scalability solution and the reason there basically is that you know if you have an alternative between let's say on the one hand one blockchain with a gigabyte block size and a
thousand chains that are side chains to each other with each each one that has a megabyte block size then in the second case you have two choices one of them is that all the side all these chains are merge mind they're sharing you know they're sort of shearing security and if that's true then every node has to process a gigabyte worth of stuff every 10 minutes anyway so you're not really improving by much and the other alter is that that's not the case in which case each blockchain is a thousand times more secure so now that said I'll have to say that you know in my sort of shorting and random sampling schemes there are some sort of clever tricks for getting it for getting around that and kind of substantially getting close to both at the same time but that's uh still pretty
still pretty far off um so like side what what side chains are though is a functionality solution so basically well actually two things functionality solution and interoperability solution so the Dogecoin project you know basically you'll be able to take one one unit of Doge and sort of transfer it onto ethereum get one unit of EOS and you know you able take your EOS use it as collateral andp contracts throw it you know put it into contracts that can like move it around under certain conditions and eventually you'll always be able to take your e Doge move it back to Dogecoin and get a doge back so you'll have an asset inside of etherum that actually is kind of securely to a packs to Dogecoin so that's cool um you
know doge is always been my second favorite crypto for for for a long time I can't say always because cryptocurrency has only existed for seven years but it's been my second favorite cryptocurrency for a long time um it's uh yeah I I still remember the first time I like put $1,000 into Dogecoin and then I said I was thinking how am I going to explain to my mom that I invested $1,000 into an internet meme so yeah so that's only the only sort of the first step so theoretically you could you know I think side chaining in general like the concept was invented by blog stream and it was invented by this sort of community that's
particularly focused on the coin aspect but once you sort of follow with your in philosophy and sort of abstract away from the token into General programming you've basically you can basically create asynchronous programming languages with smart contracts that go across multiple chains and that's really cool because you know we s programming is is a kind of Paradigm that people have been using to do stuff like C server applications for 30 years people kind of already sort of know you know know how to work their way around it what the issues are and so forth and you know within that Paradigm people you know could be able to actually fairly easily interoperate um I think some of the initial use cases might even be you know
between ether in public chain and and and private chains just because you know for private chains you don't have to worry about security as much because basically the theory is that you know with these private chains there as long as you have a a sufficient number of you know fairly um fairly reputable entities and it doesn't matter if they combined market cap is 60 million or 60 billion it's uh you know realistically still going to be fine regardless and but then you you know you get the benefits of being able to you know move assets around sort of do things on one chain based on other based on other chains and so forth and IDE will even sort of get the initial scalability benefits of private and the
interoperability of private most of the interop public at the same time and so forth that sounds like a great Tool uh to move things around in this emerging ecosystem that looks like quite um we noted that that was not a scalability solution per se so let's talk about scalability I mean this is something that's been coming up a lot the context of of of both Bitcoin and ethereum and I know that you're doing a lot of scalability related work on a you want to talk that bit Yeah so I think with wall chain scalability it seems like there are sort of two major competing approaches right now so the first approach is this sort of shorting Paradigm and the idea with shorting is that right now with blockchains absolutely every single node in the network or every full at least every
full node has to process every transaction so and the the reason why that that's annoying is basically because as the blockchain gets uh gets more and more notes the you know scalability or the capacity doesn't increase at all in fact the blockchain can never be more powerful a single computer and in fact as the network grows the blockchain protocol actually gets slightly weaker because because latency logarithmically goes up and so the um so basically what that means is that you know the Bitcoin Network even though it has enough computing power behind it right now that it can uh crack and you know in Ed bit has challenge every two
weeks it's uh still you know at the point where it can only process like four transactions a second and so the question is you know if you can if instead you can come up with a paradigm where the transaction processing is actually split up and kind of parallelized across different nodes and simultaneously do that in a way that doesn't compromise security then you got something very interesting so the approach that I'm looking at is basically the using random sampling so the idea is that you have you know let's say a thousand nodes and then you kind of use random sampling pick out let say some random set of 50 of those nodes have them process some transactions
random sample other 50 have sample process others and so forth then you kind of use proofs and kind of root root hashes and then you have this sort of smaller top level chain that deals with everything but it only deal deals with top level hashes so it's not as big so that's kind of the sort of Baseline and you know the now of course one issue there is that in order to get in order to get to that I mean first of all you have to kind of figure the crypto economics out but then you also have to figure out well how what happens if I wants to do it may have a transaction I want to have a transaction that goes from this part of the state to some other part of the state and like it does a whole bunch of major updates and it
turns out that there aren't any nodes that actually have all those different parts of watching at the same time and you know that's where as syncr comes in then the question is how do you actually sort of manage all of that what are the rules that you set so that's one approach the and that's kind of what we're looking at for C the M 2.0 right now the other approach is State channels so this is kind of a generalization of you know Bitcoin lightning networks which are themselves a generalization of Bitcoin micr payment channels so the um idea basically is that you have let's say you have some application and I know just as an example let's say two people want to play chess with each
other for money and they wanted they want it to be trust free so why not just do it on a blockchain so the naive way of doing it is well okay Pawn E2 E4 send the stick transaction goes on the blockchain smart contracts evaluates it makes sure that it sort of follows the rules for chess then you know kind of updates the state then okay you know you do e75 R and F2 F3 something else H G2 G4 Queen d8 H4 check made in three moves and you know at that point you win five E you know you win The Ether because the contract sentence you automatically problem is each one of those moves had you know it's a transaction on the blockchain so with a state channels the idea basically is that instead of
sending every single update to the blockchain both all the players involved would um end up basic you know kind of agreeing on this kind of T this kind of some an object we can call kind of a ticket that represents the initial State then if one person makes an update then that person can create a sort of new proposed ticket everyone else signs a ticket and if everyone signs the ticket then that that ticket kind of becomes a new valid State and people can kind of keep on pushing the state forward just between themselves without publishing anything to the blockchain and the idea is that if at some point let's say people decide that okay we're
want to settle then people can then someone can send the transaction into the actual contract and starts a sort of settlement procedure where the ticket with the highest sequence number so the most recent ticket that everyone agreed on wins now if let's say someone doesn't want to create um let's say just drops offline or something similar then the the blockchain always or the smart contract still has the logic inside of it so the contract could do all the logic itself if it wanted to but because all the parties involved know that smart contract could do everything that it wanted to they have they realize that they're not going to
gain anything by cheating and so their incentive is to just cooperate is to just agree on all the updates among themselves even if one of the updates says you know this guy loses and he has to give 500 EA to the other guy he still going to sign off sign off on it because he knows that if he doesn't then you know it's basically going to go to the blockchain the blockchain is just kind of court it's going to run the code it's going to say well too bad you lose 500 ether anyway and guess what because because you not a nice guy I'm gonna make you lose your another 100 ether as a security deposit anyway on top of that so the theory is that with this kind of mechanism the you can kind of do use these sort of cryptoeconomic incentives and try to push as much Behavior as one
up to the sort of higher levels and you don't need to do that much on the actual underlying blockchain and you can sort of compose state state channels together and you know create things like lightning networks for sending payments theoretically you know like the the concept could be extended to any kind of like Financial contracts so like one idea one one approach could be is that if two people want to enter into some kind of derivative their initial ticket might say okay out of this contract you 100 ether to me give 100 ether to you then they might say okay we agree on a new ticket that says run this program the program says how much I have how much you have then a month later you know the contract is supposed to settle
and let's say if they run the program they notice that it would send 1503 me50 to you and at that point they have the incentive to sign a new ticket that agrees on the actual numbers and they move forward from there so theoretically like the sort of content of the of the of the tickets could become could be extremely compli so the the upshot of this is that you get most of the benefits of blockchain without necessarily having to put everything ex another interesting benefit is also on top of the kind of transaction cost Savings of not using the blockchain is also privacy because as long as all the parties agree with each other the contents of the ticket do not are not public and in fact even the tickets themselves they don't need to
contain let's say in the financial derivative case they don't need to contain the code they could just contain the hash of the code so so the and so the information would only get divulged at all if there is a dispute and if there is a dispute well if one guy's mean enough to make a dispute then that guy's mean enough to publish all the details of all the interactions anyway so you know you're not really losing anything that's cool a lot of people know that the topic of State channel is near to my heart as well yeah um going on um further on the topic of scalability um you you recently uh posted uh what you described as a a silly and academic uh uh proposal um to the Bitcoin uh subreddit about uh to the
BTC to the BTC subreddit that matters people that matters uh about uh your proposal for for a softwork change to to change the amount of transactions that can be process in Bitcoin do you want to tell us a little bit about that and yeah well the idea behind the proposal was basically it's this clever trick where you do a soft Fork where the soft Fork kind of forces miners to cleverly lie about time stamps in the correct way in order to kind of basically trick bid's difficulty adjustment algorithm into making blocks easier to create and so in reality on average blocks would get created every two minutes instead of 10
even though from the point of view of sort of what the blockchain thinks it actually sees sort of the time moving forward at like extreme extremely glacial pace and then suddenly jumping forward by eight weeks then jumping forward by four weeks then jumping back by 12 weeks so yeah so I mean when I came up with it silly in acemic yeah when I came up with it at first I it seemed like okay it's just a soft Fork fewer lines of code than segwood and it increases the you know the transaction through b by Factor five then I realized that you could actually Force difficulty all the way to the minimum and so you could create this scheme where basically miners would kind
of create let's say 99 fake blocks and then the rules would say that the hundredth block is softw to be actually hard to create and then they'd start trying keep on trying line the 100 create the H hundredth block then once someone does they'll publish their entire 100 blocks as a package and of course those 100 blocks are going to sort of win out over everyone else who just has 99 blocks and so those 100 blocks together would basically be equivalent to kind of 100 megabyte actual block so you know works you can do quite a lot that's fun actually I think that's a great segue because U I'm sure Peter to has lots to say on the topic of forks and Bitcoin and and scalability solutions um I'm gonna let let you sit down we'll switch over to Peter Tod here but I want to share the
rest of you uh I know we've been digging into some very technical topics here we want to make sure we get the full benefit of of these guys expertise um but after we give them both a chance to talk we're going to be taking questions from you and they do not have to be ultra technical super specific questions feel confident to ask whatever you like so that you want them to be ultra technical absolutely they can be ultra technical if you want you can pitch either side so with that I'm gonna hand us off to Ethan and Peter up here wow that was technical I keep things a little simpler than that no I um Peter Todd uh joined us at Ledger labs and he's a bit coin
core developer of uh quite the Renown anybody who has um read about blockchain some might say Infamous yes Infamous um a quick wi U trenchant insights on the space but let's discuss block to take it back for a moment um we start talking about State channels and complexity and scalability Peter does definitely have a lot to say on that let's start from the basics for people who are coming here and think wow blockchain what is it right where am I and how do I take advantage of it how can I start to understand this space who better to ask than a Bitcoin cor developer and somebody who codes this blockchain right from the beginning um
for reasonably simple terms right for individuals here how would you characterize a blockchain well you know I actually had to go and explain this for my um talk at the scale and Bitcoin conference uh Longo in Hong Kong and while I had had a somewhat more technical explanation you know something I realized was you know if you have a Bitcoin full Noe you know this isn't always obvious to people but fundamentally one of the main things it does is it keeps a database a database of coins the coins of owners and my wallet signs digital signatures and so on say all right database entry you know 1 two 3 4 five should now be empty to
move to database entry 4567 you know moving coins from person to another and yeah you got all this blockchain stuff but all that stuff is about making sure that the state of the database is correct you know the blockchain is our way of figuring out what's the right state of the database it is not you know this magical fancy data structure it is a thing we use keep a database sick and I think you know if you go talk to a lot of academic people or um programmers from you know other Industries they always get bit annoyed like why would I use a blockchain why I just use a database databases work really well well yeah blockchains or databases they just have other properties so then we c c right what are these other properties so I mean let's
imagine you know you have a Facebook account and in your Facebook account well where your St photos store they're stored in a database now Facebook kind of cares if they lose that database I mean they're going to have a lot of pissed off people who don't have the photos anymore but early key thing is like if they lose say 1% of the photos only 1% of their customer customers are angry you know maybe a little more than 1% because their friends would like to see their photos but you know it's limited damage in that most applications for databases every individual record is associated with small number of people who are affected when the record's wrong which means that you know if I'm Facebook and I want to go manage my database it's totally okay if I have
some massive set of servers spread around the world they're not necessarily under great security you know probably pretty good but not perfect and if different parts of that massive infrastructure go down they fail maybe they get hacked whatever the losses are limited problem is financial applications are not like that you know if my definition of me owning a Bitcoin is that the bitcoin's legit well why is it legit well because some guy gave me a legit Bitcoin well why was his Bitcoin legit because some guy gave him a legit Bitcoin so on and if you go back in time give that Bitcoins can be split and recombined you know that's just how transactions work multiple inputs
multiple outputs well in any real world economy if one coin's invalid a year ago essentially the entire set of coins now will also be involved and as long as we want to have a definition of money that you know can't be counterfeited can't be faked that we actually have this traceable record now if I want to know if a coin is valid I got to go check the entire set of transactions or put another way I mean if I want to you know if I want to fully verify everything I need to know about every single time someone buys a coffee with Bitcoin and that doesn't really scale very well and well how do banks deal with this Banks actually deal with this by
splitting things up Banks you know why is it so inefficient to send money from one side of the world to the other well because there's like six different banks in the way all right there's many reasons why it's inefficient but one of many re reasons is that you know there's six different banks in the way and the way is actually moving from point to point is One bank has you know correspondence count in another bank they go get together and they go settle and then make sure the money gradually moves its way from one place to another Crossing like five different fatory regimes and probably a main frame at some point maybe a carrier pigeon Bitcoin though is just updating one database entry so that's very fast it's very efficient I mean even even without all this mining f with
decentralization stuff that'd be very nice but hang on so why didn't we just use a database great because we don't want things to be falsified and if we just use a database obviously someone can go change those records and it becomes very unclear as who owns what money you know most databases don't have digital signatures attached you know if the database administrator falsifies something you're screwed and it's really unclear as to what was right what was wrong when you have really big incentives like I can get free money by falsifying data that's not a recipe for success I mean it's bad enough when someone can go steal your photos it's very bad with money so what do we do well we all go check each other and all right how do we
go deal with this if I got to again check everyone's coffees you know and fundamentally I think this whole scaling debate has really been how do we negotiate this tradeoff you know some people are quite happy with a much smaller number of people actually checking the database while the people who check that database of coins they're also the people who can veto changes you know if you're running a full node I cannot trick you into accepting Bitcoins that you don't think are legit because you check the records on the other hand if you're not running full node for instance you know my uh spbu wallet here on my Android phone that's not that doesn't a copy of
blockchain that Android wallet can be tricked by anyone with hashing power into me accepting coins that don't exist so there's a fundamental tradeoff you know few resources more scale but fewer people in control you know more trust involv so for banks though trying to or any major financial institutions that are business is moving money but you know taking in one part taking advantage of those that friction points giv to these various transfers of wealth across the planet why though should they care CU about blockchain given that they already trust their databases they already have these arrangements made what is it that a blockchain would provide them that's a extra value what sort of value well the dirty secret is
they don't actually trust them I mean they don't trust their employees they don't trust their databases they don't go trust each other you know they there's so many levels of mistrust here I mean you look at another way if they did trust all this stuff why are there so many Auditors you know why is there this massive infrastructure of Labor ensive human being sitting there pouring over transactions and trying to figure out where did the money get created out of there you know where did the money disappeared who Moved what where was it all legit and they're pretty good at what they do you know for the most part bank fraud is you know at tolerable levels it seems especially for the banks themselves who often don't pay for it
but you know it makes it harder to go imagine uh redesigns the system or upgrades the system which are a lot faster because the faster money can move around the faster you can lose it all do some hacker so I think a lot of banks are looking at blockchain Teck and saying hey you know all this extra logging all this extra security this could be really good because I can't actually trust you know the database admins I can't actually trust you know the three different people who have the keys to the system I would much rather have some strong audit walk it could be something as simple as you know when I actually you know as a bank employee type something in we really do want cryptographic signature
it's actually tied to maybe my key card or something and that should go in the database well what does that look like it looks like a blockchain you know with regional architectures so if you look at it from their point of view where I think where they're thinking of going naturally looks like blockchain so when they hear all this blockchain stuff it's oh yeah this is roughly speaking what we're looking at doing anyway one of the words that keeps getting tossed around in the space is disintermediation a number of simple syllables to me get rid of the middleman yeah and as you see with regards of let's say the audit case do you see kind of the the where we're heading is getting rid of Auditors or massive Departments of Auditors moving strictly to checking Merkle trees and uh signatures uh in that database well I
mean this is a funny thing like if I can move money from one place to another without having go trust some human beings to do all the real work me potenti can replace that with computer program I mean put another way for instance if I happen to go have a a nice plane and I happen to like flying I can this intermediate Banks just fly I'll go in my plane and get suitcase full of cash and I'll spend a few hours flying to the other side of the planet I mean in the right circumstances that's a great way to just yeah yeah it works out really well it's just if I do that with computer program that's a lot more efficient but you know fundamentally that is a form of disintermediation and all this blockchain stuff is really
about how you know how good can we make the security to get to the point where we can imagine getting rid of the human beings so in part there's like a private blockchains that you may run between consortion of Institutions that you know trust various nodes um so scaling in that part isn't such a problem but we keep hearing anybody who started to look into the issue at the moment uh here sees violent moerus debates among various channels about uh scaling is a huge problem for the Behemoth in the room how do what is the problem in particular and what do you see as I know this is getting into very dangerous territory but what do you
see as a reasonable solution to that if any well you know first of all I'll point out actually before answer that question even on even at the bank level scaling is a problem it's just a problem at a different number trend D per second you know Banks go and often look at blockchains and say there is no way we're going to run high frequency trading on this even though we'd really like to you know we would much rather have that audit log so that our high frequency trading people or you know medium frequency trading whatever the heck the term would be there can be done in a less trusting way well with Bitcoin because we happen to have this requirements some people would say we don't have this requirements I would say
we do of being being able to contribute to bitcoin under very adversarial conditions let's say in China well yeah well a bank can maybe afford like a gigabyte per second fiber length between different parts of their operation if I'm off in China I can't really do that you know I might be behind the Great farall China therefore well how much bandwidth can we go push through that it's not very much you know megabyte or two every 10 minutes is actually surprisingly close to what you can do and there's some interesting several reasons why which is yeah I can certainly push that data through over 10 minutes you know that will at least keep me informed about what's going on
because after all if I'm not informed about what the state of the Bitcoin watching is I'm at a sink and I can be defrauded but even more subtly is that if I'm trying to be a minor if I'm trying to create new blocks well I mean imagine if everyone in this room were miners on average every 10 minutes someone in this room would go find a block now if the guy away at the back finds a block until I actually learn about his block I'm not earning any money because when I go find a block you know if he finds it first and gets it to majority hashing car first when I find my block I wasted my effort because I
didn't build it on top of his block so even though theat it's you know megabyte of data right now for 10 minutes I actually need to get the data much much faster for I'm going to make any money because every second I wait for that data to get to me is second where I'm not making any money well block controls what 600 seconds if I wait 6 seconds then I've lost 1% of my revenue on your profit margin say 5 10% that's a lot of money to go lose and that's a very big incentive to say you know what screw this I'm not going to participate in Bitcoin directly I will trust someone else to do it for me and that's why when you look at you know the distribution of mining pools well over half the hashing power is
controlled by like two or three people on a day-to-day basis you know this doesn't really look very good and it's a very big risk for the industry I mean that's literally like very small number of computers that could be hacked and the system gets taken down sure we can go react right now you know chances are if that happens there'd be a wake up call people would run more servers move their passion card to different mining pools and so on but we can do this because it's still relatively reasonable uh reason Level Playing Field and that you know if you and I combine our efforts we're not earning that much more money than if we mine separately but as the block size goes up well the requirements for moving data
around become more and more stringent and now I have stronger and stronger incentives to do what's not good for the system but good for me personally so you know that's very hard thing to go work so it works as long as most of the know it's relatively decentralized there's a lot of actors they don't have a significant concentration of power which exactly along the lines of what blockchain is fighting against in the first place I mean you could say it's reducing single points of failure exactly you know currently with regard to mining on the day-to-day basis we have our single point of failure is like two or three mining pools you know that's pretty bad considering how much money can be lost if those computers could have
and I this is a very very real very concrete thing those computers get hacked people can lose a ton of money du to double spins due to reorganization the blockchain and so on and you know that's a trade-off we've made even at one megab and that trade-off gets harder and harder as the size goes up you know and if you're talking about gigabytes we're not going to get that in a system that looks like what we have right now so these are just some of the issues that we're facing within various blockchain within various blockchains it doesn't diminish the fact that there still you can build a lot on it it still has a lot of value in terms of anybody being able to participate and take advantage of incredible security and cryptography that's already available
within it uh what do you see for some of like interesting and important developments that couldn't have occurred without a blockchain well and um talic talked to some stuff too when he was talking about you know the what tan State um State channels there's a lot of things you build on top of a decentralized layer and that you know if I have something that's actually censorship resistant you know that is free from control I can write crypto that makes use of this layer to let multiple parties transact with each other directly with much less trust than they otherwise would you know for example in the lightning Network even payment channels
in general well because we have this decentralized blockchain you know I can go write payments through you and the worst you can do is temporarily hang on to my money yes you can go and hold my money hostage for say a few days a week whatever it takes you know whatever we choose to agree to but that's a temporary thing whereas without that decentralized layer you would have the people underneath that who can go at best hold your money hostage and more likely go steal entirely you know I mean I can't build a decentralized thing on top of pap pay because ultimately PayPal call the shots and the closer Bitcoin looks to PayPal the less useful and less different it is
from Alternatives well simultaneously you know we are competing with the paypals of the world who can do this stuff anyway so you know for me it really comes down to like what can I build on top and certainly lightning Network's one of very interesting things there I mean I've got all kinds of ideas crit to Smart contracts and even further uh disintermediate um the trust we have in mining which is sort of a whole another topic but terms of AIX so I know there's probably a lot of questions that individuals here have for both falic and Peter Todd we can't possibly within this question period as or even touch upon any of the Myriad of possibilities and interesting topics so let's open it up to the floor do you want to come up um any uh
yes second for anybody have questions we've got um a mic here couple mics guess you have to share that so anybody who has any particular questions for a Bitcoin Port developer and founder of ethereum um please ask we'll leave it up in your hands and they'll do their best to um answer your particular questions yes Michael thanks um my question is um about a relatively new proposal for a a potential tweak to to allow it to scale um I imagine you guys are both familiar with Mercia kesu uh I think it
was maybe two days ago mer wrote a blog post that um went over a proposal for using um a a a hash of a previous block um contents modulo uh the block size um and this would allow a minor to absolutely require a full node available next them rather than constantly mining on head only so my thoughts are have either of you read this proposal and if so what are your thoughts on it not only have I read it but I actually went and posted nearly the exact same idea but three weeks prior and I'm sure he you know Marc ined Marc invented it um
independently you know it's an idea that's come multiple times but yes that is actually a very useful thing the problem is is that's not actually a change in the scalability because scalability comes down this verification issue you know what that does is it makes the uh makes the failure of not scaling more obvious and specifically I propose this um as part of the segregated witness upgrade which is that unless you have a proof like that uh miners can do this kind of nasty thing where they say well you know transferring all this data is kind of costing us a ton of money because of you know this um because of you know find um not finding blocks um sorry not getting
blocks from miners fast enough so why don't we instead transmit a quarter of the data which is the data necessary to dat or coin database and then the rest of stuff that lets us know that the updates are valid that is all digital signatures will we'll go and maybe get that later well the problem is in such an environment miners are basically trusting everyone else to do to do their job up and the moment one Miner screws up or maliciously you know puts in valid transactions all other miners will go follow because they're not actually validated so I propose basically the exact same idea specifically to go say let's go prove that two M of block you actually have the previous block and yeah I mean I can't go prove that you
actually checked it I can at least prove that it was very easy for you to do so because you actually had that data so so I see it reinvented I think that's probably the fourth or fifth time it's being reinvented but it's fundamentally reasonal idea um I remember looking through similar kinds of schemes for for eum's mining algorithm like way back in 2014 I think the reason why we actually ended up rejecting it were two reasons one of them was just complexity and we wanted to kind of get actually get something out there but the other was also that doing something like that does make um like mind verification much harder because now suddenly correctness of the blog correctness of the proof of work depends on a Block's entire
contents and not just the block header and so you know that basically means that with that basically means that like clients by themselves can't verify work without downloading the entire block so it you know it does have a cost Point what I actually pro has some tweaks it doesn't have that issue but there's other very technical straight offs to it but anyway yeah so I think there's a big misnomer in the space right now particularly around private blockchains I think they do have a lot of value but going back to what Peter is saying you can't build a decentralized system off the centralized system building off PayPal for example um I think one of the things that needs to be emphasized and I
would be interested also to give Tal's opinion on the state CH to me it sounds like a private chain that's just resoling into the public chain is that some a formula that you guys are looking at as a potential solution for massive scaling while you know keeping the Integrity of what's going on within a public autonomous blockchain thank you well actually I could go say I did a lot of research um on I think they pretty much exactly that model um so using different terminology and I think with some more perative ideas around it where I call it Fidelity bonded banking which is this concept that well if you have a private blockchain controlled by a fixed set of people you can use cryptography to go prove to the rest of the world that what
they're doing um follows all the rules you know they're not taking anyone's money and so on and so forth and while yes they can go and break the rules you can put them in a position where they can't hide the fact that they've broken those rules and if you put themselves if you put them into that position all you then need is some publication medium to absolutely guarantee that all potential users of that private blockchain will learn that the rules have being broken and what what I orig proposed is f Bond banking was subtly different it didn't actually require any changes to B Clin protocol it's not you know it's not much Elite to go from that to say well if you have all
this cryptographic proof why don't you also Asal was pointing out add the ability for the blockchain itself to take the action to go punish the people rather than just say well you're breaking the rules we're going to stop using your bank especially coming out too as well start resoling anding at all Enterprises now start using on the private and public side you know I'll say a few things because that I there's a lot of misconceptions around the whole private public concept I mean first of all I think like I've been kind of pushing it the sort of Distinction of private Consortium and public rather than private and public because in between blockchain gets rolled by one guy which you know to be fair isn't that much more interesting than a database
and with public chain you have this sort of Consortium chain thing where you know have a CH and you have let's say 10 noes one run by the major bank and the fact is it is I think it is incorrect to say that that middle version is centralized because even though it's not sort of theoretically you know some some you know philosophical sense Fair because you have 10 explicitly selected banks in the protocol the fact is those 10 banks are probably less likely to collude than you know three to five mining pools and you know it realistically it is secure enough it is decentralized enough and it does provide you know very strong security security assurances by itself
um so them so I think that you know you could definitely build kind of decentralized stuff on top of that where but I think public blockchains the benefit isn't just the fact that it's decentralized it also is the fact that it's a a kind of decentralization that kind of every where everyone kind of agrees on its authoritativeness so if you have you know one particular set of banks then just that by that by itself makes it harder for you know everyone else in the world to build on top of the same system whereas that's a problem public blockchains don't have um between so that's one side then between State channels and private chains I mean
I do think those two things are actually s subtly different because with a Consortium chain the property is the you know in general 2third of the participants have to have to sign every block and theoretically you know those two3 still could you know still could cheat you with a public chain the um idea is think of it as a Consortium Network where Absolut or we sort of it's like a tiny sort of ad hoc Consortium Network for one application where absolutely every participant has to sign every block and if even one of them doesn't then you have to you know basically go back you know go you know go cry for Mommy where in which Cas in this case mommy is the public chain and
Mommy's going to run the smart contract and figure out who's right and who should go sit in the corner and have a timeout well okay timeouts are the sort of Bitcoin thing with walk time I guess eorum equivalent would be getting your SEC deposit destroy but that's a technical Point um so the there's a couple differences there because this sort of combination of of you know private chain public chains and particularly you know security deposits with different kinds of cryptography which could be Consortium could be private is very interesting I think there's lots of opportunities to kind of create Services which combine the two in different ways maybe I'll add one one last point I I get a sh of hands of uh how many
people in this room use the web browser chromium from Google CH or Chrome yeah yeah was expected proba like easy half people every single one of you is actually using a private blockchain because Chrome um implements something called certificate transparency um which is essentially a way for certificate authorities to create what's could be called a blockchain of certificates that they produced which then lets any verifier look at this blockchain of certificates and verify that the certificates are being um issued honestly sure enough the Chrome web browser supports certificate transparency by default and it actually
goes in validates this so while if you actually look up the rfc's and other technical standards for certificate transparency nowhere to ever use the term blockchain it is a miracle tree you know it uses all the same kind of Technology as we do they just came up with this idea I think even pre- Bitcoin you know but it is a blockchain if you look at it the right way it looks like a blockchain I've got two questions uh and so I'll just you know say it together the first one is uh how do you what can you comment with regards to ethereum and Enigma right what can ethereum learn from Enigma and vice versa that's the
first question uh the second one is you talked a bit about uh you know M Milestones that you're looking forward to as going for like for an entire month uh without any consistency issues and things like that and I assume there are various levels at which you enforce corness in which you try and uh test uh things uh could you comment a bit about the various levels you know going from the uh protocol layer to the specification layer to the implementation layer uh and and any of these correctness guarantees or you know either via proofs or via tests uh was it made harder with the fact that is do complete sure
so on the Enigma side so what a NBA is doing is they're using this uh crypto cryptographic technology called secure multiparty computation where the idea is you have some collection of nodes and there's this clever way to run some comput computations in between those nodes so that the result of the only the result of the computation gets published and all of the entire kind of intermediate process which might contain private data is kind of shared between those nodes in such a way that basically unless the majority of them collude it stays private and not e even the participants themselves don't know what it is so it's
interesting because it that sort of model is kind of like I me the you know if the technology gets to the point where it's kind of Ideal it's basically sort of Consortium blockchains plus a very high degree of privacy and you know that's very interesting because one of the criticism of the blockchains right now is that blockchains don't have privacy so that's um it's a very promising Direction um I mean that said you know with with smpcs the the usual drawback is efficiency and the fact that every time you do do multiplication you have to have you have to have Network messages flying around so that's I mean there are trade-offs there and it's definitely one of the kind of
cryptographic technologies that I'm following closely you know some of the others I talked about a lot would be you know zer proofs signatures homeomorphic encryption and so forth um I'm excited in seeing you know how sort of all those directions progress then as far as testing goes so okay so a theum testing so first of all we have four different three different clients that are kind of with well three to four different clients that are to some degree maintained by the foundation plus another few that are being developed by the by the community so the idea basically is that we want all those clients to be perfectly in
sync with each other and we obviously want each of those clients to be correct so what we do is we you know have have some proposed protocol change then one a C++ client implements the protocol change use C++ client to automatically generate a test Suite you know basically 50,000 test cases here's a state before here's a transaction here's a state after run run 50,000 tests on every other client make sure they all pass and if they do them great and theoretically the tests are you know they a lot of them are autogenerated they kind of cover just about everything including you know some key values minus one equal plus one and so forth so you know it's obviously not a perfect approach and you know ideally we'd
eventually supplement that with you know some kind of computational form of verification but while we can't do that you know it it allows us to you know have a fairly High degree of certainty that all of these kind of changes are are are are done correctly now of course you know in the blockchain case actually having perfect consistency between the different clients is extremely important because if your client has a bug then it's going to interpret the entire blockchain as being wrong when in reality the entire blockchain is right and if you produce a block then then the blockchain is going to interpret your block is being wrong so you basically kind of end up sort of being teleported
sort of into a parallel universe where the rest of the network doesn't exist and that's bad so you know it is very important to kind of make sure those cases you know don't happen to the to to the greatest degree possible so the sort of testing regime is once is one side then you know thing that we're doing with homestead right now is that the one of our developers is also kind of doing a live test that makes to make sure everything's fine which just kind of just sort of quickly spinning up a test that making sure the transition happens smoothly and you know if everything goes well then a hard Fork rolls out um you know I will say I mean the stuff is definitely all fairly experimental you know it's definitely not every day that you see a blockchain
come along with a large number of of uh of operations and quite a bit of protocol comp complexity that's going through these kinds of phases but you know I guess we're learning as as we go and we'll just have to see over time how all it works just before we take this next question um I think we're going to take uh two more questions maybe so we'll we'll take William's question and then uh one more after that and it doesn't mean the questions have to end it just means we're going to move to that informal period where we're going to mix around and you can ask those questions in lots of different people so two more okay so what are some interesting ideas or use cases that you would like to see or are seeing between ather and Bitcoin at the blockchain level not at the
organizational then we get into politics and all that so just at the at the blockchain level what what's what's good interesting what would have to see more of well I all in some way I think the answer that question was with the Dodge which is to say most of my research you know series research efforts is being how do we go and make useful applications that don't even need cooperation and uh you know like chain work chains work all this stuff was really from the idea of well if we can make miners do less then we can have an environment where all the rules are implemented client side as in you know on your actual wallet or application
whatever it may be may not be money after all and we use cryptographic proofs to determine that what is happening follows the rules that we want to go follow now I believe that you know for technical reason want necess get into but essentially nearly all these applications can be done without having miners involved to do anything other than go publish data in a certain order and the actual implementation isn't necessarily as nice but if you have a really strict view of you know do you want to have a system or you have to go trust other people to go do their job well I think there's a lot really good practical reasons why I do not want to involve miners or at least I want what
miners do to be as simple as possible you if all they do is burn a bunch of energy and put a bunch of data in a specified order and prove that the whole world has copy that data if I can go build a useful application on that I would much rather have that than have a system that has such complexity that we need to worry about testing you know I would much rather have a system where all that all that complexity is something only my application needs to worry about and you know if your application needs some other big pile of complexity for your own reasons I don't want to have to worry about that that shouldn't be my problem and i' kind of make an analogy to the debate between the telephone system and the internet you know the telephone system is philosophy is we
have very very very smart rotors in the middle and very dumb clients you know your phone does basically nothing other than generate a few tones and have a few wires hooked up to a speaker and microphone it's a really really dumb terminal and all the complexities in the middle well changing that complexity then becomes very hard because you got to coordinate whereas the internet what's in the middle is very dumb you know you have packets they have a source and a destination and that's basically it everything past that is layers and layers and layers that are interpreted by things other than the internet wrers and yes it means I have to have a remarkably Advanced you know Android
phone with like four processors in a gigabyte of ram but unfortunately computing power is pretty cheap these days but Social Power is isn't you know coordination isn't humans still are just as inefficient as they've always been and you know when we look at the Bitcoin debates around how are we going to upgrade how are we going to choose what the next verg of protocol should be and I don't want to have to deal with that when you go look at the internet how many debates have there been around the lowest level of Ip packet layer well approximately speaking two one was the debate for defining in the first place ipb4 and one was the debate around upgrade to IPv6 yeah those were very contentious debates but they were heck of a lot easier than
it could have been that we integrated htcp into that layer itself and at least right now all the guys who care about web browsers can go one room and argue all the guys who care about email can go to another room and argue I don't want those two rooms to be combined and you know I think ethereum does do the obvious thing of saying well if we are going to have that complexity let's at least encapsulate a virtual machine but I would still you know my research eff beans go even lower than that so I'm not going to say what they're doing is wrong but what they're saying is quite as extreme is necessary what I would do and equally both of us are heck a lot less crazy than what it would looks like had telephone companies and into to bitcoin well I mean if telephone companies met
bin the probably would have come up with something like Master coin that's like transaction type for creating a gambling agreement transaction Ty for resolving a gambling agreement you know there's a reason why I created ethereum after working on Master point for 3 weeks and ironically all this stuff I for the most part thought of after they hired me to be their Chief scientist I spent most of Job saying now this is crazy what you're doing why don't you go pay me to do some research so we make Master coin version two uh what's the most promising Avenue to scale transaction volume on either Bitcoin or another blockchain well I think uh having a couple big uh
data centers and then just trusting them I mean that's obviously going to work beyond that I mean depends on really what you're trying to do you know if you're just making payments I mean I think it's pretty clear that things like the lightning Network you payment channels in general can go work but I think it is very ugly that there's so many trade-offs involved you know what I mean even the fact that basically all these scalability Solutions inherently have better privacy is itself a big problem for a lot of people in Industry you know if Bitcoin scales the way the Bitcoin core team expects it to this whole idea of that Bitcoin is this completely transparent open Ledger is not going to be true to the extent it is today it's going to be
not necessarily false but it's going to be a lot less true because most of the payments that I do will not go on bitcoin blockchain itself and a lot of that transaction flows will be obscured you know that's just an inherent trade-off you have in the technology if you wish be decentralized precisely because of this whole business that we can't have everyone in the world knowing when everyone else in the world buys a coffee you know that just doesn't scale and if we're going to solve that problem we're going to end up with better privacy not necessarily the Privacy I mean obviously can opt into having worse privacy you know I could go and use coinbase to my payment ser and coinbase would know potentially what I'm doing but that's my
you know if I want to writee my P for someone entirely different that's also my choice and I think this is likely to end up looking more like the tour Network where there are many different internet people as long as one of them in a route doesn't keep logs you actually have fairly good privacy in that you know so and that's the big trade-off and I don't think there's really easy answers to this you know I mean of course I've got my whole tree chains and client side verification stuff but those answers again you completely change how you go use the blockchain you know completely change the nature what do wallets do and you make them frankly heck of a lot more complex much the same way that telephone is a lot simpler than a computer is so I don't know that we're going to make a lot of
people happy and this going be a very contentious thing um on the topic of privacy I will say that one thing that does concern me is systems that have extremely vague sets of privacy guarantees where you know basically the average person can't even possibly ask their heads around whether or not it actually gives them what they want so you know if someone tells me oh look it's the lighting Network transactions don't get published to the blockchain and you know it's all you know it's all nice and Anonymous and then I use it to buy stuff on so Road and then as it you know as it turns out oh by the way I have an IP address and all these me and all these messages I sensed all these
all these nodes in the network end up getting you know um are actually visible to all those nodes and you know they can find some way to statistically aggregate what I'm doing and wait as it turns out I'm not actually Anonymous then that's a problem so it's uh you with privacy specifically it's kind of also I think importantance to create systems where the pro where you can actually basically do what mathematicians have been trying to do for for a long time which is they've realized that we don't want to create systems that have kind of vague guarantees who wants to figure out sort of specific specific kinds of sort of standard assurances syst wants to have and you know those could be for you know
forward secrecy security under chosen Cipher text attacks or whatever other buzzwords mathematically prove that you need them and you know that's how you know that stuff works so you know things you know things like zeroc cach for example where you know have a sort of specific mathematical understanding that you can't distinguish which coin you're spending you know that's great um systems where you have these sort of weird transaction outputs and you have these statistical correlations and you know and you don't really know exactly how long you need to use the wallet until eventually everything can be traced together through some combination of timing information and IP addresses and correlating utxo that's a bit less
nice Al you know I will make the point that even systems like zero cach in the real world they don't necessarily give you the Privacy guarantees that you want precisely because well how do I interact with the zerach network I have to somehow connect to another node on zerach well in the Bitcoin Network what we found out is a really big chunk of the nodes on the network are basically buy noes run by companies whose business model is to go and find data on you know who does what transactions and de anonymize you and that's just a fact of life you know I can't reveal exactly how we know this because uh then they go change how they do this but you know on your average Bitcoin note easily something like you know 25 50% of the incoming connections are
these days a big chunk of the nodes you connect to over the internet are these nodes so what do you do well you might run over tour well what's tour's model you have bunch of these tour nodes and for various reasons you hope you can trust them maybe because you've gone to the Tour de meetings and know the people who run the network in person and you hope that at least one of the three or six people in the route to where you're trying to communicate to didn't keep logs that's not mathematical at all you know that's based on human trust but in the real world we don't seem to have a better system than that you know we can create nice guarantees mathematically in ideal cases but you know just getting the information to other participants on the network has to
go through a very pragmatic process of moving bits around networks usually that kind of stuff tends to fail and you know ultimately I mean I guess I'm a bit more pragmatic and when I go look at something like zerach well I also see it doesn't scale very well and zerach itself is going to have all these big issues about how do we go skill zero cach whereas the lightning Network for example you get a lot of orders Mak sh Improvement you know they're going to have less debates around this and is that perfect world no but I wish I you know had better Tech and I guess it'll just have to keep developing it okay my one last question um now we now we see
that there's more and more blockchain based service is coming out you mentioned uh FL or and other Advocate like the bank the private chain bank if you look forward next five years uh where do you see the main Innovation come from is do you see that the Innovation the service mainly come from a for-profit business uh organization or come from like nonprofit foundations or open- source project realistically some of both some of both yeah I mean I'd make the point that a lot of what you see
commercialized you know comes from for profit entities but the actual research that goes in making this possible tends to go come from nonprofit uh organizations nonprofit people working individually or people whose business models are a little unclear and you know that's something in between those two models and we actually see this a lot in the bcoin space but you know it's very hard to predict where a lot of these ideas will come from and usually the most Innovative stuff is not the thing that has a at minimum it's not the thing that has the highest chance of earning a profit you know usually be Innovative by taking very big risks and because you've got people willing to
take those risks for free you know that inherently biases things I think to the point where the Innovation is unprofitable excent excellent point um I I noticed we've touched upon Al some very technical parts and many of you here will be on the non-technical component but I think it's absolutely fantastic sort of discussion realization because we might come to these sorts of events thinking uh I just want to build the next future widget or future code or contract I'm just going to revolutionize stuff and often times we think about those sorts of business applications and fail to see like no this is still in development just just right right at the
frontier of say the future but of this particular technology and it's wonderful to see yeah IND very smart individuals um massive teams of individuals are building It And discussing it and figuring out what's the right path forward how many New Paths can we track forward and then hopefully the business individuals say yeah uh we recognize that this is not a full solution it's not fully readymade you can contribute to it build stuff but recognize that um you're still you're going to be dragged right into the Forefront of what we're trying to build and you can certainly participate in that right we welcome everybody to participate and contribute code or learn about this no matter your technical levels everybody's welcome to to be involved in it that's a great part of this sort of open open Community as
they're mentioning um but it does show that we can't just deploy one little stack and say okay have your Dev build this and it's all good and you've met all these wonderful amazing requirements like scalability and privacy and cryptography and it's all readymade and here's the Future No the future is a lot more blurry and we're making it and welcome everybody to be obviously a part and to participate in the conversation regardless of technical levels um because I think it's it's wonderfully exciting and there's amazing things that everybody can can contribute although I've heard that if you go to download more RAM they have a scalability plugin for 1495 like those early applications about uh like increase your RAM for install them MCE right uh hopefully you don't
fall for that on that point there are some scams right uh you got to be careful one for me for 1495 Bitcoin or ether um one one point on that definitely to be a bit cautious in anytime we're in a wild frontier of any sort of Technology right um not all not all nodes are honest right and thankfully Bitcoin has and ethereum have solutions to some dishonest nodes um but be careful uh anyways thank you so much to valital pin and Peter Todd thanks thanks all for everyone who showed up and was an incredible audience it shows just an incredible enthusiasm
for this blockchain Tech and blockchain whatever it actually happens to be you hear about it in the news a lot but what the heck is it um thank you for showing up we're still going to be around for a while ask questions to anybody I've not I've noticed a lot of other fellow technical people here um in business individuals in the space um mix mingle have fun see you next event