
EP37 Bitcoin podcast with Chris Belcher.
Discussed in this episode
Boost this Episode
Send sats directly to the creators. Value for Value.
Plus 1% to Podcast Index, 1% to Boost Bot.
Show Notes
In todays episode Chris Belcher and I discus JoinMarket, Electrum personal server and CoinSwap.
Chris is well known in the Bitcoin world for helping improve privacy.
The Human Rights Foundation received a donation by an anonymous individual to help continue improving bitcoin privacy and combat authoritarianism and surveillance that’s on the rise in many countries. When Alex Gladstein, chief strategy officer came to making his decision on who should receive this grant, Chris was the obvious choice.
Bitcoin privacy is a top priority as it allows reporters and activists to receive donations and to continue their important work under increased pressure as well as preserving human dignity.
I had a great time talking to Chris and I hope you enjoy listening.
Projects and people mentioned during the show.
JoinMarket
Eric Hughes
Human rights foundation
Electrum personal server
CoinSwap.
Twitter - @chris_belcher_
Github - github.com/chris-belcher
As always please feel free to reach out and ask me any questions.
Website -https://www.bit-buy-bit.com
Twitter -https://twitter.com/Maxbuybit
Email -bit-buy-bitpodcast@protonmail.com
Today you can exchange $1 for 8432 sats! (Sale ends soon.)
Thank you Coinfloor for sponsoring the show. If you haven’t signed up already then click the link below for the best way to buy Bitcoin. coinfloor.co.uk/BITBUYBIT
Welcome back everyone. Today I've got a very special guest. There's anyone who's been listening to this show for a while, well no I'm really trying to improve my privacy. It's not something that's very easy and it's something that has taken a lot of time but it's so important and today I'm joined by Chris Belcher. Chris
is one of the leading devs in Bitcoin privacy. I'm absolutely honoured to have him on the show. He has worked on Join Market, Electron Personal Server and now CoinSwap. We talk about how all these different technologies can work together and how they can help people's privacy and we talk about why privacy is so
important in the first place. Before we dive in I'd just like to say thank you to my sponsors CoinFloor and for anybody who would like to buy some Bitcoin. Maybe you haven't bought yet. Maybe you hear me talking about this dollar cost averaging and you want to dip your toes in even if it's a small amount. You can
click on the link in the show notes. It will take you straight through to them and if you want some more information on CoinFloor you can listen to my episode with Obie to find out a little bit more. If you are going to buy Bitcoin from a KYC exchange it better be a good one. CoinFloor have proven themselves over
the last six years and I truly believe they will continue to. So thanks again to CoinFloor and thank you to Chris Belcher for coming on the show. It's been amazing chatting to you. Welcome Chris. Thank you very much for joining me. It is an absolute pleasure to have you on the show for anybody who doesn't know you yet.
Could you just do an introduction please? Yeah hello thanks for having me. So I may I'm a programmer and I'm interested in Bitcoin and especially Bitcoin privacy and I've been in the space for a couple of years and I've got a couple of open source projects and just recently I've written up the design for a new one which
I'm sure we'll get on to a bit later. So the projects you've been involved in before to my knowledge are joint market and electron personal server. Am I missing any there or are they the two main ones before CoinSwap which is the new project you'll be working on? Yeah they're the two main ones. I've had a
few other things I've made but then they were more then I really caught on I don't think anyone used them but yeah join market and EPS is the ones I'm most known for. And can you tell me a little bit more about so I mean I have an understanding a little bit about join market and and how that works but
and a little bit on electron personal server but could you just explain sort of how they are different than the competition certainly join market, how it differs. All right so join market is a way of creating coin join transactions I can explain what they are I don't know how that would be great. Okay so what
is coin join? So right now with Bitcoin every transaction is it's it's visible to everyone on the network so it's visible that if you have a coin on a certain address and you make a transaction that coin will go to another address or more than one address. So that means there's a lot of privacy
being leaked so for example if I pay someone with a coin then I can see later where they spend that coin and in what amount and what time. Now coin join is a way to try and remedy this problem and it's what it essentially is is where multiple people come together to create one transaction and the important thing
is that they both contribute inputs to the transaction so they both spend the coin together and usually they get outputs as well so they get coins coming back to them. So join market is one way of doing this it was the first widely used coin join implementation and the way it works is so I mentioned coin
joins are when multiple people come together to make one transaction the key insights we've joined market is that there is a marketplace in the in the technical technology they call it a liquidity market which is where if one person wants to do a coin join for an amount they want so suppose they want to
buy a coffee with Bitcoin or something like that they can do a coin join straight away but they'll in order to have that privilege of choosing what the time of the coin join is and what the amount of the coin join is they'll have to pay a small joint a small fee to the other people who are in the coin join and they're
called the market taker because they take liquidity from the market in a sense and the other people are called market makers so they also take part in coin joins on join market but they can't choose the time it happens and they can't choose the amount and because of that they earn a small fee and this because
there's this marketplace it means that using join market you can if you're a taker you can always do a coin join a whatever time you want for whatever amount you want and this is and on the other side if you're a market maker you can earn if you have bitcoins you can earn a small income from them you'll get a
few hundred or a few thousands of so she every so often so Vasco so you can actually get a little bit of yield from what would otherwise I suppose being cold storage for most people yeah yeah so it depends on join market works well because there's a lot of bitcoins out there that just sit in cold storage hmm
and what do people what's the general sort of percentage that people will be earning on something like that is it very competitive or yeah it's quite competitive because if you're a market maker you also get a benefit from mixing your own coins almost for free like you don't you actually earn money by mixing
so if someone has coins in cold storage which they you know that there's no downside to them be more private so a lot of people put them there just for them to be mixed which means generally the generally the yields the percentage yield is quite low and another reason it's quite low is because this system is
very close to riskless so your coins are never in never in anyone else's possession so there's no lending or borrowing or you're never in a situation where someone can steal your coins you know at least the risk is very very low so that also makes the yield very low however if you think about it that because
Bitcoin has a fixed upper limit there only ever be 21 million bitcoins even if you earn a really really small amount it could still be it could still be worth it so if you compare it to another like a fiat currency pounds or dollars like yeah maybe if you put them in a bank the interest rate will be higher but
because the central banks are constantly inflating them you you sort of have to put them in a bank account otherwise their value will be turned by inflation well with bitcoins that's not necessary yeah that makes a lot of sense and so join market is something I'm looking to dip my toes in with it's something I've
been a little bit scared off from to be honest because I know that it's maybe not as simple as samurai or some of those but it sounds like it's the best option out there to me yeah well there is I think okay I suppose I'm a bit biased I think it's the best because of this liquidity market idea which the
other options don't have however there's a trade-off there and that because join market is very decentralized so there's no there's no central party that what I mean says that the other entities they're centralized they can collect fees so they actually have a business model which means they can
employ programmers and software developers and marketing people and user interface the designers and that means their product is much easier to use while join market is a little bit harder like it's still you can install it just by running one line and you still click buttons but it is not as streamlined
as something like wasabi or samurai and that's kind of I suppose a close comparison might be between the Linux operating system and Windows like one is run by a company and one is an open-source project so the Linux is generally a bit harder to use yeah I actually had open arms on a couple of weeks ago and was
was chatting through it all and he was shedding light on all this kind of stuff and yeah it's it's interesting how that works it's often the better product doesn't have the marketing and it's a little bit more difficult to use but it sounds like it's well worth doing so you're obviously involved in join
market which is for privacy and then to help privacy and then also election personal server that also is a privacy improvement over using a different service I think I'm right in saying yeah so I'll explain what that is so the election wallet by default when someone turns it on it will connect to so-called
public election servers so there's servers which are just out there on the internet and anyone can connect to them and when your wallet connects to them it will send all its addresses to that server and the server replies with what your balance is how many bitcoins you have and what the history of transactions
are and when you've done that you've essentially ruined your privacy because this server you've connected to they can see your balance they can see your transaction history and generally they'll be able to see your IP address unless you use Tor and they're quite they're quite personal information so they they reveal
a lot of information about you so that's a privacy problem and there's another problem which is the verification problem which is now these servers you can if the servers were in they can do an attack if they were in a corporation with some miners they could make it seem as if you got paid when you
didn't so for example suppose you're using electrum as a merchant and you're selling I don't know you're selling coffee let's say maybe coffee is a bad example let's do something more expensive suppose you're selling a house you're selling some land and someone comes to pay you with some bitcoins and
it looks like you you look in your election wallet and you see okay this much money has been actually transferred to your account and you say okay great here's the keys to the house you know off you go that's that and then you turn around and after a few blocks later your transaction has disappeared so
essentially you've been stolen from you you thought you got paid but actually you didn't and what's happened is the person paying you he controlled the election server that your connect election connector to and he had some mining power and he made your wallet think that you got paid when you actually
didn't that's the verification problem and the reason we the way to solve that is so the most secure form of a wallet is one which is backed by a full node and a full node is a it's it's kind of the fundamental Bitcoin software it's it's a node and it checks all the rules of Bitcoin so it checks things like whether
every coin has been spent and it and the person actually knew the private key so there's a valid signature or it checks that no bitcoins have been created out of nothing and except for miners or it checks that no bitcoins have been spent twice and all those kinds of rules that make the whole system work they're
actually verified in a full node and because in my previous example the election wallet wasn't a full node it could have the security attack it could have it could be cheated so there's this analogy I like to use which is if Bitcoin is digital gold then your full node is a bit like your own personal
goldsmith and what they do is they check that your incoming gold your incoming payments are actually real so they're like they're smelting it down and making sure there's no tungsten in the middle yeah for example or another analogy is if you get paid in cash then using a full node is like checking the
security features checking the hologram checking the watermark checking that it feels right and that it's not fake checking the UV ink the equivalent of those things is a full node in Bitcoin so coming back to a lecture and personal server the thing that it aims to do is to make an election server which is only
meant to be used by one person by you by like the personal you know by only one person and that solves those two things that it greatly improves your privacy because you're no longer sending your addresses to just some random server out there which can spy on you and it improves your security because it's your
full node that nobody else can say that you know if you're being paid then you actually did get paid and the reason so even before election personal server people could always do this they could run their own server but it was very I suppose the real innovation there is the resource usage so running a public
election server you have to store the entire blockchain and you also have to store an additional data structure you have to store an index of every address that was ever used in the entire history of Bitcoin has to be on your hard drive and that uses a huge amount of data so the blockchain is about 300 gigabytes
and there's other databases about like I think another hundred gigabytes or so and it also takes quite a lot of time to generate all these addresses or the other parts of the database as well so the thing that electron personal server does is it only watches your addresses so when you set up an electron personal
server you give it you give it information about your wallet and it will be able to track only your addresses and not waste any data or not waste any resources tracking anybody else's addresses and that means that means the data usage is much lower so you can run it it only costs about four gigabytes of
disk space and it's much quicker to set up and much quicker to start up but a downside is you can only use it for yourself you can't have other people use the server okay and so would you then maybe you'd have a hardware wallet or something would you then give say an ex-pub key to the electron personal
server and then that would then monitor anything coming from your hardware wallet yeah absolutely your node that is that kind of the so it's almost like you have your node linked to your personal server and your personal server linked to your hardware wallet or whatever wallet you choose to use yeah
exactly that's exactly right and Electrum can connect to hardware wallets so a lot of people use this to make sure their hardware wallet is backed by their own full node okay because that's another thing so if you use a hardware wallet if you like follow the instructions of the manufacturer you'll actually connect
to the manufacturer's web wallet and they'll be exactly like a public election server so they'll be able to see all your addresses inspiring you okay and so both of these technologies that you've worked on are to help with privacy and so if we're if we to think that say someone doesn't run either of those and
they go and buy KYC bitcoins and then they get a hardware wallet and they use the server from that hardware wallet that then presumably could or will get shared to surveillance companies and and then it's really hurt your privacy yeah so I think it also depends on the person's threats model so it's who they
need privacy against so I think a lot of people here in like in the in the West they might be concerned about like the surveillance companies tracking their transactions but you can also have for example someone who's in China who doesn't mind if American surveillance companies tracks them as long as the
Chinese government doesn't track him yeah I don't know someone who might just be using Bitcoin - I've read about people using it in Venezuela or in Nigeria and then it doesn't matter if the Americans track them they they don't mind that much but yeah if you want to be perfectly private then yes if you use
these things by default if you have a hardware wallet that connects to the manufacturer's website then yes then all your addresses will be revealed and what's worse is the hardware wallet probably really knows where you live because they sent you the hardware wallet by post yeah and a lot of these I
assumed don't then go over tour if you're using their sort of service like Ledger or one of these and then they have your IP as well I guess yeah yeah exactly yeah so that's not great so yeah I mean in your talk you said something that really struck a chord with me which was privacy is the act of choosing what
you're revealed to the world and I thought it was a really nice way of putting it because I'll quite often say to people like you know you need to worry about your privacy you need to care about this stuff because one day you're gonna wish you had and people sort of scoff and laugh and say oh well
you know what have you got to hide but obviously it's more than that so could you just sort of for the listeners and for me tell me like why is it that you care so much about privacy and you're dedicating so much time to to building these technologies and making privacy better on Bitcoin so that that quote you
said about privacy is what you reveal to the world that's quite interesting I actually got that from a there's a a document written about 30 years ago called the cypherpunk manifesto which is about it's essentially about protecting using this then new technology the internet and computers to protect people's
privacy because even back then there was a fear that that technology would that we could end up in a dystopian world where big institutions spy on everyone to get all the information and that is so wrong yeah exactly that's come to pass so why is why is financial privacy important so firstly it's it's quite
essential for free market to work so for example with the way Bitcoin works now all your transactions can be analyzed by essentially everyone and if you run a business it means that your competitors can analyze your business or your customers can analyze your business so you can't compete very well if your
competitors can just see you know how much you pay for stock how much you pay your workers and that kind of thing you lose this information leverage and also if you're an individual so for example if you pay your rent with Bitcoin and then your landlord analyzes your transactions they may be able to see if
you just got a raise and then when they do that they'll can raise the rent for exactly that amount they know exactly how much to ask for so you lose leverage there so privacy is also essential for personal safety if people have if I don't know if you go and buy a for example if you use Bitcoin to buy some
coffee and then someone can see your wallet and figure out that you own you know million dollars in Bitcoin then they'll they might follow you home and try and steal it from you or that if if someone analyzes your transactions and sees that you've just ordered something online they can steal it from your like
from your you know from the front of your house and if they they can try and phone you up and pretend to be someone else and they'll know exactly how much to try to scam you for and there's already been quite a lot of there's actually a list run by Jameson Lop which have been he calls on physical Bitcoin
attacks which is people trying to steal other people's bitcoins so and what by that I mean it's not just a hypothetical concern that there are this does happen to people and privacy is a great way to protect yourself and because the the hypothetical thief won't know how much you have so another reason privacy is I
think privacy is important is for human dignity so you don't want for example your neighbors or someone else to see the things you spend money on like you should be able to privately buy things which might be embarrassing or for example to donate to some charities that might be you know might might be
embarrassing as well or for example I don't know another example if you work for if if you're an employee you should be able to pay union dues without that being discriminated against you so for personal dignity it's important and another thing that's important for Bitcoin is privacy comes together with
fungibility a fungibility is this property which is required for money that every unit of the currency has to be the same as every other unit and that would mean so if Bitcoin didn't have this property then it would mean that whenever somebody accepted payment they would could later find that okay like
they could go and sell them in an exchange in the exchanges aha these coins actually came from this theft this hack like several years ago which means we're gonna have to confiscate these coins because they're stolen goods and if that were to happen it would mean people would be afraid to actually
accept Bitcoin because they don't know whether whether they'll have their coins confiscated and the way they avoid that is they'd start blacklisting coins as well so you you could end up in a situation where the only safe way to accept Bitcoin is to consult centralized blacklists and if that were to happen
then the decentralization of the system would be destroyed so that's what we mean when we say fungibility is an important part of that it's a necessary property of money just like divisibility durability and all the other all the other properties yeah it sounds sounds like without that everything else falls
apart because you know one of the amazing things about it is that there there is no chargebacks and there there is you know there's no one who can get in the middle of a transaction but if we have these blacklists then that's exactly what would happen and and that kind of that's one of the bits of magic
about Bitcoin that I think so amazing yeah that's right okay so that kind of takes us on to your next project and which again obviously is privacy focused so coin swap and and from what I understand from reading through and and also listening to your podcast with Stefan was that this is similar to a coin
join in terms of it's aiming to it's aiming to make it more difficult for these surveillance companies to track you but it seems as though it's better in in multiple ways so could you jump in and sort of explain the differences please yeah sure so coin swap is another privacy protocol like coin join so it's
like a building block you could say it's a kind of transaction that improves the privacy of people who do it and the the so we took that coin join as many different people coming together to make one transaction and coin swap is where it's essentially a way of trading coins so for example me and you I could send
you a coin and you would send me the same amount of bitcoins but we could do this in a way that involved smart contracts where nobody could scam anyone else so there could never be a situation where I send you coins and I never get back money from you or vice versa and that has the effect of breaking what we
call the transaction graph so breaking the the fact if there's an address A and B with a transaction going there it removes the assumption that the coins actually went through me to be so there's an example I've used in the in my document which is suppose Alice has a coin and wants to send it to somewhere
else I know something from A to B if she used coin swap then the coins would for someone who analyzed the blockchain the coins wouldn't end up at B they'd end up in an address Z which has which is completely disconnected from either A or B and another great thing about coin swap is well coin join is very
visible so the transactions are much bigger and they have a specific pattern that's easy to detect coin swap if it's been if it's been designed properly can be invisible it can look the same as any other Bitcoin transaction out there so then following the analogy from before about Alice sending coins for me to be
but actually in the up and Z if there's another user called we'll call Carol who has never even heard of coin swap or anything like that and she just sends a normal transaction because her transaction looks exactly the same as Alice's anyone anyone who analyzes Carol's transaction will always be left
of some doubt so they'll always be wondering and in the back of their mind what if Carol actually use the coin swap they this analyst won't be able to tell either way so if as long as coin swap exists and is used off you know sometimes then everyone's privacy will be improved even if they never use coin
swap yeah that's amazing that's that's really amazing that's that's a massive difference and it seems that to me I can't see how there's any downside on that is there any sort of worries about coin swap or anything's that you have reservations about or that are that are in some way worse than a traditional coin
join or is it sort of strictly better in every way as far as you can tell so it's as far as I can tell it's I think it's better in every way but the downside is that it's a bit more complicated to actually create so with with coin join you these wallets or whatever they are they connect together and they make
one single transaction and its broadcast and if it gets mined like great they'll be mined and if not then that's also fine you carry on well coin swap it involves multiple transactions and there has to be a specific sequence so you there's a thing called a funding transaction which sends these coins into
a multi into a multi signature address and then all the parties have to be watching the blockchain and be ready to respond so and there's other things like that which make it a bit more complicated however on the other hand the actual protocol is very closely related to lightning and lightning is even more
complicated than coin swap and yet people have still managed to create it so I don't think it'll be impossible and so the the coin swap implementation is that something that you're gonna try and implement so that other wallets and and different developers can use this within their current projects or is it
gonna be like a standalone service yeah it'll be both those things so in the long term I'd hope that from my point of view I don't want to create yet another Bitcoin wallet I think there's enough of them out there and a lot of them are very good but I'd ideally like to make like a plug-in or something that wallet
developers can use to just add to their wallet and then a user who has this installed can just click a checkbox that says use coin swap or use like whatever name ends up being called and then all their transactions there after will use coin swap just seamlessly and transparently and that's like that would
be a plan that was kind of the original plan of join market and then there was some sort of as we got more experience there were some more problems discover join market and it was like I became a bit less enthusiastic about it but yeah that's the plan that it's that would be in every wallet so that everyone who
wanted to could make a coin swap if they needed to and so like say you know obviously this is gonna take some time for you to be it all done it's more complicated so thank you for doing it but when it when it is done and say I was to do a coin swap with you what you're saying is that on chain no one would
be able to see that we've done it it would just look like a normal transaction and is there any way for for this to be tracked I mean like we're obviously swapping an amount is it just gonna be me and you or are you saying that there's gonna be more people involved and that there's a certain amount
of coins that go in and then they go out and they go out in different amounts so that it's then not trackable yeah I'll explain that so the original coin swap idea that that's kind of the bit of the most basic building block but that on its own doesn't solve all the problems and doesn't solve like it doesn't solve some
attacks so as I described before we could mean you would do a coin swap and I'd know I'd send you two bitcoins and you'd send me back two bitcoins so an attack could be there is what we call the amount correlation attack which is if someone is spying on my transactions and they see okay Chris has done a coin swap
for two bitcoins I know he's gonna get back two bitcoins from someone else so all I need to do is search the entire blockchain for another transaction which is for exactly two bitcoins and that will narrow down the amount the possible candidates for Chris's coins now so the way that's broken the way that attack is
resisted is another building block I've been calling multi-transaction coins swaps and that's where I'd send you two bitcoins in one transaction and you'd send me back also two bitcoins but they wouldn't be in one transaction they'd be in three or four transactions so for example you could send me one Bitcoin
another transaction would be 0.2 bitcoins in another transaction would be 0.3 bitcoins and in the fourth transaction would be the final 0.5 bitcoins and that ends up to two if I've done my maths right and then this this analyst wouldn't be able to just search for the amount to so there's another building block so
that should solve the amount correlation problem there's another building block which is suppose I'm Chris and I want to gain privacy and I do a coin swap with you but what if you're actually a spy what if you've because you can see where the coins go ultimately so the way this is solved is by doing what I've been
calling a rooted coin swap which is I'm I want to do a coin swap and instead of swapping with just one person I'll choose say three or four others and I'll do like a coin swap that kind of goes in a route so so let's go back to the example of Alice again so Alice is this market taker and she wants to send I don't know
let's say two bitcoins again so she'll do a coin swap with Bob and then Bob's coins Bob's two bitcoins will go to someone else we'll call Charlie and Charlie's bitcoins will go to someone else we'll call Dennis and Dennis's bitcoins will go back to Alice and what will happen is Alice's she's coordinating all this so
only Alice knows where the coins have actually gone only she knows the whole route and these other these other parties so Bob Charlie and Dennis they only know the previous party and the next party they don't know anyone else and that would mean that all of them would need to agree they'd only to collude if
they want to un if they want to ruin the privacy of Alice and then right so that's how we solve the thing of one person having a single point of failure and then there's the problem what if an attacker is colluding what if there's an attack like a surveillance company who just fills up this marketplace with lots
of lots of their own bots and they're actually all controlled by the same person and using that will have another primitive which is called fidelity bonds which is a way which is a way of making it very expensive to do this attack of having many many copies of bots and I can explain that although I've talked
about it quite a lot on on other podcasts but I can do a brief explanation if you like yeah no it would be great if you could just run through it please yeah sure so fidelity bonds are they're a way of having some kind of sacrifice of value in a way that that sacrifice can be proved to someone else so for example
there is a way to send bitcoins to a time-locked address and then it's it's enforced by the network that those bitcoins will not move like they'll be unspendable for say one year or two years or whichever whichever day to choose and then you can take that transaction and show it to anyone else
and say look I've sent these bitcoins and I've locked them up for one year like that you can work out the sacrifice of that like it's equivalent to the time value of money like I could have used this money for something else but actually I've just locked it up for one year and we can create these bots we can
create an algorithm inside Alice which will use this sacrifice as a way to make it very costly for for someone to attack the system by having lots of copies of bots because to make loads of copies they'd have to sacrifice a lot of Bitcoin value so the key insight there is that the way the algorithm works so
the way you find a value of fidelity bond is it will be related to the square of the sacrificed value so for example if if one of the bots sends five bitcoins to a time-locked address then the value will be five times five which will be 25 but suppose instead they split their five bitcoins amongst two bots one the bot
had two bitcoins and the other bots will have three bitcoins so the value of one bond will be two times two which is four and the value of the other bond will be three times three which is nine now four and nine added together are 13 and that's much less than 25 so what what happened there is the fact that this person has
split their money into multiple bots has given them a disadvantage in this marketplace and that and what that means is if someone wants to be honest if they only want to make money if they only want to earn interest their best possible way of operating is to just have one bot and put all their money in in
that bot and just collect you know collect money by doing coin swaps or coin joins and if someone wants to attack the system they'll have to split their money over loads of loads of bots and that will they'll have a disproportionate cost to doing that because because they're not honest
because they want to spy on people and that's the key thing about incentive incentive structure and and the more you want to do it the more costly it's gonna get so yeah exactly yeah right and you can do the maths of this I've done some analysis there's a document called the financial mathematics of fidelity bonds
and it turns out if you use the the realistic numbers which are you like advertised in join market today ends up costing something like 500 million bit 500 million dollars in Bitcoin would have been locked up for six months and that ends up being like a really big sacrifice you know if you had 500 million
that's like you know governments have that kind of money or corporations yeah so it's it's a really strong I was actually surprised of how strong the the whole thing works because it's not actually that much money that's in join markets you know a normal amount of money yeah well that that is massive
money I guess the only way really that something like that would happen that I could think of would be like if if all the exchanges decide to collude with all of the surveillance companies and then they have some sort of agreement to lock up all of their funds over time then then maybe but then it's not really in
their best interest because if I almost it is like if they do succeed then Bitcoin fails yeah and also what if so their coins have been locked up for say one year what if they have to what if all their customers come and ask for their coins like what if there's a run on the exchange then the exchange is in
trouble yeah so that's the cost you're talking about yeah yeah that's really that's really clever so it's sort of it covers all those bases and is there anything that you're still working on where you can see attacks happening even if they're very low probability I mean obviously that's still possible it
just they're not incentivized to do it there is an there is an attack with fidelity bonds although so I explained what it is I've talked about how there is this incentive to lump all the coins together in one bot there is one possibility which is the many different people put their coins in one bot and
then just run one bot instead and they'll have a they'll have a bigger advantage if they pull their money together and the effect of that would be that like suppose there's five people instead of them running five bots they're just gonna run one bot and that bot will be you'll have a very big fidelity bond
sacrifice that can show to people but the downside would be instead of having five bots we just have one bot so there could be less privacy there because the amount of bots is lower that's kind of the trade-off that if you if you have an incentive too much that people lump together their funds then they'll the
number of bots will go down and if you have an incentive for people to spread out their but then money too much then the system becomes too easy to attack so that's kind of a trade-off there and I don't know I guess it will be okay because even if even if five people have put their money into one bot it's not that
five people know the privacy relevant of information the only person knows the privacy relevant information is the one who actually holds the money at the time and also I suppose they don't really have a I don't really have a reason if they just want to make money and have their bitcoins grow it's not like they
gonna sell the data around so that's possibly I don't know you can there's debates on this on the Bitcoin developers mailing list so you can you can see that that's kind of one that's sort of an inherent problem with fidelity bonds okay and with the with the coin swap is there I saw in your talk in
these sort of questions afterwards someone was asking about wallet finger printing and whether that would be an issue and I think I remember you saying that obviously different wallets use or give different fingerprints is there some sort of clever way that that can be tackled and that maybe these wallets
would sort of jumble or tumble the way that they create these transactions I'm not sure exactly how to word it but to make it so that people wouldn't know for example that it's from this wallet or that wallet it it could be any yeah I think the most so wallet fingerprinting refers to how there's a lot of other
information and a Bitcoin transaction so there's this n-lock time field and there's no long called n sequence value and there's also fingerprinting related to where wallets get their minor fee information from so for example on one wallet that it might say the might best minor fee is 20 so she's per bite
another might a wallet might say 25 is the best number and that can also leak if someone's looking at a transaction I can also leak which wallets may be created it so I think there's a thing I think probably the best way to do it there is to have this coin swap application study all the other wallets
and then randomly choose which of them it's gonna pretend to be so for example if it knows that 20% of the network of the transaction been created by Electrum then 20% of the time it's gonna as close as it can copy Electrum's transactions and I don't know 30% of the time it can pretend to be blocked
chain.info or and then 40% of the time it can pretend to be Bitcoin core and that kind of thing so hopefully that can I think that's the best way to deal with this wallet fingerprinting issue there is also a thing so you must be aware of there's the change address idea which is if you have a coin in
Bitcoin suppose that they have a face value like suppose this one is worth 10 bitcoins if you want to send four bitcoins to someone the way it works is you can't just send four you have to spend the entire 10 bitcoins and then four bitcoins are sent to one address and the remaining six are sent to the other
address that's like the change and if if an analyst can figure out which output is the change address and which is the payment address then they get a lot of information which is relevant to privacy so a thing I've been thinking to do with coin swap is intentionally break these heuristics so ideally you could
sometimes trick the analyst into thinking that the change output is actually the payment output and vice versa and then if that if they're analyzing okay so for example there's a few change address heuristics one of them is suppose I have a coin that's worth 2.5678 like it's got some you know lots of random numbers of just because that's
how that's how money works he sometimes ends up with all the values and then I see a trend I see that's being spent and the transaction is spending to exactly exactly one Bitcoin and the other output is spending to was the thing I said 1.2 3 4 5 6 something bitcoins in that case because the round number because it has
exactly one Bitcoin you can be pretty sure that this one Bitcoin was the payment amount yeah because what happened was the person maybe had a wallet on their smartphone they just pressed the one key and then press send like that's the natural way that people do things those the way they type in stuff so there's
round this call the round number heuristic of finding change addresses and the way you could break that is you could intentionally intentionally make the change output be a round number intentionally make the change output be you know what exactly one who exactly 0.5 or something like that and then the
payment amount can be this weird looking number and that would work in coin swap because if you remember there's the multi transaction heuristic so if we go way back there was I send you to bitcoins and you send me back to bitcoins but spread over many transactions now because it doesn't matter exactly what size are
those transactions as long as they add up to two bitcoins you could make them be any size you want you can make them be have a weird amount and then have the change output be a round number as long as in the end they add up to two bitcoins that would be the way I do that okay and okay yeah I can I can see that and when
you were saying as well about they're being sort of multiple hops and that you know a goes to z and you know the transactions in between don't know where the transaction came from or is going yeah is that kind of like in lightning so it's almost like would you call that like onion routing or like where there's
like a layer that's removed and you then can't see is that kind of how it works yeah yeah there's a lot of similarities between tour like the routing of internet packets via encryption and this coin swap on how lightning works which is rooting money through many different hops there's a lot of similarities there so
there is actually a there's a whole section in my end document I wrote which is how is coin swap actually different from lightning because both of them have rooting both of them use these hashtag like contracts and so the main difference is that lightning is so coin swap is fundamentally an on-chain
technology in that if you pay someone with coin swap you pay to a Bitcoin address while if you pay someone with lightning you need a lightning invoice so lightning has these payment channels and they exist forever like they indefinitely they'll be a channel and you can send money back and forth many
times while coin swap is coin swap is it always comes back to the chain at the end to the blockchain and sort of the trade-off there is that lightning is better for smaller amounts like for micro payments for example and coin swap will be better for bigger amounts that you'd want to use on the blockchain
anyway and also there might be people who don't want to adopt lightning because they think it's too private like that's possible we've seen some exchanges who don't want to adopt some you know the so-called privacy alt coins because where we think it's too private we we don't think the regulators will be happy
you could imagine them saying no we don't want to adopt lightning because the regulators won't be happy but as soon as coin swap exists then they won't be able to stop coin swap transactions coming in because they already accept Bitcoin on chain like they can't change that so the fact that coin swap is it
can be adopted unilaterally so the other person you're paying doesn't even need to know you're using coin swap is a big advantage for it that lightning doesn't have yeah that's so obviously like it's it's crazy and it's sad that all of these technologies have to be built because of surveillance companies and
and all the all the people trying to spy on us but they do so do you see there being a point where sort of all these technologies can work together in a fairly simple user interface and like this is probably gonna sound kind of stupid but is it is it possible that there could be like a piece of hardware
or something that people could buy and let's say that let's say they bought the Bitcoin on Bisk and then they can just kind of press a button and it runs their their electron server or something similar it runs their node it runs it through a coin join and then maybe opens a lightning channel sends it through
you were talking about this atomic multi-path payment amp thing and then through a page join so that like it's just like ultimate it will be so difficult to track that these surveillance companies just have to give up is it is it ever gonna be possible to do something like that or did I just
talk a lot of nonsense doesn't make any sense I think what you've asked is will we eventually win the privacy battle and I think I think yes I'm kind of optimistic I think the the there's a lot of technologies we can think of that all that really improve Bitcoin's privacy and I don't know if I can see
how the surveillance companies can keep up but the downturn there is a thing that they only work with people actually use them and I can imagine someone like in I don't know someone in a let's say someone who just wants to use Bitcoin to speculate because they they'll say their numbers gonna go up and then they buy it
and they then even withdraw from an exchange they just hold it on an exchange and that's that they'll probably never use privacy like I'm unless they get in trouble unless I don't know the exchange starts stealing their money and that kind of thing then they want to withdraw it but for people who really need Bitcoin
like now today in Venezuela or in some other countries there's a there's a list of countries somewhere Bitcoin is already banned I think they'll they'll end up using this just because they have to because they know that if they don't use it then they'll they'll get caught or because they need to use it to
go to get around the government censorship there because it can be life or death for some of these yeah yeah so I'm kind of more optimistic in a sense I think Bitcoin is more for places like that it's for where people it's for where people need to use it to resist some kind of authoritarian system yeah
well people in the West who just speculate they're like that's nice but it's not I don't see that's what's bitcoins for in a way definitely well it is yeah it's not for that they're just speculating that it could be used for that and other things so the thing the price is gonna go up but it's not
really for them I guess and and is that I know that the human rights foundation have created a fund or a developer fund for you and I don't know if there are other people involved as well but I assume this is why because they understand how important privacy is and they're trying to push that
forward so could you just touch on that and how that came about yeah so that that's the impression I got as well that they're interested long-term in using Bitcoin to help people in in authoritarian countries to have to be able to use so the the way I've had explained is that money is a form of
free speech that you if you have money you should be able to use it in ways that don't without being punished after the fact so for example if you're in an authoritarian country and there's like journalists operating but the government doesn't like them maybe it shuts down their offices it shuts down their
their printing presses or or something like that their blogs and denies them funding like stop people advertising with them you could maybe use Bitcoin to donate to journalists or or buy the you know buy the newspapers of the journalists or you know buy access to their websites using Bitcoin because
their government won't be able to stop that and that's the impression I got with the Human Rights Foundation or I mean it wouldn't that example but that's the kind of thing I imagined it that way in my head so yeah then you definitely need privacy because if okay suppose I'm a journalist and I'm I know covering
some corruption or something else like the I don't know what's going on the world today there's the China China is doing is running camps for some of its minority what they call again there's a minority population in Jing Zhang who goes I think yeah there was the foreign minister was like on the news just
flat out denying it the other day I don't know if you yeah that they had like video of these what what can only be seen as concentration camps and he's just like now just I can't remember he said something like oh yeah that area is beautiful something like that yeah yeah yeah I actually saw that that was quite
good but then okay suppose if you're suppose if you're journalists and I don't know you've got some you're you're running this you're running this website and wants to tell the world about what's going on in China but you need you need to eat right you need you need to pay your bills so you can
accept Bitcoin you could either accept donations or you could sell your cell access like have a paywall to your blog or any other kind of way and then use the bitcoins to pay your bills that that would be you know something the bitcoins for essentially but then if your privacy is ruined if the Chinese
government can send you some bitcoins and then use that to find out the rest of your wallets then they'll just find out where you live and you know catch you and send you to prison right so yeah in that case privacy is very useful there and and I yeah and I guess that's what HRF is is aiming towards and then I
also got a grant from Square and they I guess that's slightly more mundane is that they I think they just want they think Bitcoin will be the future and they want to get in on the ground floor and they want to support developers working on it but of course that's welcome as well it's so cool that you've
got this sort of stuff happening now and it's becoming more and more obvious to people just how important privacy is so that's definitely that makes me feel confident and excited yeah yeah it's useful because previously I do when I'd work on join market and election personal server I'd have I'd accept
donations in Bitcoin if people want to fund my work but then when I didn't have the money I'd work on other I do programming things which are not related to Bitcoin just coding something right because I you know needed the money at the time and then with these grants I mean they won't need to do that I can
work on this stuff basically full-time which would be quite nice yeah that's that's amazing so it sounds like you've got your work cut out with putting all this making all this happen and and making coins swap a reality do you get time for much outside of Bitcoin I mean do you have any hobbies outside of this
or are you just coding away all day to make it happen yeah these are quite like just I know mundane stuff going to pubs and like hiking and go to some museums that kind of thing nothing really I know nothing unusual I have some friends I like to hang out with you know that kind of thing well so what I'm doing
right now with the coin swap is working on a very detailed design of how the protocol actually work so like for example first Alice sends this transaction then Bob sends this transaction then Alice sends the signature and Bob checks it and that all have to be perfectly like planned it not really in advance we
can iterate how it goes but that'll be the the design of it will basically be there and then I'll put it on the Bitcoin developers mailing list so other people can review it and then after that I'll start actually coding the thing I think to make it work and that will be sort of you know no it's probably
impossible to give a real time frame but do you have a sort of time frame in mind yeah I've been kind of got like a personal yeah it's more like an ambition I mean of course it's hard to tell but when I started on all this I said six to nine months and that was that was back in May or June or so so I guess now I've
got like five to eight months okay yeah that would be until it's the kind of the minimum viable product so that will be a there'll be a software out there and it will only work on testnet and people can try it and test it and play around with it and slowly it will get good enough and all the bugs will be
fixed and it will have all the features and then we can try on mainnet to try for actual real bitcoins and then after that we'll add more you know slowly add more features like that that's the thing of software software is not really finished even if you have very old software like Firefox or Google Chrome it has updates
all the time like Bitcoin core has been being worked it's been being worked on for ten years so I'd never say it'll be actually finished but hopefully it'll be in a state soon where it can be really be used by by regular people nearly yeah that's exciting it's I was expecting you to say longer to be
honest as I as I said it's like an I don't know an ambition maybe I'm being optimistic and also this will only be for testnet so you know that does the thing you don't want to though of course be warnings of them putting more money than you're willing to maybe lose at first the sort of way lightning is and
yeah yeah exactly the reckless idea yeah that's really exciting and like I said before we jumped on it's been really great that you've taken this call you know I'm not not the biggest podcast but this is something that really excites me and although I'm not massively technical I'm doing my best to improve
my privacy and then prove the privacy of the listeners and having you on and explaining this stuff has been just invaluable so thank you very very much yeah no problem thanks for having me absolutely pleasure and maybe sort of six to eight months down the line when this when this stuff has been built in
on testnet and be great to reach out and and see what you've been doing yeah yeah because I'm keen to I'm keen to get as many people like it's an open-source project so I'm keen to get people to really use it and develop on it in a way that Linux or BTC pay server or Bitcoin core is sort of a project that's kind
of out there and people can use it so like from my point of view it's great to get people interested so I'll definitely come on fantastic you know that'd be great and we have actually met very briefly before at one of the bit devs meetups just before the lockdown and they're right you were helping you were
helping explain to me a little bit about lightning and I haven't been to a bit devs since then because of all this lockdown stuff and everything but I'm hoping that things ease and you know normal life starts again soon and and maybe we'll catch up there yeah all right well yeah thanks again Chris and
I won't take up any more time you've got some important things to build so we'll speak again soon yeah speak soon thanks for having me and sorry I was late at the beginning oh no worries no problem at all
Machine transcript; expect the odd mishearing. Click a passage to play from there.




