#234 Charles Hoskinson: Cardano – A Third Generation Smart Contract Blockchain
8 May 2018 · 1:36:34
Charles Hoskinson of IOHK explains Cardano, which he frames as a third-generation blockchain that has to tackle scalability, interoperability and governance at once. He outlines planned on-chain governance based on liquid democracy, the twin problems of who gets to decide and rational ignorance, and why he argues stake-weighted voting need not simply make the rich richer. He then covers the Ouroboros proof-of-stake research, including a new Genesis paper on bootstrapping from the first block without checkpoints, the choice of Haskell and formal methods, and the K framework, which he says will let Cardano launch an Ethereum-compatible test net and translate many programming languages to its own virtual machine.
Speakers
Topics
Transcript
[Music] this episode of epicenter is brought to by kenosis an open platform for businesses to create their own prediction market applications on top of a theorem network they recently launched venosus X a challenge inviting developers to build apps on top of the kenosis platform to learn more go to epicenter of TV slash gnosis X hi welcome to epicenter show which talks about the projects startups and technologies having the decentralization and blocks in revolutions my name is
maja Roy and today we have a new show host joining epicenter his name is sunny and he works with the cosmos project and we hope that he'll make a great show host and you and you like his questions shun sunny welcome to the show and give us a brief intro about yourself hi everyone yeah thank you for the introduction here my name is sunny and I am currently a researcher working on the cosmos and tendrán project I first started like you know learning a lot about blockchain through the epicenter podcast I was like my main go-to and so I'm excited to be on it for the first time and starting out as a host instead of a guest which
is kind of cool so for this show we have Charles Foss kinsmen back on epicenter you're gonna focus our conversation on card I know Charles welcome back to the show it's a pleasure to be on guys so we had you for the first time on in episode 144 this was right a few weeks after the DAO hack happened and its helium's into a cerium classic and and any cerium and give us an idea how it's been since then what's what's been going on in your life well you know I still like long walks on the beach and you know things like that but no but levity aside it's been pretty
crazy you know I which k's grown from a few dozen people to about 130 people we operate 10 countries now we work on a lot of projects we work on Zen cache we work on a theory in classic and the one we're increasingly becoming known for is card on oh so the card on Oh project is is like a Leviathan it's got dozens of researchers and engineers and we're doing a little bit of everything I suppose I should give you guys since my first time I was on here was with the theorem classic a brief update there when I came on epicenter we were just kind of talking in hypotheticals like IOH k wants to build a wallet and I which K is gonna hire some developers and you know we're gonna go do some cool stuff
well we did that we actually hired seven full-time Scala developers and what we were able to do with those developers is build a full Scala so it's about twelve thousand lines of code it's a full node in fact not only we released it we're actually on the next version 1.1 which has some performance improvements and bug fixes and things like that it's gone through a full security audit from Cadell skee security and at the moment I think it's the most concise and the only functional aetherium client implemented whether it be EDC or aetherium so that teams really had a heck of a lot of fun we learned a huge amount in the process of building a client and now we've kind of gotten to the point where we have to
make a decision to either kind of retire the client or to scale up the team and start making some substantive changes to the etherion classic ecosystem so there's kind of a loose governance structure that's been forming that Barry Silbert brought together with a bit of funding and we'll have some discussions there and if we can get funding we'll scale up mantas and take it to the next level if not we'll continue maintaining and leaving a few developers on it as an alternative that people can download but mission accomplished we said we were gonna hire some people we said we were gonna build a node we went and did that and it took it took a whole year and it was a huge learning experience for us that's really awesome yeah I mean I've actually used the mantas client before
and it's a pretty good user experience honestly so what do you guys think is like you know before we jump more into Cardno like what do you think is you guys are still relatively focused on a theorem classic as well how do you see the relationship between Cardno and aetherium classic looking like going forward I know that you guys are building a theorem class of support into the data list Wallach right right right well Daedalus is eventually gonna be a platform so the goal is the Daedalus is to start looking a lot like Android in that you have one click install and developers are able to kind of package and bundle their own gaps or their own wallets and there's an obvious way of doing that and so really difficult to build an architecture this
way that's secure and you know user friendly and developer friendly and so forth so there's a lot of discussions there but yeah Daedalus does support mantis as it does Cardno as well so what's the relationship between the two projects we kind of view them as is different styles of crypto currencies etherium classic because of the economics the culture in the ecosystem looks a lot like a better Bitcoin it's basically it's got some apply mechanics like Bitcoin it's got proof of work it's gonna stay on proof of work forever so if you you're cut from that cloth and you like that cloth it's like a better type of commodity and it's still a simple respects like you know silver does more than gold you know and they're both commodities and you know people look at them along those lines whereas
cardano's like the whole banana it's got a governance system it's got its it's a peel that POS versus proof-of-work it's gonna have multi-party computation it's got you know side chains built in it's gonna have lots of computing stacks so really what cardano's about is doing more than just being a store value that has some utility attached to it it's it's about saying let's say I go to Ethiopia and I want to rip out the entire financial stack of the country and replace it with a cryptocurrency framework what would that look like so it requires you to answer a lot of questions like what's the relationship between permission Ledger's and permissionless Ledger's how do you actually have voting built-ins so you can make changes to it you're not necessarily going to be immutable in every single case you're not necessarily
going to be private in every single case in these types of things and there's some sort of system to reconcile of that so it's a much broader scope and therefore it requires a kind of different technology and a different philosophy so we believe in both and we maintain both in our our portfolio and you know for the foreseeable future will continue to support these projects especially Cortana for ping paid to do that one we just to point out I spent over a million dollars on e.t.c I haven't been paid anything yet so you know principals principals are getting pretty expensive yeah yes I mean you know last time you guys were on the podcast you mentioned that one of the things you liked about IO HK was that you guys were able to focus on very like general research rather than having to focus on a
specific project and you know now it seems that you know you are working on other projects as well but there is generally a large focus on Cardno and so what were the what kind of decisions led you to make that change and like how do you think that's going to affect the future of IO HK and stuff so what happens is that you you kind of have cryptocurrencies come in and stages or generations or phases whatever you want to call them and every time they come they tend to introduce a collection of new concepts so you know Bitcoin came in really Bitcoin wasn't trying to actually be money or a payment system it was something much more simple it was a collective delusion problem so basically the goal was to convince people that
these magic internet tokens somehow backed by math are actually worth real money and we can buy and sell and trade them right so so basically it took a few years for that to set in and really the the turning point year was 2013 and at that point like Bitcoin was here to stay people said okay this is not going to go away this is a real thing but then immediately people said well hang on a second here this is just a push payment system that's really slow and really expensive and not very user-friendly I want to do a lot more with it can I do a lot more and then we had this grand conversation about how do we augment it so like we saw things like color coins and master coin we saw all coins like NXT for example and they all brought a
lot of innovation but at the end of the day we need a program ability we need it is like when Java cane javascript came to the web browser so you know if italic and I and others we created a theorem and the goal of aetherium was to say okay give control over these sub protocols that run on a blockchain to the developer and give them an easy way of doing that and that's another proof of concept and so a lot of people thought we were crazy in fact a lot of people still think aetherium is crazy affair although a lot of people still think that bitcoin is crazy so you know that's fair too and so basically theorem comes out as the next big generation and they kind of introduced the notion of smart contract you know in this notion of more complex computation in the
transaction and then all these emergent structures that you can kind of build from it all right so now that generation is done it's set people seem to agree it's a good idea there's a lot of competitors like neo and yose and others that are coming out or already are out in market and we're now entering a third generation where we say okay the delusions good we like that computations probably a pretty good idea but how do we do these things at a scale of millions of users to billions of users if they're actually gonna be useful for people second there's probably gonna be hundreds to thousands of cryptocurrencies long term I don't think we're gonna see the great Cambrian extinction you know we're we're you know we lose all these crypto currencies they're still gonna be a lot around cuz you know everything humans do
we do a lot of we have lots of languages we have lots of cultures we have lots of governments and we have lots of religions is really hard for human beings to agree or consolidate on anything and so it's something as controversial as money or your financial life is probably not going to consolidate a run just one universal standard so as a consequence you know you need interoperability you need the ability to actually move value and data and preserve certain things like security and privacy as you traverse the internet of value and you go between all these things so there's a scalability component there's an interoperability component and it's things like aetherium classic or Bitcoin cash have really brought to the forefront there's a governance problem as well where you as we move beyond just a couple of nerds
who like meetup and you know they enjoy talking to each other or slack to an actual system which has millions to billions of users and has control over your financial life and and all the facets of that maybe including your identity and your property you need some form of a democratic process to make decisions of where the system's going to go and how do you pay for things and so forth now whether that's meta to the system meaning that there's some sort of meta consensus or it's embedded within an existing government or it's built on blockchain there's a lot of debates about that and so you see projects for example like - and Tasos or card on oh we view that on blockchain governance for at least things is probably a good idea other projects like Bitcoin for example a lot
of people have been arguing to keep that off chain and you know have some sort of you know open source consensus you know material rise around it I think Vitalik has also been a bit skeptical of on chain governance as well so these are kind of the three design criteria that we've you are required for the next generation of cryptocurrency keep what we know and love so keep the collective delusion keep it weird keep the keep the computation that's pretty cool but then also go ahead and move into a domain where you get faster as you get more users you can talk to all the different crypto currencies and you have some way of sorting out who pays and who decides so that was really them the 2015 idea for the Cardinal project and another nutshell these were the the you know
kind of business requirements at a super high level and then what had to be decided is well how the hell did we do that so we spent the first two years kind of thinking really carefully about a lot of deep tech we started a really deep research agenda we started tons of different threads threads like better consensus algorithms threads on consent on voting threads on things like you know better crypto primitives like making us resistant to quantum computers you know threads involving things like side chains and so forth and what we've been doing is gradually now closing out those threads turning them to actual peer reviewed white papers and then converting those in specifications and then gradually implementing those and putting them into a production system so
the first version of that system came out in September of 2017 kind of runs like Ripple it's a lock delegation for Asian Evora Boris yeah it's a lot simpler than the papers we've recently published and over time we're just gonna more and more decentralize the system and then eventually add-on components like our side chain components that we can link our smart contract layer and so forth and that'll be coming in the next few months two years depending on the features so that's a good high-level summary of I think what we're doing I see so to like break that apart so like yeah it's a lot right yeah so yeah so like you know you guys had a lot of ideas on like what like needs to be done to make a third-generation blockchain and then use now Cardno is basically the amalgamation of like okay let's take all
of these ideas and like a prototype and show that like these things actually mesh together and work together and we can make a production system using these so it's important to point out that there are other projects that are chasing this but usually what they do is they chase a particular dimension like EOS and iota for example are really chasing the scalability side they say oh we can do lots of TPS and then interoperability is you have projects like a yawn and ripple for example with inter legends and they're really trying to talk about that internet of value and then in terms of governance you see projects like Dash and Tasos so I think there's consensus in the space that at least one or more of these dimensions are really important I think we're the only one that tends to view them so interconnected that you
kind of have to do all three at the same time right so scalability governance and interoperability that those seem to be like the three key things so I guess maybe we should like dive into some of them let start with governance right can you give us a bit of a short summary about your governance mechanism for Cardano yes so that's still under design so we have a team led by a professor in Lancaster University named Bing Chang and we've done a few videos there on our YouTube page but basically the idea is that you have to combat a couple of demons at the same time so one thing that you have to combat is the who gets to decide demon and that's a really difficult question so you know we tend to be beings of desired fairness so we tend to
be egalitarian and say oh well everybody ought to be equal and so forth but the reality is people aren't in terms of skills time expertise these types of things so it's really difficult to build a voting system because you can either overshoot and then you end up having mob rule so you get very poor decisions that are made or you can end up creating a very ivory tower pristine group of voting people who end up making you know your betters or making decisions on your behalf and that's that's quite bad too so you have to kind of find a sweet spot and this is you know not a new problem it's something that political theorists have been talking about for hundreds of years and they've come up with numerous different voting systems you know everything from what are called linear preference sorting systems were for any
decision you know pick one you pick a collection and you rank them so condors say and board are examples of that - things like liquid democracy and liquid feedback so we said you know liquid democracy seems really cool so this kind of getting your vote so you know you say all right well let's talk about two events to to elucidate the example so everybody in the beginning gets let's say the same vote and the votes are situational so you know Bob has you know is proposing a nuclear power plant design and you're allowed to vote on it for whatever reason well most people aren't nuclear engineers so they're probably not gonna have a very informed opinion and they're gonna talk more about the bike shed in front of the nuclear plant than the actual design of
the nuclear plant so what if you could delegate your vote to Bill who's your neighbor who happens to be an engineer you respect a lot and you've done this for 25 years great but then let's say there's another vote and that votes on I don't know you know your rough you know or zoning laws or something like that and you're at a big debate with Bill and you're you you don't want to give them your vote so an ordinary representative democracy what you tend to do is just give one third party like a congressman or a senator power for a period of time and then they go and decide on your behalf for better or for worse and a delegate of democracy system you can delegate real time so you can say okay for this particular vote I give it to Bill for this particular vote I give it
to Bob and so forth and there's a lot of theory behind why that would make more sense just as an example if you had a delegated voting class in the US election if for the presidency then you know Donald Trump would have a really really hard time getting elected why because most people would delegate their votes to local leaders in their communities and so Trump is not talking to the general American public anymore he's actually talking to a voting class that's been specially selected to analyze him so when he says we're gonna make America great they'll say well what exactly are you doing to do and he has to go into policy specifics and he can't do that right he's built his whole campaign on low information so you know there's a lot of people seem to feel that liquid feedback would democracy's a
good idea so we said okay let's try that so we're gonna push a paper out for CCS come around May we were hoping to get it out in February but the universal composability stuff took a little longer to get done but it has some details on exactly how we think that would work and it involves a lot of complex math but if you're curious of how it basically works we did a video it's about 45 minutes long and it goes in to kind details of how the crypto works and how we view the system and so forth but that's one demon the who gets to decide demon and you make voting proportional to your stake in the system that's that's the obvious starting point but you can change that metric re-weighted based on other facts and circumstances the second demon is the demon of rational ignorance and this is the
harder of the two to solve so what is rational ignorance well rational ignorance is basically where the value you get from knowing something is less than the time it takes to know that thing so for example let's talk about health care the American health care system is horrendously complicated it would take you literally years two decades to understand all the facets and in ins outs of it so if somebody comes to you and says hey Sonny I want you make a decision on whether you know universal health care is a good idea or Obamacare is a good idea or something like that the only way you can actually really have an informed decision is to invest those years of effort and what's the output of it your vote counts exactly the same as my vote and exactly the same as the crazy
hobo's vote in the streets of San Francisco so then you get a little disenfranchised you say hang on a second here I got exactly the same payoff for putting a lot more work so what's the rational behavior to not stay informed that's why we tend to focus on wedge issues and elections because they're very easy to have an opinion on and understand but in general they aren't that you know they aren't very substantive you know like the things that really have a big impact over your life or things like foreign policy and healthcare policy and retirement policy and so forth not gay rights or abortion rights these these are issues that affect small minorities but those issues are much easier to understand then you know the complex intricacies of the Syrian conflict for example so most
voters tend to stay ignorant yeah what is this relevant to the cryptocurrency space we'll just look at basic debates we've been having like the block size or the difference between proof of work or proof of stake or should we bail something out or not these are very complicated issues and have many different dimensions to them they take a huge amount of time to become informed about so most people just either vote with their wallet meaning whatever they think is going to give them the most money or they just vote along cults of personality where they just say well what did Vitalik think or charles think or Dan thank or something like that or add Reyes think and they just kind of go along that particular line so the problem of rational ignorance is a heck of a lot harder to solve than the who gets to decide problem and there's been
some ideas like maybe you incentivize people to be a voting class like - has masternodes for example or you know maybe you can create some sort of bounty system or something so we don't have quite a solution yet for that side of it and we don't really need a solution at the moment because the voting parts of Cardona won't be out until probably 2019 it's it's one of the last components we're gonna pull into the system as we we could you know turn things on but we will you know touch that topic in the May paper that's being released and then we're gonna try to experiment with some things the other thing is that we're not in this game alone everybody who runs a cryptocurrency kind of has to deal with this in some capacity so what I'd love to do is start a dialogue with a lot of
other project leaders and try to create some you know common notions or at least some universal standards that we can follow about these things but those are the two demons were where I'd say you know we're in the research spectrum a rat or a Boris or consensus algorithm is very advanced it's near done whereas the voting is you know in the early phases I'd say you know 20 30 % along that research spectrum so we're not we're not really too far along but there are some videos we have look at liquid democracy liquid feedback in Google rational ignorance and it'll give you a really good sense of what are some of the challenges another thing is there's actually a course on Coursera if you're really interested in democracy I think it's um from University of Michigan and it's securing digital democracy or
something like that and then there's another class on voting theory that they occasionally run and these are really good classes and they they kind of give you a high-level view of you know how these things work and also some of the things to think about that you probably have never thought about before and it's a really fascinating topic like in in the governance aspect you you talk about like these two issues the one is the issue of rational ignorance which is how do you incentivize the voters to actually invest the effort to vote well and the second is the issue of deciding who gets to vote right now many people would say that it with proof of stake there's a third very fundamental problem of governance and voting and that problem is somehow
that like in a traditional proof of stake system you you need to stake your coins and then participate in consensus and then you'll make more coins right so in the early days of cryptocurrency people used to worry about the rich get richer problem right now now but when we start to have governess decisions about the system and the voters are these takers the rich get richer problem gets magnified what I mean to say is let's say like the inflation rate in Cardno is I don't know two percent if I'm really rich I am really a de rich I want the
inflation rate to be much higher because like I will stake my Aida I will run evaluators take my Aida and I want the inflation rate to be high so I'll get more Aida and I'll you know consolidate my position of having a lot of Aida where as somebody that has very little Aida might not run evaluate themselves and slowly they'll get diluted out now the decision of what should be the inflation rate in a system is dependent on governance and then governance in governance if I have a lot of Aida I have a lot of voting power so it don't you see this as a problem that when you have these people that have stake vote
on governor's decisions you might somehow magnify the rich get richer problem yeah so it seems like a problem on the surface but actually if you if you break into the analysis it's a bit more complicated so first off the this rich people are going to vote on whatever they feel is going to produce value for them and the reality is the short term value is not as much as you would think what they look more long-term why because these markets are traditionally thin so even if you could do something to temporarily increase the price 10 or 20 percent at a long-term deficit if you hold 10 or 15 percent in the supply you can never divest that amount and you do long-term damage the cryptocurrency you're actually costing
yourself money you'll make a little money in the short term but you you hurt yourself on the back end so the decision-making the rational decision-making analysis of what I do if I'm a custodian of the system and I hold a lot of it is a bit muddled and it's not just what will maximize my utility day two or day three but maybe a longer term view second let's say you have problems like a 51% attacks through your plutocracy you can always fire your stakeholders buy a fork and that's nothing you can't do with a with a proof of work system see this is endogenous consensus versus doggedness exogenous consensus so external versus internal so when your security comes
from an external provider they own all the hardware and if you fire them by changing the proof-of-work algorithm you have to kind of rebuild your entire security base from the ground up but let's say Bob and a proof of stake system has 51 percent of the stake the 49 percent minority which let's say is much more diverse and they're actually doing everything and Bob just happens to have a pile of coins and he does nothing but he's a malicious you can just fork the currency create Cardno to and remove Bob completely from the set now what have you done you've removed the malicious actor the remaining people are honest and you actually have a much more secure system now and you know you're you haven't lost any security you've actually gained security from that event whereas you can never do that type of a
thing with proof of work now getting on to the the voting set of things you know the most obvious to do voting for changing system level parameters like inflation or something like that would be proportional to your stake in the system and that's fine to do but you can create other parameters in the system for example you could create the notion of a good citizen in the system like a reputation system like I've relayed lots of data or when your systems can more complicated than just consensus as a service when you could have other things like trusted data feeds or multi-party computation providers or these types of things then in those particular cases you could and get points and those could then biased your voting power so it could end up that the person who has the
most stake doesn't necessarily be the most powerful person system rather it's the most useful person in the system but that's complicated metric to construct so what you have to do is start somewhere in the most obvious places to start where the people have the greatest financial incentive to participate in the system for the the long-term growth and well-being of the system there's another thing I'd like to point out it's called the lump fallacy so is is calm thing comes up in economics where people tend to believe that all the wealth ever created has already been created and it's just about proportions and how much did Bob get versus Bill get and it's a big misconception you see it a lot you know especially in liberal politics where people say well look how much money these billionaires are getting you know proportionate to the rest of the people
and oh god these evil people the rich aren't paying their fair share wealth is created wealth is created through actions wealth is created through productivity so when you are participating in consensus it's not a rich gets richer think you're performing a service for the network and the network is paying you to perform that service and this this is complicated stuff it's not just the state eventually it could be a decentralized file system it could be computation as a service which is a suspect effectively what aetherium is it can be relaying huge sums of data like if Yost does live up to its claims of performance it could end up moving gigabytes every second of data okay so you're being paid to provide these services which is
producing wealth it's producing value for everybody and therefore recordings are being minted to pay you the last point is that the same hundred people who control the wealth aren't going to be the same hundred people year-2 and year-3 people sell tokens you know if if people just held on to their bitcoins forever than the original miners would have had you know much much more but the reality is people run businesses they tend to sell things so you're gonna see a lot of rotation of value why because there's tons of volatility you know so if your coin goes up a 5x or 10x you don't say boy I should hold on to this because I can get you know perpetual 2% return you say I don't think this 5x or 10x is sustainable I'm going to go liquidate 30 or 40 or 50 percent of my holdings and
lock in my 5x or 10x I'm so lucky what does it mean you've just diversified Holdings so in all things whether it's a start-up or or any cryptocurrency what we've seen a gradual deconsolidation of holdings Bill Gates for example with Microsoft had about 64% of the company when he started it he only has 5% now he could have held on to that chair he could have never done looted himself or diluted himself as small as possible and kept going long Microsoft but he realized that diversification matters and that's generally what's probably gonna happen with most people who are involved cryptocurrencies is that as volatility goes up and down they liquidate and then you see a gradual deconsolidation which is much greater than the particular
inflation rate but you know these are different things you know with proof-of-work you you kind of kick the can down the road and you hide inconvenient truths it's inconvenient to the Bitcoin space that 10 people 10 pools control more than 51 percent of the hash power and I don't know these pools I can't be these pools they say oh what anybody can buy a minor yeah but if it's patented and it has a very bespoke supply chain and people are using subsidized power that's not a fair game I remember I bought a butterfly labs minor I got it a year and a half after I put the pre-order in and they were testing them testing them they were mining with my miner for until it was no longer profitable and they shipped it to
me that's not a fair game it's a rigged game so you know what we do is we we say oh well you know there's a simplicity notion of control it's very butterflies and rainbows and people like it but instead what you've done is given it to some silent small group and with proof of stick you would have to explicitly have this conversation of who should be in control how many people why should they be in control what are their incentives how do we ameliorate certain things so if the rich are malicious you have the nuclear option of forking them out you have other options of introducing metrics to dilute their power like a proof of usefulness for example and then you have social metrics that can be applied as well and if their malicious the price will go down as well
so generally the best outcome is that just have them behave following the protocol as its as it's written and I think it's a much better way of going about things because it's out in the open its explicit you're gonna not get it right the first time around but you can fine-tune the system there's gonna be a lot of opinions on how things ought to be done whether it be a delegated proof of stake or bonded proof of steak or a peer proof of steak system and it's very Darwinian in a certain respect rather than just pretending like there's this god mode that's somewhere off on the rainbow and they're always gonna act honestly and behave right properly and and don't worry about it they'll they'll just be there for you and they become actually barriers to change as we've seen with the Bitcoin network so that's my big
rant this episode of epicenter is brought to you by kenosis canoas this is an open platform for businesses to create their own prediction markets on the theory network prediction markets are powerful tools for aggregating information about the expected outcome of future events so this can be used for things like information gathering incentivizing behaviors making governance decisions or even creating insurance products so in order to turn kenosis into the most powerful forecasting tool in the world they recently launched gnosis X it's a challenge that invites developers to build applications on top of the platform and the best applications per category will be rewarded up to $100,000 in GNO tokens so throughout the year
kenosis will announce different categories for the challenge and the current challenge has categories for science in R&D token diligence and blockchain project integration the notice also provides the SDK which allows you to easily get started with everything you need to get coding and they also provide dedicated support channels throughout the challenge for teams and solar builders are you up for the challenge get served now to learn more and to sign up go to epicenter TV slash canosa's X we like to thank gnosis for their support of epicenter so one of the things that you mentioned that was actually very interesting is like the idea of if the this is one of my biggest benefits of proof of stake or proof or work as well is that when people do something malicious we can just easily
hard fork them out right and my huge question is about what happens if they try to abuse the governing system one thing that I've actually watched the whiteboard video by the way I love your guys's whiteboard videos are awesome which one was Ben Chang the one with yes the one on the governance and stuff and so one of the things that you guys mentioned was that you use the idea is that the voting is going to be like zero knowledge and and so this actually is an interest question because we've actually had this discussion that cosmos as well is should voting be private or transparent and like we're actually going down the route of like so what do you think is the effect of
having private voting where you actually lose that transparency and potentially that accountability so let's say there's a boat and a lot of people decide to like increase a bunch of money for themselves something some you know convoluted way not talking about that clear but you know how do we make sure that we figure out who vote who was the one who voted that so we can hold them accountable maybe not either through like protocol by hard forking at least socially accountable okay that's a great question so first it's important understand that there's a spectrum of voting so you start with things like SRO style things like membership based self-regulatory organizations and those are very fluid and things can change in a single meeting then you have like
municipalities right and these are like your local mayor and your your county council and you can go and complain to the County Council they take a vote and maybe they meet every two weeks or three weeks and they can change things fairly quickly then you have your state assemblies and those move it at their own pace but there's still somewhat ekran eclis accessible to people then you actually have your federal government side of things and that's much more bureaucratic it's much more difficult to get things done and then you have even further the Constitution where you say okay from a to change the Constitution it's only been done in America about two dozen times in over our entire 200 year history so that's a real challenging thing to change so what you have to do is say certain parameters in my system live in different spots so
you know things like user experience taste texture feel you know nice to have features like HD wallets those types of things probably live towards the Estero style side so they don't even necessarily require a vote that's just you the developer making decisions of what's best for your users and there's some ambiguity and wiggle room in the protocol to allow you to have that kind of flexibility other things like for example monetary policy or how you achieve consensus or the voting system mechanics themselves those are much more towards the constitution side okay so that requires a lot more can sent a lot more time it's it's a it's a lot more drawn-out process than it would to be able to change something like that
so you have to find that entire spectrum so that's the first step second step is should you have a blind Vallot which is anonymous voting or should you have transparent voting now I've seen arguments on both sides for example Switzerland they have a cantonal system so there are true Confederacy and some of the Canton's still do public votes so you can actually go out and you know yeah there's a voting day and people shout out their vote and they go into groups there's also other public voting systems like America we have caucuses for example and a lot of these caucuses you go into groups and who supports Ron Paul and who supports Romney and who supports McCain and so forth and we all had to deal with that for those who are into all those elections and you get various degrees of you know outcomes the
problem with a transparent system when you're talking about money is that let's say there's a delegation and one particular delegate ends up getting a lot of influence let's say Andres yeah you know if we're a Bitcoin or something like that there's a voting system and everybody likes Andreas so he ends up getting like 30% of all the votes well if that's publicly known well you've basically done is painted a big red target on his back so now he's got to look over his shoulder and say like oh you know I got to worry about my security like what I have so many kidnaps his girlfriend or his kids or whatever if he has children I don't know but you know they they try to convert a course um and you know they know yes 30% so they can use the ranch or use some you know a blackmail or something like
that and so he'll go and vote but he's no longer voting with his own freewill or conscience he's voting being coerced whereas if you have a private ballot the advantage there is that you can never be able to conduct that attack because it's difficult to know depending on how anonymous you are who these people tend to be except for you know you personally making that decision of to whom to delegate to so an average you you eliminate a vector of attack for your system now if you are clever about how you sort out system level parameters on that spectrum from the sir all the way to the Constitution level set up you still gain the benefit of not changing things quickly that ought not to be changed weekly like the inflation example that was brought up earlier
that's a constitutional level and if that's gonna happen that's something that probably require multiple votes over a long arc of time and there's a lot of mitigations a lot of opportunity for debate and discussion and if it does get committed it's something that committed gets committed the months to years timeframe for example with the fear in classic we kind of did this we had to make a decision about monetary policy and we also had to make a decision about the difficulty Bob this process took a year and a half to go through from start to finish and these things are just now being locked in so in these system level changes whether you have an on block chain or off blockchain governance mechanism they ought to take a heck of a lot of time and be a very open process with lots of debates and what ends up happening is
the better arguments tend to float to the top over time and it changes public opinion and the probability of a vote maliciously succeeding all those rounds ends up failing as and you know there's a lot of ideas on you know the best way of doing this the venetians had a voting system where they kind of randomly sorted people and had multiple rounds and the ideas you'd never know which person to bribe and so forth so it's really amazing how much ingenuity is come through but at the end of the day it's also an empirical thing where you you have theory and you think you know what's going to happen and you think you know who's gonna be rational and how they're gonna be rational but you just have to launch it and you actually have to see how it works in practice and where it's gone wrong and so forth
there's also a participatory problem where these systems assume a rational majority and these systems assume reasonable participation and the reality is that most democratic processes tend to fall apart when participation falls below a certain threshold that's why things like delegation are so powerful because you probably can't get everybody to participate but it's a lot easier to get people to at least delegate their vote to somebody you know the American election going back to that if you look at like 2000 versus 2004 versus 2008 2012 2016 and you chart the total amount of people who were eligible to vote versus the percentage of who actually voted it's declining a cycle by cycle by cycle but if people had a delegate of
ability the the conjecture would be that you would see a relatively high level of participation there because the people who are gonna vote are gonna vote anyway but then that Delta between the people eligible not most of them would still probably delegate to community leaders or people that they know and trust and you'd get a much richer conversation probably out of that that process but that's a conjecture and the only way to verify that conjecture is empirically so you have to run a system and take a look at participation in the quality participation so we do have some data we study the - Treasury system and we took a look at the masternode counts and which ballots were being proposed and we wrote a big paper on it so it's good i witch can't research and look at our library you can see the - treasury report we wrote and
there was some good some bad and some ugly there in that we discovered them there was very little funding diversity from when we we studied that meaning that the same groups of people tended to be the ones submitting the ballots and getting the ballots now that can either be because the ecosystem is still very young and there's a founder effect where people tend to true trust the internal group of people to get it done and it hasn't diversified yet or it could be an endemic failure of the of the voting system itself and really the only way to you know understand that is to kind of look at it month by month and see if you're getting a trend of increasing diversity or it's staying relatively stagnant if a stinks stagnate it's probably a structural problem with the
system so we'll be linked to the - governance system analysis in the in the show notes so our listeners can can follow up on it so Charles yeah it it does seem like card I know you you've done a lot of research on on governance and we look forward to what you end up implementing we understand correctly that governance is slated for 2000-2009 teen not 2018 yeah the big focus of 2018 is smart contracts and decentralization yeah that you kind of have to do things in order 2017 was let's get a product and market yeah it's really hard to get scientists to do that so you know how long is a piece of string so we got byron out in
2017 and 2018 is moved to specification driven development fully decentralize the system and then turn on Gogan which is our smart contract system and get all that rolling out and that's a huge coordination problem then 2019 is about performance in governance and so basically take the system start charting the system and then turn on the governance components gradually there's also a user education component to it so you need if you're gonna have an effective governance system to have leaders materialize so you need meet up groups to form you need people to understand the philosophy of the system and why we're building it you need people understand the underlying technology and to develop an intelligent opinion or otherwise will end up happening is you'll have a beautiful voting system but nobody actually ends up using it what they do is to say what
a Charles say or what a Duncan say or what it aguilas say so I'll just vote for that so you need about a year or two of community management and growth and development to create diversity and once you have diversity then you actually get a pretty vibrant ecosystem so it would be counterproductive in my view to have a voting system at the moment it would it would be just a voting system and name only so 2019 is what we feel and then if you know there's any delays 2020s when we do that we have an additional year specifically for that okay so right now is it correct to say say that like the focus is on on like proof of stake and having a system in which different stakeholders actually validate the blockchain yeah a proof
istic is such a hard problem you know we got a cosmos guy here so your ear keenly aware of it as well and you know the the problem with proof of stake is that you're trying to take something that ordinarily takes enormous amounts of money and energy and resources and coordination and reduce it down to something that doesn't require all that you're synthesizing it but then you want to get all the benefits so it's like saying I want to eat the cake but I don't want to get fat you know that's that's basically what proof of steak is saying so the first thing we had to understand is what are we even trying to accomplish and that's the first question that was asked so what is security what is a ledger what is a blockchain you know this is a basic question and surprisingly that question wasn't
answered until we wrote a paper called G K L 15 where we define basically what a ledger is and we created some security properties for it then we had to create a baseline and say well does a proof-of-work provide that and the answer is yes proof-of-work provides a secure ledger as defined so so you kind of have a basis of saying like this is what we're trying to accomplish with a blockchain and this is what proof work can do and yes proof of work is secure great job Satoshi so then the natural question ask is under any assumption realistic or not can proof of stake achieve that same level of security that's step one and so or Boris was published in 2016 and it was a very impractical protocol when it first came out it was tightly synchronized and it had some undesirable characteristics
about it but it was basically a proof of concept for saying that the security models models are identical so they're both provably secure whatever you get from proof of work in terms of what it can construct you get the same thing in terms of proof of stick for what it can construct so that's a good starting point so you have theory and then the next step is how do we go from theory to practicality how do we actually take this thing and put it into a real-life system and something that works so most of 2017 and about half of this year has been consumed with that practicality question so you move from a synchronized model to a semi synchronized model you move to a model where an attacker can corrupt clients whenever they want you moved to a model where you can bootstrap from the Genesis block you don't need a
checkpoint you move to a model where you have composable security proofs you move to a model where you know you have a delegation system built in so if a person doesn't want to show up they can delegate their stake to a stake pool you move to a model where your random number generation is not done with an NPC but it can be done with random Oracle but in so it's much faster but it's still you know you resistant against grinding attacks and things like that and it requires you to add a lot more crypto and like V RFS and perfect forward secrecy and in these types of things and it's not an easy task so the follow-up of wara Boris was another paper called orb or Sprouse where we did about half of the heavy lifting and we've just released a paper today called workhorse Genesis it's on
the edge kit website I also just tweeted it and will be presenting both of those that you're a crypt in Israel here in about a week and this basically seals off most of the practicality concerns at this point there's still some little lingering things we have to clean up but we feel this plus a delegation scheme is all that's necessary for actually having a production proof of State protocol in a system now the next step is performance so where do you go from there you know you've built this beautiful thing you can drop it in Bitcoin would run just fine with it any blockchain which runs just fine with it and run forever and you know as long as we've you know got our economic incentives aligned properly you still can't scale as new users join in it's still in a replicated system
format you need to shard and there's a lot of opinions on how to do that so there's protocols like on the ledger for example or Thunder Ella and others in the academic circles and these guys have come up with some concepts and there's some engineering ideas like you guys are cosmos that think are doing some things and Kasper certainly has some ideas with plasma so everybody has kind of their own idea of how should we shard euros for example I think put Byzantine agreement on top of deep offs and it's less about can you shard and it's more about what it's a trade off profile usually what ends up happening is you go from 50 percent Byzantine resistance to a third to a quarter depending on how aggressive you do things the other thing is that performance tends to decline very rapidly as you shard if there are
Byzantine actors so if everybody is following the protocol and every is absolutely honest in great protocol screams it's beautiful and if your Google or Amazon that's that's your normal operations right because you own all the servers but if you move to an actual Byzantine setting where people are unreliable or dishonest or trying to break your network then you have to really worry about performance impacts for malicious actors and the types of attacks that can perform there's some great research for example that was done with ghost inspector directed acyclic graph ideas that avi siharan unit em some Lipinski came up with we actually implement a ghost in aetherium showing that while ghost does improve performance there are attacks on ghosts that can degrade performance quite rapidly if you're clever attacker
so you have to understand trade off profile so that's the next step in our research agenda after we close out the remaining Genesis and Proust related stuff and that's called aura boards Hydra because it has many heads right it's it's gonna be sharted and at that point we think we'll it balanced everything properly it'll have the right trade off profile it'll you know kind of the right security design and so forth but the nice part about the approach we've been following is that every step of the way we've been doing it with peer review and with proper security modeling so what happens usually when you're building these protocols is if you want to add another MacGuffin another feature to your protocol then what ends up happening is you have to regress and go back and say Oh am I gonna break something but when you actually have a
solid security foundation and good proofs and everything's compostable when you keep adding things you don't usually have those regressions so you tend to see a lot of research acceleration at the tail so you pay a much higher upfront research cost to get everything started and get that pump primed but then what you're rolling it just it all makes sense it's all composable it's all modular it's real easy to parameterize it the other thing is that it can work in different settings like if you want to go to a permission setting it's really obvious how to do that for like a hyper ledger style scenario but if you want to go to a permissionless setting there's also an obvious way to convert the protocol to that you don't have to build two completely new protocols for that for that set up so that's that's where we're
kind of at with with Ouroboros big team there's about ten scientists who work on it and they do different dimensions off and on and we've written I think six or seven papers I can't remember how many now they just keep coming out I think you know if we ever go out of business at least we can get into the white paper business ten or twenty of these things every year something like that but I'm pretty proud of the the direction of the research you know the other thing is that this is going to be the age of the academic proof of stakes there's some very tough competition coming with thunder token and thunder Ella there's very tough competition coming with Algar and and so forth and these are not protocols written by everyday people I mean
Silvio McCauley has the Turing prize that's the Nobel Prize of computer science and he's sitting at MIT surrounded by some of the brightest people and a legion of graduate students that would just die to be able to work at his venture and build something with him so the rigor and the standards and the community expectation for what makes a good proof of state protocol of what your protocol must be able to do is going to dramatically increase I think over the next year or two thanks to you know tough competition and we're excited to be in in that running that's really cool so yeah I mean I I know like when I first read the Ouroboros original paper I was like kind of like and this isn't that you know interesting and then Prowse came out I'm like okay this this is actually you know this is usable now
right and so I mean I'm excited to hear what I read this genesis paper can you tell us a little bit about it like what you heard you mentioned that you could you have a way of a bootstrapping from Genesis without checkpoints that seems like that's like the Holy Grail right yeah because like you know you know it my assumptions like once you're past the on bonding period you know unless you have some sort of verifiable delay function like it's really hard to prevent long-range attacks so could you tell us a bit about how you're doing this I I I'm gonna punt on that one a little bit because we released a video today so there's a 45-minute presentation on how or vorse Genesis
works and we just released the paper and we're gonna be doing a actual presentation on this and you're a crypt in a week so if I talk about it now I'm gonna front run the the urine foundation but basically you just have to make some assumptions about the nature of the signature scheme and how random numbers are generated and then within that you're able to very creatively construct a model where you you can get you wouldn't you look at two alternative versions of history you can calculate which version of history is correct proof of work is real simple you know just do a weight calculation you say ah this one has more work than the other so that's my longest chain so this just kind of gives you a clever way of doing it using the magic of crypto but that particular crypto is a little involved
and it's in the paper so if you're really curious about it watch the presentation read the paper if not wait for the Euro presentation and then we'll talk about it a little more openly but we had to do a lot for this paper like we had actually two papers we were running at the same time we wanted to reprove the or Boras paper using something called Universal composability and then we had another team that was working on this bootstrap from Genesis idea actually was related to our sidechains research and so we were kind of and then what ended up happening is we discovered that one needed the other and so both teams merged and we went ahead and created this paper and it was just like a mad dash it took a three months of hardcore work and lots of revisions but we we got
it out and I think we actually submitted it to crypto 18 so we'll show it off at your crib and if it gets into crypto a team will be in Santa Barbara and actually have a dedicated session of it but read the video I'll read the paper look at the video and and then the next week I'll talk more about it sure another question I have about Ora bars right is what uh how do you guys decide to go between like you know in proof of state there's usually like the chain based model and the PFT based model right and so cosmos we're working on like tender mint which is a very BFT focused way of doing it while or burrows and it's descendants team all are more on like the chain base side and I
remember like you know one of the I've actually had this argument with you on Twitter before about like you know you your claim was like asynchronous networks are impractical that like you know weak synchrony is good enough for all real world situations so could you explain a little bit why of that like thought process there and yeah okay so if you're electing an epic and you have a bunch of slot leaders and there's a degree of professionalization amongst those slot leaders meaning that if you you you in reality you're always gonna have some degree of Federation so whether it's a mining pool or a steak pool there's gonna be you know some actors who set up dedicated servers they run 24/7 and in the entire history of
the Bitcoin network it's been fairly reliable blocks are generally produced roughly every ten minutes there's a little bit of variation there but it's been basically as expected and people have been pretty synchronized throughout the entire set up so it's more of a practicality argument where you like a synchrony is nice to have but first off you know you have theoretical things like Fisher Lynch Patterson you have to worry about when you're talking about asynchrony in seconds like are you ever gonna really be in a network operating mode for a system like this where that's going to come up so in practicality semi synchrony is sufficient where people may not necessarily show up on time but eventually they'll show up with an account and that's what Prowse is all about is to say okay well you know within a reasonable amount of time that will stay synchronized and or semi
synchronized and there's a way of kind of sorting all these things out just like we do with any normal consensus protocol you know if you're super worried about it we could probably reprove everything in an asynchronous model but you know the downside is we'd probably regress a little bit in Byzantine resistance and we'd probably regress a little bit in terms of performance for the system but I mean it for all intents and purposes if our goal is to have consolidation around a collection of state pools for the large shipment Network we anticipate that things will be probably running in a synchronized mode or a semi synchronous mode I mean just to give you an example a Bitcoin there's a karela relay network in the Falcon relay network where the mining pools actually get to see the blocks before everybody else because
they actually want to titer couple themselves the other thing is our network model is different like we're moving from a traditional network model to something called Rina recursive internetwork architecture so from the outside it kind of looks like UDP going into this black box of madness but basically because of that assumption and how we connect these nodes together and because you actually have a permissioning system thanks to the election system of Ora Boris you really can't create a synchronized private network of stake pool operators or slot leaders that's permissioned because they're elected they have credentials to prove they belong there so you can use a different Network protocol to guarantee that setup that's why I don't worry about it too much I mean it's a nice thing to worry about from a theory perspective but at the end of the day it's kind of a much ado about nothing
the other thing is you can hybridize these protocols that's what Yost did right they start with chain based models DPOs and they're moving with Byzantine agreement on top so you can combine them together if you really want to and there's some evidence that that might be a good idea Al Gore and also looks like it's doing this it's starting was like a traditional Byzantine agreement and then it found a fast sortition process and they we sped things up so that's kind of the best not answer I can give you to your question it's like I I've you it more as a it's not a big concern and if it is a big concern we have a mitigation strategy for it but in reality if our network is consistently running in an asynchronous mode there's a more serious problem at hand than the consensus protocol were using it's a participatory
problem so the incentives are wrong so uh so Charles like zooming out a little bit see so you've developed like ouroboros nothing more robust prowess and now Horrible's Genesis right Star Trek Wrath of Khan references here give us Genesis so actually like there's like a lot of teams in this space working on proof of stake in in in parallel so there's there's cosmos which is using practical Byzantine fault tolerance and other Byzantine fault tolerance algorithms invented earlier and it's like fitting them with coins and the needs of like it's it's it's combining practical Byzantine fault tolerance with
with the fact that the people that want to come to consensus need to be the coin holders that are staking coins right then this Al Gore and which is on which we did an episode which is also using a different kind of Byzantine fault tolerance things called fast and furious Byzantine fault tolerance invented a decade back and it's combining it with some clever cryptography to decide on who should be the parties doing the PFT then there's aetherium which is a different flavor of proof of stake which is as I said availability favoring proof of stake rather than consistency favoring proof of stake so the thing
with cosmos and Al Gore and is once a block appears and is confirmed its confirmed you can't go back whereas any cerium is more like proof of where chains of blocks appear and you're not sure that they are confirmed but you'll be sure that they are confirmed after a while so in this whole kind of ecosystem of projects pursuing different approaches tell me well like what is special about our abour and how are you differentiated from the others well your pores you know everybody always wants to say oh my my thing is better than everybody else's thing and I could care less about everybody else's thing I really I couldn't care less about it the thing is that it's more about saying look we have
to get the theory right we have to get the security foundations right and we have to make these concepts and ideas accessible to the University environment you see what we did is we walked into an environment where if you went to a cryptic cryptography conference like crypto or uric rift you say hey I work in a cryptocurrency space I actually did this I went up to Diffie at crypto and I said Devi I work in a cryptocurrency space he grabs his glass of wine and walked away from me he like didn't even say anything he just walked away and I was like but what just happened so the brand of crypto currencies is is is is badly damaged in the cryptographer community why and rightfully so because what's happened is you have all these
people coming around making these magical claims about performance and security they don't do any of the basic stuff like build a model right approve clearly state your assumptions tell it what you can't do what you can't do so the first goal of the or borse agenda wasn't to go and build the best fastest most amazing protocol ever it was rather to introduce the entire proof of stake problem and the in the grandest possible way to the entire cryptographic community and we've gone to hell of a lot of conferences financial crypto euro crypt crypto a CNS you name it we've been there and we've had hundreds of conversations since for example we published the or Boers paper I think it's been cited more than 50
times seven papers have been derived from an or done things with it or built on top of it and what we've now started as a great conversation in the cryptographic community about what is the design space of proof of stake in general like for example what are the incentives needs look like if you are gonna do delegation what does delegation look like how do you do cult staking you know how do we ameliorate some of these meta concerns like we haven't discussed this one but it's a big one how do you handle exchanges they on average hold double-digit percentages of the entire supply of the currency they own the currency but they would technically be eligible to participate in consensus with a proof of stake style system right that's a big problem that's like they have the they don't own it but they they can control it and they can
derive value from it that's not a concern proof of work has so it is Emelia their strategies to mitigate but it but you know these things need to be discussed in a broader context so the first major Cold War reports was just have that conversation and pick best practices and we were very pragmatic if there was a better solution like we you know Snow White came up with something or tenorman came up something that we sell felt was better we take it cite it and put it in and there you go so that's step one so anybody using our stuff knows that really smart people objected and that it's gone through a very rigorous process and it's kind of created a standard step two was in the process of having that conversation try to get a sense of the impossibilities or the real difficult to do things because
I'm getting so tired of people posting a paper from Andrew from block stream about this is why proof of state can't happen as if it's Canada or something like that I get so tired of that you know it's just like guys I would much rather in the academic community have all of our sins be and there are numerous sins right and we've even discovered some like we have a paper on something called steak bleeding that we discovered all along this research process so create a way of going about explaining what are the trade-offs and what are we giving up when we move to the system and let's not have that connected to financial incentives or to cult of personality let's try to have that connected to an objective truth so these are ton of to meta advantages of the or bors protocols that third-party verification and that kind of Festivus
style airing of grievances of of your protocol then in specifics the nice thing about our borders is by its design it's very modular so you can go from a permission setting where it kind of looks like POA or something like that it runs in like like a mode that you would expect to see for something like BFT simple to something like running in an actual global scale permissionless network and there's a way of tuning the protocol to behave in both of these things was kind of a common core to it and it borrows a lot of good best practices you know like the notion of an epoch this notion of slot leaders great because it allows you to construct a heterogeneous networks as opposed to homogeneous once you have a permissioning system and you can really in defend yourself against DDoS
and a lot of things as a consequence of that and there's a litany of other little basic design principles that we've rolled in the other thing is that we're very agile and the way we've been going about or Boris the the team has gone through I think six or seven major revisions of the of the protocol since inception in 2016 and we're probably to go through another six or seven revisions over the next year or two as we learn more and every time we do it we gain some new dimension like this bootstrap from Genesis is a major advancement and I think a lot of PS vendors are going to be inspired from our work and modify their protocols accordingly to try to capture what we've done so far I think only al Grant and/or Boris have this particular property so that's that's a more of a a meta point I
think to your question of well why is it better it's more of a question of what does the space as a whole demand well you know if you're an investor or an external person the papers are getting too complicated to read the technology is getting too complicated it's too much domain-specific knowledge you have to have the sewer fact from fiction so rather what you need is trusted third parties or a trusted third party process to verify that the things I'm saying are actually right and so that's why peer review is so essential second we need to have better conversations with each other and in the problem is we have commercial incentives not to have good conversations to each other because if Bob has created his thing and I've created my thing and we have competing tokens Bob doesn't want to make my token
better pop wants to make his token better sees he's going to be closed off unless I adopt Bob's token so the academic world is kind of like a Fair Commons where we can have these conversations and quickly learn from each other and steal from each other to try to converge to a collection of good design principles and then third you have to get much better about what are your business requirements for the cryptocurrency that you're deploying who gets to be in charge do you want to have finality or probabilistic finality to what do you want to have for these types of systems what do you need for your business domain do you need really fast settlement or is it okay to have much longer probabilistic settlement you know it's like what do you actually need in that that so and so what we'd rather have is a spectrum of proto
Falls or Boris being one Algren being one tenorman being one and others and then what happens is once you collect your business requirements for the blockchain that you need a system you need you run the the the you spin the wheel and then it says ah this is the flavor that I I require from my system and when you adopt that the hope is that because they have a common DNA in terms of the rigor or the security and the design you know that whatever you're implementing is going to work well for you the system architect so I think this is the process that needs to be followed the designing consensus algorithms hard guys and it's not a new field it's been around since the 1970s and there's a lot of people who know how to do this really
really well what bothers me is is when people just go and do it and think they're experts at it and they make outlandish claims you know for example the hyper let your guys they're very grounded there are very realistic people when I go talk to Christian and I say what are you guys using they say PFT simple here's why the guys written literal the textbook on distributed systems theory you're either reading that or Nancy Lynch's book or something like that it's a good book okay and then you go to the EOS guys and they claim they're getting two orders of magnitude more performance than this best practice you know BFT protocol and I'm sitting here thinking is the head of the IPC R and all these scientists at IBM incompetent and a guy with a bachelor's
degree from vintage Virginia Tech is just as solvent and he's come up with a system that performs two orders of magnitude better it's crazy and let's say it does perform at this level they're saying they can move blocks around at 500 milliseconds around the entire globe I takes 300 milliseconds to set a single around the entire planet so okay and and and they said well what independent verification we have that did anybody performance benchmark any of these things this third-party firm provide no but they just say it hash graph says stuff everybody just says stuff I Otis this stuff there's no verification that these things that people are saying are actually true and oftentimes when you deploy them you discover oh there was something I was in accounting either I've actually deployed a broken system that's not secure at all
or my system is secure but it's a hell of a lot slower than I claimed right I've heard to people like claim like ten thousands of TPS I'm like wait you test that it's like Oh on my local machine right that's not how you test the distributed system no you know it's so it's so so this is my biggest gripe for it so the point of the or Boras project is to try to separate fact from fiction to try to federate the POS problems that we're having as a community to try to create a trusted Commons which doesn't have a financial incentive to pick winners and losers rather it's just focused on what's right and what's wrong and to try to have an intelligent discussion about trade-offs an intelligent discussion about things like performance and benchmarking and best practices and so forth as the
inheritor of that our conjecture is that the output of this process will be a really good protocol for a cryptocurrency it might not be the best protocol for your cryptocurrency but for Cardno we feel that it'll converge to that particular state and every project will benefit from our research because it's all out there we try to annotate as much as we can and and anybody's free to borrow anything they want there's no patents it's completely open-source I love Sylvio to death he's a good friend I every time I see him I complain about the patents on Algar and I think that's counterproductive for the space and we've chosen to follow a open source philosophy and that's what we're trying to you know accomplish was card on Oh as a whole it's an every building block in the system whether it be an interoperability building block with
side chains or a performance bent a building block with Reena and/or a Boris or a governance building block with the Treasury system and the voting system that's all out in the open domain it's all through peer review and you know if we got something wrong you have a difference opinion that's fine change it but if we got something right everybody in the world is free to use it and it just it makes all of our projects better in a certain respect right I mean no that's really good to hear because like I know a lot of people like I've heard that like people criticize ihk and Cardno is like you're using like academic pedigree as just a marketing thing but like I find this is actually a really good reason it's a way of like reaching all branch out to like the more academic community and so that sounds
really useful and sunny they don't need us that's what we have to understand like these cryptographers have their own lives they've been around a lot longer before us man public key crypto came out in the 70s so you know what we have done as a community is we're kind of co-opting cryptography brand it's really pissing off the cryptographic community is they say look guys if you're a full-stack ruby developer you are not a cryptographer and just because you can implement one of these protocols doesn't mean you can design them and make them secure and what they're doing is they're having like this acid flashbacks of the 70s when the dreary state of cryptography was anybody who knew how to write code was implementing their own crypto and they're violating every basic principles
you know security via obscurity and you know they weren't getting proper random numbers it's like it's like just horrific when you actually look at these things in practice it's not a lead ism it's just a science I mean it's it's kind of funny and everything else we're ok with professionalization like you would like your doctor to actually be certified and you'd like your doctor to have actually gone through residency and proper training if he's going to perform an operation on you but then in cryptography it's like totally ok for somebody to have no professional training or knowledge but then go implement something that's gonna keep you private and secure and prevent you know the Iranian government from knocking on your door and black bagging you because they discover you're gay or something or they discover you've been using an illegal cryptocurrency or the same for China yet it takes an equal
amount of training to become a cryptographer as it does to become a doctor in fact in some cases more you know you're you're you're really at it in your 30s so it's just it's just really and I think what we need to do as a community is respect that there are people came before us respect that these are very hard problems and respect that these problems are not going to be solved in one grand paper and by one person they're going to be solved in stages as a community over a long arc of time as we as we built up normal computer science right like basically we have to be able to like talk the talk so we can like get the ear of the people who've done it yeah and I'm gonna kind of like start my own saying but which
I've been pushed ever since like the NiO Fiasco I've been trying to start the saying like don't you already have don't roll your own crypto don't really go and consensus I'll go wait we did the network break when one node broke that's yeah isn't he tolerant yeah there's some weird stuff going on so another question I have about Ouroboros right one thing I've always had some trouble understanding is like in a lot of proof of steak algorithms like Snow White Ouroboros especially in Definity stuff there's always just like huge focus on randomness well which I never quite understood so for context in Tender mint we do a just so there's every block has a proposer and we have a deterministic
around robin and like I know who the proposer one block from now is I know who it's only five blocks from now I know it's gonna be 2000 blocks from now and you know maybe it has something to do with the fact that Pender meant like distribution rewards equally to all the values and all the validators are because of the BFD nature everyone's participating in it but like to me the biggest thing that the you know I understand randomness is nice I think the biggest thing it can help with is like DDoS prevention but why the huge focus on like the randomness well there's a part we legacy a partly practicality so most if you do a literature review of cryptographic attacks or look at where
systems have been broken almost always there's some sort of random never issue at the end of the rainbow you know we're like we screwed up somewhere and there's you know some bits got leaked or something and there's a bit more to determinism than we'd like to admit so cryptographers are professionally paranoid about how clean their randomness is as a basis the other thing is that there are common best practices that exist like you can use em PC for example to develop random as shown makers scheme from crypto 99 is one we've made a modified version of it that's linear time called scrape but in general if you say okay the security assumptions in my proof rely on you know a pure source of randomness then your
system is not provably secure unless you know you have that so you have to put a lot of work into your your paper then the cryptographic community holds you a very high standard to prove that you've done that that's why is almost seems disproportionate a lot of efforts put into the explaining that in the paper because it's it's just a community expectation requirement a more practical sense there were litany of attacks an early proof of stake like writing attacks were you know people could buy us their chance of winning to favor them just by careful selection of things and it's like so you would like to make sure that you've ameliorated that it's a historical problem in the space but you know again it depends on your network topology you know if you're DPOs for
example and you know it's everything is twenty one nodes or 101 or whatever the the quorum set is and you kind of know the order that they're doing this whether it be ran around Robin or not it doesn't really matter as much about randomness well there's some question there but not really whereas if you're actually gonna elect a true committee of people Porsche proportion to their stake you kind of have a different need for that the other thing is if you build the source of random is carefully within your protocol that becomes a cryptographic beacon that you can reuse for a collection of other activities so let's say you have smart contracts that require a source of Ranas it's a horrific Allah bad idea to have people roll their own source of randomness within a smart contract in fact I think there was a paper out of
Cornell that did an analysis of the aren G's in smart contracts and they said these things failed miserably or it might have been at a UI you see I can't remember which group did it so it'd be nice as an API to say hey we have a beacon built into the protocol and because we've done a really good job of making that as pure as possible that becomes a public utility that the blockchain provides in addition to consensus that can be reused for other building blocks whether that be lotteries or player matching protocols or these types of things and you know that that's a fair source of randomness which is very valuable for all cryptographic so it's kind of a mixed bag part of it as legacy because when it wasn't a focus things went horribly wrong part of it as a community expectation where literally your paper
could sometimes not survive peer review if you don't spend enough time talking about it and doing things with it part of it as a public good and part of it as a structural property depending upon how your quorum is setting up and you know how you're voting on people and systems like or Boris or Algren for example do require a pure source of randomness or really good source of randomness to operate with a with proper security okay so what of the interesting things about Cardno is most of your implementation is in is in Haskell so you've chosen has Haskell the only other project that has chosen a functional language is a sauce right with Oh camel no Katina he also implements their blood chain and Haskell and also digital asset Holdings does all
their stuff in Haskell but that's in the permissions side of things and Barclays innovation group is all in Haskell as well I think Chris clack is there so it if you look for it you can find it but you're right it's not a common language choice so what why did you make that choice what's the advantage of asking here you know so yeah really when it comes down to it there's first the the imperative versus functional war and I think over time people are starting to concede that even if you're on the imperative side like here you love your you love your Java and just never gonna not love your Java there are some things that make sense to do in a functional sense like that's why lambdas came to Java was Java and Java 8 right
and so programming in general is becoming increasingly more functional because we're worried a lot less about resources and we're worried a lot more about things like concurrency and we're weird a lot more things like correctness of behavior and conciseness because these you know these repos are just getting so big and there's so many things going on so I like functional languages because I I just believe that they're easier to reason about I believe that it's easier to test implementations and I also believe it's easier to build distributed systems and functional languages and actually if you look at a lot of the internet giants like for example Netflix their entire back-end micro services with Scala you know if you if you look at Facebook large chunks of their systems are running in
functional languages or like the components that are mission-critical have some sort of a functional component same for Google in a certain respect so it's it's less of a decision of well ok should we go functional or imperative for mission critical software that's distributed that requires lots of testing potential verification in my view it is functional it's more of a question of ok which functional language ought you pick and there's a spectrum of functional languages you have hybrid languages like Clojure and Scala and f-sharp where when you want to be imperative you can be in Meredith Scala is great at that whereas if you want to be functional you can be functional then you have Pyrrha for languages like okay mo and Pascal are very peer in that respect them and then you have even more peer languages like Idris which is you know dependently type
language that you know it's just mind-bendingly hard to write code on so why we chose Haskell was a we have access to the royalty of the Haskell space the inventor of the language Phil Wadler amongst others there was a committee that created it works for IO HK so when the guy who created the programming language happens to work for you it's like it's probably a pretty good idea to at least consider that as a viable candidate for your system second we have access to pretty much all of the Haskell consultancy firms well typed tweak we've talked to F be complete and so forth so all the people who are acknowledged to be like the top 5% of the space in terms of development ability work for us or we would consult
with us or we can talk to on a regular basis third I think there's a huge value in going boutique as opposed to going mainstream so we are one of the largest Haskell projects in the world and actually one of the most valuable and prominent Haskell projects in the world so if you go to haskell reddit and you you go and say what is Cardno everybody in the reddit will know it as a project so basically you know a lot of people Haskell space like us know us and means that we have a higher probability of getting independent controversial community to come in and you know eventually over time commit code read our code give us feedback in and so forth another reason is that we're following formal methods and so we start with a formal specification that we'll be
releasing one in a few weeks for our wallet back-end and if you want to prove that you've actually correctly implemented code you kind of really need a functional language to do that and you can do with oak ml and you can do with Isabel and Haskell there's differences of opinion of what's better but you need some flavor of that so that we don't really have an option there it would be damn near impossible to do it with JavaScript or Java or something like that it's really really really hard and also nothing's that conciseness is amazing just to give you a sense of numbers our mantis client for aetherium classic is only twelve thousand lines of code compare that to the C++ Bitcoin it's like over a hundred thousand lines of C++ code so it's about a tenth of the size to do something that does more as a
virtual machine and all this network stuff and things that are more advanced than than Bitcoin so you have a wor sophisticated protocol and you use ten times less code for a more sophisticated protocol what does it mean means that just by lines of code there's much less to do there's much less to think about and it's much easier to write good test Suites and good test coverage for that and reason about the code so the conciseness has a huge maintenance and technical debt value in my view over over for post Ness and so I really like that I know there's a lot of Haskell specific things that we really enjoy in Haskell is probably the most advanced functional language because the community is really invested an enormous amount of time into making GHC and other
things really advanced and they put a lot of cool things in with the type system the whole concept that the monad is really easy to work with and it gives you a lot of tools for modeling concurrency and distributed system theory there's also actually some beautiful things like cloud Haskell for example which takes all the Erlang goodness it was OTP and it brings it into the Haskell space so you're like that's the another language you could look at like Erlang or lick sir for example I think eternity is using Erlang and that's a great language for building a cryptocurrency in as well you don't have to make any compromises we have Erlang stuff that we can pull into Haskell as well so from a correctness a conciseness a testing a community oh one last thing
personnel-wise if you hire a Haskell developer they probably have a master's degree in computer science or a PhD or at very least they have a lot of professional experience no one starts with Haskell unless they go to Edinburgh or Oxford or you like some really good place most people start with an imperative language and then professionally out of frustration they find functional programming and there's something they like about it so if you hire Haskell developer generally you you end up it's a beautiful filter that gives you access to a much more experienced group of people that are more mathematically oriented they have an easier time reading formal specs they have an easier time reasoning about things and they tend to be a little bit grayer in the beard so we wanted to have that added filter in our personnel so we can have
smaller teams that are more variants that are smarter and an overall I think that'll have a better output for our process but you know we do more than just Haskell we also write Scala code and then we also write a lot of JavaScript code as well the entire Daedalus front-end is written in jazz and we try to make that immutable where we can but you know it's it's still an imperative approach and that's a separate team yeah I mean I think this formal verification focus is really great I was a huge fan of kisos as well for the same reason I think that what you got especially like when you guys are doing the formal verification of your wallet because I don't think I've ever seen anyone ever do that before and that would be really cool especially cuz that's usually one of the points where
like the easiest attack vectors on on systems another thing could you tell me a bit more about the K framework cuz I know this is something you guys are focused on a lot and it's a very like cutting edge topic that I don't think that many people are not let alone understand like even aware of and so could you speak a little bit about what made you decide to focus on this when there seems to be you know other block teams there seems to be a huge shift towards like web assembly everything right and so why the K framework right okay so first you guys should really have professor kokoro shoe on your show he's based at a university of illinois a wonderful guy he runs run time
verification and he's worked at nasa and he's done all these really really cool things but he's the creator of the k framework and he works very closely with ioj k we actually have on contract 19 people full-time for this plank so it's not an insignificant pool of resources but and they do amazing work okay so what is K all about k is kind of like a meta language it's a language to build programming languages so languages have syntax and they have semantics and syntax are your symbols and your letters and these types of things and semantics or when you chain them together what the hell does that actually mean now it's a formal language so it has to be ambiguity free and so what ends up happening usually is the programming language designer will go ahead and write some document and we'll
have all the semantics written down an mathy style language and so here are your language semantics so if you encounter a statement and a language here's how you're supposed to interpret that and then the developer will go implement the language and hopefully if they read the spec correctly they should be one to one so for any statement that you read there should be semantics to cover that now in practice this has not historically been the case even in languages like C for example especially for languages like C so what K is all about is saying instead of writing your operational semantics of your language in a math symbols that you put on paper right and it encode in the K framework and a special type of markup and then
what will happen is Kate can actually build your language for you so you have a correct by construction implementation of the language all your tooling now where it gets really interesting is less about the construction of language that's really fascinating from a PL perspective and a correctness perspective and it's great for research which gets fascinating is translation so what K can do with something called semantic space compilation is something we're working on with our v very closely and it's a lot of work is that you can take a K define program and translate it into another K define program so let's say you write the case semantics of Java which has been done and you write the K semantics of C which has also been done hypothetically using semantic space compilation you can take a C program and translate it into a Java program and it
runs just like the C program ran okay now where this is interesting is then that means you could build the ideal perfect virtual machine for your cryptocurrency in this case it's yellow it's the virtual machine that are V designed for Cardno and then for interoperability all you have to do is just go and write the K semantics for lots of programming languages and the SBC stuff will just translate those languages right to your perfect VM so this kind of helps you a bit because you know like the whole argument for web assembly is it's not that it's the optimal thing for crypto currencies it's that a lot of people are working really hard to make this as interoperable as possible with as many programming languages and they have to do a lot of work there but the thing is
it's not fine-tuned at all for crypto currencies so what you can do is build something that's fine-tuned for your application and then your interoperability strategy is just go and spend a few weeks writing semantics down and then you're done forever you just append those to the blockchain in there and if you want if you're curious to see what they look like just Google runtime verification github and you should orcas make a framework github and then you can actually see the semantics for Java and the semantics for JavaScript and things like that now here's the other cool thing let's say you version your virtual machine you go from version one to version two ordinarily when you go to version two you have to update all the compilers so you kind of have like a maximum threshold of comfortable languages you can support because when you update your VM you know you have to
say well if I have a thousand languages I have to update a thousand pieces of code to get all these things to work with my new version with the K framework you don't do anything you just update the semantics of your VM and then the SBC stuff sorts it all out for you so you can support unlimited languages and you don't do any additional work whenever you version your system upgrade your system and so forth but guess what here's the best part let's say for the sake of the argument that webassembly wins out we could write the semantics of web assembly and K and support that as well and so translate to web assembly or from Yela if we if we wanted to already seen that I think they are actually working on web assembly semantics and and we're actually also building a k2 LLVM back-end so that we can get
basically I'm handwritten code performance from the machine generated code so it's a lot of theory there's a lot of things involved here it's a it's a deeply involved project that's why there's so many people working on it I think all of them have PhDs or Orkut and you're close to it and there's about ten years of computer science research that's gone into this particular framework and it's actually already been used in practice it's a practical product run time verification for example works with NASA and Boeing and they do verification work with these organizations not small companies and not Louis shares settings so so we're really excited to try to bring this into the cryptocurrency space already it's given us the ability to be very pragmatic we wrote the operational semantics for the ke VM so we actually
have aetherium semantics and when we launch our test net we're gonna actually launch a aetherium test net alongside the yellow test net so if you're a solidity developer you have web 3 and Viper and all this other stuff guess what it's going to be one-to-one compatible just as if it was an aetherium node but we didn't actually have to implement that virtual machine it's actually being implemented by the K framework so when we launch our test net it will actually have a correct by construction VM that's built right from the semantics pretty cool stuff no ambiguity it passes all the etherium test vectors and it'll be the same for yella later on we'll start looking things like proof carrying code and things like hooks in the VM that allow formal verification be much better like for example RV wrote formal semantics for the ERC 20 token standard
and this is a kind of a vogue topic right now because some of these ERC 20 tokens aren't necessarily in completely correctly and it creates problems so wouldn't be so cool to actually have an artifact that you can have with your RC 20 deployment that verifies that you follow the specification so you get a proof of correctness with that so you know that your er C 20 is is right you know if you have billions of dollars of value behind something Allah knows probably a really good idea to you know to verify that that token is correctly implemented and these are kinds of things that are going to be really easy to do in our view when yellow comes out because we've custom-built the the VM to accommodate that but we don't have to sacrifice interoperability now here's the other really cool thing let's say
that you want our virtual machine to support your language eventually what you'll be able to do is write the semantics of your language in K and the issue a special transaction to embed it into the blockchain itself then we as a developer here's how you your development experience looks you write your contract in that language and you go and put a header in the thing to go look up on the blockchain for that particular language and if the semantics are there it can pull it and then use the SBC of mechanics just translate it to run on the yellow on yellow you don't have to talk to me you don't have to say Charles can I get support or go and build a complicated compile or anything like that you just have to write the semantics of your language which you already have to do if you're creating a
new language for example but now there's a more rigorous formal way of doing that where you you know these things are there and there's a lot of other things like debuggers and you know all this other framework that will be interoperable between each others so k's great project k framework is just phenomenal piece of work and it's being incubated at a major computer science institution at University of Illinois urbana-champaign is I think that in the top five of all CS schools in the world or at least in the United States it's right up there with MIT and Carnegie Mellon and theirs and it's known for formal methods in PL this is a big hub for it so it's it's got kind of the right balance of practicality of theory there is definitely the right team working on it if you guys want to know more about
it grigory is a wonderful guy to bring on and I think he'd be able to give a far more Justice decay than than I could and that that seems like an fit oh she asleep all ooh invention and think to adopt for smart contracts right because at the end of the day developers gonna want to write contracts the languages they want I it's kind of fun when Joe or anything's other guys from aetherium so like aetherium is one it's inevitable you know we have all the developers is like you have all the solidity developers the language you created yourself but how many Java developers do you guys have were you know how they C++ developers do you guys have like the vast majority of people who write code do not know how to write code or are not writing code for your platform so you
need to be pragmatic and create a way to bring those people into your ecosystem and that should not be using a different programming language and throw away all the things you've come to know and love and your entire career it is said bring as much of what you you have into our system and it should just work now doesn't mean it's gonna be secure it doesn't mean it's gonna be practical it doesn't mean it's gonna be performance it doesn't mean it's gonna optimize gas cost all of that is like facts and circumstances but it says that you can use the stuff you're already familiar with and then you could have a conversation about those other questions over time as those communities emerge cool so now we have a guest idea try gouache Rocher so we'll have them we'll have him on epicenter and discuss the
créme work charge thanks a lot for the great conversation over the past hour is like whenever we invite you we learn a lot of things that we never knew about I remember the last time you came on the show prior to the show you showed us your collection of books and that was mind-blowing in itself that that should be an episode you know like Charles collections of books this one off this is actually one of my favorite math books it's something I read as an undergrad naive set theory from Paul how most did I show that one off last time though no that's nice so so it's like if you ever actually you know become serious in math you have to take set theory in and math logic and anyway how
most wrote this is kind of like a primer to help you learn about things like Russell's paradox and Bonacci tarski and you know how natural numbers are constructed and so forth and how most is one of my favorite authors because he followed what was called the inductive book method so basically what he would do is he'd write the first chapter and then he'd go and write the second chapter and then go back and rewrite the first chapter then he'd go and write the third chapter and go back and rewrite the first in the second chapter so if you ever read a book by hell most the first chapter is amazing it's like the best thing you've ever read you're like wow this guy is such a great author but then something happens that the quality tends to the hell is this guy talking about or something like that but
wonderful book highly recommended and if you ever want to know about set theory and piano's axioms and things like that cool so we look we look forward to having you again perhaps when you have the next release of Cardinal I think that's the shelley release will probably invite you back and talk more about your smart contracting system and other elements of card I know that we couldn't touch on today so if you're listener thank you for joining us today we release new episodes of epicenter every Monday or Tuesday and subscribe to the show on iTunes SoundCloud or your favorite podcast app for iOS and Android you can also watch a video version of this show on YouTube at youtube.com
slash episode a Bitcoin we also release recently started a get a community to hear more from our listeners and what they'd like to see you can find that at epicenter dot TV slash Gator and we always welcome iTunes reviews that helps us improve and I trade on our delivery so do write some reviews for us or iTunes and we look forward to being back next week thank you [Music] [Music]