Jason Teutsch & Christian Reitwiessner: TrueBit, Scalable Off-Chain Computations for Ethereum (177)

4 Apr 2017 · 1:03:27

Jason Teutsch and Christian Reitwiessner, co-authors of the TrueBit whitepaper, join Epicenter to explain how their protocol lets complex computations run off-chain while still being verified by Ethereum's network. The conversation covers TrueBit's use of proof systems and game-theoretic incentives, how a Task Giver, Solver, and Verifiers interact to keep off-chain computation honest, and how the protocol could support smart contracts written in languages beyond Solidity.

Speakers

Topics

Transcript

[Music] this episode of epicenter is brought to you by Jax Jax is a userfriendly wallet that works across all your devices and handles both Bitcoin and ether go to jx. and embrace the future of cryptocurrency wallets hi welcome to epicenter of the show which talks about the Technologies projects and startups driv decentralization and the global blockchain Revolution my name is Sebastiano and I'm M Roy so today we have a really awesome episode for all of

you we are going to talk about truebit which is one of the one of the truly Visionary projects that I I see in the in the ecosystem so trueid is a project that somehow scales the amount of computation we can do using smart contracts and we are going to talk to the people who wrote the white paper for true bit they are Jason to and Christian R Winer so many of you would know uh Christian from from his role at the ethereum foundation where he leads the development of solidity remixes and the for and their formal verification effort uh Jason um Jason has had like postd positions at multiple universities

including n us and Singapore and uh we're going to interview the two of them today on their efforts at true bid so before we start let's have a brief background about um both Christian and Jason starting with Jason Jason tell us how you got into the blockchain space in the first place I think my blockchain story starts back in 2014 when protic sea who is a computer science professor at the National University of Singapore invited me to uh work on a research project with him and uh I read my first uh research paper about Bitcoin as I was on my on

the plane over to Singapore he had given me um paper that you wrote called Power s splitting games which is about it was a block withholding attack that that sort of hurts uh Bitcoin mining pools and and um I thought it had some interesting game theory in it so I was I was sort of uh excited about that and uh so so so I mean of course protic before he came you sort of mentioned the project that that we were going to be um he had mentioned a project about sort of verifiable computing so sort of you know this

is um you know people said tasks out to to Cloud so there's this sort of cloud computing going on these days where you send you ask Amazon to perform a task for you and Amazon comes back and says the answer is uh 47 well how do you know the answer is 47 asides from just saying well I I trust Amazon I mean can can we do better than that so you know I started when I came into Singapore we were looking at sort of uh you know what what sort of problems are easy to verify maybe they're hard to to compute but they're they're easy to verify and you know one day I'm sitting in in PR's office and graduate student walks in and ly L who he walked into the

office and said you know hey guys there's a there's uh a new cryptocurrency it's got a turn complete scripting language um you know it's called ethereum there's it doesn't exist yet but there's a guy uh you know balic pan who's who's going to make it happen and you know it it didn't take long for us to sort of uh the verifiable Computing meet meet blockchain uh and that that was really the birth of the consensus computer you know what is the consensus computer is is basically a way of of making ethereum smart contracts to to compute um certain tasks correctly

specifically those which don't require much verification so you turn ethereum into into a sort of uh computer so we wrote the first academic paper about ethereum and that was you know two months after I had you know read my first uh well really found out two months after I had known what a Bitcoin was so I was really a newbie here we we sent the paper to to CCS which is you know one of the major security conferences in the United States and they they rejected our paper uh uh you know they said you know this this this attack in your paper it's it's it's never going to happen you know it's that's that's just you know it's a bunch

of theory and but of course uh then during the rebuttal period the attack it did happen um on the Bitcoin Network so that was the July 4th for if you remember July 4th 2015 there was a fork on the Bitcoin Network which was six blocks long and the next day July 5th there was another one that was three blocks long so our our paper sort of predicted that uh that failure on the network and well they changed their mind our our paper got accepted to to ccs and um what can I say we got lucky so so so that was actually that was the beginning of truebit although

none of us really knew it at the time so that's that's that's kind of how it all started and Christian uh so you've been involved with ethereum for for quite some time too tell us about your background and how you got to be involved uh with ethereum and you know leading up to this Curr important time uh working on truebit so uh yeah actually I don't remember when I heard when I first heard about Bitcoin and blockchains but uh it was I was observing Bitcoin and but no was really a part of it and I always felt I was missing out on something and then uh I mean I was also always interested in in thiser to

peer-to-peer stuff and uh decentralization and uh yeah taking away the power from centralized entities and so on and then uh yeah I have a a background in in computation complexity so yeah the the theory that talks about computation and resources needed for that and so yeah during the the the pre-sale for ethereum I heard about e for the first time and uh yeah I felt yeah that's it I have to I have to I have to do that and so I joined in in October 2014 um and yeah started working on solidity um yeah and I think so how did

I get it true but at some point I think it was the discussion about the uh um yeah I think we'll get you into that later uh about the Dogecoin uh bridge and how you can verify the do proof of work on ethereum and I think it was a discussion with with vitalic and we came up with the this general idea I think and um I think at some later Point uh Jason vitalic met you at a conference and he told you about that right and then that's how the we we got the connection oh yeah there's this guy at this conference he's he has exactly the same idea

that's right we were um right so I guess balic put put put put us uh introduced us together and that the rest was uh sort of history but I wanted to mention you know in terms of my background you know I'm I'm a mathematician and and you know I think one of the things that was that was so you know really really struck me you know and was a game changer when I about the the CCS paper you know I never in my life had had a time when you know a current event like sort of directly impacted the research that I was doing I mean it's just sort of Unthinkable in mathematics you know we don't wake up in the morning and say you know is the Pythagorean theorem going to be true

today I mean does it depend on you know uh anyway I can come up with any number of examples so for me that was like kind of like a real eye opener and it's it's sort of uh you know and now you know being in trueid you know I I can't even imagine being you know in a you know interviewed for for for the work that we're doing and stuff like this it's it's tremendously exciting to see that you know mathematics can have you know an impact in the in the real world and especially you know Game Theory and I I could totally understand that like here's at some level it sometimes feels like like here's most of us you know

just a just a bunch of you know thinking about like money gold nature of money nature of computation in your case mathematics and suddenly with this technology it's like you know all of our thoughts suddenly start to have real monetary impact you know like uh like we would we would do we do things like this just as a hobby but now it turns out like our hobbies are worth you know like in aggregate like billions of dollars and you know like with us episodes we make can influence the markets right like like like recently we did an episode on Ripple xrp and lo and behold like 2 days later everything else is down but Ripple xrp

is like up 25% and we like what happened to ripple xrp at that time and and it's almost as if like you know like things you do uh end up connecting to the real world in this technology in a in a strange way so I think it's it's it must be similar for you on the on the mathematics side of it so um Christian um tell us like about your journey in ethereum like when you started working with ethereum did you ever think it would be so big uh did have recent events caught you by surprise or did you expect it to be so influential I mean it was a a a gradual thing right so we always thought I mean the the potential of this is huge and we thought about oh I'm yeah

this might be used in the real world somewhere and we wrote the code and we had the some of the early ideas and so on but yeah I mean it's still not mainstream so it doesn't feel like uh I don't know my parents uh using it it's definitely uh yeah grew quite big right so moving on to the the topic that we here to discuss the true bit I have to say I've I've uh I've dabbled that the white paper it's a very interesting concept on the face of it now I'm I'm hoping that you guys can shed some light on how it works and what the use cases are and uh so explain to us at the at the core you know what trit

is trying to solve as a problem and uh and then after we can go into how it's doing that maybe we just start with what the problem is first I think in order to just to say what problem we're solving we need to sort of explain where we are right now sure so smart contracts that are in ethereum so I'm going to sort of assume that people are familiar with what smart contracts are they're they're basically programs that live on the blockchain they're uncensorable they're Unstoppable they do whatever they're programmed to do when they're first issued so um but they have very limited computational capacity I they can't you can't do anything more than very trivial tasks with a with the smart

contract um and you know there there's a gas limit in ethereum you know so so that that sort of gives a bound on the amount of computation you could do so so you know true bid is is a solution which basically makes makes allows smart contracts to do you know real computation like you'd expect on your your your you know your home computer for example but uh you know but let's get the elephant out of the room you know you know why not just wipe out the gas limit you know that's that that's the obvious thing you know then then everyone can just compute whatever they want but it's just simply not secure so for one thing you know folklore say you

know why can't smart contracts do do more computation a lot of people say well it's because everyone on the network has to duplicate everything it's just too expensive you know but that doesn't you know you that that's that's very superficial level I mean you could always pay people more uh I think so if you if you scratch a little bit deeper the real reason you can't do uh substantial computations over the ethereum network is that you're basically asking the minor to do these computations for free now everyone knows about transaction fees but those only go to the minor that finds the block but every minor has to now check these blocks you know they they they have to

check it for free so they know which which is the longest valid chain and you're you're asking them to do it for free remarkable that any that they're willing to do anything for free I mean that but they're willing you do a little bit for free this is the sort of the amazing piece of Bitcoin and and ethereum that that that makes it work and if you go back to the you know idea of the consensus computer yeah you can compute things that are are trivial but what's what's what's you know we we had a a piece there called the what we call the verifiers dilemma and and what does that mean so basically you said suppose suppose a task came in that was actually difficult to verify it took a minor a long time so now there's this sort of incentive for a minor to skip the

verification right so so he could he could he could skip the verification well that's bad because then you could get wrong things on the blockchain but it's even worse than that because even though the buyer can skip skip ver verification if if everyone else is also verifying he may end up M by skipping you know mining on on the wrong block so so then uh he doesn't a rational minor doesn't even know whether to verify or not right I mean because you know if he wants if everyone else is verifying he better verify too and if everyone else is skipping then he has to skip but you know there's for a very high computation it's impossible to know what you know minor wants to be on the longest chain because that's sort of the convention but that's that's what the

verifier dilemma is about don't know whether to verify or not so it's you can get all sorts of garbage onto the blockchain if you if you just ignore the gas limit in ethereum and not only that but you could have denial of service attacks too because people just throw stuff out there to waste Miner time and and they have finite resources if I could rephrase let me see if if if if I'm getting it correct so what you're essentially saying is that so in ethereum we have this analogy of the world computer right that um a a computer is basically a machine that executes is able to execute some some form of instructions and in in history like we have implemented

computers as these main frames inside universities as desktops as laptops as mobiles and like white Alex sort of idea was that you could imagine a whole blockchain network as this as this computer that can also execute these instructions it can like you can store data there and uh you can you can basically do any kinds of computations on a blockchain network and the computations are called smart contracts and you can obviously also put data in these smart contracts now if you think of start thinking of it as a computer it can only do very limited amounts of computation so I think somebody compared it to being like

a smartphone right like it can it can do a very little amount of computation what you're saying is like what truebit is trying to do is kind of scale it from just being just having the capability of computing equal to let's say a smartphone to something maybe you know thousands or million millions of times greater right and the other piece you're saying is that what is the ultimate reason why ethereum the system is only able to do um such less computation there you're saying that the reason for that is something called The verifiers Dilemma which is that if the four of us are minors in ethereum like spread around the world and let's say there's a one of us discovers the next

block so Jason discovers the next block then Jason is paid for that block to include transactions and computations inside the block but then there is no incentive for Christian sebasian and Meer to verify that what Jason claims as the results of these computations are actually correct is that is that right right they don't get paid for it so there's I mean there's an incentive in the sense that if they don't verify they might end up mining on the wrong chain and they won't get rewards but they don't they don't receive a payment for the verification per se okay yeah for ethereum it's also a bit different because so at the point where you stop verifying you're also unable to include new

transactions yourself because uh in ethereum you have you have state and you need to update that and uh if you only have the the Merkle rout of the state you can't really update the state so uh if you stop verifying as a minor you can't get uh uh yeah fees from from including transactions but yeah you can mine empty blocks so that that's still still an option for you so so tell us what is the core concept behind behind true bit how how are you what are you doing and how how do you intend to do it so we have we have basically two assumptions on on true bid one is that the consensus Computer Works in other words smart contracts can do trivial computations correctly and this is just

an empirical observation we' you know we we we see ethereum doing what it's supposed to do and you know that's why people use it the other thing is that we assume that people uh you know participants are are are rational and by rational means they're working individually to maximize their own personal profit and and collecting ethereum tokens or or whatever Bitcoin um happens to well I guess we're really talking about ethereum here so let's just focus on that uh so so of course the Assumption of rationality is is some idiosyncratic it's also somewhat pessimistic because Satoshi Nakamoto said that you know the

majority of minors are just going to be honest and while that may have been true in the very beginning when people Bitcoin was getting started and it was about the politics the people really didn't trust the government and that's that's why they were there playing Bitcoin but since then you know we've seen you know people switching from CPU Hardware to Asic minor so they can get more Co so also um well I guess we can't judge people's intentions but people are switching switching Hardware we see we also see that uh you know people um miners joining mining pools in effect changing the software so my feel is people are you know miners are actually in the network they want to make money I

mean that's sort of the Assumption of of truebit so so how can we given that most people are are rational you know how can we sort of take advantage of this sort of natural inclination that that that that people seem to have so so those are the core core two pieces and we we will we'll we'll assume that you know we have this small thing that that works correctly and we want to blow it up so so so we do this in in in two pieces so so first of all how can you get a tiny computer like a consensus computer to even check a really hard computation so so we designed this game which we call the verification game

which uh Christian alluded to earlier that was what uh metallic heard about the verification game from me and he heard about it from Christian and for those of you who are around back in uh you know 2011 you might have heard it from Kennedy Reva and Roth Blum who who published a paper with almost exactly the same idea of course they didn't have cryptocurrency in mind so it was you know really about um situation of cloud cloud computing back then but so so what we do is you you're you imagine that there's the consensus computer sort of acts as a judge so you have one solver who says

here's the solution and a verifier who says no it's not so the consensus computer just has to adjudicate and decide who's right well it it creates a game in such that the judge only has to enforce the rules of the game but doesn't actually have to do the computation itself so in each round of the game you reduce the sort of possible places where the error could occur so it's judge has to pinpoint the error and eventually the it becomes so you know such a small piece that he can actually look at it and and uh determine who was right whether the challenge was very Justified so I'm I'm I'm trying to understand what what a use case of this

might be and and and and tell me if this is makes any sense or not I want to use a world computer right a distributed computer to do something like compile software like I want to compile the ethereum go client is this something I could do using true bit and if if so then how would I do that and if not where am I getting this wrong so that that's that's a very interesting use case and let me modify it a bit so uh the can I use trit to uh verify inside a smart contract that a certain piece of solidity source code was compiled with a

certain compiler into a certain piece of uh evm bite code and that's definitely something that can be done with trit and yes it's one of the use cases okay because earlier we were talking about so this idea that you could I don't know if this was pre-show or what but you know we're talking about this idea that you know the the model right now is you have say AWS and and and you ask AWS to do some kind of computation that could be calculating some really complex formula or uh doing some encryption or maybe decryption or maybe compiling software or you know encoding video uh and they as as far as I understand it true bit is a way to do this in a distributed way so

that you don't have to trust Amazon uh or you don't have to trust the Central and entity and ethereum does that but it does that in a way that only is available for smaller computations and not large computations so if if this is the the premise then how does that Port over then to true bit or am I getting the premise wrong I guess one one thing I'd sort of maybe like to to clear up is that as you pointed out truebit is is a completely ratic system there's no there's no reputation there are no upper class nodes there's no you know uh Federation or anything like that it's it's in that

sense it's it resembles uh Bitcoin and the way ethereum originally was and the way ethereum is is right now and and in fact when there an error occurs it's also a different kind of consensus where it's not a majority consensus we were talking about a unanimous consensus right so anyone on the network can can can uh challenge a solution before it hits the blockchain anyone can do it and you know then they will play this verification game I guess the real trick if you want to say to to getting trit to work is you know how do you convince people to actually play the verification game I me normally if

everyone knows that all the answers are going to be right then who's going to be around to check the answers right I mean you if if you get for example if you get a prize for for finding a a bug in the in the in the comp if you find a mistake in the computation but you know that you don't have any reason to believe that mistakes will actually occur then why are you wasting your time verific ver you know doing the verification at all trueid is in two parts the first one is is this verification game that we uh just discussed and the second one is an an incentive layer to convince people that they should participate in in verification the idea there is that we sort of force the system to occasionally

create mistakes so that uh verifiers are actually going to look out for them and and um you know they have a incentive to participate that way so you have a we call this a forced error mechanism so occasionally truebit will create these forced errors and then the the verifiers should should find those and that should keep them um available and interested in playing the game and it also serves as a sort of um a proof that the verifiers are actually verifying because otherwise how does the system know that that anyone's checking the answer that's a problem I think we we need to uh go into the basics concept basic concept a

little bit right like so so imagine imagine like this like this simple scenario um this Sebastian right and Sebastian wants wants to run a smart contract that is going to consume 50 million gas units right doesn't it doesn't matter what Sebastian wants to do it is it is it is something that is complex enough like he wants to run a very complicated gambling Lottery right it has it has a lot of rules and in order to um do some steps inside his gambling application uh he needs 50 million gas today so today if you look at the ethereum system the gas limit is

what like 5 million or something right which means Sebastian's transaction will never fit into an ethereum block as it stands today right now what you're saying is like true bit is a solution that sebastia could use to to have a smart contract computation that can that can run in enough steps to consume 50 million gas right now H how would it work How would how would sebastia get his computation or transaction that consumes 50 million gas into um into the blockchain like what do what does he need to do and who are the players that allow sebastia

to do this trueid itself is a smart contract in ethereum that's that's that's what it is it's it takes that that form so it's it's I guess you can think of it as a smart contract that can be called by other smart contracts that need additional gas and then this uh truebit smart contract if you will will will recruit the other parties needed and incentivize them properly to to make sure that the output of that contract is the correct answer to the query that came in I mean the main parties you have there is you have a a task Giver who's the one who who sends in the task that needs to be performed you have a a solver who's going to um provide an

alleged solution and then you have a verifier who's going to make sure that that alleged solution is actually correct and then you also have these this uh the miners who function as judges and referees to make sure that just to make sure that they play by the rules of the game without actually doing the computation themselves and those are the players so so normally when like a computation happens on eum Compu is triggered by a transaction so for example I I create a transaction and that transaction like triggers a computation and then there's an then there's an output to that computation and I broadcast this transaction to the miners and the minor

that includes my transaction the next block has to make the computation and all of the other nodes have to verify that computation right now in this case what we are doing is is when I create a transaction that like triggers a very large computation the blockchain sort of outsources that computation to an individual solver am I am am I reading that right that instead of all of the nodes of the ethereum network needing to do that computation they're going to Outsource that computation to a particular solver which is like an individual machine and in order to ensure that that the output of that individual machine is correct there are going to be other verifiers that are

going to verify that that output is correct and this game between solvers and verifiers is going to ensure me the user that the output given by the system is correct so this is not something which needs to be implemented as part of yeah ethereum itself so nothing in E ethereum itself changes and so that's why I wouldn't use the term transaction uh it's just so tribit will just be a smart contract which people can use by calling its functions I mean in the end of course you send transactions to that smart contract but uh it doesn't automatically so as part of ethereum you don't automatically

Outsource uh this this computational tasks and the the the forms of these computational tasks are also different than uh what you currently have on ethereum so you uh you don't have the ethereum virtual machine for example we plan to use a similar similar thing but a different vir machine and it's also important that um I mean that's kind of an implementation detail but uh the tasks that are to be performed have to be yeah kind of pure functions so you don't directly have access to the blockchain or uh yeah things that are available in solidity like like ms.

Center and all this stuff um you can make that available via uh yeah Merkel proofs to the blockchain which are easy to verify in the uh in in such a truebit uh computation because you have a lot more uh yeah gas in quotes uh available i' I'd also like to add that you know clear clear up the the roles that are being played here that anyone can participate in the network anyone can choose to be a solver the way that the protocol is is we designed it is that you know the it essentially you there's a lottery that's that that chooses who gets to be the solver but anyone can always verify and of course the more the merrier the more you know

we only need one verifier but if you have more it doesn't hurt so but these these solvers and verifiers live live offchain and really the the the only thing that sits on the blockchain itself is the the enforcement of these rules of the game let's take a short break to talk about Jack Jax is your wallet your complete user interface to cover all your blockchain needs I've been using it now I've been loving it now Jack supports a lot of different cryptocurrencies supposed Bitcoin ether Litecoin ethereum classic zcash or rep and they're adding many more keep responding to users needs now with Jack the nice thing is that you can manage all of those coins within a single wallet and you are in control of your

own private Keys they're not on their server and there's a single 12 ver seed that you can use to back up your wallet all your coins and sync them across different devices talking about the devices they're on pretty much any device that you can think of you can get it on PC Mac Linux you can get it on smartphones like Android and Apple and iPhone you can get it on tablets or you can there are even browser extensions for Chrome and Firefox and on top of that in Jax you can actually exchange different cryptocurrencies for each other because they've integrated a shape shift and more Partnerships and Integrations are coming down the line in 2017 that are going to make ja even better so Jax is really making

blockchain and cryptocurrencies accessible for the masses easy to use for the masses make sure sure to get your own Jax wallet at ja.io or you can get it from any of the app stores you are using we' like to thank Jax for their support of epicenter let's define then what is a so there's different participants right there's a task Giver the solver the verifier I think there's a a challenger two or is that let's define each of them like who is a task Giver who is a Challenger who's a Sol is a verifier and what do they do so you have the task Giver which basically specifies the the function to compute the program to execute and the input so the task Giver is the one who sends the smart contract

to the to the blockchain yeah I wouldn't call it a smart contract it's just a a program to execute okay it can be a smart contract but it's just a program to execute and the task Giver also provides a pays for the task Giver also pays for the whole thing right so you you pay a fee and uh then a solver actually performs the uh the execution runs the the program and then posts the result onto the blockchain just the result and then verifiers can basically do the same thing as the solver just rerun the whole program and check whether they come up

with the same result um nobody's forced to do that so so and and verifiers can also come in from outside at any time and just rerun uh these programs and if they come with a different if they come up with a with a different result then they can challenge the result and that's I see so the verifier verifier turns into the Challenger that's a bit clear then then uh once the solver has produced the results uh and you want you want to have verification so as the task Giver I want um more than one verification uh attesting that this is in fact the right result uh so I may

have one one verifier that produces a verification another that produces a verification and maybe I have like five or six and at which point as a task Giver can I be sure that or have enough certainty that my computation the results of my computation as provided by the solver is accurate and is there is there an incentive model there that starts to drop off because I I suppose and the verif the solver and the verifiers get paid for all this uh you know if I'm the thousandth verifier does it even does even make sense for me to participate in this verification so there there some this whole thing has has an interesting

property so the the verification game uh is always uh we'll always find out who is right and who is wrong okay and this is all this is all deposit based as in in other so if if the if if the solver posts a an incorrect task this all will be punished ah so this whole system should already work um even with just a single solver without any verifier but you just so that the as long as the task Giver knows that the solver thinks that someone is verifying so that doesn't have to be an actual verifier out there but we designed the system in a way that uh

it's extremely likely that there is a verifier out there and the solver knows that so the verifier okay I see that so so the solver is providing a response uh and is incentivized because he's putting a deposit he's incentivized to provide the right respon the right result because a verifier May verify it uh and prove him wrong and then therefore get the deposit I see okay how is is there like a time period because you know perhaps I as a solver I provided a you know a bad response or bad result and then you know I get my deposit I get you know the the deposit and then 3 weeks later someone discovers that I was actually wrong how how how

does that play out so yeah I mean there there are there are timeouts so this this whole thing consists of multiple rounds and there are timeouts in each round and sure so if if the system fails in the way that the solver can post an incorrect answer and nobody challenges this then it will not be detected so at I mean at some point you have to basically finalize the result right and uh yeah I mean you you could build a different system where you can challenge again even after a long time but that's probably not going to work out it's starting to become clear now I see so coming back to my my original question what types of computations are likely to be run on this like when you say I want

to run this computation and it's it's not a smart contract it's it's it's it's code going through this smart contract that handles you know this deposit and the you know the verification and the solving and all that providing the proofs um can I can I throw at it like C++ code or whatever like uh you go or is it have to be in solidity how does it packaged like how does how does one send that payload onto the blockchain yes we want this to be usable as nicely as possible so we want uh regular programs to be run there which means yeah programs written in C++ or uh go or Python and because of that we

chose okay that that's that's the goal and the the requirement is that we need some kind of uh architecture that can be easy easily implemented on the ethereum virtual machine because the the the blockchain the tribit smart contract needs to verify this single step and in the end you have to implement so it's a single step on a on on some machine and in the end you have to implement the full logic of of such a machine and uh it turns out that there is a an architecture called laai and uh this is something developed by Google and I think nobody really knows what they actually use it for but um what they did is they built an a backend for the llvm uh compiler so it

is possible to take C++ code and rest code and whatever llvm can can take as input and compile that into the Leni architecture and from that on the tribit uh contract can verify it so this means that uh yeah uh you will be able to verify any programs at least written in C++ uh and rust and you can also uh go a step higher because we don't really have a a gas limit and uh uh run programs which are written in a programming language that has an interpreter written in C++ for example and python is one of these so I I have a one last question before we go to the next topic which is

what applications do we can we can we use this for uh and that is I guess the determinist non-deterministic nature perhaps of some of these languages um it you know I perhaps I'll okay so I have some understanding of computer science but I'm not a computer scientist uh but maybe this doesn't make sense but I'll throw it at you anyways um I as a task Giver you know send some C++ code to be solved by um a solver um it's my understanding that you know maybe on my environment if I run this I'll get one result and

another environment uh may get some other result and the form of verification language is somewhat address this issue or perhaps address this issue fully so for these languages that are not that we not cannot formally verify is there a risk that a solver May in good faith provide a result that was valid on his system uh but maybe not valid on mine or maybe like a a verifier checks it and it it doesn't check out does that question even make sense or that's what the the L that's what lenai is for it's to make it all standardized so that you The lenai

Interpreter will have will exist also on the blockchain the full code so you okay so standardization was where I was I guess trying to address here is critical absolutely critical I think we will ramp that up in stages where we we we first start with only specific tasks and then we allow uh arbitrary Tas task when we see that that everything works out and um so the thing is that you when you when when the server executes the task then the solver will probably not run the the L interpreter so go all the way down in the stack to the to the final architecture because of performance reasons so uh the idea will be that you take the C++ code and compile it to your native machine run it

there and then you get a result and uh of course of course it might be that this result is different if you compile it all the way down to to laai and uh so in this situation we might have a fallback where um we don't have to play the so and the verification game will be played on the Leni level and so the the solver when we start the verification game then the solver would notice oh yeah I get a different result sorry my bad or something like that but yeah so the the tasks that I mean in the end it's it's it's a consensus computer again right so the tasks that are given should be uh deterministic and uh should be yeah mathematical functions so to say

which always really yield the same result I I'd like to add what to what Christian just mentioned about you know the the the mistake on on you know to say we we we have to fully trust that The lenai Interpreter is going to um interpret the programs correctly and you know it's this this could be an iterative process you know it's obviously lenai is a new program as well but the good news is the entire lenai interpreter is sitting on the blockchain so it's fully transparent we can issue you know a new contract everyone can inspect the code it's not like sending it into you know a cloud computer on on Amazon where you don't see the hardware you don't see the software you I mean they may tell you

what it is but you can't you can't you know witness it in the same way that you you would be able to do in on a on a truebit comput okay so uh so we have we walked through the idea of there being like solvers verifiers and the combination of solver verifier and Challenger ensuring that uh the result of a particular computation in true bit is is is correct right so now like assuming we have this system we have ethereum which is the sort of base layer and then we have this other layer true bit on top which allows us to scale computation on like scale ownerless computations in a way right

like in in ethereum you have computations that are not owned by anybody and they are guaranteed to be correct and we are able to kind of scale uh these sorts of computations using true bid so like once that happens what are the sorts of applications that that open up well I I I guess we could say there there are there are many uh you know we've also had several people suggest applications to us you know as as italic used to say the best application for ethereum is the one that I haven't thought of yet and I think the same could be said true for for True bid as well you know this is really we're talking about a community project the abstract machine itself is not an is not a an N but a means so so let's start

with the obvious application outsourced computation um so truebit I guess we should clarify when we say Outsource computation we're not Computing with the we're not competing with the Amazon Cloud um in the sense that it's expensive to run a truebit computation and the the security of the of the system May degrade as you know for truly extremely large computations um of course in the long run we hope to optimize it for you know we we we we believe that there are optimizations possible that that can you know push it further but we're you know the first goal is to get beyond the trivial computation of what can be done

in smart contracts now and then push it further so um there are several other projects as as Christian mentioned earlier the the Doge ethereum bridge is was an early inspiration for this project I mean that what the Doge ethereum Bridge would allow is is is um sheeps the Dogecoin users to take their Doge and basically send them off the Dogecoin blockchain onto the ethereum blockchain truebit would check the Dogecoin script proof of work to to confirm the the transfer so that's the reason we need true bit and then there would just be you know some sort of token on the ethereum network that represents a Dogecoin um token you could use that to um you know in in a smart

contract and then sometime when you're ready you just send the the that token back to Dogecoin and it's it's a it's a doge again so so then e ethereum is sort of a side chain to the Dogecoin chain is so you send the do to an address that it there's a computation that verifies that the the coins are there and then they get issued as a token on on ethereum right so once you send it over to ethereum it sort of Dogecoin destroys the coin and when it when you send it back from ethereum it annihilates the token so so it's it's it's that's how the process would would work on the the high level but you can imagine that you can you can imagine that if Dogecoin for example if Dogecoin wasn't the only one that wanted to send

uh coins to to ethereum you know you could have other blockchains also doing this s you know sending their coins and turning them into tokens on ethereum and then you could exchange them you know you wouldn't need you don't need a a third party exchange to to to to switch those tokens so what's what's needed in order to to so so I think in order to export your tokens to to the to this conglomerate system if you will in order to export you just need to make some op code in your system that says export uh across the bridge um the token the the coin and if you want to be a hub that Imports them you need to have some sort of smart contract functionality that can

you know as as ethereum does verify the proof of work for that other other change so so anyone can be a hub and anyone can be uh a participant so obviously being a hub is slightly more involved because doing smart contracts is a big deal but um that's how sounds very similar to another project that is about to do a crowd sale for which a host of ours perhaps works there sounds very similar to Cosmos I mean what you're describing basically except with a different very different architecture so um right the architecture is different but the the the functionality and the use that you get out of is is essentially the same basically coins that effortlessly move

across blockchain so you could have like like hundreds of chains and the coins of one chain could could go to another do something there and then come back like that right so this is like this would make all blockchain sort of interoperable I don't know if that's the correct word for it I think that's fair I mean one you know one difference with Cosmos is they you you sort of i as my understanding from watching your video is that in order to participate in Cosmos you sort of have to delegate responsibility to a set of validators who are going to execute these these um exchanges for you and you know in trit there are no you know upper class nodes

you know there's it's there's no hierarchy it's it's it's purely Democratic we're we are organic Grassroots organization anyone who wants to build a bridge can build a bridge and anyone who doesn't want anything to do with the bridge can do their own thing and and you don't you don't have to sort of decide whether or not to to delegate your authority to this you know giant conglomerate that's that's already out there it's it's just an agreement between two people which is I mean I don't know that's that's that's the idea I not two people two communities let's say it like that you got okay so I think I think that's that's a very that's a very big application right so you're saying that okay the one blockchain can verify uh what has happened on another

chain using um by delegating this task of sort of verification to to true bit right and um what are what are some other applications for for your system so another one is I think you know a storage solution as you can grab information from other blockchains you can also grab from say swarm which if you have a a place where you can permanently store information so just in general whether it's on a blockchain whether it's on Swarm you know trit can sort of use that solvers and verifiers can access that information in their computations you know May you know import a a Merkel rout of of whatever the data is that you want to

use in the truebit computation and it's accessible could one think of building uh so we've had Marley Gray from uh from Microsoft who who told us about bedley and klets and you know what Microsoft isum now not to get into too much detail about that well they're using uh Intel sgx or the the idea is to use Intel sgx uh Hardware which allows the proof computations to do to do this right so you can delegate uh a computation to a a trusted execution environment to do some form of computation or um to retrieve data from um a a feed so you could have some sort

of an oracle that is retrieving data from I don't know like Bloomberg and with TS notary you've got the the your the certainty that that data feed is in fact coming from Bloomberg and then that criet which is you know a trust execution environment is feeding that into a smart contract um is this something that would be possible with uh with truebit to to build this sort of Oracle that is verifying a a feed and providing it to a Smart contract as an oracle yeah so I think that that doesn't really fit the truebit model so the the one of the the essential requirements for the verification game to work is

that true bit smart contract needs to ensure that uh all servers and all verifiers have access to all data that is involved and this can be done on Swarm because on Swarm at least in the in the final version we will have uh yeah this this these these storage uh certificates and because of that uh you can use swarm as a Yeah so triet basically creates the the the driver the file system driver to add swarm as a file system to to ethereum but um it doesn't solve the Oracle problem because you have okay yeah so because it's not deterministic yeah it's not not yeah a function uh that Maps inputs to outputs

yeah exactly we also read uh there were some proposals to use truebit to build decentralized mining pools for ethereum itself so uh you'll use ethereum to build true true bit and then true bit would be used to build a decentralized mining pool for ethereum like tell us tell us how something like that would work smart pool is is a project that I was involved in from the very beginning you know I was I I'm a co-author of the truebit white paper along with um well the people who are actually building smart pool ly Lou yon velner and and also pratic sexo was a a co-author on the white paper uh basically smart pool

is a is a it's a mining pool where the the operator for the pool is in ethereum smart contract now that can be a pool for Bitcoin it could be a pool for ethereum of course it's very cool if it's a pool for ethereum because the smart contract is is is is on ethereum um and you know originally I thought they would I was sure they were going to need trit to to to build out the the ethereum version of of because of the way the of smart pool because of the way that the you know it's hard to check in ethereum proof of work it requires a lot of storage as opposed to bitcoin where you you could sort of do it right away but due to some you know I guess I guess

I would call it a fluke in The Coincidence in the in the in the construction of the ethereum proof of work smartpool found a clever way to do it without that they I I don't think they're going to need true bid but true bid may be useful for for other other checking other proof works for example Dogecoin or zcash which are you know maybe just Out Of Reach of what uh smart contracts can do so I mean the smart the smart pool application is is interesting because you know if you have a a pool operator who's managing the contract you don't there's no censorship you can run it at a low cost there's no social contract you know you're normally you know you know there's there's a sort

of social contract between members of the pool and the minor that that they get paid and and so on um the the smart contract sort of enforces that you know you also have there are other sort of decentralized pools out there like P2 pool but they have higher variance which sort of negates the purpose of joining a pool in the first place the payout variance and of course it's retrofitting you don't need to make any changes to the blockchain itself so so I mean smart pool is is sort of a an interesting potential application of for true bit I would say that cool uh so before you wrap up uh tell us where what's the pro what's the state of the project right now and what's the

road map where do you plan to take this is there like a a release or you know some sort of a are you planning to build a company out of this or so tell us what you're where you're taking this well actually before I end that I wanted to mention sort of if if I may one other one other application which may be very interesting I I know we talked about sort of that that true bid is a connection between the blockchains along the lines of Cosmos but I think we want to be not only the connection between you know the blockchain of blockchains but you know as you say but the glue between blockchains but also the glue between blockchains and the real world so as an example of this there's there's a one project that's

very interesting by Doug pit KX and Eric Tang called live Pier which is live um decentralized streaming video so they're they're they're basically going to use trit to do the broadcasting coding so I guess you could imagine YouTube without the YouTube as you know it's expensive to to to do live broadcasts of you know sporting events and things like that so that's that's something I think that where we see this technology can bridge the gap between you know cryptocurrency enthusiasts and and uh you know really bring bring the technology home to to to your everyday people who can use it so I mean this is also similar to with with

life Pier basically you you Outsource the actual compression of of the stream and uh yeah and I don't know Golem and and these other projects do a similar thing for for other tasks for other computational tasks and for all of these truebit can be the mechanism that ensures that uh the the computation nodes just don't do anything but do the actual task that us they they are supposed to do all right so then uh let's let's uh come back to the previous question uh what what is the state of the project and where are you plan to take it so we are in the process of you know turning this white paper into a reality you know

we we want to make it available to to everyone it's partly built out but we're not ready to release it to the public yet so it's it's a fairly uh ambitious and experimental system and of course it will require a fair bit of testing too because some some of the um parameters and so forth are depend on um human behavior and things like this which you know we want to test our assumptions of of of rationality but you know we say it's not this isn't a type of project where you can you can't prove it by mathematics the the proof is is when it actually works in the real world world so so that's that's the next step is to

to get it out and you know we're we're right now in the process of connecting with with people who who want to use this technology and we encourage you know people with good ideas to get in touch with us and and let us know how you want to use true bit and um you know possibly what what what features You' you'd like to see in the in the next p on the programs and if anybody wants to help you know participate in any way and get involved how can they do that we're right so right now we are actively looking for funding for the project and we're looking for people who can help us develop so if you uh want to do either of those things we're we're um you know

please get in touch with us will you do an Ico of of any kind to raise funding here uh Ico is is a possibility for us uh we you know we don't have an immediate plan for an Ico so in theory like how how would an Ico Ico model model work so I I understand the the the funding part of it so there'll be tokens people will buy them they become stakeholders but once the system goes live and people start delegating these computations um um H how do the token holders get compensated or how how do they earn a profit on their investment once this is

is life well first of all we don't consider this an investment because it's uh it would be a product as a product you know if you're if you wanted to for example get I mean one again we don't we don't have a specific structure in mind but you know solvers could get paid for for um performing tasks and task givers could pay for for having you know tasks they want to have performed so anyone can participate um you know in regardless of what currency is used to to do the actual transactions that's how

the system would work it's it's it's an outsourced computation model you pay for computation time and anyone who wants to offer CPU Cycles can can get paid for doing so okay great well thank you so much for coming on the show it was a pleasure talking to you guys and learning more about true it I I I have to say I I I have a much better understanding of it now it makes a lot more sense and the use cases also a lot more clear so we'll be looking forward to seeing where this project uh how this project evolves and and uh wish you a lot of success thanks a lot yeah thanks a lot for having us today so thanks again for coming on and thank you for to our listeners for tuning in we are part of let's talk Bitcoin Network soon to be

the Let's Talk network but still the let's talk Bitcoin network uh and so you can go to let's talk bitcoin.com to find this show and a lot of other great shows uh you can also support us by leaving us an iTunes review that helps others find the show and uh also if you're you know you can give us a tip uh our tipping address in Bitcoin and E and ether are both in the show description and uh so yeah we'll be looking forward to being back next week [Music] [Music]