New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

How Truebit Can Leverage PoW + PoA

DevconSun, Oct 7, 2018, 12:00 AM

The proof-of-work blockchain was the first practical solution to the double-spend problem of decentralized money. The biggest issue since has been scalability. It is possible for a new kind of architecture to use Ethereum mainnet to define transaction ordering while transacting on a separate proof-of-authority Database. Truebit ensures correctness by creating the threat of mainnet validation. Speaker: Zac Mitton

Transcript

[Music] my name is Ahmed I work at consensus and I've been doing research on merkel computers probably heard of true--but true--but is a example of a merkel computer it's the main project working on this and so i've been collaborating with that team and working at consensus researching this stuff so do I see it there's like a few main strategies for scaling aetherium I want to talk about an idea I had today that's similar to plasma it utilizes a miracle computer like trivet however the details are a little bit different I wrote about it because I wrote about it before plasma came out the key reason block chains aren't scalable is that all full nodes have to perform all computation therefore the feature of any scaling solution is to introduce computation that not every node has to perform this is true with sharding state channels and Merkel computer networks they all try to accomplish it in different ways so first I want to ask why blockchain in constructing a new system we want to sort of filter out what are the fundamentals it's important to define what blockchain is providing because the goal is to preserve those particular qualities while scaling or to at least approach those guarantees a lot of stuff we associate with blockchain is possible with asymmetric cryptography so what did the first use of blockchain solve the double spend problem but with etherium we have a more we have more than just a currency so why do we need blockchain for all this other stuff I think more generally can be defined as the disagreement of chronology of events separated over a distance a double spend is actually just it's a subset of that particular problem I realized something kind of cool actually this is a fundamental problem ingrained into the nature of physics it's you can drive it for mine Stein's relativity so the effects are overshadowed by Network delay here on earth but you know once we colonize Mars maybe this will become a factor so we should think of a theorem as this extremely expensive computing machine that can that has the super power that it can come to some agreement on the order of events we want it to be expensive so that it stays small um quick question it who in here is running who here runs a full node like on etherium okay who actually runs like an archived node like two people technically yeah like on an archive known on aetherium is like what a Bitcoin full node would be is the only type of node that validates every single transaction from the from the Genesis I don't run a full node it's it got too big for my laptop so with the money application including ether scarcity is essential with any money application and I think well you need to audit the entire blockchain in order to calculate the supply so if you're not doing that that's okay but you're trusting the two other people in here that are doing it so that there's a certain healthy ratio of people who should probably be running full nodes I don't know what that number is I guess it depends on how much risk you find agreeable but I think we need to keep the blockchain small so more people run it but that creates the problem that the apps are too expensive on such a limited machine and this is why we need layer 2 Merkel computer network we don't need the same redundancy in layer 2 because we don't intend to have the entire global economy resting on it a huge advantage over Bitcoin with the theorem is that you can define a really rich interaction between one small smart contract and a potentially huge side Network so we have a Turing complete language to define how those layers sort of lock together a very simple layer two example is a state channel Alice and Bob make payment promises back and forth Victor just called them checks and all we see is 10 F locked in a smart contract we don't need to know what's going on in the second layer a Merkel computer network like true--but can enable computation to be done off chain and verified for correctness on chain even if the computation is way too large to perform on chain so let's let's take a look at how that how that works first a task gets posted to this contract then a subset of the nodes compute the solution to the task using a special Merkel computer someone has chosen and they post their solution to the blockchain it's still pending for a time period where anyone who disagrees can post their answer as well so there's two different nodes posting two different answers now we need to find out you know which one is correct and which one's lying the naive way to find out would be to recompute the whole task on chain and aetherium would give us an answer but again we're dealing with large computational tasks so aetherium actually won't even let us do this it's beyond the gasp limit that's okay though because we don't have to compute the entire computation on chain because we use this special moral computer every point in the calculation of this computer we have a hash lock of everything in storage memory on the stack and the current machine head so we can quickly pinpoint the exact the exact operation where we disagreed and this single operation then can be computed on chain to determine who is being untruthful since we use a binary search to pinpoint it eight scales log rhythmically and that's the really cool part about true bid for example if a computation requires a billion operations we only have to do thirty to find the on chain bit the application for this is immense nearly any dap that requires scaling or any computational task that's too large to do on chain but for the rest of this talk I want to highlight a specific use case of this system instead of just using the Merkel computer for one-off tasks we can use it to set up an ongoing relationship with a whole other blockchain why would we do this I think this can solve everything we've been trying to achieve with permission blockchains sometimes referred to as consortium chains this is a blockchain that can be publicly read but in only certain parties can write blocks to it businesses experiment with these because they have some advantages they can perform they they can get them to perform transactions faster they can change some of the rules customizing you know they can customize some things and most importantly they can expand the data throughput however there's some huge flaws they don't solve the chronology problem because the parties making the signatures these chosen chosen parties they can always go back and refine blocks in all kinds of different ways and this cost them nothing okay we can solve this with a Merkel computer imagine we do two things first we called up we code all of the rules of this consortium chain into a smart contracts on the main net then we periodically stamp the state into that contract this is um I borrowed this slide from Christian right Weisner on a plasma talk that he did it's a very similar idea so as you can see there's Maine that is running along and as things come in we're stamping we're stamping the state route back to Maine net and basically what that does is it it locks a certain certain type of ordering not it's not perfect it doesn't lock perfect ordering but it at least gives us something that this child chain can't go back on so the authorities of the the child chain are including transactions periodically stamping them into the main chain once confirmed to Maine that they can't reorder now all the users just inherited that insurance but what about validation so so you can't arbitrarily reorder what about validation though the main chain isn't validating transitions the authority can still arbitrarily change balances but now you have this merkel computer network playing watchdog on the child chain they see everything it does and as soon as they notice any fraud taking place they can challenge it back on may net because of the way this works that the correct party will inevitably win any challenge we can also do like clients with this so let's see if he lets me go back so basically if this this state hash up here was invalid someone would challenge that on main net and then the computation would go through and main net would invalidate that block so it's not just the one thing that was invalid it's that whole block and now we're back to here so now we can actually do like clients with this all like client has to do is follow this one contract on maynot it doesn't actually have to follow any of the intermediary stuff now it's important to note that none of this actually should ever happen as far as the the fraud proving because it only happens in the catastrophic case where the chain Authority is attempting to cheat its users so it's just the threat of it being there that really makes this possible and I think if this does happen and the fraud is detected I think at that point all the users of this child chain they can submit proofs of their data and they can basically just exit back to the main chain assuming we can build a robust merkel computer network we approach the same security guarantees of Maine at it does take longer to reach statistical finality but on the plus side I see no reason why this child chain wouldn't be able to support thousands of transactions per second now everything I've said so far is actually pretty congruent with the way plasma works but I want to take it a little bit further question is why should this child computer even be a blockchain itself and I would test that I think it shouldn't because we've already inherited inherited the beneficial properties of the blockchain by tying two main net but the child chain can just be a traditional server imagine requesting a transaction and getting an instant update with signature and proof from that server we don't have to reason about men pools or nodes with different orderings it's a centralized server it computes the answer immediately and tells you you were transaction number or 697 it's a signed message and you can prove it so now that everything's provable doesn't actually matter if we give one authority the ability to write these blocks because anything they do that's wrong we can immediately write and if they're behaving like that we can exit out of the chain and never use it again so to summarize we have made is essentially the most transparent centralized server ever created every step of its computation is being openly watched and challenged if it's to be proven fraud fraudulent so not everything is perfect yet we still have a couple big problems that we're working out data availability is a really tough thing and you know the swarm guys just went on talked a little bit about that we've gotten to the point where I I don't think naively that we can just solve this it seems like it's the general problem of data availability that we're facing that much like a lot of these other projects are facing so but however true--but is building a Doge etherium bridge as a mini proof of concept for this and what's nice about the bridges and that particular application bridging to block chains together is that you don't have to worry about data availability those block chains are available they they make themselves available through their incentive structure so I'm also currently researching the proper mechanism design to encourage this this robust watchdog network to be there because you know we can all run nodes but at some point you know we want to actually get paid to do it and we want to make sure that we have a healthy network about it thanks [Applause] you

Automatic transcript — names and jargon may be misspelled.