#193 Dave Collins & Jake Yocom-Piatt: Decred – A Hybrid Approach to Blockchain Governance

26 Jul 2017 · 1:08:56

Dave Collins and Jake Yocom-Piatt join Epicenter to explain Decred, a cryptocurrency built around hybrid proof-of-work and proof-of-stake governance. They cover how ticket-based voting lets stakeholders approve protocol upgrades, the attack vectors and downsides of this governance model, how Decred pulled off a live hard fork through community voting, and its approach to funding ongoing development.

Speakers

Topics

Transcript

[Music] this episode of epicenter is brought to by Ledger and The Ledger Nano s half Peace of Mind in knowing your private keys are protected by industry standard physical security go to lal.com to learn more and by shapeshift.io the easiest fastest and most secure way to swap your digital assets don't run the risk of leaving your funds on a centralized exchange visit shapeshift.io to get [Music] started hi welcome to epicenter the show

which talks about the Technologies projects and startups driving decentralization and the global blockchain Revolution my name is Sebastian kuch and I'm M Roy today uh our topic of discussion will be governance and we we are talking to Dave Collins and Jake yumay who are the development lead and Project Lead of the dcred project decred stands for decentralized credit this is a cryptocurrency system that has made some interesting governance Innovations and we'll go through how they handle changes to the protocol of of the cryptocurrency system so uh with that let's begin uh Dave and Jake great to have you on the

show hey thanks for having me glad to be on here nice to see you gentlemen thanks for having us so tell us about your background Story how did you end up starting the deit project oh the uh the decred project uh began uh as an outgrowth of a white paper that was posted on bitcoin talk in April of 2013 so um in April of 2013 a uh you know a white paper was posted for a coin called mcoin 2 and it was posted by uh someone named Adam McKenzie and basically it was an idea to hybridize proof of work and proof of stake instead of uh instead of just

having a proof of work dominated system or even a proof of stake dominated system is to hybridize the two so that they sort of have their incentives aligned and uh it allowed for it allowed for onchain governance and then from there is you know that's uh what really led to the start of dcred um Adam McKenzie and uh and another user uh named inok pursued uh pursued contact with me some starting sometime in approximately July of 2013 and then they uh they pushed me uh for several months to pick up uh mcoin 2 as a project and ultimately dcred is what came out after that process started in roughly you know March or February of

2014 yeah so um from my perspective that's I got involved slightly after that point um one of the things that we really really that I was really excited about it is because we really kind of started to see the governance issues that Bitcoin had um we up until that point we had started developing BTC Suite which is a alternative full node Bitcoin client and after going through that process and and getting a little bit further into it it really became apparent that there were going to be issues around governance and so you know we started looking at the the DED model and the proof of activity based model we started to see that okay yeah this is a elegant solution to the issue and that

sort of kickstarted the the process even further I think that was probably the point when we started paying a little bit more attention to the the petitions yeah I mean people were pushing to get uh you know to get a hold of um you know to get a hold of us and to get us to work on their project but you know the more the more involved we became with Bitcoin the more clearly we saw that there were serious government problems with Bitcoin and that you know any you know a model that allowed people to to vote on chain for you know to make all kinds of different decisions had a lot of Merit to it because in Bitcoin there just you know there was no infrastructure like that and and you know things weren't very bad in 2013 by any means but in

throughout 2014 it became a lot more apparent with the you know with the uh Rise of blockstream and sort of the centralization of Bitcoin development so back then as you mentioned you the the idea of governance of Bitcoin um it it was it was a topic that wasn't really you know put on the table as it is now with uh with these governance issues that have come up in the last I'd say two years or so um what was the reception from the community uh to your idea of sort of decentralized governance and governance that is managed uh by a decentralized protocol I think that the idea really resonates

with some people um you know if you spent enough time in the Bitcoin Community you've become you know uh educated in involuntarily on the the problems with governance so over time you know more and more people have have sort of Switched on and and said wow you know you guys really do have a point and you did see where you know sort of where the train was going and um but early on there were a lot of people who were like well there's nothing you know it's it's fine it's absolutely fine and the room's on fire and we're like well we realize the room is fire we're going to go to this other room over here and um you know the number of people who who see that has definitely grown over time I mean without the people who saw the

Merit in that sort of uh you know in that you know in the problems that we you know that we presented before we launched deed in February of 2016 without those people we wouldn't have had much of a network to begin with and that's really you know ultimately where value comes from in terms ter of uh these cryptocurrencies and so before working for dcred you had uh developed a a Bitcoin client can you tell us about the motivations for that project uh did did that Bitcoin client also include some of these decentralized governance uh systems so yeah the the main motivation that we first got started writing it is that we started getting involved in Bitcoin and like everybody else we saw the value of it and you like hey this is

a great idea but one of the problems that we noticed way back then I think we're talking about 2013 now it was that there really was only a single client on the network and we saw that as an issue because if you look at pretty much any other you know internet scale or any any big protocol like tcpip there are multiple implementations multiple stacks and we think that it's really important for there to be multiple implementations so that if there's a bug in in one implementation you're only going to affect that specific subset of the network as opposed to the entire network and that was kind of the driving motiv ation that got us started working on uh on BTC suite at the time the only thing we were focused on was reimplementing everything so that there was actually a

replacement for Bitcoin core that you could run either one you can completely validate all blocks the exact same rule set and and have a viable alternative so that you weren't locked into a single implementation so so tell us about the consensus mechanism of uh of DC what have you in know ated on with the consensus mechanism and how the network works well what we've done differently than other projects is is historically or to you know or to date the bulk of these uh the bulk of the consensus models at least for determining consensus on the network were proof of work based some of them were proof of stake based and there were a couple that that that you know M took

a stab at hybridizing proof of work and proof of stake and the way you know the way DEET is different is that instead of proof of work miners being the only uh you know the only uh group with right access to the shared Ledger that you know that that comprises your cryptocurrency we added the ability for um we added the ability for for the stakeholders to override the proof of work miners so that in the in the instance I mean even back in say 2013 and 2014 you would see things like empty blocks mind with Bitcoin so when there's an empty block mind with Bitcoin it's really you know a a it's a lowgrade denial of service attack that is it's a

minor going listen I just want to get this block reward I'm not going to put any transactions in this block I'm just going to push it out and get my 25 Bitcoins or whatever and that uh that process we saw that as just bad on top of the fact that these people really controlled all the consensus rules so you know the the hybridization takes the power away from people who own specialized expensive computer equipment as6 or GPU farms and who have access to artificially and oftentimes artificially cheap uh Power and it puts the power back in the hands of the people who actually you know buoy the value of the currency the people who hold the coins so so that's really the idea with the proof of proof of you know the hybrid proof of work proof of stake which is that proof of work matters and we

definitely want those those people to participate but we don't want them to R absolutely run the show so the people who run the show are the people who hold the coins and in some cases those two parties actually overlap you know you might be a minor who never sells any of your coins so um in terms of it being different it's also a feedback mechanism where people can on make onchain submissions uh about their opinion on various issues that we put up for vote which was part of the original system proposed in the mc2 white paper so this is an interesting concept because if we sort of compare this to what's happening in the in Bitcoin now uh there are a series of mechanisms by which miners um and users are signaling their support for an upgrade to the network and you

know we go into all of those different uh proposals but essentially it they sort of seem like hacks right um like signaling your support through like a bit that you're voting on um when when mining a block and then of course there's a user activate softwork which isn't really a user activated softwork is just sort of forcing um uh forcing the network to only take into account certain blocks that I basically you know closing closing your your eyes to other miners that are not signaling support for um for the blocks that that you you want to support so uh this is a very different type of uh of of mechanism

where in fact you're not only allowing miners to uh have right access to the database but also allow allowing users that hold coins uh to uh signal support for certain types of upgrades can can you talk about what um what scenarios you think this would be useful in like if you compare this to bitcoin is this have have you thought about how this could be used to say for instance upgrade the Bitcoin Network to like a 2 megabyte blocks or segregate a witness or any one of these proposals that we have today right so that I mean obviously that's the elephant in the room the the scaling debate in Bitcoin and so one of the first votes that we actually had in

dcred was on the test network was to raise the block size to sort of prove that the the system works or not um so you know one of the to answer your question a little more concretely really the what I think is so exciting about the system is that it allows the stakeholders to basically completely control the direction I mean we're not just talking about block sizes here we're talking about for example when Quantum Quantum Computing becomes a little bit more relevant uh you want to switch over to a Quantum proof crypto cryptography or anything like that Quantum resistant cryptography uh you know you can change the signature algorithm you can change the encoding mechanisms you can change uh pretty much any parts of the system and and we think

that's really important because while you know right now the system seems may seem great and the certain and the technology is fantastic things Advance over time and so you definitely have to have some way to continue to upgrade those rules and the chain as as time moves along and that really is as you mentioned I I think one of the fundamental mistakes really in in my mind in Bitcoin is the fact that there really is that lack of governance there is no way to trustless and signal that this is really what users want as you mentioned I mean there's like polls on Twitter there's Reddit there's these coinbase polls that are coming out now uh forums but all of the

cases they're not actually polling people who necess neily own the currency it can be anybody who just says who doesn't have any skin in the game who really doesn't care what happens to the currency because doesn't really affect them going ah I want that or no I don't want that and so with the DB proof of stake system the thing that I that I think is so novel about it is that the people who are actually making those decisions are people who are actually directly that people actually directly own the currency they are the stakeholders they have skin in the game it really affects them um so that's uh in my view that's that's why it's so important so there are a few other protocols that that allow and sort of

income and include uh decentralized governance of course Dash is one of them um I think we mentioned another word earlier uh I forget the name but so this idea is not new and uh and we'll talk about it later in the show but you've demonstrated that this can be done you've in fact done a protocol upgrade using um this this uh this voting mechanism why do you think this is something that isn't really on the table for a protocol like Bitcoin that obviously as we have seen sorely needs this type of governance system so in my opinion I think the biggest reason that that Bitcoin doesn't have it is because it requires quite a

few changes to the core protocol and there in lies the problem I mean we're struggling over to change something as simple as whether or not we're going to increase the block size when you start talking about actually having an integrated transparent cryptographically secure voting system on chain you have to make changes at the consensus level in order to enable that and so you know convincing everybody without a formalized system of governments to begin with to put a system of governments in place it's sort of like the chicken and EG problem right and so I you know I to be honest like I don't see it really happening in Bitcoin because of that fact there's really you have to change a lot of things at the at

the fundamental level in order to enable it um I guess what I should talk about a little bit when you when you're talking about the other systems so one of the key differentiators I I think with dcred versus some of the other government systems that are out there is that most of them are sort of uh how would I say kind of like opt in in a way you know you might have some other nodes that exist out there or or a signaling mechanism of some form or another but the reality is in all those systems user signal hey I want something and then it's up to the developers to go and actually implement it and then somebody one of those developers they basically flip a switch they're like

okay these are the new rules they're active then um we've approached that a little bit differently in deit in the sense that we develop it up front we put the rules into the code they're just dormant in active so they don't take effect unless the stakeholders actually vote them in but the difference is is that rather than saying we want this and then you're not sure what the actual final implementation you're going to get is in that scenario like you can say I want you know whatever we just say smart contracts like H the stakeholders say I want smart contracts well what the developers actually finally deliver may not be what the stakeholders originally envisioned right because the the final product the final developed product it may be something completely different so so you know with with our system we have

it there where the stakeholders are actually voting on the final product they know exactly what it will do what it gives them and what it doesn't give them uh you know the pros and cons of that specific implementation and then you know they either activate it or they don't and so that is really kind of the biggest difference between all the other uh governance systems that I've seen in the other projects to date I I think that Dave has a good point here with you know with the conflict with Bitcoin I mean the way I can you know one way to view Bitcoin is is that it's essentially a deadlocked corporate entity um in the sense that you know what can happen if you have like let's say you have four Founders and everybody has 25% ownership of a company what can happen is you can

get into the situation where it's only you know you have groups of two two versus two so it's 50% versus 50% and that's typically not enough to form a majority in a you know in a in a normal business and then as a result the company deadlocks and uh I've actually experienced this myself firsthand which is I think part of the reason why we were sensitive to what we saw as issues within Bitcoin earlier on which is that you know we see it and we're like I see where this I see where this is going and this is going to lead to a deadlock or fighting or something along these lines and and just like Dave pointed out the unfortunate reality is is that the is that the amount of changes that need to happen in order to get to the point where you can have a decentralized

system like this that's binding and onchain it's a lot of changes I mean I mean it took uh it took like a solid you know real solid year of development to make that happen and that was without a multi- multi-billion dollar system running underneath it so you know trying to fix a deadlocked company is very you know serious business and in a lot of cases what ends up happening is is that um a deadlock company has to be dissolved and then you have to form a new company and sort of you know keep the ball rolling with that so as much as you know I I think we all want to see better governance in Bitcoin I think that the probability of them uh adopting a system like the one that we have is ex is exceedingly

low this episode of epicenter is brought to you by Ledger makers of the Best Hardware Key security Solution on the planet but leer is more than just a hardware wallet it's your path to Eternal Bliss and happiness and peacefulness do I look like I'm losing sleep I am but it's not because I'm worried about my cryptocurrency my Bitcoin or my ether and that's because I use a ledger Ledger devices support multiple cryptocurrencies like Bitcoin ether zcash and more and you can even secure your ERC ethereum tokens with them or you can add the security support from ledger to some of the wallets you already love and use like electrum copay my ether wallet and

others all your keys and segregated accounts are derived from one unique seed seeds are generated on the device and are never exposed to the host computer so when you make a transaction your Ledger will present you with the details and kindly ask you for your confirmation before signing how apply is that so the best choice right now for anyone looking to invest in security is The Ledger Nano s it's a keychain siiz device that fits in your pocket it has a screen and buttons and connects to your computer or Android phone using USB look if you're holding crypto and you're storing your keys on your computer on your phone or Wars and exchange you know that's a disaster waiting to happen don't be the person that loses their keys because they were careless with

them so don't wait any longer secure your Bitcoin secure your zcash secure ether go to Ledger wallet.com and get your Ledger Nano s today we'd like to thank Ledger for their support of epicenter so presumably more systems like this will continue to enter the space you know there's tasos uh there's dcred there there are other systems as we've mentioned um what you I mean what do you think will happen to bitcoin if it doesn't on board uh or if it doesn't adopt a system like this I mean if it just keeps lagging behind I mean on on the one hand it is the the the largest cryptocurrency with the most market cap and the most use the most usage and the most number

of users uh but on the other hand if it if it cannot evolve to support these type of mechanisms that will be presumably you know current in in all other currencies uh and all the other public blockchains what do you think the future holds for Bitcoin then you know it's hard to say for sure but there is another Viewpoint that I think holds some value and that is the sense that you know perhaps one of the good benefits is I think ultimately there are going to be multiple currencies right I mean I don't think there's going to be the one to rule them all so to speak just like in the real world we have dollars euros and everything else so I think there are ultimately going to be multiple currencies and and the different

currencies will each have their strengths and weaknesses so you know it could be that one of the strengths of Bitcoin ultimately ends up being that you know it isn't changeable that it's just straight immutable that like it's impossible to change um there is some value in that in my mind that you know the the the I think that it does pose problems in the future when you start talking about how you want to keep up with it being used as a currency however if you just want it to be a settlement layer if you if you really just want it to be digital gold as its tagline is um you don't really need it to change for that right you know to to use it as a currency yes you definitely need to change but just as a store of value so perhaps if you know from that

perspective there will still be value in it even and and that value may be derived from the fact that it just straight can't change that it is the immutable store of value so I think that's a you know a valid Viewpoint as far as I mean but in my opinion I think that its usefulness as a currency if it can't come up with some form of governance system some way to continue moving forward will be greatly diminished over time one of the challenges with with with Bitcoin is that ultimately like you can uh think of like the coin holders as like the as the ultimate shareholders of the system right but now these

shareholders are sort of uh recruiting these miners in order to secure the chain and in in Bitcoin what happens is that uh the shareholders are completely held hostage to the miners in order to upgrade the chain it's like only the mining Community can really upgrade the chain and like the shareholders the actual shareholders don't have a say in the upgrade process don't have much say in the upgrade process at all I think this is a fundamental problem with proof of work right like with with there's whenever there's proof of work you're going to need you're going to have these two different communities the coin holders and the miners and they might be at odds with each other so when you when when you were building decred and it was

like going to be a system that's focused on governance why did you choose proof of work at all why not go for a pure proof of stake system and cut out the mining Community the reason we decided not to go with uh you know a pure proof of stake system is is that the issue with a pure proof of stake system is is the quot you know the there's nothing at stake problem the idea being that let's say you start the currency so whoever has the most the the largest balance as of you know point x in time well they're going to continue to grow their share of the currency you know substantially over time so basically it's it becomes too much of a uh uh without proof of work that is some way for people to show up

who don't necessarily yet have you know skin in the game in the form of coins without a system for people to show up and put their skin in the game you know in a physical way the the people who own the currency first end up holding the gross majority of it and it's so it's sort of like you know uh it's sort of like an oligarchy in that sense you know if you showed up and you're Duke soand so you're always going to be Duke so and so and you know so will your kids and everybody who's related to and uh you know whereas with proof of work it's a little bit more like hey you know I I could show up and do something really useful for you and you'll pay me for it so there are some useful mechanics to proof of work and I can't deny the

things that you said about how it affects the governance that is there's the people who own the hardware and who make you know most of the decision or all the really all the decisions in proof of work currencies and uh then there are uh you know the proof of stakeholders and I feel like if we completely got rid of proof of work we'd be throwing away something that we know works and we know it works pretty well but we know it doesn't work when it comes to governance so you know in terms of a sort of zeroth order way of decentralizing a ledger it works great but then once you start to get into the intricacies to be like well where are all the A6 who's paying for the A6 our government subsidizing that power you know there's all kinds of nastiness that gets involved there so we saw it as

proof of work works but just not on you know in a governance context which is why we left it so let's let's let's then walk through your um your sort of governance system or yeah like that governance system of decrit right so you have these you have this system of tickets by by which is like a mechanism by which like shareholders can influence their um Can exert their influence on blocks and like future changes so explain to us the system of tickets so the the concept is is that you every every block is approved by it's kind of like a two-factor authentication system the proof of work miners create a block and then the proof of stake miners have their tickets are

called the vote and then those votes either approve or the either approve or disapprove of the previous block so the way that the that the these votes occur though is that the the proof of stake miners first lock up uh some coins there's an algorithm that determines how many coins that need to be locked up at any given time in order to maintain a Target poll size of these tickets that are outstanding to be chose to be chosen from however the so the at a high level the stakeholders lock up some coins for an average of 28 days however it could be up to 142 days there's a there's a range in there it's a it's just like Mining and there's a poison distribution there's a Target however it you know it

varies depending on probability so they they lock up these coins for this period of time and then their ticket is randomly selected from the pool and when that ticket is selected it's given the the power to vote and this where five of those are selected per block so that's kind of the the thousand yard view of how it works as far as the the tickets are concerned well I think I think another thing that's worth pointing out here is the is the highlevel uh approach which is that say when we talk about proof of work to connect to your prior question proof of work is basically a gamification of the timestamping system so basically it creates a game out of time stamps it goes hey guys let's create a timestamp so that none of us are the one timestamp Creator and we can you know basically keep this ball

rolling it turns into a game people mine their computers So based on your relative share of hash power it's like a lottery where you you get the machines you spin them up you go to the lottery and oh you won the ticket 10% of the time because you have 10% of the hash with decred what we've done is we've gamified the governance layer and the proof of stake layer uh at the same time by going there's a there's these tickets and then the idea is is that you buy tickets and buying tickets is supposed to be analogous to purchasing hardware for proof of work mining the idea that you're going I'm I have some skin in this game I'm going to sort of put some money on the table and like you know let's let's hope they call my numbers and by doing that what you the

gamification means that we spread out and distribute the process of uh you know validating blocks and steering the currency because ultimately proof of stake sort of Trump's proof of work in In Deed so this ticketing system where and there's a ticket price that goes up and down internally per Dave's explanation that allows for the gamification to incur internal to decred as opposed to you know having to have some other mechanism like follow the Satoshi or or you know a more standard proof of activity uh algorithm one thing that I'm not quite understanding is the relation to this and governing updates in the system so as far as I understand it right now I mean what you're describing is you're

describing block validation so the the miners will uh will mine a minor will mine a block and then that block will be voted on uh in in a in a in in a proof of stake with a proof of stake algorithm but that's that's to validate blocks and and and and um and write them into the blockchain how does that tie into blockchain governance such as like we need to update the protocol to like say two megabyte blocks and um we're going to use this system to do that whenever those votes take place there are actually some additional things we call them vote bits but um a signaling mechanis mechanism essentially is what it is that allow for whenever an upgrade

is or something is up for vote those bits get assign certain meaning so for example if you're voting on upgrading what which we've already done the the ticket price algorithm or in the case of if you wanted to vote on increasing the block size or anything really that bit has a certain meaning and so the stakeholders whenever they cast their bit or their vote excuse me they'll set those bits according to whatever their preferences are and then the consensus rules that is every node on the network all agrees and and every node does this is they will end up tallying up all of those pref all those votes that got cast of the bits across a certain interval and you know it either passes or it doesn't so they it's it's a pretty complex system and and I think later on

we'll go into it a little bit more but the the general idea is that these votes when they get cast in addition to approving the previous block also allow preferences to be set or you know that way they're actually voting on specific issues or agendas and then those are in turn enforced by consensus to consensus basically says okay well there was a yes vote we're going to activate the new rules there was a no vote we're not going to activate it and there's you know there's no way to change that that's that those are why you can change it over time but that's the uh it it there's no uh user interactivity there right I mean the the vote happens and it succeeds or it doesn't and then the rules themselves enforce that

result so so for example uh if uh as far as I know like decred we ultimately have 21 million coins this the same as Bitcoin right and uh maybe around four or 5 million or them already exist so so assume like I I'm a relatively large holder I own let's say 100,000 coins then uh the way I can participate in this governance gamification this governance game is I lock up these 100,000 coins and these 100,000 coins will when I lck these 100,000 coins up there's a variable amount of time from 28 days to 42 days and when that variable amount of

time is up I will be issued some tickets right and the system sort of balances in such a way that there are like 40,000 outstanding tickets at at at at at all times and like when once I get one of these tickets I can uh it's like when a block is created there are 40,000 tickets in total five of these tickets will be chosen to vote on uh on accepting the previous block as well as the agend the outstanding agendas correct as well as the outstanding agendas so so basically when I'm when I'm locking the coins I'm getting a claim on the future tickets that will be issued and once I have

these tickets that those allow me to sometimes randomly become part of the pool of five tickets that will uh that will vote on the Block issues correct so the one thing is when you instead of like you lock the coins up but when you're locking the coins you are locking them in exchange for a ticket so that that process as opposed to being delayed it happens right then and there you get a ticket um technically there's actually a day that it has to wait for maturity reasons But after those maturities is over your ticket goes into that pool and then from that pool the five are randomly chosen each block and that is why there's a variable amount of time because there are no every ticket in the

pool has the exact same probability it's all independent probability and so you know you could buy a ticket and it goes into the pool and it could vote the very first block that it's eligible to vote or you know it could expire all the way there's a very small chance that it will expire without ever voting and so the the reasoning for that is kind of I think where you were going with your your question is that you know you you don't want to have a system where it's easy to gain the results right you you want to make sure that it's fair for everybody involved and so by having to lock up those coins and by making it an independent probability for every ticket you're not giving any unfair advantage to any individual person or an individual entity it's a completely independent

probability so let's say today um a million coins are being locked up in order to get these tickets right and suddenly for for some reason in the next 5 days an extra million also get locked up right like for some reason like people go crazy like everyone wants tickets now and in these 5 days a lot of new coins come in locked up does and I had locked up my coins previously so my 100,000 coins for the part of the early million will it be that when more people lock up their coins I will get less tickets the way the ticket price algorithm works is as follows in order to maintain a stable uh ticket pool size of roughly 40,000 tickets uh the price

will go up in response to demand for more tickets so in the scenario you described let's say you have a million coins staked the way it works is that there's effectively you know over time if you average everyone's uh ticket purchases and you go what's the average price of a ticket in the ticket pool that you're going to pay somewhere near that number before the the second million coins show up so the first million you got them in there you got them at Price X then when the second million comes the price of the tickets is going to Surge in an effort to basically prevent the me the uh ticket pool size from bloating and the reason we do that is so that we can maintain sort of you know we can manage everyone's expectations people have an understanding that there's going to be

roughly 05% of the tickets expire without voting uh you don't really lose any money you lose a fee from that but then um the rest of the tickets will vote and they're Aver you know with a rough average of 28 days until they vote from the time that they they've matured and after you bought them the um it's funny that you mentioned this idea you know what would happen if a million of these coins show up what in the previous system now we had the the we recently changed the ticket pricing algorithm and with the old ticket pricing algorithm it would have gone absolutely berserk and the price would have gone all over the place but it we actually modeled this in as part of our design of the new uh ticket uh price

algorithm so that in the case that the price surges you know the pool size will surge for for a little bit but then it will come back down uh over time as a function of basically the ticket price shoots up people stop buying tickets and wait for it to come back down then it comes back down and people slowly start buying tickets again and then it comes back to a you know like a stable ticket price and what that'll do is that won't affect tickets it could affect tickets that you've bought in the sense that the amount of time until those tickets vote is longer but in the it won't affect the price you paid for those tickets so your rate of return is really mostly a function of what you paid for the ticket if the pool size surges a bit it'll it'll affect your returns a bit but it

won't it won't drastically change your your returns so then if you if you're the person who showed up and bought the you know the second you know raft of you know million coins worth of tickets you're going to get a higher ticket price and your return will be lower and if you know there's more demand for tickets in general the price of tickets goes up and then the yield from those tickets goes down over time so with this system once once the proof of stake um used users have uh voted on blocks that have pre that that have previously been um mined by miners what prevents miners from ignoring these votes and just continue mining blocks as they were mining them previously so presumably not

implementing changes that would have been voted on by the proof of statement validators right so again that comes down to the consensus rules that are encoded in all of the clients uh one of the I don't think I mentioned it but one of the requirements is is that a block has to have three votes the minor must include three votes and since the minor can't choose those votes it's it's it's chosen specifically by this Lottery process they don't have a choice they have to include those votes or their block simply will be rejected by the network so they have to include there has to be at least three of those five votes um that extends a bit I think where you were going when you start talking about forks and things like that like why don't they just keep you know why don't they ignore the new rules yeah

why can't they just Fork right and so the the reason for that is is because you think of it this way that the majority of the votes follow the the majority well whichever way they voted so they're going to follow the majority chain in that case and because they're not going to cast votes on the other chain the other chain can't continue it won't get the votes so because every block requires those three votes to even extend the chain now they can keep trying um I don't want to go too much in depth here but the the fact is there there there is a way that you can REM mind the block to change the hash which will in turn cause different tickets to be chosen so you can keep trying but it's so much more expensive to try and keep that old chain going that way because

you're not getting the votes people people aren't nobody's voting so you have to keep trying again and again you keep mining the same block over and over and the further back you get it's it's worse right same principle is whenever you have a the reason you don't have very long reorgs in Bitcoin is because the fact that the further the deeper it gets the the lower the probability gets that something that the people going to go back and mine that many and it's the same principle here you can't get the votes on the minority chain it gets increasingly more expensive and then the changes dies I think there's another point to add here which is that beyond the three vote minimum per you know per block there's a linear there's a linear scaling of the proof of work reward so if your proof of if the proof of work

block that you mind includes all five votes you get 100% of the proof of work subsidy and then for every vote less than that that you include it scales it down by 20% so if you only include four votes you're going to get 80% or three votes 60% then anything less than that is not a valid block so uh so there is so there is a real tangible penalty for trying to Omit votes from uh from blocks that you mine and speaking of M blocks can this voting mechanism for instance roll back the blockchain so it could proof ofate Stak miners decide that a set of transactions uh shouldn't be included

into the blockchain I don't know say for instance after some sort of wallet uh being hacked or uh you know some sort of contract uh uh executing replay attack um could uh could could the proof of stake miners decide okay we don't want these transactions uh to be included in the blockchain so technically yes it would require a hard Fork vote in the sense that you know somebody would have to somebody being developers would have to code up the the the new rules that say that okay we're going to you know either ignore these transactions or undo them or whatever the case may be and then that would create a hard fork and it would have to go through the majority vote so theoretically it is possible however I think uh one of the big

differences is that rather than there being some benevolent dictator that just says oh too bad we're doing it you need majority stakeholder approval everybody has to vote on that for it to happen and uh I personally believe that such a vote like that most likely won't pass because it's a pretty gross violation of trust right I mean one of the biggest fundamental things is that you know somebody else can't mess with your wallet right I mean if you're going to try and steal coins from somebody else what's going to stop anybody else from trying to steal coins from you and you know I I think that most stakeholders understand that that is a you know it's sort of a slippery slope so I personally believe you would have a very difficult time getting a majority state to vote on doing

that so your your your ticketing system is you're saying it's complex right yeah yeah it's it's actually quite involved right like there's a coin and then these coins allow you to get tickets when you log these coins up and then some tickets are randomly chosen to vote on each block uh has there been any any academic study of um suitability of this system and on like how people could game this system using some kind of strategic behaviors there has been some exploration of that topic with there is a there's a proof of activity paper which was uh I think it was released sometime in 2014 so it was released you know six to you know six to 12 months

after the original uh mc2 coin paper and the uh what had ended up happening was they looked at this attack from the perspective of a proof of proof of activity where it was it had to follow the Satoshi prescription but it was the same idea that there's proof of stake and proof of work and they're hybridized and then they ask questions how much would it cost to execute a successful attack on a currency that has a hybridization system like this and basically the conclusion is is that yes there are attacks where you basically own a big chunk of steak and a big chunk of the mining and you collude but the cost of executing one of those attacks is substantially greater than just proof of work alone and I think that da Dave

is much more familiar with the details of the uh the cost of the attack than I am offand but I believe it you know it's a substantial multiplier over the 51% attack cost so you know in terms of its attack resistance it has been looked at and the analysis provided in in uh the paper by his a lee mrai lee Mahi Rosenfeld and I think there was a fourth author benov manov okay benov and so their paper um really covered this attack vector and it does apply fully to dcred as far as I know the only caveats being that you know in terms of how much stake you need to control it's a question of how much of the Stak funds you need to control relative to how much

and it's not quite an Apples to Apples comparison but it's very close maybe you can say more about it Dave this is a little bit outdated information but it it still holds true you know in the in the proof of work system you only really have to purchase 51% of the hash power and if you calculate all that out it actually is roughly around $500 million right now to carry out that attack um if you assume the exact same price of that Bitcoin has the same number of coins that are outstanding the same hash power that it has in order to do an Apples to Apples comparison underneath the decred system that same attack would be roughly $2.8 billion and the reason is because you have to purchase a lot of the stake too so you have to own a lot of the currency

in addition to to Hash power there's a actually a formula that is in that proof of activity paper that allows you to specifically calculate what percentage of each you need in order to successfully carry out any kind of attack against it and so you know we we've used that in order to to calculate the these figures um there is one other piece of that that is relevant that the formula doesn't take into account and that is in order to acquire that much stake to begin with uh you're going to cause the price to go up even more because a lot of remember that we you know you a lot of these coins are staked so they're not on the market so they're not for sale so if somebody wants to come in and try and get 30% 50% of the

stake or whatever uh the coins aren't even available first of all because they're locked up but even if they could in order to purchase that many coins on the market you're going to cause the price to Skyrocket because you're trying to buy up every single outstanding coin so it makes the attack even more expensive than than just that formula sh so that you know in short it is it is really a more robust system and is a whole lot more expensive to attack than a pure proof of work system this episode is brought to you by shapeshift the world's leading trustless digal asset exchange quickly swap between dozens of leading cryptocurrencies including Bitcoin ether zcash gnosis Monero Golem Aur and so

many more when you go to shapeshift.io you you simply select your currency pair give them your receiving address send the coins and boom shape shift is not your traditional cryptocurrency exchange you don't need to create an account you don't need to give them your personal information and they don't hold your coins so you are never at risk from a hacker or other malicious actor shapeshift has competitive rates and is even integrated in some of your favorite wallet apps like Jacks so you can swap your digital assets directly within your wallet just as easily as putting on your slippers whenever you see that good-look fox you know that's where shape shift is so to get started visit shapeshift.io and start trading and we'd like to thank shapeshift for their support of

epicenter so let's move on to this idea of heart Fork voting um can you describe uh how the hard Fork voting works and then afterwards let's talk about a a a real live example of um um a hard hard Fork vote that was carried out on on dcred sure so it's a pretty involved process but I'll try to keep it pretty high level so we can get through it quickly the the basic process is that first the developers code up whatever the change is and there also it has to be a company with technical documentation that describes you know what the change is what the pros and

cons are so that stakeholders are informed enough to be or you know educated enough to be able to make an informed decision so the the first stage is that that you Cod it up and you actually put it into the software and it's put in an inactive State um there are versions We have several versions involved here that have to basically happen and sort of in lock step um so one of them is the block version this is very similar to bitcoin and that is the proof that the proof of work miners have upgraded they bump the block version to say they've upgraded now a big difference in our system versus the systems and and other proof of work coins is that upgrading itself does not mean that the new feature is going to take place and in most the

other systems when they upgrade the block version they're signaling hey I want the changes that come along with this block version in dcred that's not the case the only reason the version exists is to signal that I have upgraded therefore I am capable of understanding the new rules I don't necessarily agree with them it doesn't mean I want them but I can understand them and and should the the rules become active I know how to properly validate them that's sort of that version the other version that we have is on the stakeholder side because in addition to the the proof of work miners that are creating the blocks you also have the the wallets the people the stakeholders that are casting the votes so they also obviously um not obviously but as we discussed before there are those vote bits that set the preferences so those change over time depending on

what the agendas that are being voted on are and that means that the version in the proof of stake side needs to be able to understand what those bits mean too it's like I know what I'm voting on you know I understand the agenda this this is what I'm voting on so once those two things happen there are some thresholds that that have to be reached in order for those two things to to proceed but once those are done then that's when the actual vote itself starts um the vote takes roughly it's about a month and the the primary purpose of that is that we want to make sure that there is a at least one full turn turnover of that Target Ticket pull size that we discussed before we want to make sure that there's at least one full turnover so that there is a very good uh you know

uh selection that we're actually taking everybody's voice into account that we possibly can reasonably so after that month passes you either you passed a vote with a majority yes or you failed the vote with a majority no or you had somewhere in between if there's a majority yes there's a lockin period those rules and that the purpose of this is that those rules will activate at that point they were voted in they are going to activate but they're not activated yet and the reason this is important is because you know you have businesses out there that will might have to make changes to their software because of these changes whatever they are and so you need to make sure to give the businesses time this is like hey guys you know this will happen you need to upgrade your software not just

businesses but all the users too everybody who's running the software needs to upgrade so it's to give them a sufficient period to do the necessary upgrades and in the CA and then after that lockin period is done it just activates it's all like I said it's already in the the the consensus rules the new rules activate and it's at that point that the actual hard Fork takes place so if you have not upgraded your software by that point you get forked off the network you know you have to upgrade so in in the very beginning when you signal your intention to want to vote on a new piece of software you said that you have to upgrade your software so that you can understand those bits does that imply that the software is always sort of in two states like one

where it understands the current consensus model mechanism but also can understand the potential future consensus mechanism should it be voted upon like is there is there like a like an in between state where the software understands two consensus mechanisms you can think about it like this right which is that you come in with one set of consensus rules and what you're voting on is you're voting on changes to those consensus rules so you have consensus rule set one and then you're voting on whether you should change it to rule set two which has some modifications or leave it the same in the future we might have multiple you know knobs that people can turn it to but the upshot really is is

that hard Fork voting is just for voting on consensus changes and you know these are these are some of the most contentious and difficult to execute changes I mean typically you know if we're talking about ethereum or Monero or you know uh or any of these other sort of you know uh less governance focused uh you know coins out there which is that and when they execute a hard fork or when they execute a hard Fork there's someone there literally like throwing the switch there might be a soft signaling mechanism to say oh we want to hard Fork per Dave C's uh comments earlier uh you know earlier in the talk but um the hard uh you know switch throwing Act is something that you know hard the hardfork Voting is

basically we wire up a switch in the track and then everyone votes on which on which switch of the track we take and in doing that you know there's there's some soft signaling that needs to happen and like you said you know there's this issue of are you interpreting two consensus rule sets or one and really you're only interpreting one and then as of a certain marker which is at the end of the activation waiting period that that Dave described only then does the consensus rule set to activate if it if it had enough votes okay so can you walk us through an example so recently there was uh you put this into practice by upgrade in the difficulty algorithm so

there was an upgrade to the consensus rules talk about how that went through um you know was it successful how how that sort of happened in play though the old algorithm that we had um we we mentioned earlier in the talk that you want to try to maintain that sort of Target pull size so that everybody's expectations are managed you know approximately how long it's going to take before your vote happens and approximately what your expiration percentage is going to be so those are all tied to that pull size uh the old algorithm did a pretty good job of maintaining that pull size it's a little over Target but overall it did pretty good but the price swung wildly it would go from a price that was really low so everybody would want to buy tickets and

there was this huge uh mad rush where everybody was like I want these cheap tickets my yield is really high and there there's a whole bunch of competition and that caused the fees to to get really high and then the price would jump up a significant portion outside of the range that people were willing to pay for for three more periods and then it would return to that low period And So It created this resonance cycle where it all the ticket purchases were happening in the low wind intervals and it was uh not a very good user experience and then there was some other you know negative consequences of that of that as far as the hash power is concerned um basically the proof of work miners realized that hey I get more fees if I point my hash power at dcit during this this low interval when people are

paying higher fees on the tickets and so it would cause this sort of perverse incentive to to direct your hash power at the network during a very short interval and then take it away and of course that would cause some some not really Havoc per se but it would change the uh expectation of how quickly blocks are are being produced so it would it would speed up during the period and then elongate during the other periods and so you know we realized and we saw that this was going to be an issue it was becoming one more and more as more people wanted the stake and the stake participation was rising and so we created the new algorithm we did an entire simulation uh framework for it we simulated it it was all open on GitHub we we got uh feedback from several different community members we tried I

want to say in total I ran something like 350 uh simulations um but in the end we landed on an algorithm we implemented in the code and then we started the you know we let all the stakeholders know what was going on and we started the vote the vote progressed and so I think an interesting point here is that it was actually a cont controversial change because of the fact that um as I mentioned the fees were really high during those periods so part of changing this algorithm so that the ticket purchases are spread out more evenly across the blocks means that the proof of work miners earn less fees so they didn't want the change right but even though it's better for the dced as a

whole it solved a lot of the other things that I talked about some of those issues and of course proof of stake miners wanted it the proof of work miners really didn't want it because it's going to reduce the amount of money that they can make and so the the the interesting thing though is that after the vote ended up going through it ended up being like a 98% I don't remember the exact percentage maybe 98.6 but High 98 uh percentage of Voters who voted yes for the algorithm and the primary reason for that is that a lot of times when you have what seems to be or what appears to be a lot of contention because there's a lot of people on social media you know there's one or two guys out there being really loud saying oh you know this is terrible end of the world's going to

going to happen whatever there you know the contentiousness usually comes from a very small minority of people and the reality is is that when you actually have these onchain voting mechanism and you can actually pull people in a trustly uh Democratic fashion you'll find that a lot of times there isn't as much contention as there seems to be and that was actually the result here it looked like there was a ton of contention but when the vote actually came down it was you know 98% positive and so the vote happened the new algorithm you know it happened exactly as planned the there was a lockin period the new algorithm took effect and um we could show the chart at some point if you want to but it went from having a sort of sinusoid pattern in the ticket price to being almost a straight line

now and the number of ticket purchases are spread evenly across the blocks which is a a much preferred situation it improves the user experience for the users and it got rid of the you know perverse incentives for the the hash power that I was speaking of earlier and something else that I think is relevant here is is that all of this happened pretty recently the the first hard Fork vote uh on you know on the uh ticket price algorithm um I think we pushed the code out sometime in April um these uh you know the the proof of work Miners and the proof of stake miners upgraded per the process Dave described and then the voting began and uh I think the voting began in early may it ended in early

June and then the new rules activated I think it was either July 8th or July 9th so um you know so all of this you know at least it working in production is a very new thing and one of the reasons that you and everyone else might not have heard about it is because we we didn't want to publicize it too much and then you know not have it work when we when we had it running on mainnet so so that's uh so that's the sort of recent history of of of this vote is this like one of the first heart swaps like uh so for example like when T this Ico one of these selling points was okay there's going to be a protocol and like while the chain is running you could change the rules um

like like while the chain chain is running but it seems that you have already done it yeah it's it's their their goal is is basically the same thing that you know they want to have a a way to vote on consensus changes that just happen whenever uh the vote succeeds and and that is correct that that is exactly what dcred does and it has already happened is there any other project that that that has a capability like this there are none that I know of there are projects that have voting type systems however they're all what I was speaking of earlier is that they're all pretty much at a layer where it's sort of soft signaling and I think Jake mentioned it too it's like hey we want this but ultimately it's up to you know one guy

to FP the switch right it's not actually onchain um you know with this system the the the rule change is put in place and then you know we could all go get hit by a bus it doesn't matter it's going to happen if the stakeholders voted in right there's nobody that has to flip the switch it's built into the protocol it's transparent it's provable it's cryptographically secured totally trustless um and I don't know of any other system that actually and I know teos wants to tesas however you say it I know that that's their ultimate goal but it you know that they don't have it yet um and that's the only other project that I know of the hard part for us too you know when we when we're answering questions about tesos is is that until we you know until there's a production

code base that we can look at and go ah this is how they're doing it it's it it is legitimately difficult to do a compare and contrast like say in the case of Dash you know I think Dash is a production system they beat us to the governance thing I'll I'll give them that but their system is per Dave's comments it's a soft signaling system at least it is right now where changes will be proposed and people can have a snap vote that occurs very quickly so they can get you know they can they can assess their their uh you know what Master node sentiment very quickly but even if the master nodes all vote Yes someone you know someone within the project has to go wire up the consensus changes just you know just like we were discussing and then you know they have

to throw a centralized switch as opposed to the way we've done it where we pre-wire all the changes and go we can go whichever way you guys want we hope we didn't wire this up in vain but if you guys don't want to do it it's not going to happen and one of the key points there that I that I find really attractive is that a lot of times people only look at it from the standpoint of you know oh did this get activated or not however some a key point is that it's actually quite important that if something doesn't get activated that if you get a majority no vote that is actually a very desirable outcome too sure you may not be happy that you put the work in and your you know whatever didn't get activated but that tells you move on right find

another solution you're not going to spend the next two years arguing about it it's done it was a already know you know find another way right let's move on and just keep things rolling cool like yeah this system sound sounds really interesting like yeah the idea of like pre-wiring all all the clients to uh understand both the old chain and the new chain and then there being a vote and an automatic like hot swap from the old consensus rules to the new consensus rules while the chain is running uh yeah this to me somehow it feels like yeah this is the this is at least one of the directions all cryptocurrency systems will end up going going to one way or another but yeah

congratulations on being probably one of the first to to implement it so that that kind of brings us to the final topic which is that uh with with decred as far as I understand part of the block reward actually goes to the developers which in this case is is you and your company and and uh we like to understand how much goes to the developers and like how how are these funds where do these funds go to and how are they utilized and uh what how do you seek to evolve that system so the way the the development subsidy works right now is 10% of every

block subsidy gets sent to a multisig address that multisig address corresponds to what is currently a centralized entity that manages development called decred Holdings Group LLC it's a neas LLC and I'm I'm a manager of the uh LLC so the way we've been doing this is is that in terms of how the development organization fits into the development of the project overall is that people show up and some of these people are very interested in deced there's a lot of people who are just you know who show up in our slack they want to talk they want to hang out some of these people are even more interested and they and they go you know what I really want to take a close look at your source code or you know I want

to help you build that build this software I want to help you Market or I'm really good at documentation I notice there were some gaps in your documentation so people show up and are interested and you know what we what we've been doing is is that company zero is really sort of the the main um contractor at this point and they and and that's the company that I run and uh what we do is that we do all the development work uh you know inhouse and then we build the project for that for that work at no markup and the purpose of doing this is is that you know you need money to build out one of these systems Bitcoin is a great example of a tragedy of the Commons in the sense that

you know say before blockstream there are some you know the Bitcoin core developers there's some very talented people there but no one was really getting paid so uh it creates a tragedy of the common situation and we've sort of fixed that by having this developer subsidy but this is just a short-term Arrangement the idea being that over the next uh 6 to 12 months what we'll be doing is we'll actually be dissolving the development organization and placing These funds that are currently in a multisig wallet into what it what might be a you know a pay to scrip hash or uh you know or another uh form of storage and then those funds will be controlled by the stakeholders via a proposal system where I mean let me give you an example you might be uh you know someone

who's marketing contractor you show up and you have a really great idea for a marketing campaign you talk to some of the marketing people they go oh that's a pretty good idea you make a proposal and then people vote on it if enough people if enough of the stakeholders say yes it will it'll get funded and fund and your work will be paid for from what is essentially the dced Dao um it doesn't exist yet but we're sort of building backwards to get to that point so the way everything is funded right now is we have a stop gap which is a centralized entity that pays contractors basic basically if you're interested and you show up and you do some work and the work is and the work is good we'll uh we'll talk to you about uh you know paying you to continue doing this work

and um that's sort of how things are running now and you know we hope to basically continue a similar model but one where stakeholder uh approval is explicit and onchain so tell us about the the current use case for for DED I mean it's it's a currency you know there's a there's a there's market cap there's a price um is it being used as a currency are Merchants accepting it are there use cases that are being built around it there are a handful of merchants who who uh you know or services that accept decred as a means of payment uh wrex is one of them um another one is coin payments coin payments had uh I think had the payment

you know had decred offline for a little bit um the upshot I mean the way I see it is is that any of these projects whether it's Bitcoin or any of you know or any of the followon cryptocurrencies that we've seen over the past several years it's it almost always starts out as a store of value first and then you know after that store of value sort of gains some uh you know legitimacy people want to then start spending it as opposed to just trading it in a speculative context so you know I feel like we're still in the in the phase where it's more a store of value than it is a uh you know a what is it a means of transmitting that value and I think that the reason that people consider it an attractive store of value is because of the returns you can earn from being a

stake uh you know a Staker in addition to the fact that you get to participate in the governance at the same time so it's uh you know it's we're more in the store of value uh phase right now but uh you know as the project matures we're really going to be focusing a lot more on Merchant acceptance and payment processing okay great well uh Jake and Dave thank you so much for coming on the show today it's fascinating to uh learn all about dced and the interesting work that you're doing around govern and we'll be uh interested in hearing uh developments uh about deed in the future and you know as you Groll out more features and uh as uh as the the community and the and the and the currency itself um continue to grow thank you all right thank you for having

us and thank you to our listeners for tuning in uh epicenter is part of let's talk Bitcoin Network you can find this show and lots of other great shows at let's talk bitcoin.com of course if you like the show there's multiple ways you can support us uh you leave us a tip uh and the Tipping address will be in the show description and if you don't want to leave us a tip you can just uh leave us an iTunes review go to iTunes leave a review it helps people find the show and for the show to get reference there uh so thanks so much and we look forward to being you back next week [Music] [Music]