EB136 – Arthur Breitman: Tezos – A Self-Amending Crypto-Ledger

this episode of epicenter Bitcoin is brought to you by Jax Jax is the user-friendly wallet that works across all your devices handles both bitcoins and ether go to J a double x io and embrace the future cryptocurrency wallets welcome to episode of Bitcoin the show which talks about startups technologies and projects driving decentralization and the global blockchain revolution my name is Brian Fabian crane and I'm a Hanoi today we are going to talk to Arthur Brightman who's the lead of the day source project Bezos is aiming to launch a cryptocurrency with a very unique governance mechanism and smart contract system we'll talk to Arthur about what's special about tezo's but before we begin let's have a short intro from utter utter your intro hi my name is Arthur Brightman I grew up in the phrase which is why I have a bit of a French accents I've been working in finance over the past ten years and I've also been involved in two cryptocurrencies and in particular I was involved with tezo's which is a cryptocurrency that aims to solve a weird problem which is which many people don't see as a technological problem but which i think is is a governance problem and the governance problem is the idea of thing who really controls a currency and if you're thinking of something like Bitcoin you might say okay what controls the limits on Bitcoin you know why is there 21 million Bitcoin and naive answer is to say well it's a code you know the code of Bitcoin is a rule the code is what determines how many bitcoins you have and then the question is well yes but what if there's a fork and this is a fork you say well you know I could always use the original version of Bitcoin I'll only use a version which has 21 million coins okay but if you do that then what about what are other people going to do you know I was it going to use the save version as you or are is it going to use the new version which maybe has 30 million coins and what really matters is what other people are going to do what other people are going to value and what they're going to value is going to depend on what they perceive other people are going to value it's a sort of a beauty contest and that's that is completely a social phenomenon essentially if there's a perception that a certain fork is valid that a certain fork has Authority then people are going to be following that and that is essentially is what's going to control the governance you might think that you're escaping it by having these inflexible rules but you're not so the closest thing that you have is basically a cultural very strong cultural bias towards saying no this should be the rules and any departure from those rules is seen as illegitimate it's sort of a taboo but that type can be broken and many people have been talking about actually breaking it for for Bitcoin so instead of trying to have this weird system where we try to keep forks to a minimum I want to have a system where we can have Forks but whenever they happen they're not going to happen through this informal process where it's whoever can you know shout the loudest or have the most natural Authority I want the process to be formal and so the way it is those offers to do that is basically to put all the stakeholders of the currency in in control I want all the updates of the protocol to happen within the protocol and when I start thinking about that when someone said it was a conference and and someone said hey you know if you're not mining in Bitcoin you're not in control because miners control Bitcoin and I was like well you know that's not completely true because if everyone changes their clients then you know there's nothing that miners can do about it you know if everyone decides you know what tomorrow we want to switch to a different mining algorithm all the miners would be screwed and there's nothing they could do about it but also I don't want the mind even if the miners were in charge I don't want the miners to be in charge their incentives are not aligned to the holders of the currency so who's really in charge and I wanted to put see I wanted to put the stakeholders as a currency in charge of all the the changes that could happen and at the time of when it is owes a favor came out in 2014 basically the paper made a point of like look you know I'm going to sound crazy paranoid right now because obviously the court days are these great and nice people but you know Corday's because you could use their influence to try to push for Forks and then we had this huge battle about block size and I was like oh my god it's actually you know it's like it's actually happening we have this governance problem now this you know and I and the funniest thing it was like okay you know we're trying to solve a problem which is essentially a problem of consensus on what the protocol should be and we have this consensus form forming technology which is a blockchain to begin with so why not use it to form the consensus on what we actually want to do and so it starts sounding very loopy because you're thinking okay we're going to use a blockchain to change where the blockchain is do it and yes so this is actually exactly what we do we have rules on tezo's that allow people to vote on a change to what the rules are going to be including the rules for voting and so that's there that ID was developed by a philosopher named Peter Suber theater suger came up with a game called Namek and the idea of nama is that you start with a set of small rules but the small rules allow for changes to the rules themselves and then you can grows again like this now some of you might have played nomic and if you've ever played anomic you know that the games can be pretty crazy and that's because the rules are designed to be very open-ended in tazers we have open in the rules but we also start with a seed protocol and that seed protocol is going to define what you can sorry is going to define the first rules by which you're going to be able to make changes and those rules are conservative you in general you don't want to have too many changes you only want to have a change if there is a clear majority in favor of that change and the idea is to progressively become attracted to a better and better governance system so depending on when you start on this governance landscape you can either diverge and get some things that's going to be completely crazy and useless or you can converge towards good governance and that's where I'm hoping I'm placing the original protocol in okay that's very interesting and yeah very thorough introduction that I think already addressed a lot of the questions that we were going to have I think what's particularly interesting is that you've with tasers no because you're starting this in 2014 you're working on a lot of the things that now have become kind of pressing issues right so one thing is the question of incentives right so between miners and the token holders then there's the question of how this one upgrade the protocol and I think you certainly write that now that is widely perceived to be a massive issue certainly Bitcoin ëthere iam well we'll see and and that you started working on this explicitly so early on why do you think why do you think you saw that as problems back then but others didn't I think that people really wanted to believe that you know code was going to replace all of these social problems they really want you know there's it was this very very popular meme at the time and it's kind of died off a little bit which is you know Bitcoin is based on mass and nothing you know Bitcoin is completely mathematical there's nothing you can do to break it and so on so forth mass is this platonic thing which is pure and incorruptible and therefore nothing bad can happen to Bitcoin because mass and it is like yes well the you know there is some mess but it's still embedded into society and you know bad things can happen and people were very reluctant to even admit the possibility that this type of thing would happen they would say well you know you can always use a real version of Bitcoin that is so true and it's such it's just such a patently ridiculous statement to say like you know Bitcoin securities is like math right because it did it just very clearly is not right it's an economic security models and if the miners want to do something else then it's not going to help you one little bit so I think that's a great point I mean there is the – to be sure there is some ass that does give you strong guarantees so for example the mass behind a hashing function even though it's not proven there's they're very very strong conjectures that would tell us that you know the messenger you know indeed you will need astronomical amounts of power if you wanted to reverse a hashing function of computing power and I'm not just talking about a lot of you know billions of computing power we're talking about you know orders of magnitude which are similar to like the energy in the universe lists or or like a star this type of this type of guarantee so these are very very strong guarantees and then you have the consensus itself which is based on the ideas I well you know we're hoping that the miners aren't going to get compromised you know you know they're not going to get kidnapped and forced to the mining pool operators are not going to get kidnapped and forced to do a fork we should pose that they actually care about making money and they don't want to destroy the network there all this type of assumptions and these have nothing to do with mathematics you can have the best you know you can have all the proofs you want about reaching consensus in the end it depends on miners deciding to do the right thing and that's going to be an economic and social problem and not not a mathematical one you're very interesting like I have been I read your paper a year back and or the past year I've increasingly kind of realized that like like the visionary aspect of your paper because you know it you're working on governance when none of these problems would seem obvious and then I finally decided okay let's have you on the show I mean thanks for having me yeah like thanks for coming on because like this is really the kind of conversation we have we've been wanting to have for a long time especially Brian I say now let's get into the mechanics of this protocol upgrades right like let's get down and dirty so the base is like let's let's assume T sources starts off as a proof of stake system right will not not get a details of proof of state so so there's a blockchain which means there is like a network there is a set of transaction rules right so how what could conceive a valued valid transaction etc and then there's a set of consensus rules that's how any blockchain protocol that's how the seed starts how can let's say we call the seed egg s1 or something how can you go from s 1 to s 2 which is and say an upgraded version of s1 in pesos ok so the way you go from s1 to s2 depends on rules which are embedded in s1 and you know I'm still working on those rules but there's a general outline for the rules in s1 is that you have a two phase vote the first part is people are going to make propositions so what does the proposition look like so in tazers we try to have many layers of encapsulation in order to give us some guarantee about the safety of the system and at the top layer you have something called the economic protocol and it doesn't know anything about the network it doesn't know anything about your file system or hardware's or anything like that it's a very very super it so it's as well as possible piece of code that describes all the rules that you're using for making transaction and for deciding which branch is a valid branch inside the blockchain now in this piece of code basically can be swapped you can repress this piece of code with another one so right now this piece of code is s1 as you call it you could replace it with s2 so the first thing you're going to do is that people are going to take this one maybe click some bugs make some changes call it is 2 then they're going to hash s2 and I'm going to publish the hash on a blockchain and say hey here's a proposal I want to do this and of course if you just see the hash you don't know what the proposal is but well as I'll do probably you know and they'll post on github their proposal and then they'll say like hey everyone you know this is my proposal look at it and because the hash is on the blockchain people can check that the hash corresponds to the proposition now the first round is called approval voting and approval voting is a very robust voting procedure it will use it was using the Republic of Venice it has very good properties and the idea is that let's say there's a hundred proposal everyone looks at every proposal and say I like this one or I don't like this one I like this one I don't like this one then you sum all the years and they're nays for each proposal and you take the one which was most popular now that one is going to be subject to a vote itself and for that vote we're going to require a majority of 60% of people so once you've decided what we're going to voting on then we're going to decide okay do we want this or not just just briefly into interrupting here yes so you said you know there would be a variety of proposals people who put one eight and then the one with the highest will get through but what time period are we talking about here I mean if votes happening like is there a sec period I don't know once a month where one can submit proposals and then through the next week's the vote so how does that work how would that work so I think in right now initially the same protocol has allowance for quarterly votes and it's basically on the order of months between each it steps you know for propositions votes acceptance and so forth so so let's say there was a bog founder so that wouldn't be a way to upgrade their protocol you know if the if there's an emergency or some flaw was found yes it's not it's not a good emergency procedure the idea is that if we find some bugs and of course you know you're going to time you're going to tend to find bugs early on if you find somebody you can issue a batch and why wouldn't you want to use the governance procedure to to do that well because of governance procedure you wanted to be slow and you want it to be careful and conservative but bugs are not very controversial you know if you find a bug like you know there's in 2010 Bitcoin had this overflow bug where you know you could create a transaction which had billions of Bitcoin on each side starting from zero because of an integer overflow and you know of course it is a revert that it was a patch because it was there was no question that it wasn't valid it was it was very obvious so if you have this kind of very very obvious bug you can have a patch they're so widespread consensus that you're not doing anything wrong when you're pushing this patch it's for the stuff that is more controversial and the stuff that is more controversial generally does not require an immediate fix so III it's not it's not a good mechanism for that is think of it more of like okay we have this new mechanism for scaling but it has some trade-offs what do we want to do that's not something you need to push in an emergency let's take a short break to talk about Jax Jax is a crypto currency wallet created by the people at the central now there are two cryptocurrencies that matter at the moment one is Bitcoin and one is ether but using them can be tricky what wallet you use how do you secure them where did I leave my umbrella it's all a big mess and that's where Jax comes in Jax is a unified wallet it works across all your devices it works for the android phone apple iphone and it works for your desktop computer and they have browser extensions for Chrome and Firefox and it works for both currencies at the same time it works for Bitcoin and it works through either what are the things that makes Jack's as delightful as walking through the 50 smell of Paris on a Sunday morning and getting a whiff of fresh pastries is how they leverage HD wallets so they use this 12 word single backup seed for all three currencies and make it super easy to sync your wallets across all your devices so if you're using the Chrome extension or the desktop app you just whip out your phone scan the QR code and boom your wallets are synced and plus the people that Jack's take your security very seriously it's open source so anybody can look at the code and plus they never hold any customer funds all the keys are stored locally on the client side so go to Jack's do that's Jay a double X do download the text wallet right now and understand what it's like to use in next-generation wallet we'd like to thank Jack's for their support of epicenter next item make make make this make this brilliant concept a bit enjoyable so so let's let's go back to the story where with what happened with Bitcoin when Gavin came up with the idea of increasing the block size right so initially initially there was a lot of debate like Gavin said 20mb blocks thoughts of debate at some point Gavin and Mike harm they realized that typing into Bitcoin for Bitcoin top forum isn't going to help anymore so they said okay we are going to go for a heart folk and we are going to try to convince all of these miners to to also potentially accept that heart phone signal their intent to accept that heart folk and then if 75% or whatever percent signal their intent then we are going to go ahead with it right now let's imagine that same scenario happening with something like Tasers in this case what would happen as I imagined it would yeah maybe maybe the charismatic Gavin attrition of Tasers comes and says okay we should do this and then he tries to convince the miners or stakeholders of tasers to do this but his stakeholders can always say hey if you have such a cool idea why don't you go through the governance process that is built in our blockchain itself rather than try to convince us to do a hard folk yeah that's exactly right so I think it ties into a question that people sometimes ask in politics you know what if you look at the US Constitution what makes it self-enforcing because people say well the Constitution is not self-enforcing you know it's just a set of rules so why why would it have any weight on what people actually do and the reason is that most power and most political power is held through shelling points there helps through games theoretical focal points and the idea is a following if you break a set of established rules then you're become suspicious and then there is implicitly coordination against you so of course someone could propose a hard fork so I could propose into this you know what let's move in this different direction but like you're saying if you start doing that people are going to saying wait a second you know we have a mechanism for doing this why are you bypassing the mechanism if you're bypassing the mechanism then you must be doing some wrong and by default we're going to be against you so that's how you essentially protect yourself against outside in fluid side forks because they're seen as illegitimate by default because you have this allowance for forks if you never needed any fork if you never needed any upgrade that anything then we wouldn't need this whole governance procedure we would have just something that never changes but if you need to have changes you can't have you consciously like oh well we'll have the changes come from the outside because if you do that then how do you sort between you know the good ones and then and the bad ones so this is this is initially why I'm not just pushing the problem further by integrating it inside the blockchain I'm creating the expectation that all changes have to come through this procedure have to come to this approval this is essentially how institutions work institutions work because people form expectation around them and they form expectation about what other people's expectation are going to be this is great because because as you may have pointed out before that I've been sort of asking people like oh every every time somebody came with like some new protocol whether it's you know talking with aetherium or Bitcoin or Z cash all these other things so what's the mechanism gonna be by which you'd sort of decide on the evolution of the protocol and nobody ever had a particularly you know coherent answer I mean that they could have been very secretive here and answers but nobody really built a system that takes this into account from the outset and designs a mechanism of this upgrading enzyme really exciting excited that you've done that here thank you I'm excited too let's have like a small naughty problem out of the way now now now you're saying that any any potential upgrades to the protocol have to go through a to phased voting process when we first try to sort through all of the proposal out out there and at a certain time point and say okay which one are we going to really consider and then in the next phase stakeholders are gonna vote on and you need 60% of the coin holders to vote yes to a proposal to finally upgrade the blockchain what happens when stakeholders don't end up voting and you don't have quorum like this even though the Dow just left a month we saw this that a lot of very important proposals to the Dow ended up getting just 5 or 6% of very low voter turnout so what happens then yeah it's a big problem so I have three mitigations to that the first one is that in every contract that you have on tezo's you can set a key for delegates and there are two reasons for doing that one is that in general you don't want to be making voting decisions with a key that hold your funds because you could be putting that key at risk maybe you want to have this key in a cold wallet so you want to have a different key for just voting which is less sensitive than actually spending your money but you could also put the key of someone else so you can have a system like liquid democracy where you're saying okay you know what I don't trust myself to evaluate propositions on this network but I do trust these people you know I think they're good people they're making good decisions so I'm going to give them my voting power by choosing my key and it start doing things I don't like then I can change it I can you know in one transaction I can say okay you know what now I'm going to give my voting power to someone else so the fact that many I think the reason many people in voting it down is that many people were just buying these tokens for speculation they were saying like oh maybe I'll go up you know I'll buy some they're not really interested in participating and people are always going to be doing that and if people do that at least I want them to be able to say okay and I'll just delegate my voting power to someone else so that gives you a way to really increase your quorum but even if you do that people are going to lose coins people I guess are going to lose their keys and people are not going to upgrade the delegates so the current way this works in integers which would be the second level of protection is that at every election you sense what the quorum is and your required quorum goes down at every election based on the participation in the preview one I'm not super happy with this mechanism because if you have low participation for a lot of elections you could weaken your system to the point where few people could change I could change the balance of things so I don't really like this very much fortunately it's something that can be changed in s2 or s3 so the the type of things that I have in mind for for changing this are essentially requiring proofs of activities ah maybe yearly or so for for coins to be able to participate in votes so that you can sense the quorum not based on like whether or not people are putting but whether or not people are making transactions or possibly charging people for not participating or for not having valid delegates there are many solutions that can be that can be implemented I think the I think for the first few elections we should be okay but it's something that we'll need to address in the future so is this built already is this a concept like right now with tazers does a exists already the mechanism of example having a separate key that is voting and delegation and all these things yes so absolutely so the project has been in development for two years we have a but we have an alpha so uh most of it work I can tell you the thing that doesn't quite get work so to give you an idea because that's a much shorter list so the things that do not work quite yet we have the mechanism for changing the protocol and a fly and for voting we don't have yet at the network layer the rule for downloading the protocol from your peers you know you can download block transactions we're not yet downloading new protocols you know you mentioned it was a two-phase for the voltage sexually free phase because at the end of the second phase basically you replace your test net so the test net of s1 become s2 then you keep that for amounts and then the end of that you have another vote saying okay we tested that for a month do we really really want this and then if you say yes again then s2 becomes s1 so that the test nets right now has a couple bugs and we are still working as well on the forging clients which is the clients that people run to actually like create blocks and send them to the network the rest which is the consensus algorithm works changing the protocol works transaction smart contracts all of that is all that is implemented so now in your in your position paper you mentioned you mentioned that few tarkey can also be used to decide on protocol upgrades right and across the whole aetherium ecosystem like few turkey is this buzzword supposed to be the end of the governance problem but I haven't actually seen it working ever so are you are you going to try to implement few turkey in seed one or do you expect further iterations of the protocol to get a few turkey like governance system also in definitely further a few turkey has not been tested I have somewhat conservative rules for changing the protocol I'm very excited about the prospects for it especially since you have a natural target for the few turkey which is a value of the token itself so you know just just to explain quickly into Turkey the idea is to say we are Arcanum the slogan that Robin Hanson has is vote on values and bets on beliefs and the idea is that we should decide what we want first and that may be a collective decision but that how to implement it how to get there we can have prediction markets and those prediction markets are going to tell us conditionally which proposal is the most likely to well to succeed so here we have an actual value which might be the value of the tokens themselves and we have also a blockchain which is a really good good medium for organizing this prediction market to begin with so it is a it is an interesting it is an interesting ID some of the limitations possibly of that IDE is that you have a moral hazard sometimes so you know if you make the prediction that if a certain policy is taken then you know good thing good things will happen you can bet against that and then out-of-band you could try to make sure that the policy will not happen or if you don't have very liquid markets you could have you could possibly have some people influence the decision maybe by pouring money into it now Robin Hansen's things that's not the case that you know if you start having that people will just arbitrary it and make even more money by correcting the markets I'm willing to accept it's possible for very liquid markets I don't know I don't know for sure that it does happen with with less liquid markets what I do know and I think that's very important is something that people don't talk about when they talk about free turkey in Robin Hansen's proposal of prediction markets the Mart there is a market maker in these markets and that market maker is subsidized and the idea is that you are taking money and you're giving it to someone and someone is going to lose money to more informed traders and this is a very important aspect because you cannot do all this research of finding out which policy is the best without actually investing money in the investing time in it and so this is why there's a subsidy and oftentimes people think that all you can just have a prediction market and people build bets well there's a single to know trade CRM which means that if you're not trying to hedge risk if you're not trying to invest in a business you should not be betting on the market because if you're betting and someone else takes your bet then they probably know more than you do so people are overconfident and since they're all reckon fidence they're going to bed anyway but you cannot just use people's overconfidence in order to subsidize your research you need to have another source what's really nice with a governance system like like this is that in Talos we can say hey you know what we'll issue coins and those coins will be used to subsidize the market making so you can actually get a liquid market out of this so that's one possibility however to go back to your original question like do we want to have that in s1 no certainly not and not even in s2 what we would want is probably to have two systems in parallel one where we have okay we'll have you Turkey but then we'll have another another round of voting on top of that to act as fail-safe and the way I look at voting I'm not perfect so I'm not I don't think that voting leads to very good decisions in general but I do think that voting is a good mechanism for avoiding really bad decisions at it so it's more of the veto tool than it is of than it is a decision tool so possibly something like that possibly you know filter key to decide something and then a veto power there's is interesting Alicia Stein in a small European country it's a monarchy but they have a Constitution and the Constitution says that the people can actually vote out the monarch and then say I think that's an interesting system because you're saying no you know what we're not going to actually ask you to pick someone but if things get really bad you can get someone out and you know I I think democracies has many many flaws but one of the things that it gets rights my thing is this ability to take people out of office very interesting so one of the things that you wrote about in the tasteless paper which I didn't fully understand I didn't understand really at all so I would love to dive into so I said that cases can instantiate any block chain based ledger so it can instantiate something like Bitcoin something like a theorem can you explain what that means yes so when I was thinking about trying to replace the protocol with something else you know trying to change what should we say change and one one way to do this would be to say well you know the protocol is just some executable that you run on your machine so we'll just change that you know we'll just send you a patch to the binary and that's not a very good that's not a very good model because people have many different platforms and you might want to have different implementation so you needed to change something more parametric something something smaller that we describe the protocol in an ambiguous way and so in order to do that I said okay so what constitutes a blockchain algorithm you know what are all the parameters that come into it and if you think about it they all pretty much look at the following same you have states that you want shared between many people and you want this stage to be changeable so I'll take the example of Bitcoin in Bitcoin this state is the state of unspent transaction outputs if you want to snapshot of Bitcoin edit at a given time that's basically what it is it tells you okay these are all of the available addresses and the scripts that are associated with them and this is what you can spend anything that happened before is only used for validation and then you have operations so in operations on Bitcoin is a transaction you've taken and spent outputs and then you transform it into another you take a bunch of and spit outputs and then you transform them into another bunch of unspent outputs so you have operations you have blocks which are sets of operations and your States so your broken protocol is basically the following you have a function we should call apply which takes the state takes the block applies the operations of the blocks to the state and gives you a new state or possibly tells you this is invalid okay so now let's say you do that well the problem is that if you have many people editing the state at the same time you're not going to end up with a nice linked list like a blockchain you're going to look like a tree it's going to be a huge tree with many many Forks so you want to say okay well I don't want a tree I just want one version of reality I just want one leaf of that tree and so you have a second function which is going to tell you how real is that branch you know how valuable is that branch sugar and you're going to just pick the branch which is the the most canonical the most valuable and in Bitcoin there would be the branch with the most total hashing power or in a proof of stake system it might be the branch with the most signature in a centralized system it might be the branch that has been signed by the trusted centralized parties and so as long as you have a protocol that implement these two function apply and a fitness function that tells you which leaf to big you can implement any auction protocol almost any icings so if you have things like ghost where you're rewarding uncle blocks it's not going to be it's not going to be expressible in that framework so I don't think you can express the serum exactly but you can get things which are very close to very close to that and all of the all of the other protocols can be can be expressed in that framework so if I understand it correctly what you're saying is that because tasers can evolve but because you can change change to the variety of rules and in looking at it in this in this general way of having a block some transformation and in the new block because because of that tasers could evolve to do what theorem does to do what bitcoin toss or to do some variety of other things so it could essentially evolve into pretty much any cryptocurrency protocol that's right yeah so so basically it's like it's like this seed that has this evolution mechanism inbuilt even it can evolve probably in probably it has many different directions it can evolve towards and yeah the stakeholders pick which direction to go and if you think that your if your own units of this currency and you think the other guys that are only units of this currency are smart and you will evolve in a great direction then you might just end up building a really valuable system right that's a hope and it's very important so there's this concept in mathematics called Passons of Attraction you have it's an optimization when you're trying sometimes you optimize a function you will start with the point and then you will fuller gradients and you'll try to get a better a better point so you start with a value and you say okay I'll move it a little bit this direction and make it better though in direction you make it better and you end up at the bottom of a valley and it matters greatly where you where you where you start because if you if you start near a poor equilibrium then you might go in that direction instead so it's important that the seed protocol it doesn't have to be perfect it just has to be in the right passing of attraction it just had to be in a place such that starting from this position and following the rules we're going to end up with a better set of rules and every site a virgin circle oh that's an awesome and loggia you don't know greedy optimization right is that correct uh yes so yeah most most optimal most numerical optimization local optimization is it's going to be greedy if you look for example at your neural nets now our our popular again what they're doing when they're what they're learning is that they look at an example they see you know this is a mistake they make when they're trying to classify it and then they move a little bit in the direction that would have made them better at classifying it so they're very myopic they just try to greedily improves the improve the system and we can be a little less greedy with scissors because it's not you know you have a lot of people who are think about the protocol and you're going to try to go in the right direction the reason I'm mentioning this is that people who have played no-mix they say like oh well you know this is crazy because people are just going to vote for all these crazy rules and then you're going to just like devolve into something very bad and it's possible if you start from you know if you're way too willing to accept any type of changes at the beginning then yes you could you could go into this crazy spiral when it just becomes kind of a joke but if you're close enough to a solid states where you know where you have these various circles then you then you can get something really good out of it hmm so your role as if I understand what you're saying correctly it's like your role as a founder of Tasers is that you can see if the governance mechanism you conceive the process yes that's a big contribution but your other big contribution has to be that the C protocol has to start off with a set of functionality code functionality that is such that it leads the community to go in a in a virtuous direction rather than in a in a chaotic direction where community doesn't know what's the final destination where it wants to go right yes kind of your your kind of risk it's like you have this responsibility on your shoulder to come up with a good seed protocol because the further evolution is going to depend on the starting state on the initial state right yes yes I mean and and it's almost every instance you can think of has crazy past dependency I mean you know in like people in the u.s.

Today are talking about Constitution and they're talking about decision that when were hundreds of years ago so if you think of like the weight that the because I don't know if you know the the framers like institution had this idea of like the weight of their words but it's but it's huge and so you yes you can you can have tremendous repercussions way way way down the line today's magic word is evolution that's B o L u ki i/o and head over to let's talk with calm the signing into the magic word and claim you're part of the listener reward so like I could go on and on about this topic for a long time but there are other interesting aspects of pesos that we need to touch upon and the other interesting topics you will talk about with you so one of them is smart contracts and the seed protocol of datas as I understand it is also innovating on how how smart contracts should work right so tell us a bit about all of the innovations you are doing on the smart contracts side yes so uh yeah I believe smart contracts are very very important to have and they solve a lot of problems that are interesting in the decentralized ledger space so one of the reasons not to get smart contracts is to say well you know all you need is to have this mechanism for transferring tokens and then you can just rely on third parties in order to executives contracts and the problem with that is well there's one of trust because you need to be able to trust a third party but there's also one of automation it is very nice when you know that the network is just going to work on itself you know that you don't have to worry about the uptime of the third party you know that you don't have to pay them you know you don't have to give them keys is just going to be automatically executed by the network there's a lot of value to that there's also value in CITS that smart contracts can act as crow so right now you see things like ogre for example in Assyria man their prediction markets and one of the beauty of it is that they are able to build that and as a company they're not holding anyone's fund which legally helps them because they're saying well you know it's a smart contract so who is the custodian to custodian is the network itself so that's that's that's why why have smart contracts why am i doing it differently than Assyrian so there's a kind of dichotomy and how a cerium sees its on smart contract on the one hand they are saying like well the world computer you know you can buy all these computations and so on so forth but on the other and that's also why you know they're trying to optimize the Z a serum Virtual Machine they're trying to make it fast and so and so forth but on the other hand if you if you look at what people actually want to use is for most of the logic you want in turns out in smart contracts it's not you know you don't want to be running competition you want to be running very very simple business logic it's basically if and then it's it doesn't that you know you're not going to be running protein folding distributed on the a serial network it would be crazy because all the computation is done many many times that's not why it's for it's not the world's computer it's a bunch of very simple business rules that you're implementing so a lot of the features such has saying like okay you know we're going to have a needed execution time and you pay for this execution first of all that doesn't work and that doesn't work because if you go out and say okay I'm going to create a contract and that contract basically you create an infinite loop and then you put a huge transaction fee and you say ok this is a gigantic relation fee because these contracts it actually runs for hours you put this you put this transaction out and you say okay now I mine it and I pay myself a fee so you haven't lost anything now the other miners they have to choice is is it just trust you they said like well you know what I'm just going to I'm just going to say like yeah sure that's fine or they waste all their time verifying this and so you you're going to have a problem which is you're only rewarding the person who Minds the block and whereas you should be rewarding everyone for the computation so instead of doing that and in practice in serum they have a cap it which is going to be the block gas limits so instead of doing that we say okay you know what we're just going to rate limits that we're going to make people pay for every resources that they use so there's going to be a limit on the competition time so that we are sure that everyone can all the participants can verify it and there's a there's no way to game the system by having these very long computations we're going to make you pay for storage how much you're storing and so on and so forth can I interrupt briefly here yes so that was a very interesting point right that so let's say I'm a big here miner I can put some gigantic pointless thing into the block and mine myself pay myself two big fee so it actually doesn't cost me anything and then it kind of creates a big cost for the network so I think that's a neat very interesting flaw quite obvious one but so how is that different here because so here we have a cap which is basically saying okay we're going to allow you to run a certain amount of computation and it's not going to be it's not going to be a crazy amount and the amount that we let you basically think of it as you would think about the block size it's a threshold that as long as it's underneath this it's reasonable to be doing that but then I could still put in like loads and loads of pointless computations no yes and so it's optimized so that the amount of computation that you could have total in the block is always going to be reasonable and you have that you know you have that as well in in in the serum with the gas limit what I'm what I'm saying here is not that is hiraman is this like very very large flows what I'm saying is that the idea is that or you're just paying for computation time is is not uh is it it is not a really sound because you're not really you're not really trying to do this very complicated calculation you know you're just trying to run very you're just trying to run simple business logic however it's very important to get that logic right and in order to get it right what we have is a smart contract language which has a full formal specification and which is very strongly typed and the idea behind this is that we don't want to say oh we're going has this low-level assembly and we're going to optimize it because no we're not we're not we're not trying to run this numerical computations where we're trying to do something precise and know exactly very well what we're doing and so this language allows you to get very strong guarantees about the behavior of your contract so there's a field called formal verification which has been you know has been existing for a while it's it's has existed pretty much as long as computer science has existed it was really pushed by computer scientists for example like Irene Dijkstra was explaining hey you know it's very important that we produce proofs mathematical proofs that the programs that we write are correct and in fact what he was suggesting was saying you know instead of writing a program and then writing the proofs that it's correct we're going to try to write a program and grow the proof with it the program can be a proof in itself now one way you can do some of that is by having very strong typing guarantees so strongly typed languages like Haskell and camel for example has its properties where you have very strong guarantees at compile time that you're not going to have two objects of wildly different types be confused and it's not going to you know it's not going to remove any bug but it does remove a lot of bug one of the experience that many people who work with these languages have is that when they write some code very often you know they it will not compile and getting it to compile very often is a very similar process as what other people might experience debugging but the very difference is that once you've compiled it you have much you're going to have much less bugs than you would have otherwise the idea of formal verification is super easy even further instead of just shaping checking types we're going to check every poverty so you write a smart contracts and you're going to say ok I want to have the property that money is never going to leave the contract at a greater rate than you know a certain amount per day and this is a mathematical property and you're going to be able to produce a proof of this property by looking at the code of the contract now in principle you could do this with any language you know I could give you any land programming language and sure you could make a mathematical proof but for that to happen that language needs to be very unambiguous it needs to have a full formal specification and also if your language is just some basic assembly that shifts some values in RAM is going to be much harder to come up with these proofs than if your language has a certain structure now the language of the smart contract first is O's has been designed to begin with to facilitate those proofs and the people have been working with actually people who have a lot of expertise in the field of formal verification I don't think it's perfect first of all because people are not necessarily going to rise these proofs so I want to encourage them to and the system definitely does that but also because it's it can be difficult you know it can be difficult to produce these proofs I try to make it as easy as possible what I want to envision for the future is to have a description language so imagine it instead of encoding what your contracts will do at every step you encode instead properties of the contract you said ok this contract will you know this contract has to pay this much when such a certain coming it was certain when certain properties are true this contract has can never spend more than X you just write a bunch of constraints that you want on your program and as humans it's very much easier for us to express what we want in terms of constraints rather than in terms of behavior so you should be able to write all these constraints and then have a compiler automatically take those constraints and produce code that is going to validate those constraints produce a minimal smart contracts that can actually satisfy those so that that is not as one and just to be very clear s1 has a very nice formally specified language that will make it easy to write proofs but this is where we want to be headed a few weeks ago we told you about the detect block pain contest we ask you to submit your blockchain start-up ideas for your chance to win $50,000 in grant money from our weg tech angle bumpass well over a hundred startups submitted their ideas including 16 of you our listeners well the results are in and the winner of the grand prize is Arcade City a project with the radical idea to cut the middleman out of ride-sharing and the runner-ups our cargo chain a blockchain system to improve international trade especially in the shipping industry and Clippers a decentralized permanent document storage solution intended to guarantee intellectual property without a middleman congratulations to the winners and we wish you lots of success with your projects if you have a blockchain startup by year and Fink billion could be the home where you you are going to grow your company into a billion dollar behemoth and make sure you check out G Tech or the G tech entrepreneurship Center G there's a lot of programs workshops startup academies provide office space to help companies grow quickly work on really innovative concepts so make sure you check out their website check out G tech Berlin that GTEC dot B e are Li N and we hope to see some of you in Berlin soon we would like to thank G Tech RWE and Columbus for their support of episode of Bitcoin so if you can kind of contrast here they're sort of hearing approach right so solidity being quite similar to JavaScript and being kind of made in a way that hopefully reasonably easy for people to you know code some small contracts but then issuing being here that well lots of errors right different types and stuff like that and then also when it gets compiled down that stuff is hard to analyze and hard to do proofs on whereas the tasers approach is sort of enforcing as much as possible using a language that is verifiable and that kind of prevents a lot of box being created is that the kind of accurate description that you approaches yeah absolutely any and in fact so I recently that the solidity compiler is not deterministic so you don't you know you don't always this really produce the same the same assembly code for a serum which is which is crazy dangerous because you want to be able to analyze what the contract does and so you don't want to be you don't want to be just given a bunch of a assembly code and say okay you know this is this is what you're putting money into this is very this is very dangerous and we've seen that with a wizard ow which basically had this huge bug you know yesterday 50 million dollars worth were stolen from the from the contract you want to have contracts which can be verified which can be inspected a serum has this philosophy of trying to make the language as minimalistic as possible and I think that works well if you're designing a CPU something very general purpose but for smart contracts I think you want to have a rich language at the basis of it we is a formal specification so that you know exactly what you're doing but you want to have these high level primitives that allow you to express meaningfully what you're doing and not just say like okay we're just going to be shifting a lot of bits people need to be able to inspect the contracts and understand what's happening okay so I think like like your answer is brilliant and I'm going to try to kind of boil it down into into some examples right and maybe up maybe I'll be all wrong so so the first thing you say is the language should be should be strongly typed so by that I mean so so so typing meaning like any variable could have you know it could be you and you in 32 string etc you're saying like the language should have a lot of different types yeah it should be while compiling or the language should guarantee that there's never a step in the code where you are adding like a string to a you int right by default whenever you wrote a code and maybe it has some error very adding a string like my hair to an integer like 1 2 3 nah and this kind of error is there and that's going to be no halti code during execution so this kind of code would never compile down and it would be very hard to get it the code to compile because it's verifying in whether in all of these conditions there are errors like these or not right yes that's that's one aspect of it the second aspect you say is you should be able to have proofs so the example I that comes in my head when when you say this is so let's let's see let's let's take what happened to the Dow so for like I've side kind of the contact of the down roughly what happened is in the Dow whenever you make a withdrawal let's say there is like one variable that tracks how much withdrawal was made and then there are actual transactions which are doing the withdrawals now in the Dow code it there was a possibility to have this variable stay the same while they were output transactions happening so normally the way the Dow was intended is whenever there is a withdrawal this variable should record that but there was a possibility that was the hat basically where instead of changing this value you could still do a withdrawal or instead of changing this value only once you could withdraw ten times so when you say a formal proof should be allowed what that means is once I wrote this mod contract I can prove that whenever there is a withdrawal this variable will definitely be changed or incremented or decremented be sure we are like it right so I can prove to anybody that something like the Dow hack could never happen inside my code right so yeah so – so that's something you could prove absolutely what you want you would want to prove a more general thing so and I'll just say what about proof after this but what see you would want to prove for example I say okay I want to prove that it's never possible for people to use a split procedure to more token than they actually control to begin with that's a property you would want to prove you don't even want to for something about that variable because maybe there would be another way to do it you want to prove this high level properties so with proofs it's always possible that you will forget to prove subsets you will prove a lot of properties in the system and then what and there's one property you care about that you will forget to prove however the alternative to prove which is most commonly done today is unit tests so with a unit test you have a piece of code and then you think of many many different cases and you make sure that your test has that your program has a correct behavior for each of these tests and that's a really good second people will always do it but it's very important to to test your programs proofs is like a super version of tests instead of testing specific problems you can test very large classes of problem instead of saying I want to make sure that I get the right output in this instance you want to make sure you say I want to make sure that my output always has certain properties for these very large classes of instance so you can you can get much stronger guarantees you will want to make many proofs matters one proof you want to prove that people cannot you know get away with steal money from the phone you will prove you will want to prove that the function are disappear do all this start do all these sorts of proof that's the type of thing you will expect to go back about is the first thing but types so I use strongly typed and I use the word loosely many people people sometimes mean different saying what I really am talking about is static type checking where you're making sure that at compile time you're looking at all the types and you know that they you know that the logic of your program is going to be correct regardless of what your input is going to be so you gives the example of adding a string and an int and yes so that's something you would catch but you might think okay well what's the big deal I don't see myself adding a string to an end how is that a real problem so the idea that you can use a type system to get a little more out of it so for example you will give a different type to a token then you would give to an integer so example you might be counting the number of people who participate in the contract and then you might be counting how many tokens you have well you might you never want to actually sum those two numbers because if they're both integers but they mean completely different thing and with the type system you can make sure that all the types that represent money for example or that represents token or that represent votes are always I are not going to mix they're always going to be they run type and that's the type of bugs ads if that you might have and that you would catch that's that's the super interesting so I've also kind of read in some of your writings that you've said that formal verification is is as a discipline has been has had a long history but never found a lot of practical application and you said the technology is now mature and we should use this technology in smart contract so I would like to ask like why hasn't it found a lot of application still so formal verification is difficult it's really hard to come up with this proofs what has happened recently in recent years is that we've come up with better and better proof assistants so one of the proof assistants that I'm trying to work with is a proof assistant called Kok it's a French word coq it means a rooster and you know the entirety of code base is written in O camel is written you know camel you can take programs in this language and export them to a camel so there's a lot of symbiosis between the two languages so this proof assistants have become much better so now we're able to make more proofs well it's still expensive to make a proof so the right circumstance under which you might want to use the wrong formal verification is when you have a small code base because it's easier to make a proof about a small piece of code than about a very large piece of code and when you have a lot of value at stake so right now the place where is happening is aerospace engineering so in aerospace engineering they have some programs and there's sometimes small programs but if they get it wrong it is very very expensive to fix right maybe your rocket blows up so they're using formal verification because it's a good use case small contracts is a perfect use case for for vacation because there's a lot of value at stake and there's a small piece of code so this is exactly in the sweet spot where we should be doing it it's you know we're not going to be doing formal verification on verifying something like an entire operating system anytime soon but we can do it for smart contracts and we absolutely should okay so I think I think I think this is like an awesome section and perhaps perhaps we should have you on later to kind of drill down into this a bit but if you if you're listening to this section and and maybe maybe this section went up went very technical so I'll just give you kind of an analogy for it so so imagine like when we invented like I don't know steam engines and we had boilers and steam engines so these were devices where we were burning coal putting steam into it the risk was you put too much steam into it it bursts and if you look at the history of steam engine technology for the first hundred years a lot of people died because steam engines and boilers person then we invented something which is was a safety wall right once you put too much steam inside it there's going to be a wall that's little open and let the steam out and that has resulted in so many lives saved over over time right so you can think of smart contract technology today what we have with solidity to be like something like the steam engine with no safety walls so in in the hands of an inept programmer you could have conditions where things happen and a lot of money is lost but there is this particular technology where you could Institute something like safety voles which are like formal proofs that say a certain type of thing can never happen inside this particular code so it's like the safety valve of smart contact technology that Arthur here is talking about right would that be a good analyst yarter yeah I think so and I was a you know I was sad to see after the Dow we had a lot of people online saying like oh well this shows why smart contracts can never work and this you know this shows why you know we need to have all this institution instead and deal with the problem socially the you know a lot of people were saying the idea of like Oh replacing contracts with code can never work because people will always make mistake and I'm like okay hang on hang on I don't want smart contracts to die because of a mistake like this because I think they're very very promising technology but and there's been a lot of research Andrew Miller has done a tremendous work showing how easy it is for people to get them wrong to make small mistakes they will they will have large consequences and people have been ignoring that research and they really should not because it's it's it's it's it's super it's super important to get it right but it's possible we actually has a technology to make sure that the smart contracts don't blow up in our face like a like a steam engine so we talked before a little bit about where it cases is that and it sounds like you know you very far and the law has been built and you can work on this for two years so what's next for tasers and when it's a the thing actually going to launch so hopefully we're trying to target the launch end of the summer or early fall that would be ideal maybe mid fall if if we get a little delayed one of the things that is a blocker right now is making sure that the network is resilient to us because I think that a lot of new networks tend to be dust by people who don't want to see new networks and so we want to make sure that we have enough resilience at least to sustain to season at launch and that requires that requires a lot of testing so mostly this some you know there's some bug fixes a few features which are not implemented some rough patches but mostly we're mostly we have a we have a working prototype we've had for a while it's really a lot of polishing work happening right now and also you know I was not really promoting tasers for a long time and uh right now I I went back to promoting it I wants to get people interested in a project and I want people to hear about it before we launch I don't want to launch it and no one knows about it and I mean launch proof of stake system right that's not going to be mining so how is the currency of the tokens is there going to be a crowd sale or is there going to be some other way of distributing those so we're looking at several options at the moment one of the options that we are definitely going to have it might not busy on this thing you mentioned crowd sales there might be some form of crowd sale one of the option we're looking at is doing something like a Bitcoin drop and the idea is the following the idea is that we take a snapshot of the Bitcoin blockchain and then we take the snapshot and we put it we put it into a miracle tree and then we embed the root of that tree inside the Genesis block of tezo's and what it what it gives you is possibility of saying let's say on some bitcoins I can form a proof that I own an unspent output you know at this at this stage of Bitcoin I can insert that proof as a special transaction inside the tezo's blockchain and receive tokens so that's one way to that's one way we can use to to distribute the token so it should be some tokens okay very interesting yeah and and so you mentioned also that tasers is is a company so and you've kind of been bootstrapping that do you see a longer-term business model here for the company or what's the relationship going to be between the entity and the protocol itself right oh I'll just add something to the previous question which is that you know even though there's no mining mmm there is block forging and there is a reward for actually participating into the the proof of stick activity which is a very it has I think it's very very slightly inflationary at the beginning but it's not it's um it's it's a nominal inflation which means that it doesn't really devalue the currency because you basically receive it in proportion to the tokens that you already hold so it only changes the nominal of the currency it doesn't mean that it doesn't dilute anyone the but the other thing also is that if you don't want to if you don't want to be part of it in proof of stake you can delegated to someone else and that person is going to collect rewards so people who actually contribute resources to the network who run notes actually received can receive tokens out of out of doing this so regarding yes so the kind of you know the thesis project has been bootstrapping for a while going forward I think in practice you know who's going to propose you know s2 s3 s4 and so on so forth I think for Ziyi for the time being most of the you know most of the protocol updates are gonna are are gonna come are going to come from us for the time being the idea of having the governance model is not so much that we're so bad at making proposition that we really need they want us to be doing it it is a safety valve it's the idea saying okay you know we don't want I don't want we don't want to turn evil and just start saying like okay you know now we have to take or check our we have to like you have to take our change if you look at it you know you might say okay what's what's the serum governance model where is the heaviest Syrian foundation okay but then yesterday we already had these big questions like well you know should Z do a fork she did not do a fork to say that ow and then you were like well it's a minority side and like wait a second you know what does the miners have to do you know what does the miners have to do with this so they're not another one holding ze sirs and all the stakeholders so yeah for the time being we're going to be basically proposing upgrades to the protocol and try to make it as good as we can cool fantastic cos theta thanks so much ever there was a really great discussion and and super interesting now you mentioned that you know you sort of gearing up to launch and you would like to get people more involved where can they go and what can they do to get involved in the project so right now so okay so this is an important question sometimes people say like oh well you know where's your where's your git repository or sometimes they say where's your github because it can only exist on github but we have not released the source code subtitles so tell us is going to be really open source you know there's no way you can do the centralized ledger without having an open source code base the reason we have not really support the source code is that when serum launched it had it had a source code Albert he also had a very long road show you know there were a Syrian meetups all across the world people were talking about a Handsome's of course so they had this perceived legitimacy we're a very very small project if I release you know if we release the source code immediately there are some people who are going to there's some people who are immediately going to try to fork it and we're going to try to and we're going to try to launch it and people did this with this cerium and the reason they didn't really succeed is because people were still following the main project so we want to build this legitimacy first to be seen as yes you know this is the official tasers development before we actually release anything we will release it could of course prior to the launch because we won't be as many people looking at it as possible before we relaunch anything but that's probably not going to happen until September I am giving a talk at the Chandra conference in September and so yes the code will be available by then but so what can people do right now for contributing I would like to get people to start discussing about the projects you know sing what their IDs are for governance saying you know what they would like to see in a in tazers we have a smart contract language which tries to have as many high-level primitive as possible it would be great to start seeing tools to build around this language compilers all this type of all this type of stuff but for now I would like to get some I would I would like to get some awareness I would like to get people started talking about it and I'm giving feedback on the project okay well thanks so much and of course we'll put links to the website white paper and and the other stuff you've written on there and there is a way to sign up for the mailing list as well so maybe people want to do that if they want to yeah keep rest of the latest developments here also thanks so much for coming on it was a great pleasure likewise thank you very much so yeah with that we're at our end so Epson reckons part of the LTV Network you can get this show and many others at lesser frequent comment contests so if you leave us 19 interview just send us an email at show at Epson a bit kind of calm and we'll e-mail you one of those so thanks so much and we look forward to being back next week

You May Also Like