Skip to content
by Unity Nodes
NEAR Protocol

Whiteboard Series with NEAR | Ep: 19 Monica Quaintance from Kadena |

about 45:49 long

Nothing is loaded from YouTube until you press play, and then without tracking cookies.

About this video

The second Whiteboard Series session that we conducted during the NY Blockchain Week was with Monica Quaintance (  / quaintm  ) from Kadena (  / kadena_io  , who was interviewed by Alex Skidanov (  / alexskidanov  )

Learn more about Kadena here: kadena.io

Location: Kadena HQ, Brooklyn, NY | Consensus Week 2019

Download the video here: near.ai/35543

------ About Whiteboard Series --------

The Whiteboard Series with NEAR is a set of video interviews with Founders who are building scalable solutions for Blockchain. We deep dive into their story, what they're developing and how it is helping the ecosystem.

Follow the latest from NEAR Protocol on,

Discord: near.ai/discord Medium: near.ai/medium Twitter: near.ai/twitter GitHub: near.ai/github

#WhiteboardSeries #FutureIsNEAR #Consensus2019

Transcript

7,064 words

Captions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.

  1. 0:03

    hi everyone this is Alex from near with me today is Monica Quentin's from Kadena we will talk today about the protocol will go a lot into the technical details would you like to introduce yourself and give us a brief overview at Kadena now my title is head of research but really I just do whatever needs to get done which sometimes involves chain web I was on the original chain web paper with will he's the one who dreamed up the crazy idea but now I spend most of my time working on research and

  2. 0:35

    implementation details of chain web most recently I have published a paper in Euro SP about security properties entertainment which we can also talk about that could be kind of cool so let's service okay we'll need a marker so the whole idea of chain web is combining Bitcoin and sPB's in order to be able to have a multi-threaded network what does this give me a simple payment verification right so if an let me go in

  3. 1:14

    the middle alright so in Bitcoin you have a block and that block has a pointer to some previous block right and when you make a new block it contains a hash of all of previous history and this is how you get your verifications that people can't go around and screw around with watch it because you can't go back and modify previous transactions because they're included in every future block right so

  4. 1:43

    the idea behind chain web came from first if you instead of having just one chain what if in order to be able to have more transaction throughput you had two chains and they were both using the same native token both using same protocol and each chain has its own ledger we can call them like a and B or something so chain a has this whole like it makes a block and then the next block contains the previous block in it but in this case we want them to be related to each other and so the the set of

  5. 2:19

    accounts each of them manages chain a has its own idea of history has its own accounts on it so this block in chain a will also contain a pointer to a moment in time on chain B and you'll know that this Fork of chain B or this version of chain B is truth on chain a and this block on chain B contains the same one and then because it's two chains and we only have two of them we're also going to have it cross back the other way

  6. 2:52

    obviously the having the same number of messages as the number of chains is not very efficient because as you start making the number of chains bigger and bigger you're suddenly if you have 10 chains and they're all talking to ten all their peers all at the same time you start to have the handshake problem and that's too many messages so instead of just having them all talk to each other we were like well you can do this idea

  7. 3:15

    of chains talking to each other with any arbitrary base graph why not come up with a base graph that's much more efficient in terms of message propagation so there's this idea in graph theory called the degree diameter problem which is where you want to maximize your order so maximize the number of nodes in a graph or a number of chains in chain web for example the full graph would have a degree diameter one so you would want to have a graph

  8. 3:40

    that has the minimum degree and diameter oh you're gonna damage out the different values yes degrees number of edges incident to a vertex right right it's the the number of edges that touch any individual vertex or the number of messages sent by any individual chain in the chain web inversion and diameter will do the longest distance the the shortest the longest shortest yeah so

  9. 4:06

    for example let me try to draw this this is called the Peterson graph and whenever I try to freehand this graph I screw it up but I'm gonna try it so this is the most efficient way to propagate information between ten chains each I think I did that right um one two three one two three each node talks to three peers but the shortest path between any two nodes is - I think it's two hops might be three hubs one two three yeah which one would be

  10. 4:47

    three oh yeah this Christy right yes yeah so this propagation of information is extremely efficient you can have a tension graph but rather than having each node broadcast nine messages you can have each node broadcast three messages and you know that within three blocks everybody will have all of the information and so in this case every vertex is represents a separate ledger

  11. 5:11

    yes so it's so each of them is like an independent blockchain well I can depend on but mostly independent except for the fact that this chain like this is a and this is B B is going to have to wait to generate its next block until it gets the previous block for me so there's a little bit of like a three-legged race here we've like tied a and B's legs together and they can't go too far

  12. 5:35

    forward without each other but I actually consider that to be a benefit because if something goes wrong with the network instead of like people just willy-nilly making transactions all over the place and letting it spiral out of control like eventually it will halt okay because if one chain holds within T blocks everything will yes this is also how you end up with getting rebalancing on the network so instead of having let

  13. 6:01

    me draw like time going that way and if you have some blocks being made here if this is a and that's B and let's see if for some reason like a moves forward and it's supposed to have this reference to B but then B halts a will then attempt to make this block but can't so and maybe C has the same problem so you can see that this is sort of like a surface and so the mining hash power will

  14. 6:33

    naturally pool into any chains that are not moving forward because eventually this will be the only thing that you can mine and it's the one that the mining opportunity is because is the greatest so you say nobody's mining this one the Mort when the mining reward is going to be good I'm going to switch and reallocate my hash power to be and then eventually if the whole network is halting everybody will be mining me and so it manages to unstick

  15. 6:58

    itself at least that's what the simulation shows so far and so from perspective of a he's my solicitor for a while right so a is not a person from perspective of the chain a right yes they still perspective from the chain right right there's a perspective but I don't want to complete that with calling a B or C people because there's sometimes and we get this conflation with people that have been looking at

  16. 7:22

    proof of state projects too much and they see this and they see a validator graph they see it see this and they see a minor graph but this is not a minor graph this is a protocol graph in fact we totally try to disambiguate between the protocol graph and the relationships that miners have with each other so we still have a validator graph and in fact only when we're doing simulations and when we're mining in our test net we have a minor graph about how they

  17. 7:46

    connect with each other and who sends messages to whom totally different from how chains send messages to other chains and it's once people start completing these with people they're like ah but this person is going to end up attacking this person and you're like these aren't people that's not how this works well there's two people here actually say these like XY and Z who presently chose to have and for simplicity let's

  18. 8:10

    say that if I have hash power which I use on multiple chains let's say it's for different people for simplicity or let them call it x1 we do say that for optimal network performance we are expecting the majority of miners to mine the entire network yeah so let's go with like x1 y1 z1 x2 a way to like see - for example sure so let's say that the character is the person then I guess it's X a would be better but so what's the m x1 I'm observing the chain right

  19. 8:41

    and I also have some view on the on the other chains my others cross-links in any way affecting my fortress role on my on my chain for cheese rule so when I when I'm choosing the canonical the canonical chain are those cross links affecting my choice is generating blocks this way and then B has a split so this is now B prime then and this next block here like obviously this guy's given to that when aid needs

  20. 9:35

    to make its next block it needs to make a choice because it's going to be receiving messages from both people mining B and also people mining B prime that both of these are valid so then a almost immediately needs to make a choice between this link and this link and so a is making calls on whether B or B prime is valid it's not just the miners on D and B prime it's also miners on a which means that Forks in chain web collapse almost immediately they don't

  21. 10:05

    last very long because you they just they can't be supported but so let's say that what happened was that there was less a there's also C right and so she was also creating blocks so this is the third block I'm so say let's say what happened was that age when they created the block they endorse this block and so you'd see a button B there is a block which the block endorsed this right so this also exists because whoever is mining B prime is going to keep mining B

  22. 10:38

    prime so at this point you have so at this point you have these two competing but now this block has received endorsements not only from the B prime miners but also from the a miners and the C miners so whoever is mining not B prime is has like no incentive to do so but but those endorsements are going to be accounted for by everybody but let's say that C also has a conflicting note right like C isn't the

  23. 11:10

    same situation and this one is actually endorsing B right so which of these two like one of them is effectively like from perspective of a particular minor right so let's say this is a minor x from perspective of actually one of these two is valid right so let's say ax things that this one is valid at this point X has no extra information right the next layer doesn't exist yet so X on this is this - no it's from perspective of X they equally good

  24. 11:40

    right so X 2 is this one will act and now X wants to choose which one of these two they endorse will X consider this endorsement from from C prime so at this point you're getting to the the idea of how much of the web is X replicating at any moment the more of the the braid X is actually actively replicating like how many nodes they have as a minor the less the more information they'll have

  25. 12:12

    and the less confusing this will be if you're only mining a subset then you're going to have to start trusting the message headers that you get from other trusted parties which is you know if you belong to a pool and your friend is mining a and then your friend gives you the block like you as X will trust whatever you get from your friend but yes you start getting these like confusing we call them our burrito because you

  26. 12:38

    have lots of trees and so many trees making Arboretum I don't know it was true pne's joke when we made the paper but like you can't just talk about single trees coming off because you don't have one chain we get multiple chains and so yes it does start to get that there's a lot of information and that you might not have all of it as a minor which is why we say like people should really mind more of the braid rather than less but let's say that I as

  27. 13:04

    X let's have my name on all the chance and I'm pretty up to date so this is my state right so I see a fork on v.i.c a fork on C and like there's no fork on a and so you see here's the thing right so let's say let's say that from my perspective this is canonical right will I count the the complexity like the proper for complexity of this block which is not canonical from my perspective so what is

  28. 13:32

    this block on B yes this would count towards B but if you count the weight here this B prime still has endorsement from a and B and C so it still outweighs the other one I say so so when we when we count the weight of the block we we add up all the endorsements from all the chains even of those chains are not canonical from our perspective it actually resolves fairly nicely in simulation it's not as messy as it looks the forks could generate and resolve all

  29. 14:27

    the time in our test net so now another question is so let's say how well does it work so let's say we have this I'm going to replicate the graph good luck no no no that's correct no it's the star it's a star in the middle did I draw it wrong it's supposed to be a star in the middle yeah uh-huh I think so all right I'm gonna have to look this up oh yeah this is I'm pretty sure

  30. 15:17

    he doesn't matter so so let's say that I'm a user and my oh if the star in the middle because it makes it diameter - oh yes because it's yes that's why it has to be the star degree three diameter - hard to believe okay what yeah it appears to be somebody way smarter than me named Peterson which is why the graph is named Peterson figure this out in like the 1940s yeah okay so let's say

  31. 15:56

    that I'm a user so I'm not mining I'm just using cadena and I have an account of one on one of the shirts what is my mode of operation am i only synchronizing that chart on my note or mi still synchronizing all the charts so if you're just a user you can only synchronize the one that your chain is on and that's totally fine you can just listen to the headers coming in from large mining pools for the rest of the information if you want to there's no need for you to replicate any more than

  32. 16:30

    that if you decide that you want to scale out what you're doing and have it belong to more chains so that you can effectively load-balanced your application you can do that by cloning your application onto more than one chain so now let's say that actually and so when cadena will be operating what do you thing is going to be the number of first it's not going to be ten right so right now test net is on 20 we

  33. 16:56

    just torqued to a larger net we're launching I think we're gonna launch with 20 it might be 50 I don't know it depends on how ambitious the dev team yes but the plan is to as we get more adoption and the network starts to become congested and we start to see transaction pooling then you will fork out to larger configurations I mean in theory chain web could be arbitrarily large but obviously founded by normal real-world bandwidth constraints

  34. 17:26

    I don't really expect us to ever need a braid larger than like 10,000 chains what would you what would be yeah so now here where it comes becomes interesting right for me so let's say my minded or serene place it is 100 shirts it is easy to / so there's 100 chains right and let's say that the diameter is something 3 the ya meters 4 or 5 in degree which one is so Delta 4 diameter and the little D 4 degree okay and so degree

  35. 18:12

    would be something like also 4 or 5 we did really spare cool now so let's say I control 5.1 percent of half power right so should be something not sufficient to to attack right or like 10% now what I'm gonna do is this is a particular person I don't like who's known to me is only validating one shard what I'm going to do is so forth so this person they Ajay Ajay adjacent to this one this one and

  36. 18:55

    this one right so that's degree degree 3 so I'm gonna corrupt this shirt by corrupt a min so by corrupt I mean is I'm gonna throw all my hash power to the chart so I have 10% so you're going to put all of your power into mining 1 1 sorry yes and so on this chain because we're saying this 100 chance give or take then this chain on itself has approximately 10% also a 1% right approximately 1% over hash power so I'm

  37. 19:29

    not gonna throw entire my entire part where I'm just gonna throw one point one percent like something that right on that particular chain what I'm gonna do and I'm going to create a completely invalid block also so this is the chain that is being built so that was valid block valid block then they created something which makes absolutely no sense right so it's a that make sure used read here and then they continue

  38. 19:57

    building right so at this point naturally the honest 1% will say well that's that's nonsense like their client will just discard it try it right away so they will continue building and this rule makes no sense for them right so this is the onus chain this is the dishonest chain but the his owner's chain is growing a little faster but naturally nobody in the remaining chance respects it right so they make humane chains and doors this one but in this

  39. 20:31

    chain I'm also going to play 11.1% so these 1% honest 1.1 is honest and my dishonest power I will throw to continue building on top of that so I will start endorsing them right and so on this chain the thing is that and I will do it for each for each neighboring each chain has has five neighbors right so I'm gonna throw I'm gonna throw my power approximately 1.1 percent into each of

  40. 21:12

    the five well I said that look let's I have 5.5 so it's gonna be 1.15 right so it's 5.5 percent including the one chain that you want to do yeah then you can do four of your neighbors yeah okay I have 6.6 so you have one chain and all of its neighbors you attempted to corrupt right so now what happens is that all the look naturally there are some are your second-order neighbors are still going to catch bad luck right so the so the question is

  41. 21:54

    Right see if my all my second-order neighbors are mining on all the chance that that will work right but if let's say that less than 50% of people mine on all the chains right okay I mean we think that that's not a successful way for timid right move forward and we think that most people are gonna mind all the things but let's say that they don't well what's on upfront for the sake of argument right so let's say that

  42. 22:19

    in every chain is approximately 1% of all that has power right because this is 5% of which a little less than half is someone who Milan all chains and a little more than half is someone who is only mining on Lake on some stops that's right place where you have overlapping subsets you still have some portion of your second order neighbors will see the this validation of the bad block and see

  43. 22:49

    that as bad right and then the load their second order neighbors you will agree with them and then when they eventually get this piece sent around the other way will not allow it to continue either but like imagine that specifically in this chart let's say yeah let's change the the that something let's say that approximately 50 so I corrupted a subset right i corrupted particular well we have a smaller graph

  44. 23:18

    here but yeah so I copied this for it and this one is well right oh if it was 100 node graph I would have two more right yeah so I don't care about all the neighbors so let's say that in all the in all the charts which are not one of those for a little less than 50% validating at least one of those four and a little more than 50% or not is that reasonable assumption yeah it's possible that they could just start

  45. 23:50

    blindly accepting bad transaction and I mean yeah the security properties of chain web don't work very well if everybody's not if at least half the people aren't mining the entire break yeah but then the next question is then because at least have the people are mining all the chains how is it different from all of that being one huge block chain without charts so because you have all of the tiny little blocks you get to move them through much faster you don't have to have the same

  46. 24:29

    hardware requirements per individual replicas and because of the way that the chains are interconnected you get these really cool security properties of chain web it's sort of like the interlinking of ghost be giving you lower block times and if you're in we can achieve much lower block times because of the nature of the interconnectedness of the braid so one of the ideas is that there's no network spice spikes so I can you know in Bitcoin I guess if you create a block

  47. 25:07

    in Bitcoin every ten minutes there's a spike in network activity right yeah right so if you try to this the whole thing that we were just talking about where it makes it harder to corrupt because of the way that they're connected to each other you get this if you wanted to corrupt this block you'd have to then corrupt it's this guy and that guy and that guy and then as the braid grows you eventually have to be making the diameter of the entire

  48. 25:44

    network because of the interconnectedness of it honestly so within the ammeter steps within the ammeter number of blocks you need to curb the entire network go forth you have to do it fast in order to do a 51% attack effectively if you don't make it by diameter number of hops you have to take over the entire web this is the the whole censorship thing that we were just talking about so in the security paper that Troon and i just released on archives that's getting published in

  49. 26:25

    june is does an economic analysis of how expensive it is to try to do this attack and if you're less than 51% of the hash power of the entire braid you it's much more economical for you to just mine because you have to spend so much on hash power and the potential rewards that you get from it are highly variable and so now that was my next question so let's come back to a if you have an

  50. 27:19

    account on a actually quick question on the previous set so that is that a single entity like let's say I'm Karla I'm a miner on Kadima I will have multiple machines each of them running one shard right right however you wanted to break it up hardware-wise is your choice yeah all right so a let's say you have some money on a and you want to pay me on B the idea here is that you would

  51. 27:53

    effectuate a transaction and you would put it into this block and then that transaction in the smart contract layer would look like a and a receipt slip and the other half of that transaction in the smart contact layer would specify this transaction is redeemable on chain B and so when the proof from a propagates to chain B by this being included in here you see on chain B okay I have the receipt from a I can prove that the transaction was

  52. 28:32

    included in a block so now on chain B in this block you can resurrect the chains that were burned on chain a that changed the coins that were burned on chaining and so you can imagine if you were on c and c communicates with B and not a that if you were paying somebody on C from a then once you made it out to blocks then here is where you could resurrect your coins but since we're improving work

  53. 29:03

    land and you have to wait diameter a number of blocks for confirmation depth anyway it's exactly the same amount of time to pay somebody on the same chain and wait for confirmation depth as it is to pay somebody on any other chain and wait for company but you would still wait for the confirmation oh because you only care about the that part of the transaction because because this one you

  54. 29:23

    can always just submit rate yes I guess one question here is okay so it is my responsibility as a transaction receiver to submit the receipt yes right once I pay you like it's not my problem it's your problem this is why the whole trying to make sure that transactions are synchronous thing I don't really understand I'm totally fine with asynchronous transactions because as long as I can prove that you paid me I can go and redeem it whenever I want and

  55. 29:57

    and we don't have to have like some sort of uniform number of tokens in the system at all times we can have float in between burn and receipt it doesn't really matter to me so let's say that my receipt was like I didn't get through here yet it got accepted here then even if she forked out I can still you submitted here right because yeah whatever and if somehow it manages to get interrupted in the middle like there's some sort of a network

  56. 30:28

    crash then it's just like the payment never happened oh you're saying if a get never finalized effectively and I see and so on network see so network she has some sort of view on network a like it has like a Merkel role trade that's kind of I'm going to be proving that this exists what prevents me from from cleaning the ship twice what what is that the caller can see or on a the fact that you see

  57. 31:08

    this consumed also I see you'll have like some so forever you see this like unique unique place indeed like Merkel Merkle tree yes and she says I'm consuming this transaction event from a well but also as a payment receiver it's also my responsibility to submit up to be first gets propagated if you're just waiting on see waiting to see that the proof has come through oh sorry suitors never acknowledge then in any way and be be is only needed so that she learns

  58. 31:47

    about the it's it's just going through the graph and once it eventually gets out to diameter everybody will know about the thing but only see cares because see is the one on which you can redeem your cool okay that makes sense yeah it's it's the combo of the SPV and the roots that makes chain web work it was putting those two things together that was the like magical moment of oh this is actually gonna work cool

  59. 32:20

    shall we talk about pact sure I'm not the biggest pact expert but I can talk like isn't is there anything we didn't cover in the protocol level all of the juicy stuff now and test net we're working on putting through a transaction simulator that is pumping a lot of transactions through and seeing what happens it's pretty fun oh yeah packed so I mean you might want to tag Stuart in except he's not here you can talk to him some other time since he actually

  60. 33:00

    wrote the lion's share of pact we can at least cover the high-level details what white-white pact so a lot of why pact ends up sounding like why not the evm which you know neither here nor there how you feel about the EBM but our hypothesis is that the your smart contract language should basically handle a lot of stuff for the developer that you don't want your developer having to go through and worry about something like a namespace abstraction

  61. 33:33

    that you should be thinking about your smart contract not all of the elements that you wish a virtual machine had actually done for you instead so packed is it has a super small space it has a super small number of functions and it handles like he said for you it handles it has a very granular permission set and so you can allow people to do different things depending on how they've authenticated their way into the smart contract there's actually not a you don't put in your key you there's a

  62. 34:06

    function where you put in your governance function for the smart contract and that function can be satisfied and you know you name it number of ways if we can say the two of us and both of us have to put our key in or there are ten people and the six of them have to put their keys in it's really arbitrary in the way you can handle the governance functions in fact there's also govern who can update the governance function itself

  63. 34:30

    yes yeah cool and so back to the language trade or it's also a virtual motion pact is interpreted on the whole mess and so you can actually put pact in pretty much anything you can put pact on like it doesn't have to be a smart contract language we're actually talking to some people about putting it on non blockchain type of applications it's because of the way that the language is super flexible you can do a whole lot of things with it

  64. 35:01

    I actually had a call with Akamai they were like we want to put pact on top of something that we made internally that's cool great yeah pact is it's looks a lot like English it doesn't look like a programming language in the way that you would sort of expect expect a programming language it does have a lot of front the C is because of the Lisp thanks functional yeah it was it's written in Haskell but you

  65. 35:29

    don't have to know any Haskell the right fact also the big property of fact is that it's formerly very friable right right so because pact has so for example pact is non turing-complete and on purpose we don't think that we're cursing is something that you should do on a blockchain it seems like a silly idea to try to calculate Dijkstra's algorithm shortest path from New York to

  66. 35:52

    LA on the blockchain and so because the the syntax tree of pact is very limited we can unroll the whole thing and pipe it straight through into the XIII solver with SMT Lib and so this is trivializing a whole lot of work that went into it but we don't have to worry about like when people are talking about oh we're gonna formally verify some subset of solidity they've had to carve away a lot of things that we have carved away

  67. 36:22

    originally when we wrote pact in the first place and so it's not just formally verified like a compiler as formally verified it's actually you can write user code and then when you save if you're tied into the formal verification system it will verify any annotations that you've put in our own annotation language into your smart contract so it can be like prove that this value can never go negative or prove that this account can only receive and can never send but when

  68. 36:52

    the contract is on the blockchain it is just plain text right of you do locally on your machine but these are other any concerns about performance of interpreting smart contracts interpreting is way more slow right it's very lightweight there's not a lot going on in there in terms of crazy execution another course I have is are there any plans to have what like do thing at all about how could you know would interact with other block chains or is the bright

  69. 37:25

    future only house cadena nothing else I think the future is totally interacting with other watchings I would love to see that happen there's because we have this idea of being a fast transaction execution layer I would love to see a representation of other people's stuff that executes on cadena and the neck and then exits afterwards so like flash some sort of representation of some their non fungible asset onto cadena and do a bunch of operations and then move it

  70. 37:56

    back cross again that seems like a totally reasonable way of interacting with our stuff also because of the whole we have a permission blockchain as well in our stack our permission blockchain scale will be ft is also designed to connect to chain web so we have people that are writing applications written impact that have some part of it that's on a private blockchain instance that

  71. 38:20

    they've just spin up and some part of it that's going to be on chain web and that those pieces talk to each other and they talk to each other in the same way that you do any sort of off chain Oracle like there's an API call on you send a merkel root over an api call but because we're in the same system and its native we're designing it all to automatically work with each other and be able to handle handshake from one side to the other and there's

  72. 38:45

    no reason why we wouldn't be able to extend that protocol to other people if they wanted to connect to alright well so I guess the complex to here that could you Maps producing blob significantly faster right so if you want to verify blocks on the other side like let's say you want to have a bridge with the theorem I think I would not be able to validate blocks on Kadena right see you it sounds sort of what it will

  73. 39:10

    be like the like is going to be increasing right like if you're trying to vary so so they it's an interesting idea topic in general how would you how do you synchronize from a faster chain to a slower chain if you want a two-way bridge for example yeah you'd have to build in the lag time right into your application and expect that any time you're connecting back to etherium that that's just gonna have to take longer and to expect friction and the number of

  74. 39:37

    block counts between one side and the other well I guess it's a little more fundamental because the theorem in principle can invalidate the whole chain or of Kadena right so even lag time will not help much yeah it's just interesting topic in general how would you like connection with the with slower chance which is I guess it's very much open so another thing I was thinking right now I

  75. 40:01

    I don't think I have a whole story in my head but let's let's to look at it and see if if it's properly handled so imagine that I'm an adversity so this is a so this axis is I chains and this is time right and so we're building blocks so let's say that I'm a malicious actor I again corrupted the channel corrupted minion that I brought more horsepower than they have I created the block which

  76. 40:41

    I broadcasted actually which I never broadcasted all right so imagine that you were honest and I was I was also okay so let's say that the connection is the following I show these two charts connected this to connecting these two connected and these two connected but like not these two for example sure and so I corrupted these three by by sending more than 50 percent of the hash powers if it was hundred charts I would corrupt six again right so these are corrupted what I do is I create a

  77. 41:14

    block here which I wish I'd done so to anyone and I create two blocks here which which which have the header of the block but not but the block was never sent out so how is it handled like imagine you are on this chart right so this is short a and and like you're well to produce this book and you see that the user block in chart B but you cannot download one of the one of the blocks it

  78. 41:43

    endorses do I completely ignored in this case B that's been created and it points to the past block on yeah and so this block sound validator on a some minor on a cannot retrieve this book so it's like so this doesn't exist yeah yeah so this look is genius yeah this guy connects to this one it sees that it's been listening to the B message Q and a is like sweet great we're gonna make a

  79. 42:22

    block but then a tries to make the next block and there's no block from B well that's because there can't be anything here because there's nothing here mother yeah so III have corrupted all T of this so in of the in all of these three I have 1.1% of cash power and everybody else all the 1s collectively have one because I saw this block so this one is withheld right but I I myself still see it right so I

  80. 42:54

    can create something on top of it but for that I don't need to broadcast this block against this block only has a header of this block right and so okay yeah okay and so then I'm also going to create a block here so let me so blue blocks are the blocks I created right so this one is created by me but it's withheld this one skated by me this one is created by me and this one escaped today me right and so I can continue

  81. 43:22

    doing that but this block was never said broadcast broadcast you don't broadcast this one but you make it but meanwhile other people are also still mining on see somebody else somebody else is slower gonna then later make this this block right this guy and they're gonna broadcast that so then when a is gonna look at this one and see it and it's fine because they're not mining this one and they're not mining the whole web but

  82. 44:01

    whoever is mining on B that's not you will see that there's nothing here and will then make a block here I guess my question was let's say a is actually mining 1c right because not a a is not a person right some person X is mining everything yes I'm person X is mining everything and X is honest X is let me write X is mining on a and C and C's from a that they can't validate C than they will not expect a so from prospective of ax if

  83. 44:39

    they cannot retrieve this block then this look does not exist yes okay yeah yeah I guess that makes sense I think I think this diagram excellent yeah I think that works cool okay I don't see any other way to break Kadena at least not yet thinking about it yeah is there anything else interesting we didn't cover today we talked about censorship we talked about a 51% attacks I don't feel like I can

  84. 45:25

    talk about the nitty-gritty bits of pact because I haven't worked on it so if you want to talk about pact more in detail you're gonna have to practice do well I guess people can google it and I guess back taxes there's a lot of documentation unpacking we have lots of tutorials you can just like watch the videos cool okay so then the world is asked one question which is not technical which is when has main that October 30th October 30th oh it's set in

  85. 45:49

    stone yes it's set in stone we officially have a release date actually we release the date this morning nice awesome okay cool thanks around for watching until next time