EB80 – Joseph Poon & Tadge Dryja: Scalability And The Lightning Network
26 May 2015 · 1:15:16
Joseph Poon and Tadge Dryja, co-authors of the Lightning Network whitepaper, join Epicenter to discuss how Bitcoin can scale beyond its block size limits. They explain how payment channels work, the architecture behind the Lightning Network's off-chain transaction model, how the base blockchain arbitrates disputed channel states, and the tradeoffs and risks of moving transaction volume off-chain in a trustless way.
Speakers
Topics
Transcript
[Music] this episode of epicenter Bitcoin is brought to you by volturo the gold to Bitcoin exchange trade gold to bitcoin instantly and securely starting at just 1 milligram go to volt.com to deposit some Bitcoin and start trading today and by shape shift with no account or assign up required it's the easiest way to buy and sell counterparty gems swarm Dogecoin and other leading cryptocurrencies go to shapeshift.io instantly convert your alt coins and to discover the future of cryptocurrency
exchanges hi welcome to epicenter Bitcoin the show which talks about the Technologies projects and startups driving decentralization and the global cryptocurrency Revolution my name is s and my name is Brian pin crane uh we're here today with a chosen C and Taj draa and they well uh Taj is the CTO of mirror some of you may have heard of mirror under his previous name called warm and that Joseph likes to hang out there as well so they're going to join us today to talk about lightning Network and I'm sure many of you have heard about lightning Network it's been coming up recently more so because of the whole scalability uh scalability debate and it's it's a really interesting proposal
to sort of takee Bitcoin to the next next level in terms of what it can handle with transaction so thanks for joining us today guys yeah thank you for inviting us yeah nice to be here and thanks for coming on so late by the way because I know for our listeners uh you guys won't know this but we actually tried to do this show earlier this week and we had some technical issues and uh we got so sorted out and and um and they were nice enough to come back on again but it is quite early here in Europe and quite late in California so thanks for uh for taking the time to come on again sure no problem no problem so to get started um the scalability problem right I mean most most listeners will be aware of this
right but that Bitcoin is not actually currently able to handle all the economic transactions in the world uh it's an understatement so uh I I saw I mean often that number that gets sort of thrown around is seven transactions per second but then I think some people have actually looked at the transaction size and what really possible I know um what's his name organ of cordi I think has done that who has a a Blog of mining or or I or maybe it was Dave Hudson who has another blog on mining and and they've estimated it was like more three to four transactions per second which is obviously uh not um exactly Visa level which I think you guys have mentioned in
the paper can do up to like 45,000 yeah that's their Peak yeah right I mean perhaps they could do even more right that's what they're actually doing um so yeah I guess the issue is if if you wanted to scale Bitcoin sort of the the way of you know just increasing the block size then you get gigantic blocks uh so that that doesn't really work right so well it's it's different uh you know different use cases you could have gigantic blocks and like today's computers could probably deal with it but there's a lot of other problems but I I wouldn't you know I would I wouldn't say that it's technically infeasible but it it's a very different network and a very different currency
than if you have one megabyte BLS so so what you guys uh interested in this scalability topic I think Bitcoin needs to work and um fundamentally the problem is is that right there's a trade-off of okay we let's just make bigger blocks and if you make bigger blocks then who's going to be able to solo mine who's going to be able to validate the full chain um if it's only three or four people in the world that can validate a full chain it's starts looking like visa and at that point you might as well just run Visa right it's a lot more efficient um that's being a bit flippant about it but I think there's a certain truth to that um ideally what you want is
everyone H having the ability to validate the full node I think the threat of maliciousness in you know um trying to attack the blockchain becomes a lot more difficult when anyone can validate the full that's not to say that everyone will but you know if you have a spare computer you can prove that you know history has not been changed that's interesting so you guys think that that should be the goal of Bitcoin that it remains possible for someone on their home computer uh to run a full noes yeah that's really important especially with mining right um um ideally in the future solo mining becomes more and more feasible um with
more software being written and um mining is a is fairly centralized right now I don't think it needs to be um so I mean longterm ideally you want more and more of the miners solo Mining and in order to solo mine you need to be able to validate the full blockchain locally and solo mining becoming more prevalent in the future given the current path of mining I think you can make the payouts um and a lot of the core devs are talking about this um where you make the payouts um you know the 25 Bitcoin per block um centralized so you pay out to a
particular address and and you do the mining shares also not notified to this pool but you still generate the blocks locally um something similar to you know Luke Junior's get Block template um you run a full node um but all the share payouts go out to this pool but the pool doesn't make the blocks you make the blocks but do do you think what's the incentive here for these solo miners because I mean it's it that would be possible today right there's PDP pool today and and people aren't using it why do you think that's going to change I think I think Peter pool is they the demands are fairly high for petol um petol has
certain scalability issues they can be mitigated um I think the ideal solution is somewhere between p and this is just my own opinion and this can change at any time but somewhere between P2 pool and pulled mining uh whereby you know you do generate the blocks locally but the payouts are centralized yeah and that's a proof that you have a share in them and stuff like that so um so uh coming back to scalability topic right so one one reason why this has become such a heated Topic at the moment and I was just that in Prague uh last week and I gave a talk there at the conference about exactly this topic which is increasing the block size from
currently 1 Megabyte which ends up limiting it to these three to four transactions per second to 20 megabytes and Gavin D made that proposal and there are some some people in favor of that like Mike Karn and um then there are quite a few people against that I mean I I read the the whole Bitcoin Dev threat and there's a lot of heated debates and a lot of anger at each other and uh unfriendliness going on this has been going on for many years I remember writing in like 2011 about this stuff and same exact problem yeah so so I'm I'm curious why do you guys think this is such a
heated debate I mean uh it seems like there's a lot of animosities between not I I think there are several problems I think people don't understand that they have fundamental disagreements about the nature of what they're so like to me I I've talked to Gavin about it I've talked to other people um I think one of the big differences that people have in their minds is should blocks be full or should blocks never hit you know if you have a block size limit should that limit be hit or should that limit be sort of like an IPv6 where you have you know two to the 128 IP addresses you should never run out of IP addresses right that's sort of the goal of IPv6 whereas in ipv4 you're we're out um and
so that's that's one question people should like get off you know get at the beginning should blocks be full and there are many developers who think yeah blocks should be full that's you're paying for space that's how um these transactions have you know mining fees um and someone like Gavin and many other people think no block size is just a you know denial of service prevention measure and blocks should never be full yeah no no to I totally agree I think that's that's one of the core issues that's being debated here right and then you have but I I think there's there's also a sort of a slightly different question right which is one is it desirable to have like full blocks in the long term right because maybe that's necessary to pay for the security of the
network because otherwise nobody's going to pay for transactions and miners won't make any money and it will be really cheap to attack it but then you have and I think that's the the position that a lot of people hold such as uh who were the like Matt carallo or Vladimir vanderland and many other of the core developers and then I think you have sort of on the other side right like gav my curent and stuff it's like even you know there's a problem like right now and nobody has a clue how such a fee Market would work or how that would um how that could possibly work if blocks were full today you know you wouldd have a big problem and so I think in a way
like whether or not it's desirable in the long run I haven't seen anyone explain how it would work well in the short run if we actually ran into that problem yeah well in the short run bitcoin's still going to work right um what's going to happen is people are just going to delegate their coins to some Central party everyone's just going to dump all their coins into coinbase bitcoin's still going to work it's just you know there's counterparty risk at that point well but is that Bitcoin working I mean if you can only use it internally in coinbase or if that that does not seem to be like oh it's not desirable working yeah yeah but um I mean I think there's an inevitability of that
occurring if nothing is done y or the other threat would be some other coin or so I mean that's not something most Bitcoin people worry about but this is you know to some extent a a very free market and Bitcoin usage is purely voluntary and if other people come up with something that does scale better and doesn't have these fees um we can all switch yeah absolutely so what is your opinion should the block size be increased to 20 megabytes I'll I'll my I it's kind of like the ultimate Kenzi and beauty contest I'll just do what everyone else is doing so if a bunch of people want to do 20 meg okay I'll do
that if no one if no one uses 20 meg I'll stay with one so so but if you had the power here to you know make a decision or if if your vot actually could have a an influence which way goes in this context what do you think is better for Bitcoin oh if if if it was like you go back in time and change what Satoshi put in no no just like right now if you could choose like you know if you could if you were the dictator of Bitcoin and uh well then why would you have Bitcoin yeah no I would I would probably if it were up to me and like I could somehow magically make it bigger yeah I'd make a bigger block why not gives you more Runway gives you more time to work with
this stuff before you have to actually deal with the problems cuz cuz we're not you know I think that similar to what Mike Hearn was saying like nothing else is yet um whereas if you just want to increase the block size it's fairly straightforward and you're pretty sure you know what's going to happen so yeah but I think you know even raising the block size we're not ready yet right let's say everyone agreed today to do it it might even take you know one year who knows right um six months one year I don't know but but that's that's one year because people disagree so much right it's not one year because it's complicated it's one year because no I think it's one year to reach the consensus think on the network you don't want to if you implement it tomorrow right let's say let's say all the miners
agree to make it 20 megabytes tomorrow um your client the Bitcoin client on your cell phone you know on your computer won't work if you don't update so yeah but you don't have a node on your cell phone right I mean hard very few PE so would not work it it depends on the the servers you're querying and in many cases yeah so so it's mainly you know who's running a full node and who's not mining um and if if the non-mining full nodes also update then yeah there's no problem but it in practice it's going to
be a big mess and and you're very reluctant if I'm a minor you know the first minor who's going to put this 1.2 megabyte blockout it's very risky for them is it really going to work um and so they want to be very sure before they mine this you know slightly larger than one Meg block that all the nodes are going to be okay with it all the other miners is going to build off of it and that it's a safe thing to do uh so I think it's very risky for the person you know for the people who take the first step and even if even if they know it may be the case that everyone's updated their software everything's cool and in practice all the miners say hey we'll accept 20 megabyte blocks but they just keep mining one megabyte and no one
wants to you know take that first jum once you take the first jump it's like yeah it's easy we can it works yeah but that that seems like I mean okay the risk is maybe you lose one block reward but that's not such a crazy amount right so if you're a significant mining pool it seems like well there's also a risk of you know maybe some exchange doesn't update and now you know there's some risk of them losing money um that risk is non zero um yeah you really want to get everyone on board so but the the way I've thought about this and that the way I sort of phrase it also in my talk is right there so there are obviously risks with both things right like if you if you increase to 20 megabytes well some
change and you know maybe it increases some attack vectors and stuff and if you don't then well you start having these new behaviors as well because it's not really clear what happens when the blocks are full and the M Pools keep filling out more and more and then like people try to compete by like pay more than the other person in fees and you have to wait to see if it really gets in or not and so I mean I I think if you sort of think of it like what changes more in the network like what changes the behavior more like which scenario has more unknown factors and it seems pretty clear to me that leaving the block size where it is actually will change more things it will bring more
risks and and you will come up with these scenarios that we just have never seen in the Bitcoin Network where if you increase it to 20 megab it's pretty much like the way Bitcoin works today I mean maybe there is a little bit more of a difficulties running a full note and stuff but it doesn't change that much so just in terms of like riskiness it seems pretty obvious to me that increasing the block size is a lot less risky than starting to have full blocks um I'm mostly agree to play Devil's Advocate I think the point of view of the people that don't want to have increasing the block size as the first solution um take a view that um creating this sort of fee Market creates
incentives for other systems to come about and if you sort of have increase the block size as an immediate solution um there's a possibility that you know two years down the road you just keep increasing the block size yeah and eventually you reach a point where nobody can validate the chain I think that's sort of their point of view um I think there is some validity to that um yeah no I I I do I do agree that there's some validity right that maybe one needs to have the urgency that oh like bitcoin's going to go to hell otherwise you know if you don't do something and because nobody can agree on increasing the block size our only choice is to come up with some other solution and you know maybe that sort of pressure is
actually necessary so people do so but also also if um if the 20 megabyte change goes through without you know too many problems and it's not too painful then people will say well we went from 1 to 20 back in 2015 or 16 or whatever and so we can go from 20 to 100 uh that'll that'll happen right I mean if it if it happened once it'll probably happen again right so so there may be that sort of assumption if it goes through and that that is something that's may be dangerous yeah it's time for a word from our sponsor volt.com so you know there's different ways that you can use Bitcoin some people use it as an invest M and speculate on it but if you're a Bitcoin business like us and you don't have a bank account uh you don't want to be
exposed to that volatility risk and you know there's different ways that you could protect yourself against that some people have bank accounts we don't we only uh use Bitcoin with uh you know our advertisers and suppliers and we don't want to end up like a Bitcoin foundation and lose all of our money when the price goes down so we have to hedge and to do that we use wuro so we at EP Center Bitcoin we hedge about 50% of funds with volor in gold and it's super easy you know you deposit is there instantly you can start trading from just one milligram so you know there's no real barrier to entry and and the great thing is right you can really run a business you can be protected from the volatility H and you can do it without having fiat
currency and without even requiring a bank account and then you don't even need to provide kyc if you deposit up to $5,000 worth of Bitcoins per day so volor makes it super easy makes is super convenient and and really gives you that option to be protected from the volatility and be a cryptocurrency business go to volt.com and start trading today we would like to thank volturo for their support of epicenter Bitcoin the discussion has occurred before you know when there was a soft limit uh a couple years ago and they were in that limit was increased from 250 Megs to or 250 kilobytes to to a Meg um couldn't there be some intermediate solution
where in order to test uh where this would go and how the network would react we would have you know like increase the block size but still have a a soft limit and then perhaps gradually increase the block size uh with that soft limit I'm very much in favor of having a soft limit in this for not only the Reas what's actually what is exactly is a soft limit so the idea oft limit is let's say let's say you increase the limit to 20 megabytes there's two there's two kinds of soft limits that you can establish um one soft limit is you yourself you set a limit of your block size if you want you as a minor yeah you as a minor set a limit of let's say one megabyte still so nothing
changes for you on your blocks that you create it's still one megabytes even though everyone ex else accepts 20 megabytes um a more aggressive soft limit um would be one where the if another minor mins something greater than 1 Megabyte Above This soft limit you orphan out that block and you don't recognize it as a valid block um however all the other nodes still accept 20 megabyte blocks um so there's sort of two kinds of soft limits that can exist right but of course if the others accept those blocks and you don't really have any interest in orphaning it you know unless you're the majority that that
would be suicidal right but on the other hand if all everyone else rejects a you know 3 megabyte block yeah yeah then no one else will mine on that 3 megab block so so it will basically be like minor you know the the client is updated the software is updated now with the 20 megab blocks but somehow this oligopoly of mining pools and miners say but we're only going to do two megabytes and if it's that but they can do that today they can exactly right so I mean in a way it's yeah that's uh so it's not not something anyone can can rely on right so sort of my point is that um let's say you make block sizes unlimited where any full
node will accept a block of any size I think there is an inevitability that miners will just create some sort of limit and they will orphan out large blocks in order to maximize their Bitcoin fees I think if you know you don't bu build some type of software for the minor they're going to write it themselves they'll figure it out they'll talk to they they'll say hey you know the actual limit's 10 and we'll we'll get back you know we'll figure it out later but you know if someone just publishes a you know 10 gigabyte block no one's going to even be able to process that thing before the next block comes out so they're just going to ignore it so so there I don't know if this has been proposed or not but it it in terms of block size uh couldn't
there be a a block size that would vary based on some factors like network capacity volume so okay I wrote about this a while several times and it's on some pages um I think one way to do it is you come up with a magic number which is the long-term mining reward and you vary the hard block size based on the median um block reward so essentially long term you know the the mining the coinbase reward goes to zero how do the miners keep getting paid well you just say okay one Bitcoin per block and if the miners are getting more than one Bitcoin per block that means the space is too scarce so the blocks need to increase in maximum size and if
they're getting less than one Bitcoin per block that means that there's too much space and so the block sizes need to go down that you have some some attack factors here too you know because as a minor of course you could pay uh a huge right yeah exactly but that what that would do would be to increase the block size and generally it seems like the miners want smaller blocks so I I I wrote about this a bit I can link to it and stuff and and it is to some extent gameable but if you make it sort of like the median uh fee over the last you know couple weeks or whatever like same with difficulty adjustment then you sort of need a you know majority of miners to collude in order to game this uh in
which case you're already kind of screwed so I I mean I think it's maybe the downside of this kind of plan I think I like it I came up with it I think it's kind of nice longterm it's a little bit complex and you have to come with a ma come up with a magic number and for that reason it feels like it's probably not going to get implemented um but it's I think it's a cool idea nonetheless so I think something you know the the fewer lines of code you have to change probably the easier it is to get in there today's magic word is channel c h a n n e l head to let's talk bitcoin.com to sign in enter the magic word and claim your part of the listener
[Music] reward so uh let's talk about lightning Network can you guys give a introduction to what this the idea of lightning network is yeah so the general idea for the lightning network is to um solve the problem of um where by Bitcoin scalability is such that you know you you're the current assumption well the previous assumption was um in order to you know have a large amount of transactions just have big blocks and um it's sort of this silly idea because I sort of don't care what everyone else is
doing right um if someone's buying a cup of coffee um using Bitcoin I don't really need to know about it and the entire world doesn't need to know know about it the miners don't need to know about it um you sort of the only people that should know about it is you know just the person in the coffee shop and maybe some people in between so the way it works is using something called Bitcoin payment channels um and U Bitcoin payment channels allows two parties to establish a relationship using multisig and it um but payment channels you know you can establish between you directly and your coffee shop but that's sort of Point too so you need to create
one Bitcoin transaction for each person you're interacting with um that also has some scalability concerns so what the lightning network is creating um a system where you can create a payment channel on a general Network and by participating on this network you can send Bitcoin offchain to anyone and it never hits the blockchain until until you close out the channel can can you explain what a payment channel is and perhaps how it relates to how if payment channels exist and exting financial Network what what they look like Taj is better at explaining these so I think this all started with Bitcoin J or I I I don't know how to attribute it the best
but uh the basic way it gets started is with a multi you know multi- signature uh addresses are required for payment channels um and what you can do is basically let's say I'm going you know I'm Alice I'm going to pay Bob um but I don't know how much I'm going to pay him yet so it it might be 0.1 Bitcoin it might be 0. 2 it might3 I'm not sure yet so what I will do is open a Channel with him and the way I open a channel is I get Bob's Pub Key and my Pub Key and put them together and that's a multi- signature address that will be the channel address um before I send and let's say I'll do a maximum of one so before I send the one Bitcoin
into that channel address I will ask Bob to sign a refund transaction and let's say the refund is valid tomorrow uh so 24 hours from now using nlock time Bob signs a refund that full Bitcoin back to me back to Alice and since I have that refund transaction I know that worst case scenario as soon as I fund the the channel Bob disappears or you know is becomes uncooperative and the worst case scenario is well I just have to wait a day and then I get my Bitcoin back um so knowing this I say okay I'll put the one Bitcoin into the channel and now that Bitcoin is to some extent shared between me and Bob and we both have to sign to move that Bitcoin for the for the rest
of the day so what I can do is I can sign and say hey Bob the the spend that I'm going to make from this uh multisig address is I get 0.9 and you get 0.1 signed by Alice and then I send Bob the signature and Bob can sign himself and push it to the network but Bob can also just wait and just hold on to my signature and and because Bob knows he can sign himself whenever he wants before the end of the day and he'll get that 0.1 Bitcoin so essentially the signature from Alice is as good as a payment um it's as good as being confirmed on the blockchain as long as Bob posts it eventually uh so Bob can so Alice can keep rewriting and Alice can say okay I'll I'll give you 0 2 and back point8 back to me signed send
the signature. 34 and Alice can keep incrementing the amount uh she's sending Bob just by signing and so a you know short whatever 80 100 byte signature sent to Bob is the payment itself so it's kind of neat you can CH chop things up fundamentally yeah fundamentally it's doing net settlement on the Bitcoin blockchain where um and without trust using real Bitcoin transactions so payment channels are actual Bitcoin transactions that are just not broadcast on the blockchain yet this isn't I mean people call you know like um payment channels a sort of Layer Two Network um it is a layer two but it is still fundamentally a real layer one
transactions that are made right these are real Bitcoin transactions you know you're not handing your money off to some other party um and you know the only thing you're doing is just deferring the current state of who owns what until later um without trusting okay and so now this is a uh a channel between two people all right this fairly simple scenario now what happens when you have you know end parties uh the whole bit Ian maybe not the whole Bitcoin Network let's say we have like four or five parties how does that then work at that point the Assumption the Assumption apology initially yeah um the assumption would be that um through somebody else
you can reach anybody else so you know maybe it's Alice Bob Carol and Dave Al has a relationship with Bob Bob has a relationship with Carol Carol has a relationship with Dave um Alice can send money to Dave through Bob and Carol that starts sounding a little bit like Ripple is that uh are there similarities there it's similar well I would argue that it is similar to the way Financial systems work and ripple is similar to the way Financial systems work um for example in trading markets and this is you know just I mean the inspiration for something like the lightning network is how Financial systems work right so um for equities um
there's a principle of something called t+ three the letter T um so t plus three means that um when you you know let's say buy a stock or sell a stock it must be settled within 3 days and it routes through you know your clearing clearing you know clearing your broker ultimately you know something like the dtcc and in each step there's some soft requirement to you know for example your broker has to record some data um overnight at by the end of the business day um and ultimately all of this must be settled within 3 days um and each hop each step has certain requirements on
each you know on each day um so is it like Ripple I would argue that this is all like how Financial systems actually work and Bitcoin is sort of replaying the history of money um we're sort of at 1,000 BC right now but um it's important to look at the way things are done um because you know there's there's probably a reason things are done um a certain way in the financial system and Bitcoin will be doing something similar but in you know without requiring as much trust or any trust at all so so so Bitcoin is a a pre medieval system and the lightning Network takes it into the 21st century is that more like you know 100
DC I'd say like Renaissance maybe but yeah so I I was wondering like there there's a lot of areas of this still aren't very clear for me it does does it require running some sort of server architecture or is it purely peer-to-peer like what does the technical uh back end of this look like yeah in practice you need some nodes who are on up up you know online all the time to to sort of be the people routing uh these payments right okay and and anybody can act as a node um yeah I mean on with any computer or any mobile phone you can act as a node the most probably not a good idea yeah
the most important function of the system is you know you don't want to trust the nodes that you have channels open with um so ideally anyone can be a node right but I think uptime is an important part if you're if you're intermittently online and people cannot reach you you know because essentially you you have no counterparty risk to the extent that your intermediate nodes can't steal your money but they can go down they can become unresponsive or uncooperative and that does ruin the functionality of the payment channels so so the real metric of you know trustworthiness or reputation is this guy is you know got 59s up time he's always there um so probably phones are
not a great thing but if if you have a home internet connection that works really well and you just have a laptop that can do these things then you can be a node Yeah by going if you do go down then um you know the counterparty doesn't lose their money but it just might be locked up for a little bit so you might want you know three or four channels open with different people just in case so um before we talked about in this you know uh two people a two-party payment Channel model right so I would pay it into this multisig address that's you know controlled by the both of us and you know and that gives me the sort of security and I can replace those transactions so if now we have a network who is that other party I am you know I
am signing you I'm putting in the multi is that the node uh yeah so you know one of your you know channel counterparties that you are connected to yeah you just you're updating the balances with them and and then that node has channels open with other nodes and those with other nodes and those with other people and then it gets kind of routed through yeah sort of like the internet yeah okay the the the key is you're not um so there are some proposals where the idea is you know the simplest case would be Alice Bob Carol um and Alice wants to pay Carol without establishing a new connection between Alice and Carol though there is a
connection Alice to Bob Bob to Carol U so that's sort of the simplest topology you can think of where this this occurs and some some are you know some designs are well you just pay Bob a really small amount and then Bob will pay Carol a really small amount and you sort of keep asking Carol hey did you get the 01 and then you keep you know incrementing that way that that may work um it's a little uglier the the whole part of lightning Network that makes it fairly complex but kind of nice is Carol essentially comes up with a random number and keeps it secret and then distributes hashes of that number um so that essentially you're paying Bob contingent on him paying Carol so Bob only gets the money if he
sends Carol money so Bob is there's there's not really any trust involved uh I don't I don't know if I I want to that may be overstating it slightly I don't know would you say that there's not any trust I mean there's kind of no trust involved I guess you could say compared to the other model with you know Bob having you know you just give money to Bob and you assume Bob money will give money to Carol um that works if Bob has a really good reputation um not anyone can be Bob at that point and furthermore you know you can't have a situation well it'd be much more difficult to have a situation where Alice pay Bob Bob pays Carol and Carol pays Dave um you know when you diffuse out the trust
um without using you know this hash loock construction it becomes a lot more difficult to construct this without you know one of the parties stealing all your money yeah the the accountability and tracing who you know when something goes wrong if there's 10 guys in the middle it becomes a real mess and he's like well it's his fault no it's his her fault and it it whereas with the uh the hash loock mechanism it's very clear when something goes wrong and you you know where the blame is and also you don't really worry as much about something going wrong because it makes it more Atomic yeah so just briefly if you do you start having a kind of a A scalability or a
cost problem here as well because there's so much data to send around and you know if you have to replace those transactions between different nodes or is that not a problem the nice thing about it is that it becomes a point too problem right if the load between Alice and Bob um to Carol is very high well that's only localized between those three people um it's sort of you know a very localized problem whereas the Bitcoin problem starts looking like an N Square type problem where you know the more communication goes out the more users involved it sort of starts like increasing dramatically um with this you know yeah if Alice is sending a lot of money to
Carol through Bob there will be a lot of traffic but they can handle it they can reroute around it it's much simpler yeah with today's computers I mean You' need to write really nice software and you might want to have like C and optimization stuff but you could handle quite a lot even with today's you know cheap computers Today's Show is brought to you by your friends at shapeshift shapes shift is the fast and easy way to trade alt coins and if you've been to their website lately you've seen that they now support gems swarm storage coin and master coin which brings the total number of coins they support now up to 32 so you want to trade some alt coins you want to use exchange to do that do you still use a fax machine of course not when you want to trade some alt
coins you go to shapeshift.io and get it done in less than 1 minute with no account or sign up required okay so so here's how it works you head over to shapeshift.io you choose the currency you want to sell and the currency you want to buy let's say you want to sell some of your doge coins CU they're no longer cool and you want to get some gems which just s supporting so then they give you an address you send the do coins there and you give them your uh your gems address and they put the shape shift conver them for you and puts them directly into your wallet super easy super smooth and um by the way if you have a website you need to check out their Shifty button so the Shifty button basically you can put it on the website and it allows people uh to donate or pay
to you in any old coins and you just receive Bitcoin uh it's super smooth and we use that on our website so you can give us all your coins of all kinds of currencies and we just get Bitcoin and we don't have to worry about like having 27 different Wallets on our phone and laptops and have a whole bedrooms full of paper wallets because who'd want that so head over to shapeshift.io and start trading some all coins today and we would like to thank them for their support of EP and Bitcoin so with the lightning Network the the blockchain then acts simply as a a clearing Network where transactions will will get pushed to the blockchain um to protect against dishonest actors
um I wouldn't even use the word clearing it's sort of like it's sort of like Court automated Court okay where you know 99% 99.99999% of the time every contract you you make a lot of contracts in day-to-day life and they don't ever go to court right um the Bitcoin blockchain is such that you know it's automatic adjudication um programmatic adjudication so so this is something we were talking about uh before the show Brian and I and I was kind of thinking about this if if the blockchain acts as programmatic uh uh Court then if everybody's honest it's
sort of an interesting uh idea to think that then in that case we wouldn't need the blockchain well you want a relationship where hon begets efficiency so I think this helps with that but without the credible threat of you know this blockchain um people may not be as honest yeah I mean I think when sebas brought up the point there was like also well but you know you can't get rid of the blockchain because then you know where is a threat right people could run off every money and like there's nothing you could do but it's also an interesting sort of uh fa experiment like would there be something at one point and and maybe maybe if you
actually trust those nodes in the middle that could be such a scenario that may maybe you don't need that anymore and you can replace that it doesn't seem obvious to me and perhaps there's no way and and you really do need the blockchain to remain there at all times and proof of work to in order to make this work there there's all sorts of like you know even today there's lots of transactions that you know one person on coinbase pay someone else on coin base and it's very efficient and very scalable because of that trust I think this is a nice you know nice optimization where you've got less trust needed to get also quite a bit of scalability and and one thing I would say is like I don't think either of us are saying this can be like a
replacement for most onchain transactions for for many things it just doesn't help at all like if I want to buy a house payment channels lightning Network it's useless right when if you end if you end up with vastly different amount of money or Bitcoin than you started well the payment Channel didn't really help you so if you're buying a car you're buying a house major things like that um doesn't help for you know International things like that uh you know big companies doing mergers I think it's really good for you know microtransactions it's good for recurring things like okay well I'm I'll get some of my paycheck into this channel because I know I'm going to be just this is my spending money for the next two weeks or something I think it's
so why doesn't it work because because you want to have some trace of that on the blockchain is that no because um if you know if you're buying a house it's nonrecurrent and it's oh yes okay you know you're you're just you're you're never going to get it back right okay let's say it's costs you know 10,000 Bitcoins to buy a house and you send all those and that's it there's no point in making a channel because there's nothing uh you know where it's going and and that's it yeah and you know the amount beforehand right the interesting payment the payment channel is that you can set it up uh some larger amount and then all those small payments become really efficient but you know if if the amount is the the full Channel amount and then it's kind of pointless
yeah yeah yeah basically um it for large and and even with this um when you have a setup with like Alis and Bob and Carol and stuff if large Deltas happen between when the uh channels get established and when they end you will still have to have onchain movement of coins you know if if this whole entire section of the network only has five coins going through it and another like less connected section of the graph has a lot more you will need onchain onchain transactions to move balances um so it's yeah it it it's helpful for scalable you know it helps with a lot of small things uh I think it's great for buying coffee um but so
so if if you think of Bitcoin you know is currently like 3,000 BC or whatever um this could be a nice uh you know this this doesn't replace like wire or a like big uh lightning network is sort of more credit card um that's that's a you know good way to replace it I think and so when when transactions do get adjudicated on the blockchain uh when these payment channels get cleared and and get pushed to the blockchain we don't see any of the transactions that occurred with within that channel so I mean I was thinking about this it sort of changes the dynamic and some of the ideological principles of Bitcoin where you we have transparency everybody
sees all the transactions what do you think about that it doesn't hurt right I mean it's it to some people they think oh it's more Anonymous and it's not less Anonymous um it's a little different in that the the full visibility that the blockchain shows you don't have that anymore but if the intermediate nodes report to other what's happening well then they still know what's going on and where your payments are going uh so the information is still there it's just not as evenly distributed as before so so does that yeah so will that make a Bitcoin more Anonymous or does that mean if somebody wants to get information on
on the actors in the network you would just run a bunch of lightning Network nodes and you would end up getting most information how how does that play out yeah I think in practice it doesn't directly help anonymity that much it could be used for that reason um I don't know what it's a good question it it could sort of go either way right what do you think but what about like if you look at something like electrum right so with electrum the anonymity is kind of interesting right because you you trust the server uh at least with with the data and the ser knows everything about you but um or you know a lot about you
but then if you know if the server is doesn't tell anyone then you're really Anonymous no no but but running a full node is purely better than electrum right electrum doesn't you know connecting to an electrum node doesn't really mask you in any way that a full node wouldn't but but it does if the electrum node doesn't reveal any data right but your full node you can just wipe the hard drive after you're done um yeah I I I I know right but like most people can't run a full node right so assuming that you know the electrum server is some sort of anonymizing thing uh you know then you are actually stay Anonymous I I would I would hesitate to I mean I I one I think it's really not
that bad running full I mean okay sir I'm like this Linux nerd and so for me running a full no is no big deal um but I don't think running a full no is too bad I mean I think it still runs in Windows okay Bitcoin QT stuff but um El in a way in a way so with with electrum right you like if you run the node yourself it's like running a full node right yeah if you if you run the server huh running an electrum full node is it's like running a full node right so it's a running a full node and then electrum on top of that which is yeah it's right but so the and the thing is you know if you ran that and you know you trust yourself because you know it's your data and you're the only one who
controls it well then it's like Anonymous as if you're running a full node and let's say that it's like your neighbor who's this like Cypher Punk who's like you totally trust this guy well as well then uh you know you are pretty Anonymous so my question was more like if you had payment channels operated by you know some parties that you really trust their integrity and that they value you in anonymity Etc would then this uh allow you to be fairly Anonymous with Bitcoin transactions it's that's that's a similar question as if you know you had some you know Bitcoin custodian similar to you know a coin let's say right where
you give them your coins and you know they can do micro payments um I think nothing is stopping you from doing that today um the only thing lightning Network changes is you know the threat of you know um of counterparty risk it doesn't change the um anonymity Factor significantly I believe yeah although the the threat of counterparty risk could lead to you know more the thing is you can't really trust them but if like you have some whatever lightning Network node. onion and oh let's all use this one because it says it's going to keep our maintain our anonymity it might and and it's less risky than using coinbase do onion or they spell it wrong or something
um I don't know I I think there are a lot of other really good there's a lot of cool Research into um increasing anonymity in Bitcoin um there's a lot of cool projects on how to do this um that that people need to work on because I think anonymity is really important because it's such a safety critical thing that you know if I look on the blockchain right now and I see ooh here's an address with like 5,000 coins I want to steal those coins I'm a bad guy um I got nothing to go on it's just some hex string I don't know how to steal that guy's coins or that girl I have no idea who belongs to um and so anonymity is a really great safety mechanism in that case um so I think you know I I'm for anonymity as much as
anyone it's also important for like the businesses as well where you know you need to you know someone wants to discover your supply chain someone wants to understand what kind of sales volume you're doing you know if if you know if things are fully transparent oddly enough um businesses stop operating you know um oddly enough trade drops dramatically um information a centur sometimes is good and functional um purely due to you know over over you know overconfidence but you know that's how Society Works capitalism relies upon that yeah so I think there yeah but I mean you you don't really have that in Bitcoin if you know if you use different addresses I mean there's ways to protect yourself
against comp I would say there's really good research on how to do this um right now there's not a lot implemented that's really good um and I don't think lightning Network directly helps with that aspect of of Bitcoin um so but it doesn't [Music] yeah can we talk a bit about the the the fee structure so how would those nodes be incentivized does that mean you would pay a little bit to to sort of each node on in between um and would that I mean I presume that would be a lot cheaper than the fees you pay on the Bitcoin network
but but how would that play out I think what would happen is you know you let's say you know Alice wants to pay Dave through Bob and Carroll um as part of the payment Bob and Carroll receive most of the time will receive some very very small amount that is paid inside this channel um um so it might be you know a couple Satoshi or whatever it is um what's interesting is that um perhaps the relationship between Bob and Carol there is a lot of money moving in One Direction so if you're moving money in the other direction you know um the fees can go negative um there are situations where you know um maybe Bob and Carol want to free up some funds so
by you sending money to Dave they're willing to pay you so you know he needs to be a signed integer actually um and you know maybe the relationship with Bob and Carol is only you know um 0.1 Bitcoin um but you have hundreds of Bitcoin moving through this this you know this channel um and in order to do that you have people constantly shuffling the money between um Bob and Carol in the opposite direction while money flows in the other direction um and I think um the risk of Channel intermediate Aries um you know having funds stolen can be severely mitigated by having um people intermittently online and willing to move move funds
between different parts of the network um so you know core nodes that do a lot of traffic you know oddly enough can have very little Bitcoin um purely by people you know um you know let's say your phone just comes online for five minutes and is willing to free up the channel for some very small payment so so if I had uh if I had channels open on on different parts of the network and if I was willing to always do these sort of other you know transactions the other way in whatever way uh sort of goes against the the main flows I guess to balance those I could maybe make a little bit of money yeah yeah it won't be a lot but you know it's not zero another another thing that could be very possible I mean depends how these things
end up working out it could be that a lot of the hubs are companies that are known entities and and look like you know Financial companies today to some extent and they the information you know and this sort of ties into anonymity the information may be valued enough valuable enough that they'll let it go through them for free so somewhat like how you know Facebook or Google or Twitter or all these sites they they just want your your data they want to see where these payments are being routed and that data is valuable because they know hey everyone's buying this stuff now or or all these payments are going from this area to this area uh so it it may be that the cost to run the not is so small that the information gathered through doing so is enough to pay for it that's actually just
something interesting that came to mind here I mean it sounds a lot like with all this Bitcoin regulation coming that running one of these nodes you know Pro perhaps it would be uh providing a financial service and stuff have you guys thought about this at all I mean arguably this is mostly for micro payments and there is little to no custodial risk um you know that's that's as strong of an argument as you can make right um so you know um is it possible that it falls that way I think it's you know it's not zero but I hope not you know yeah yeah that would be very I
think something a restriction like that would would would inevitably impact Bitcoin itself because if if having two multi addesses open it makes you a financial service or something like that mining right yeah I mean I guess the only the only scenario when when that could be considered uh providing Financial Service I mean The Logical implications would have to be that also being a minor would be uh running it maybe although in a minor you don't necessarily know who these transac yeah presumably you have some kind of communication Channel open with the other nodes that you're
participating in the network with but yeah I hope not um that would that would be a pretty unfortunate interpretation although one the nice thing with Bitcoin is you know if one national jurisdiction or one place has certain regulations well people can sort of move to you know and nodes will operate in places that do not have those regulations yeah totally no yeah it would be easy to circumvent those uh if if that actually does happen yeah not even circumvent but just you know it will incentivize companies in places that don't have those rules so let's address uh some of the I guess criticisms to the lightning Network I mean we were talking about uh blockchain uh block size increase
earlier um sort of lightning has been proposed as a solution for uh that transaction volume uh issue and the issues that are that we're trying to address with increasing the block size one of the chisms is that this just won't be ready like it won't be ready because we need this now like we're going to be over capacity perhaps next year can you talk a bit about that oh it's not going to be ready anytime soon um I mean if you know if we're going to hit the black the block size cap and you know things might not be getting confirmed quickly um in the next let's say several months or you know within let's say 3 to 6 months um the the
lightning stuff requires you know several softworks um at most important yeah most important is the malleability stuff and without that it just cannot work so you need to you need to fix you know multi-party malleability and if you don't fix multi-party malleability this stuff doesn't work I mean it literally let's say you write all the code today um you know like it won't work on Bitcoin today um so so so but let let's say now there somehow the core developers all agreed like we're not going to do this uh we're not going to do this block size increase but we may be willing to do these forks for the for
the lightning Network I mean I don't know which one of the which scenario is more likely to get consensus on there's there's multiple problems as well whereby okay so let's say you know let's say the block Size Doesn't get increased well you still need to make a channel to open up the channel right to open up you need to make a transaction the channel yeah transaction that hits the blockchain um and it's actually a little bit bigger yeah so maybe it's like two to three you know transactions per second two two to three channels open per second that you can do um and the other thing is the security model relies upon the ability to dramatically increase the number of transactions on
the Bitcoin Network for a short period of time um in the paper I think that it is proposed you know it's sort of proposed as a soft cap structure or you know a variable block size structure where you know miners can agree in some form to dramatically increase the block size for let's say one week um that type of security model you know can't exist with a one megabyte block so paradoxically paradoxically even though it sort of mitigates significant amounts of you know um the scaling issues in the sense that when there's more users it doesn't dramatically increase um the number of transactions it also require
seems to require um somewhat bigger blocks cuz CU I mean isn't there security risk here as well right so if you put money in this uh in this channel uh I mean you like you don't have to trust that because as long as you can broadcast that refund transaction giving it back to you at some point get it in a block with some time yes right so of course if you start having full blocks and this crazy competition for higher fee who gets in the block then you know maybe that starts becoming a little bit hazy and you could be running the risk that you can't get it in the Block in time right so that in time is the key because
if if that refund transaction so in the the you know earliest example of the payment Channel if um both let's say both parties put one Bitcoin into the channel and then they decide you know who owns Which part of this um it may be that okay Alice pays Bob a lot and so that's Now Bob's money on his Bob's balance sheet he says yeah I got I got two Bitcoins from Alice um if somehow Bob is not able to push publish that transaction and Alice is able to instead get this refund Alice has an in effect taking the money back um so so it it does make these sort of race conditions very tricky if the blocks are all full and and then one person's transaction gets in and not the
others um so you you need uh some some slack some leeway in the blocks to put a lot of transactions because it can be really spiky you know the the disaster scenario is if there's one node in the middle that has you know thousands of channels open and it somehow gets hacked or goes down and everyone wants to close the channels um so you have a lot of things happening at once so there there's a lot of risks the and with one megabyte blocks those risks are somewhat larger um you kind of want you know um some sort of structure with larger blocks um but it can mitigate the increase um but you know the security model weakens over time as more people
use it with one megabyte blocks yeah so so basically uh I mean this may decreas the demand or the necessity put transactions in the blockchain but it's only secure if you know if you don't run at capacity and you have full blocks all the time because otherwise you start having all kinds of attack vectors and risks and so you actually you I guess that also means the lightning Network may not be compatible with this Ed the fee Market where there's a scar transac it's absolutely compatible I um what it what is necessary is a variable sized block which you know some sort of structure determines it um you if you
know the miners agree that it's 1 Megabyte today the block size there will be some you know sort of fee market and if they later decide it to be 10 megabytes you know the fee Market you know might be a little bit looser yeah but you want the the normal users to sort of accept the minor dictum in that case you want the because the miners are going to say okay something happened there's a huge spike in transactions for all these channels closing we want to be able to process this in order so that people don't get you know things stolen or misappropriated um and you want the normal users to be able to recognize these suddenly larger blocks and then be able to go back to small blocks or something so it it's it gets a little messy see the way the way I see this is
It's been labeled and you guys sort of propos it as a solution to to um to scalability but I think that it's a solution to scalability as a consequence of the other things that it does so I think it's really great for uh opening up um microtransactions making those cheaper and and more fluid and not having to wait like many confirmations but we're not solving the scalability issue with this it provides more scalability as a consequence of what it does but uh we still need some other solution fairly quickly you you need other Solutions it solves the ISS issue longterm right where you know okay what are we going to do block size to Infinity you know um it's sort of you know sort of at the tail end mitigates
the problems um you know instant you know you you also have sort of a force multiplier you can maybe get 10x more out of you know of one megabyte you if you have a fix siiz block this can sort of help get a lot more out of that size but it's it's a linear multiplier at best I think and and let's say we do increase the block size and like the scalability issues get solved and then you know the lightning Network also becomes uh prevalent you know some people might may use it and others may still just use the blockchain I mean there would there may be I mean of course there would absolutely be uh two types of users those who use lightning Network and also
I was mentioning this with Brian as well is like we might get in so let's say these payment Channel networks cuz there are others we mentioned straw pay earlier and Others May uh prop up as well there there might be some scenario where some payment channel is only used by I don't know one geographic area because it serves a certain purpose there or a certain set of users or certain set of applications because it specifically does one thing that's is really good for that so we might in fact get into this scenario where there are multiple payment networks built on top of the Bitcoin blockchain um that aren't necessarily compatible with each other and it sort of compete for users and security and Etc on the one hand that's
fine that's great free market on the other it' be kind of a disappointment if there were two that were like functionally pretty much the same but were just incompatible for like silly reasons like oh this one's big Indian this one's small Indian and they just can't talk to each other that would be really frustrating um but if they have but that's pretty I think that's pretty likely to happen if if payment networks take off I hope that if if it's fundamentally different like these are different models and they do different things and there's a reason that they're incompatible um then then yeah let's see which one works and great but if it's just some silly thing where like oh this one is written in this language and this one needs this kind of parser and this is Json and this is XML and like if
that's the reason for the incompatibility that would be really disappointing uh so I I I hope that's not what happens so um before we wrap up we're running uh already PR late but uh there's one concern I think that's quite important to address that Mike her brought up which is the idea that this lightning Network could cause a centralization especially of the wallet software because it will be harder to write sort of secure Bitcoin software and you know today we still have people doing their like Onan wallet operation without a big team or funding Etc and that that could become a lot harder do you guys agree that that's a real risk
here um so I agree with most of what Mike Hearn said in that blog post um M Mike hearn's a really smart guy um I I don't really agree with that in particular because I think you know writing something like this sure is fairly complicated but it is not more complicated than writing Bitcoin consensus code right writing Bitcoin consensus code is extremely difficult and to the point where you know the core developers are sort of just discouraging you from doing it entirely um yeah and this would be open source I mean it's not like I don't know
I don't mean someone could make a a closed Source wallet just seems like who would run that you know um so so you know if if someone has implementation on GitHub of of lightning Network that's written in JavaScript or that's written in hcll or whatever uh yeah it might be trickier for someone who say oh I want to write it in C++ and do it that way but but there will be like everything else in Bitcoin there's going to be a lot of Open Source Code and and hopefully fairly friendly people to try to walk other people through it and get things compatible yeah and and of course you may have U companies like gem or chain or things like that that then provide apis and and sort of modular architectur so people can can do their own thing at
least to some extent and maybe build on other people Services yeah yeah cool fantastic well um what's the state of the development like do you where do you see this going in the next six months um right now it's sort of Uncertain because we're waiting on how the malleability fix will be implemented in Bitcoin um I think there's still some disagreements amongst the core developers um that is a hard requirement for something like this working yeah normalized versus no txid that's sort of a big question um I'll probably have a newer version out of uh newer version of
the paper out pretty soon in the next couple days hopefully um presuming a what they were calling relative check loock time verify I don't know what the current name is yeah I don't like that because it's not time anymore confirmations verify something like that I think they called it op maturity right someone's called it maturity verify yeah yeah that's what I have it written on I like that's an okay name I like that but yeah that that would allow that would allow a bit um that would definitely help with ease of use I think uh of the lightning Network and other things yeah it helps with explaining it in the paper because right now it's a little bit
opaque yeah but it also helps because you can just continually renew the channels without without limit really if you have that op code so yeah the main thing is is the the transaction malleability you know being able to reliably spend a transaction that is not yet on the blockchain is critical for like a lot of things especially this and how that how that becomes possible either you know have a Sig has Type where you do not reference you know you don't sign your input txid or you sign a normalized txid instead um and how exactly that normalized txid works and fits into the blockchain um or the database I
personally think like no txid is totally safe not totally safe but like safe enough that like just leave that in there I mean hey if you have sash none you could have Sig has no txid like that but other people think no it's kind of dangerous people are going to write you know software and shoot themselves in the foot and so so that's sort of where it is right now talking to them and that's a whole different topic I think well yeah but but you need to sort of get through that to get to this uh lightning Network stuff but but just just uh maybe one last thing so what do you what's the probability that that's going to get that change gets through and what would be your sort of rough guess or estimate of when by when that
could happen that's so I think it's pretty obvious that pretty much all the core developers want that fix sooner or later yeah just how to do it and and the timeing yeah that yeah they might be taking their time um it might it might be a while and you know details of how to implement it there's still disagreement on that I think everyone we've talked to wants it and they're like yeah we know we need to fix this but how to do it in the safest way and the most scalable way and things like that so we okay cool yeah but guys thanks so much for joining us today and talking about this I mean it's definitely sounds like a really interesting approach and I think it's sounds really promising to sort of take
Bitcoin uh to you know to a whole other level and and to really uh get a lot more scalability out of this and you know make transactions cheaper so I'm I'm really excited to see where this is going to go yeah yeah thank you ideally you want to be able to do you know billions of people being able to buy coffee on bitcoin and not having it impact the network you know instantly you know or even you know the the the satoshi's paper talked a lot about did his paper I don't know Satoshi himself talked a lot about microtransactions and when I first read it I was like great microtransactions but then pretty quick you're like wait how does this how does this do microtransactions uh so I think it to some extent can sort of deliver on that
initial promise that yeah you will be able to scale to you know less than one US Cent uh based you know value transfers so you can use it to pay for internet you know Wi-Fi you can use it to pay for for a single article in the newspaper you know maybe you know it'll help you know stuff that like you know they've been talking that for talking about that for 10 20 years and we still haven't gotten there but this might help so cool fantastic well um thanks so much for joining us today guys we will have uh we will have links in the show notes to the white paper to the presentation and to places where people could learn more about that yeah by the way I just want to mention so there was a great uh talk that you guys gave at the San Francisco
Bitcoin Dev um conference in February uh we'll link to that like if so for listeners who wants more of a technical explanation they go in depth uh in that talk there so we'll have links that show we're giv a talk uh next week in SF if the if there are any SF listeners around at um 500 startups it's like downtown well depends on when this podcast get published oh then they might yeah it might have already happened never mind okay well we'll try to get it up before okay yeah well thanks so much for joining us and yeah thanks so much for for listening to the podcast uh it was a pleasure so we release episodes of eps and Bitcoin every Monday so you can
subscribe to show on iTunes SoundCloud or get it you know on iOS or Android podcasting apps or you can watch a video on YouTube on our channel is youtube.com/ enter BTC and you know if you like the show you can always leave us a tip and uh tip address is in the show description so thanks so much and until next time [Music] [Music]