ZKPodcast: MimbleWimble pt 1: Grin with Daniel Lehnberg

4 Nov 2019 · 1:01:19

Daniel Lehnberg joins Zero Knowledge to explain Grin, an implementation of the MimbleWimble privacy protocol. The conversation traces MimbleWimble's origins and how Grin developed from that whitepaper, walks through how Grin transactions and its monetary model work, and covers Cuckoo Cycle, the proof-of-work algorithm underpinning the network.

Speakers

Topics

Transcript

[Music] welcome to zero knowledge a podcast where we explore the latest in blockchain technology and the decentralized web the show is hosted by me Anna and me Fredrik [Music] today we sit down with Daniel from grin to talk about min bull when Bo and the grin implementation of that protocol [Music] before we start we want to say thank you

to this week's sponsor Aragon one if you're excited about working on the frontlines of crypto adoption and have customer support experience then you should check out the head of support role at Aragon one this will be an important role educating Aragon users and helping them succeed at using the platform to create and manage their crypto native organizations you can find information about the head of support role and other roles Aragon one is hiring for at Aragon dot one slash jobs that's ARA gon dot o NE slash jobs so thank you again Aragon one and now here's our episode with Daniel from grin [Music] today we're sitting down with Daniel and

as usual Daniel comes from grin and sort of we'll talk about that member when will protocol a little bit grin and sort of how things have evolved welcome to the show thanks for having me it's great to be on the show so who are you what's your background how did you get into working on nimble Wimble I'm half Swedish half Greek live in London and have been working in online gaming for the past 12 years having business development was worth doing a bit of marketing and for the past eight years I was doing product management and causes development and I got into grin after

finding out about it at ECC in Paris in 2018 and it was very interesting during the conference as was kind of watching hearing other speakers I was starting to dig in more and more into this decide the wimba there were some slides up from Stamford or something and the more I was reading about it I was like oh okay this is super interesting technology and then I start looking into this green project that was implementing it and I kind of got sucked into it because more from being intrigued by the fact that the words these developers that were coming together implementing protocol in the way that they were doing it without any specific structure or any direct gains from it

it just felt crazy especially at the time of like early to 2018 the people were doing this without icos or schemes to to self finance themselves which intrigued me and I just wanted to find out more and more about this and then I got all the and I've been contributing around governance admin product management side of things I guess when you would have discovered that it muster just sounded so refreshing yeah absolutely it was like a breath of fresh air and there was also like this so grated self things to be very lightweight it's one of the kind of core ethos and they were taking the the kind of minimal approach to to designing a protocol and a system and it was very

intriguing and refreshing to see that at the time where it felt like almost everybody was trying to solve problems in a very complicated way and just adding complexity layers and layers of complexity on top of everything that fascinated me had you already been working with blockchain networks and protocols before that because you're at FCC so I guess you were curious at least yeah so so I've been following the space since 2000 first Bitcoin in 2013 I work was exploring various approaches kind of kind of keeping the ear to the ground and in terms of what was happening in the development system of there the approaches and we I was doing some proof of concepts with regards to Bitcoin

integration and they were processing and as part of that it was kind of interesting also because it came as part of my work I was realizing that in order for a business to transact in Bitcoin and accept Bitcoin payments from users there are stringent regulatory requirements and there kind of seemed like the writing was on the wall that is just going to become harder and harder to transact in Bitcoin on scale for regulated entities because you need it not only to know your customer but you also needed to know another coin right there the coin whereabouts in it run checks on the coins themselves and refund the you know coins that are not deemed worthy enough for to be accepted and that kind of distract me is something that would lead

to there being different types of of Bitcoin worth different having different value because a Bitcoin with a kind of clear or clean transaction history it's gonna be easily easier to transact with and then one that doesn't I mean that you know made me realize how important fungibility is which feels like greenies trying to address to some extent so you say you just sort of found this project started contributing you explained a little bit of what you do but what is your role at grin and and what is Korean is it a company and like how do you get involved are you just an open-source contributor how does this this work sure it's a that's a great question I'm I'm part of the core team of green which is

a it has evolved this part of the green ring governance Green is an open-source community it's run as any open-source community project there's no company there's no foundation there's no legal entity around it and it's founded by anonymous individuals and some some people contributing or anonymous others are not I clearly AM NOT and as part of the evolution of Governors which I'm sure we can get into in more detail later a core team was established which was like a technocratic Council originally based on some contributors that were contributing frequently and that is kind of evolved into its own governance structure now it's green a company now no there's no entity there's no legal entity there's no foundation there's nothing like that the entire

project is community funded a hundred percent by donations so there is no ICO there's no pre mine there's no developer tax there are no investors there's no CEO nothing like that real decentralized well just as much as we can all right so I remember the first time I heard about member Wimble I think it was from kind of a technical analyst at a fund who had like discovered it through his research and it was presented as very much like a mysterious new protocol that was like the author is unknown it was sort of dropped somewhere on a forum I don't actually know this

origin story but I'm sure you do so what is that origin story of nimble Wimble where does it come from sure it involves a lot of magic and Wizardry so so in I think summer 2016 an anonymous individual joined the Bitcoin wizards IRC channel and dropped an onion link on the torrent link into the Tor network of a paper that was just a text file hosted there and then disappeared that text file outlined a protocol which the author Tom Elvis jealous or which is the French name for a lord voldemort from the Harry Potter series was outlining a protocol named after a tongue tying curse in in the

Harry Potter books I haven't read the books myself but that's what I'm told at least so this this contribution from this anonymous author bring together concepts that had been proposed before I had notably confidential transactions coin join were proposed by a Gregory Maxwell and one way aggregated signatures which was from an anonymous contribution and in putting it all together in an elegant way for a blockchain design which hadn't been done before and this was later than improved by Andrew poultra and formalized into a paper I think the original author had made some mistakes and that then was corrected and a few months later after that I think in around October 2016

another anonymous individual or said the honest individual showed up to the scene and called themselves ignore to several which is also a Harry Potter character and said that they had started a rust implementation of the memo window protocol called grin after Gringotts wizarding Bank I think that's kind of where the Harry Potter references appended and they're from there on descent on individual started working on the project and a community was formed around it that has evolved into what it is today we launched in January 15 2019 after I think four different estimates so it was about two and a half years of

development and I got I joined the project in March April 2018 I think so you mentioned grin grin the project that sort of formed it sounds like very organically but there's another implementation of member wimple correct it's beam that's right obviously the focus of this podcast is gonna be on grin and your work with member will but maybe it's I'm just curious like are they implementing the same thing do you guys work together is that a group like they're a company yes so so grin is the first project that aimed to implement member Wimble and is written in rust and about I think shortly after the time I joined actually in 2018 another project

was announced beam which is a second a different implementation of the member window protocol written in C++ by a for-profit company with investors that has funding structure through their coin that you know as a founders rewards similar to how ZK she's set up but the projects are separate completely they have a different implementation it builds on some of the work that had been done already with grim you know some of the challenges and there was a mailing list a member wendel mailing list that was very close to the green project that was discussing a lot of different approaches of how to solve some of the challenges of implementing memorable which obviously beam also could enjoy take a similar approach to some of many

of the problems but they also have a different way of handling some other things and we communicate openly on forums and so on and if we have technical questions or but the projects are run separately completely okay so remember windmill is sort of the protocol this thing that was dropped anonymously papers have been written and then green started working just organically on an implementation of that beam came later but to be clear like they're not aiming to implement the protocol in exactly the same way it's not wire compatible or anything no it's not compatible I think there I think there are subtle differences in some of the ways things are done I don't know the full details of it but it is it is its own implementation it's not a fork or

anything like that yeah so let's dig in and try to explore what member wendel is as a protocol so what are the basics what's what's the point of this protocol first of all sure so the protocol aims to be privacy preserving and scalable comparing to some of the alternatives out there in member Wimble there is no not only is the project itself minimal but the protocol itself is quite minimal in the sense that it tries to keep as little information as possible on chain there is no amounts there is no addresses in fact there's very little debate up on chain is just a chain of

inputs spending - into a chain of outputs and something called kernels so if there's no addresses then how do you actually exactly send money back and forth well in mid Wimble this is interactive the sender and receiver needs to interact in a round trip to build a transaction so each output symbol has its own private key so when you start a transaction a sender designates which outputs to spend as mother details and sends that to the receiver using whichever communication channel is available to them the receiver specifies which new output to spend to which only they control and signs the message and returns it to the sender the sender then kind of finalizes

that transaction assigns it and can broadcast it to the node so this interactivity is unique and kind of key to understanding how many but one more transactions work and as a result part of their like properties of the the protocol itself allows only block headers the list of the unspent transaction outputs and transaction kernels which are small hundred bytes proofs that the transactions um correctly ie that puts equals the outputs and also that the parties have knowledge of the private keys involved so only the block headers the UT excels and the

transaction Colonels are required in order to do a full sync and achieve the same security properties as full node in Bitcoin that was actually a question that I had is is it very very similar to Bitcoin or is it drawing from a few different protocols I'm kind of trying to position it I think what I always been curious about is like what makes it dramatically new I understand this sort of back and forth and this like interactive nature but is it living in a completely different category or is it very very close to one of the known protocols so you kind of builds on the learnings that the insights kind of discovered and pioneered by Bitcoin and other protocols and achieves something that has the same security properties in

a simpler way with less data kept on chain so with a protocol like Bitcoin the Securities derive kind of scales with the number of transactions on the chaining you keep that history on chain in perpetuity green scales with a number of you take souls and the Colonel's but that's a small amount compared to the you take so size so you you need less data on chain and you get the same companies is there any similarity to something like C cache or these or Manero the other privacy related or privacy focus block chains so I think one of the one thing that's worth adding about member will move as well is that the assumptions made the cryptographic

assumptions made in order to achieve this protocol or minimal the the only assumption is that the discrete logarithm the problem is hard to solve which is a battle-tested assumption in cryptography that has been around for decades other protocols make different security assumptions and have different trade-offs to achieve their level of privacy stuff things like zk snarks have a trusted set up and are much more a much different storage and processing requirements and the Monaro have a different way of achieving their level of privacy and and they do so with more overhead but similarly I should say that you know

grin that the way grin works in the way you see some of the privacy-preserving abilities is that a transaction consists of a set of inputs Spencer - a set of outputs in a transaction kernel similarly a block contains a set of inputs expense to set of outputs and I transaction kernel in fact the entire chain is a set of inputs spending to a set of outputs and transaction cross and it kinda it's just the similar structure is this kind of unified structure allows all outputs to hide amongst each other in in a kind of very elegant way and you can achieve something called cut-through where say if if I spend to Frederic as if I sent the ten grins to Frederic and

Frederic sends think rains to Anna we can do cut through and remove Frederic from the equation and only keep the fact that I spent spent ten greens and they can go straight to and we don't need to keep all the data on chain uh-huh so how does that work was it like after every transaction or after every like leap something is wiped out or the transactions can aggregate and they can aggregate it's easy to aggregate them into a block which can then be aggregated into a full chain and each node only keeps the data that they need to keep in order to maintain a full sync obviously notes can keep more data if they want but you only need less data need a small amount of data to do a full thing basically

oh well it would basically be up to the miners to say this middle transaction is unnecessary we can remove it here and keep the same properties of the total amounts spent and sort of the same end result so if I understand correctly block is the normal header information they would have an any blockchain more or less and then you have your set of inputs that are acted on your set of outputs and these transaction criminals and that's the entire block and then the entire blockchain is basically did just this sum of all of these inputs and outputs over time so your your so when you're sinking you're

just kind of playing through these inputs and outputs and and you end up with like a final set that is the state of the chain correct and that's the block headers you take so set and the kernel set and it's interesting so today green utilization or signatures if we would end up using BLS signatures instead that would allow us to aggregate kernels as well unfortunately that would also come with different security assumptions but it's something that we're interested in exploring further and understanding a bit more what that would mean now what basically allow us to compress the kernel set as well so that explains where some of the scalability properties come from and how you can keep the chain

small but I'm still not entirely sure where the privacy comes from so one part of it is obviously that you can't see which address ends to which address and you get that by having this online requirements but you also mention that you can hide some of your outputs and in the total sets what do you mean by that so so first of all there's no online requirements so you can build a transaction offline if you want I can send you a file over email USB stick or we can use a carry region and we can transact things like build this transaction together interactively and then one of us needs to broadcast it to the chain at that point ok that seems to

be the misconception because I've always heard that if both parties need to be online in order to use it this is what you're saying is that you can do something off like between two people and then only one of them actually needs to interact with the actual gene it has to be interacted but not synchronous exactly correct and and so yeah as you say Fredrik some of the privacy-preserving properties come from the fact that the transaction amounts are blinded there is also no scripts scripting or anything like that in these transactions so each transaction look the same and are indistinguishable that way and in a block there's no list of okay these specific these outputs are

spending to these outputs so once they get aggregated you don't really know which output is spending to which output there is still some ways to link transactions Ian Meier is a from the zero point protocol from Z cash foundation has a great talk about some of the link ability that you can achieve variously conducting various attacks on decoy based systems so what you're still having green is that you have a link of some inputs to spending to outpost and continue in a chain and if you carry out some active attacks on that you might be able to link some outputs together what what I should say to that I want you to add to that as well though is that grin has these privacy deserving properties

turned on by default for every user it's not perfect by any means but it achieves kind of a decent level of obfuscation by default on the entire chain and it does so at very little cost I kind of look at it myself as a kind of like a Goldilocks approach to a lot of things simplicity scalability privacy preserving abilities and so on fungibility it's not necessarily just a privacy coin Green wants to you know we think a lot about electronic transactions in general and in order to do electronic transactions in kind of cash like behavior you need funky fungibility it's kind of that's why you need privacy in order in order to

achieve this fungibility so that you get cashed like behavior where the coins themselves don't necessarily have a memory it doesn't really matter who who they belong to before before they arrived at you I wondered about like how would how would it actually interact I mean you're talking about kind of transferring between two individuals but like say you wanted to actually use this for some business purposes like is the on-ramp for grin really complicated is it hard to get I I'm kind of curious like how this would work with exchanges and stuff like that like do the members have to buy on an exchange and then move it through these interactive things like to another place and then do this interaction or they're like tools that are being built to make that all easier

more privacy-preserving easier is actually good all right cool so so you think guys the interactivity requirement you know on at first glance you might think that oh wow this is so different from Bitcoin and that complicates things a lot but actually it turns out that it's quite well-suited for online transaction flows in the sense that this dance between sender and receiver it can be in Reverse as well so the receiver can start send something to the sender that then responds back to the receiver they can finalize and broadcast it so you could have an invoice flow for example where a merchant is presenting any voice to the user the user needs to sign it

return the response and then the the merchant just finalizes that the broadcasted write which works very well for online environments some exchanges now I mean right now we haven't had we don't have like a default transaction building method that were recommending yet it's something that we're working on I have been working with some others on green box which is an open transaction building protocol that gives you an address that you can send and transact with that doesn't go on chain and there are other ways to do there are some ideas being proposed right now and the community is kind of valuating this ruse to take well I think what we'll be doing is try to find like a good-enough canal

solution to use as a like a recommended default without being too prescriptive about it knowing that we don't want to say that there's only one way to achieve these things and the different users will have different needs and use cases and some might need to be very private in the way they transact maybe they want to you know pass this file in the dark alley somewhere they might have less requirements on the privacy level but just want something that's highly performance we want to find some kind of good middle path there like a Goldilocks approach to do that the best way I like that term the Goldilocks approach yeah finding there's not too hot not too cold just right yeah exactly exactly yeah I mean privacy is a

deep rabbit hole to start getting into and once you start talking about sending Network messages you can start talking about someone monitoring the entire network and you know the government monitoring you know everything that leaves a country and I can still determine what comes from you or not and so exactly you can kind of talk about this endlessly but yeah and the chain is always you know it's not stronger than its weakest link there in that context and even though we have like there are some approaches that take you know super advanced cryptography and use that to achieve something that's you know really great privacy in that context but it comes at a high cost and you know some of them have opted in privacy which is kind of self-selecting and kinetic marks

you out as a user as well which list is all problems and any you know a user even transacting in the most private protocols might still expose themselves by mistakes in user error so it's it's never like it's a spectrum it's never gonna be perfect and we're painfully aware of that and here is what what the process to construct one of these transactions would be and if we take green box as an example how was that built and how does the interactivity happen there right what is in a synchronous transaction relay so each user has a relay that they're using and they will they get an address derived from their private seed that's like a

public key essentially that is stored on the relay that you that other users can send a message to and then the green box user kind of cools that message and process it's in his wallets and returns the response to the other user it originated from nice thing about that as well is that because these users you have their address which is a public key that they send with a private key to you can have transaction proofs which otherwise in a general more general protocol like than the file based exchange you're not necessarily able to prove that somebody participated in a transaction so it's almost kind of like building up a separate p2p network outside of the blockchain where people can

send and receive over this this p2p network through relayer sir yeah we have I supposed its own sort of transaction pool where we layer store messages until someone comes along and accepts the other end of it kind of like that and I mean it's performance it's very scalable unfortunately it puts some degree of trust on the reading itself at least the way it's done right now because the relay was sent to another relay so you don't necessarily see who you're interacting with but he knows the addressing envelope of transaction graph on that we don't really like that we want to we want to improve on that so we have some ideas around it we have some good ideas we think you know something kind of the mixed network direction but

each of these things kind of come with their own trade-offs as well and I'm thinking a lot about how to propose a protocol method that is good enough to be rolled out like on a green wide level as like a solution that could work hopefully for most so I just want to dig in a little bit more on the transaction itself because I still don't really watch how the transaction is created you mentioned Schnoor signatures and these transaction kernels what are the kernels and and I assume they are the result of creating one of these transactions so what walked me through what this person a sign what this person be signed and

how does that end up in a kernel so a long kind of step by step walkthrough in order to answer that question kind of need to walk through the Member window protocol in a bit more detail so grynn realized partially on confidential transactions and that uses Peterson commitments that that's a way to to blind the true amount of a value so that's used in grim and confidential transactions to hide the value of the output in the original confidential transactions proposal it was that the sum of the commitments used as inputs should equal the sum of the new commitments used as outputs

or that the difference should be zero to ensure that no amounts are being created out of thin air when you create a transaction so for example if I have inputs that are the value of two and two I can spend them two new outputs that are the value of three and one so that the inputs to and to equal the outputs three and one in them adding up so that both of them adds up to four means that there wasn't any new value created as part of the actual transaction but but there is a bit of a hack you can do here or if you use negative amounts you can create larger output values on the one side and it still connect weights in

that way you could create money out of thin air so so in the previous example see if I had two inputs two and two spending two out to two outputs but instead of three and one there are instead one output is eight and the other one is minus four then you would have two plus two equals four on one side and then eight minus four on the output side this would still equal each other right and it would still be four four equals 4 or you can do 4 minus 4 equals zero however on the outputs here now you now have an output that is eight words you started with inputs that equated to four so you've basically created a value of

four out of thin air and then you have that negative output of minus four which you don't need to use so in order to prevent against this you want to make sure that inputs or outputs cannot take negative values and in order to do so in green we use bullet proofs which is an efficient zero knowledge ran range proof that proves that a particular output in question is equal to a greater than zero so each output has its own bullet proof and an output is also a Peterson commitment which is the true value plus a blinding factor that hides the value okay so the kind of key insight from the anonymous Tamil this Jerris or was but

it's not the entire peterson commitment that need to be something to zero as long as the actual values so if you remember a Peterson commitment is a is a value and a blinding factor as long as the values are something to zero we can ensure that we're not creating coins out of thin air as in the previous example I did so the blinding factors of the Peterson commitments using the R in the inputs and outputs do not need to add to zero and that is what ends up being called the public excess and to prove that the values the grin amounts in the transactions are or zero that the inputs and outputs that no new values are

created as part of the transaction we require a signature it's only possible to create this signature on the access if in fact the amount is zero so it's like it's a it's a little bit too detailed for me to explain now here but basically in order to sign this excess value the the amount part of the PDSA commitment needs to be zero and conveniently in order to create the signature you need to know the private keys of the outputs and inputs so the signature the signature to the excess serves two purposes first of all it proves that the green amounts add to

zero so that no money was created out of thin air and it also proves that the participants in the transaction had knowledge of the private keys so you can't really dispute that a transaction occurred and that's someone or some group at the point of the transaction had access to the private keys for the outputs that were involved which is good and because we use Schnoor signatures and these are linear we can some partial signatures together to create a full signature which means that a transacting party only creates a partial signature for their contribution to the excess value that they sign and ensure that the

outputs are the values are zero that can then be sum together with the other transaction to become a single signature for the full access value there's North signature on the excess value the transaction fee and the lock height together form the transaction kernel that is put on the chain aside from from this transaction construction method I know there's other sort of privacy things in there I read somewhere that you have this sort of random walk of how a transaction propagates through the network so it seems that it's not just regular gossip as it would be in Bitcoin yeah we use a dandelion and Daniel line plus plus

which was proposed by Julia fanti and other researchers to the Bitcoin network as well so rather than just doing a gossip protocol you each node has specific connections through three specific epochs and it says the transaction only to one other node that then flips a coin according to probability it will then continue sending it to a single other node so you kind of form like a stem of this transaction traveling across the network you know to one note at a time until it reaches a node that flips a coin and the decision is to propagate the transaction using losses so it looks

kind of like a dandelion if you look at the flow of the transaction this is this is used to obfuscate the origin of the IP that broadcasted the transaction originally another word like as we talked about before there are many different layers of you know being privacy-preserving and if global passed his adversary is monitoring the entire network and seeing where from which direction a transaction gets propagated you can ascertain you know the originating node could this kind of message propagation protocol actually be used for other things is this something that is being experimented with in other protocols because it sounds quite

interesting yeah so it's it's quite recent I think it's only been around that that papers only been around for like a year or two I know beam and also you than the dandelion they have their own modification to it but it would work for other protocols as well too to make it harder to ascertain from which node a specific message originated from if there's an adversary in the now or a how do you prevent someone from just kind of sucking up all the messages and never propagating anything if I'm just sending to one node how do I know it actually passed that pode yes it's a good question so there's like a fallback where each each node has like just during the epoch each each node kind of keeps track of what they've forwarded along and if they don't see a

transaction propagated within a certain time you send it out yourself but because there are some random delays associated you should have in the network a people that the protocol correct they should be random delays too when you send the transaction onwards it doesn't necessarily need to be the originating node that does the fluff there could be another node as well yeah so if you are the originating node you really mindful about your privacy you don't want to you know show who you're and like or that you're sending a transaction you send it to one person they don't seem to propagate it you kind of wait until the next epoch try again with someone else that that sort of structure yeah or more like hey I sent this transaction I haven't seen it on

the network so ok so I'm gonna I'm gonna go sip it out now but this every node does this for any transaction they've seen so that means that it's not necessarily the the first node that's gonna do it so before we move on to talking about mining which is something we want to cover a little bit what proof of work do you have green uses a the cuckoo cycle proof of work family created by John Trump who is also part of the green core team and it's actively contributing to green for the past few years the cocoa cycle proof of work on high-level works like this you you have

billions of grafts connected and what you try to do is trim away connections until you find a loop the cuckoo cycle proof of work it's a 42 cycle so essentially a loop connecting 42 notes together it's easier to do visually there's like a great talk online from John himself that explained this in detail I if I could send you the links maybe you can put in the show notes sure well totally do that so so one of the reasons that we chose this perk is that it's kind of very simple and it's only 43 lines of code and we have two variants of the prefer work active since launch so you know part of the ethos of

greenness is fairness because we you know rely on donations and and so on we we were thinking a lot about how to bootstrap a coin in 2019 that had already a lot of attention on it there were rumors about a six being developed by hidden entities and so on and we knew we had a lot of attention on us so we wanted to figure out a way where we could bootstrap the proof-of-work Network at the same time as encouraging ASIC development long term because I think Asics are inevitable we don't want to be a sakra sistent or anything like that in the long term we also don't want to give you know as a single entity an unfair advantage from start so there

were two variants of this culture cycle for work one was designed to be a sakra sistent and it launched on getting 90% of the rewards of the network and the second one or which was designed to be a sick friendly which got 10% of the rewards over time in the first two years of existence this ratio is linearly increasing to the point where at the two-year anniversary of grynn a hundred percent of all mining rewards are going to go to the tuned proof of work which is simpler to build an ASIC for the idea was to essentially bootstrap the network with GPU miners and overtime push everybody on work the fairness of that

and how it worked and how it turned out we we originally hoped that you know only high memory GPUs would be able to mind the queries to start off with but as part of launching there was some significant discovered that low-memory GP used to mine it as well which led to GPU mining forms being able to mine the coin making it harder for grassroot miners to to mine efficiently and competitively but these are like kind of the things that you know we're still still seeing effects of that improvements of it it's hard you know I think somebody described they had a look at our or launch and you know equal opportunity doesn't mean equal outcome it's certainly not in the case of mining green successfully but at

least we didn't see you know a city turned on from day one nobody mean it came from we did we did what we could to achieve as fair distribution of coins as possible this actually leads us really nicely into sort of the next set of questions that we have about this and that that has to do with the making of the project and the launch I went to actually I think it was called grin con yeah Berlin yeah I was there and and while I was there actually spoke to a few kind of investor type folks who were there and they told me about these investments that they were making into the mining equipment for grinning and that was very interesting because I guess other changes that have become

very very popular they're not necessarily recognized from the start as being you know something to follow they kind of grow in type in this case the hype was there before it even launched so I wonder kind of going back to that time did you feel like there's a lot of pressure on you guys or were you able to keep a clear head yeah we did feel I mean we had the world's eyes on us for launch and you know fortunately the development team did an amazing job I think that pulled off something a truly phenomenal small amount of people launching without a the smallest hiccup even but there was a lot of question a lot of attention I guess everything

about this project has been done in the open and some people in the Bitcoin community and others have been following it actively for a long time and the build-up kind of just grew right and because there wasn't a way to to get exposure to this coin in any other way than mining it there was a lot of investors and people coming to the chats asking how to buy coins and you know get it to get their allocation or whatever and since we're not doing any of that the only way to do it was to mine so if you are an investor and wanted to have long-term exposure to the grim you needed to mind the coin and so that's how they set up these I heard like a lot of special-purpose vehicles and so on being set up for it you know if it turned out successful or

not for them and profitable or not I really don't know as we said it was like a last minute surprise in terms of efficiency in competition there but I hear that it knows to some degree this is still kind of ongoing where people are trying to get a hold of quantities of grain for like long term purposes and because it's only proof-of-work mind and there's no other distribution you know it's gonna take a while for supply to be out I should also add that we haven't talked about the admission rate the grain is is one grynn per second 60 Green rewarded as a coin based rewarding in a one minute block so every second there's a new green minted and this is a continuous indefinitely there is no happening there's no

changing the emission rate which means that over time the emission rate in percentage terms decreases to zero but it's gonna take a long time and there was a lot of emission going to be being done in the first couple of years and part of the reason rather rationale for that was that they wanted that you know the the creators wanted something simple there wasn't any anything that said that you know the emission the curve of some other coins was good or great or you know was the right one so you know instead of presuming to think that they have the answer they wanted something that's very easily understandable and there's something that's fair this is that you know there's no rush even if you find out about going today and we launched in January you know it's time

to to get some green if you want you can wait the next year as well that's really matter you know early adopters are not really gonna get rewarded and late comers are not gonna get penalized and that is part of the strategy of making this something that's usable and because the team itself doesn't really have anything to gain from you as a listener or somebody else getting a hold of Grimm we can be quite honest about how we set things up and also about the state of the protocol how about what is working interesting you mentioned something a lot which is this ethos of being fair and I'm curious what fairness means I mean I think you you've already answered a question I had before which is why didn't you go proof

of stage because that seems to be the popular thing to do but I suspect the answer goes back to this fairness point but what does what does fair mean goes actually back to two things simple and fair proof of stake is not simple at least not in 2019 and it certainly was not in 2016 when the project started and in terms of fairness I think one of the unsolved problems with prefer stake is distribution so that I'm not familiar of any kind of fair way to distribute the initial reward of proof of stake other than maybe to approval work which some of the projects have doing and it's quite interesting I I think can I'd like to kind of follow that but it's not simple and what we're trying to do here

is as little as possible this is this is kind of amazing like it sounds like this ethos is built through the entire thing not only in the kind of architecture the the launch and architecting the rewards over time but also in the way the team is formed and there's no company there's no foundation there's no profit motive as far as I can see so as a fully decentralized project with you guys coming together very organically did you actually have to sit down and say like these are our values or do you feel like the values just sort of came out because of the way this protocol was kind of organically grew it started from started from just a bunch of developers doing an

implementation and kind of the community grew as a result one of the first things I did as part of contributing contributing to the project was saying hey you know should we look at whether we need a foundation and it did like a little competitive analysis and review of other experiences from other coins and and also try to understand the use cases of a foundation and the conclusion of that was that you know they're only possible maybe thing you would need a foundation for is to control maybe the trademark of the name or something like that of the logo didn't really want that and we like a centralizing force and so you know why have it there's no real use for it and maybe actually like one thing leads to

the other right if we try to keep things simple and be minimal and since we're also relying on donations we don't have the funding to to go out and do something crazy so we have to be quite lean and and I think that's that's very very good for the project itself and its chances of success we're actually being we were being as part of the big hype of the launch of the coin we're also being mocked in some circles for for being too naive and and the you know tragedy of the Commons rah rah rah you know there's no way to to be able to fund the protocol development in a sustainable way just relying on donations but the fact of the matter is that we you know the project managed to launch a fully working change successfully with very little funding there was some donations

for one full-time developer at the time and now we're continuing we have received the thankfully some large donations from some contributors but we're trying to do things as lean as possible and the ethos of the community is always that we're not gonna achieve real progress with paid developers you know that's not really gonna work with us because we have no funding way more funding model so we have to kind of it's possible to be funded from the project there is some amount there's some like some funds that you can be that can be used for for supporting people who contribute but the the kind of lion's share of all contributions needs to be coming from an open source developer ecosystem it just has to be because there's no other way maybe let's talk

about that funding then so it started as a group and then you got some donation which allowed you to pay for one full-time developer and then you did a bid you kind of did a call-out for more donations and so we're doing still doing these kind of fundraising efforts we now have there was a big donation of 50 Bitcoin I was a coin base reward a big Bitcoin reward from 2011 or something I think that was donated today from an anonymous source which has you know given us some sort of breathing room for funding but we still feel that we don't have enough of course I think we're spending we look at it as something long-term but I think that's kind of a burn rate for other projects for a month but we always need more funding we always need more

developers we need to grow the echo system but but it's it's quite interesting because I mean I can stress about these things personally but but Green doesn't really care you know like Green itself is an open source project and you know maybe some people put some time into it and get paid for it okay that's great at some point maybe the money runs out all right what's gonna happen that well people need to contribute to the project in order for it to evolve and it's gonna be doing that whether or not there is funding for it and whether or not people are able to sustain themselves on it so it's it's kind of habits a life of its own and it's fascinating it's my first open source project you know I used to work in companies and under way you've jumped in for the most open source of

all open source projects I like it you know I think it's an interesting model I mean I on two notes one on the sort of the point of foundation is to be able to distribute those funds rights and be able to do that in a legal way taking donations and then distributing that as salary and pretty sure is illegal in most places up to like individual people's tax position and basing the jurist exactly exactly yeah so depends on which jurisdiction you're in and having a foundation means that you can take those donations and then pay people regardless of which jurisdiction their but that aside on the open source note is there's this interesting movement

recently in the rest of open-source so there was this NPM package maker open source developer who has one of the most popular and PM packages and which is in the JavaScript world for those who aren't aware he hadn't interesting experiments where he put an ad in the install description of this package so when you ran an PM's install it might be fuzzy on some of the details here but I'm pretty sure it was when you run NPM install it showed an ad and he would get paid for that and people were so [ __ ] pissed like they really hated that this guy who

makes free software and gives it like hundreds of thousands of people would make money they were so pissed at him and it's just it's weird like it it's there's this sense that open-source developers are not allowed to make money but at the same time to his points like he can't keep doing this he can't keep working on this stuff unless he makes money somehow he has to put food on the table as well so there is this balance you have to strike there is this tension between these two things in the case of what you just described though I think it might have also been like a cultural misfit like ads there's a certain connotation when ads are there and I think the idea is if open-source is

similar to like independent then that kind of sleazy mainstream activity shouldn't exist there I think that might be part of the problem whereas I think I guess donations fit better somehow but I wonder why they don't work this guy like rode a package that's used by millions of people including Google Facebook all the big companies people make billions of dollars off the back of his work and he doesn't get a cent oh I'm not saying that's good by any means but I do wonder like given where grin is at like you guys must have to think creatively about ways to fund your enterprise and those must have to fit somehow within the ethos of the community I mean the way I mean I can only speak for myself right I

can speak for the project because the project doesn't have a voice but the way I look at it as well is that it depends a little bit on what your end goal is and you know even in the example of NPM so you know if the end goal is to make money for the developer were kind of sustain themselves that's one thing the widespread adoption and success in terms of reach it's a different thing and for grim I don't think that anybody that was attached to the project was looking you know for a way to make money and increase the chances of successful green which are still pretty shaky I would say it's better for the project itself if it's one like this a lot a lot of things I was seeing in there are communities in crypto when before I could have found out about Gwyn

was that you nose kind of felt like you were discovering a project and then you can uh I came a little bit late because now I see all has been done or the team is being formed that they've given their kind of token allocations and okay so now it's too late for me to kind of get involved because obviously if I contribute to this somebody else is getting richer as token appreciates or something green doesn't have that you know it's you know anybody can just start contributing and it you know nobody is better off as a result aside from the community as a whole of course but it's very welcoming that way and I think that design increases the chances of success but you do still I mean you it's not like it's something that you just build one time and then put out into the world like I imagine you still

have to add to it and work on it so like how do you do that continual development yeah like in terms of with no funding you mean yeah I mean this is this is the big question but okay so before we I guess I want to hear your answer to this but actually I wondered is there any there's no founder reward or anything like that there's no block rewards team community rewards or anything like that so what we saw is that it's just having this council in the community and the you know having donations coming in to to multi six controlled by the council someone doesn't really work as a way to to become less centralized so we looked at ways of you know other open source communities how they do their

governance we're 100 percent written in rust and looked a bit harassed does their governance model which was intriguing and seeing the interesting way to experiment for us as well so we we've initiated this process of trying to create some things that are running their own shop so we have a node development sub team and a wallet development sub team and were looking them looking to set up a moderation sub team and and others ecosystem and so on and in have these kind of run autonomously and and try to push out a lot of the responsibilities away from the core team so that ultimately the core team will do as little as possible

and let the other teams kind of self for man do that that's how we hope to be able to scale a bit better because we can't really have just eight people or something and being expected do the most of the heavy lifting instead we wanted to engage the wider community and these ultimately these somethings should you know be able to request funding and so on as well we'll see how that works out there was also an RFC process which is similar maybe to a bid for or so on but also you know traditional requests for comments process where anybody wants to make a substantial change that that gets then evaluated on its own process I wonder in that in that model where you kind of break it off would you what if one of those subgroups decided to find a

way to monetize themselves so like say the wallet group I mean obviously they'd still have the same ethos of the the community but what if they what if they were like actually wallets like you can do your own ads you can pray you like with that what would happen so it was kind of a link to like the way you guys would govern yourself so say that group decides to do something that maybe the rest of the community doesn't like how would that be dealt with these are the challenges of governance systems in general the short answer to that is that you know it depends on the situation I guess and the circumstance and it's not clear what the outcome would be but it never is we look at governance is

something incredibly complex and myself I studied a bit of political science in the back long time ago and I really I don't remember much of it but what I do remember was that there's no straight answer right and you know don't like thinking that you can design like this perfect technological solution to like a human problem I'm not convinced that that's the right way to do especially if you want to keep things simple and ultimately we want to move away from like having like anything I've done like through voting or majority voting I'm sure as you've covered probably before there's hard to do that crypto environments because of civil attacks and you know and doing it which coins doesn't necessarily solve the problem

either generally just doing referendums is not necessarily the best way to achieve like like a good outcome for a community because it can end up being very divisive as we've seen in the real world and you know that doesn't seem like to be the right way to to reach agreement so what we're trying to do is to encourage consensus building approaches where we try to reach consensus but still doesn't mean that everybody has a veto and can just block indefinitely and you know we're not taking like a full democracy approach either there was a founder the founder kinda has finally save a lot of things and there is now like a core team you don't vote to to get out of to the core team because we don't know how to do that you know in a

good way so it's never gonna be like a fully democratic or anything like that but I'm not sure that's the right way to do it either but it's just like ever it's messy types of trade-offs that you have to make all the time and you know in that specific example with the wallet development team going rogue and like putting banner ads everywhere I don't really know how we would handle that you know and I'm sure like the the community would have an outcry and then more people would join the wallet dev team and gonna change that maybe if there was enough for support for it but it's all fuzzy I would be curious to hear just a summary of like where you've come from then where you are and where you see going like what is the path where you are you towards the end of the cycle are

you right at the beginning of the journey so we're very much it feels like at the beginning you know it feels like it's been like three years since we launched what it's been nine months but we have a long way to go we will manage to launch you know it's great we came out there everything's working nothing is broken that's great but we have so much more we want to do we're gonna improve the user experience to make it easy for people to actually transact using grid and start embedding it in their own use cases we want to grow the ecosystem of developers and also other types of contributors to the project we need like tons of technical writers testers marketeers spreading the good gospel of grim you know to every corner

of the world and you want to continue pushing ahead with bleeding edge state of the arts ideas to do in a simpler way aggregate more keep less data on the chain do everything and I like you know take away as much code as possible over time and hopefully we'll get there did Mike my personal challenge is to make sure that I keep along long enough term view I tend to just you know think of it too short term in the state of progress just wanted to move faster all the time but but you know it's it's it's a multi-year project it's gonna take a long time to to mature sounds like there's like you need you need you need and have probably very passionate people

it's quite self saluted alright because what we wanna discover was that you know hey if there's not like a system where anybody can get rich quick those people don't end up [ __ ] to show up and instead you have these these crazy people that are like very very like passion headed and do it because they believe in some things alright well listen thank you so much for coming on the podcast and talking to us about nimble Wimble and grin and your experience launching an exciting privacy oriented blockchain thank you so much for having me you know it's fun thank you very much and to our listeners thanks for listening thanks for listening