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

Loading player…

How to Compare Cryptocurrency Protocols Colton Dillion

Ethereum DenverSun, Oct 9, 2022, 12:00 AM

Transcript

uh awesome thank you guys for being here um my name is colton dillion i'm the cto at hedgehog hedgehog.app uh and today i'm here today to talk to you about how to compare protocols um because we live in a multi-chain world and it's only gonna get more multi-chain um a little bit about hedgehog we're a cryptocurrency robo advisor and our goal is to connect to every custodian and protocol to help you trade at the best possible price automatically um we just got registered with the sec last year um our goal is to help clients have custodial and non-custodial wallets and to automate their interactions with the chain for them and to connect them with best execution across c5 and d5 um so the original question for all these protocols right is how do you prevent counterfeiting um that's that's the baseline question and if we go back to 1982 we sort of have the byzantine generals problem with leslie lamport where he says you know as long as we have two-thirds of people who are telling the truth we can catch liars um and so that's one of our first approaches is byzantine fault tolerance we have ripple we have stellars we have tendermint on cosmos um all of these are bft protocols that offer this two-thirds guarantee um and so as we see people getting closer to uh you know having one-third of individuals in the network trying to collude to lie um we lose some of those guarantees and that's really the uh benefit of nakamoto consensus is we take that two-thirds requirement down to 51 so in 2009 satoshi nakamoto releases a paper and he says if we can put together a timestamp server uh create a chain of digital signatures and then take those signatures and put them into a merkle proof and then uh apply some proof of work require a certain number of zero bits on the front of each block hash and then if we take the longest chain that has the longest number of zeros in front of it then we can catch liars that uh as long as 51 percent of people are occluding but the thing is is this is probabilistic right if it's only a one in one thousand chance that we will catch a double spend across five blocks if we believe that ten percent of people are colluding if forty five percent of people are including we have to wait two days right so so this is the actual guarantee of the protocol and then we added smart contracts onto it in 2014 vitalik releases the ethereum paper he creates a state machine instead of unspent transaction outputs now we have accounts that are connected to transactions that really reveal state with every block and this allows us to create ricardian contracts which were created in 1998 by ian grigg and gives us all of the beautiful variety of colored coins that we have today but it creates a very complex ecosystem and again each of these protocols have a certain set of guarantees which has required us to move to proof of stake in order to increase our transaction throughput and increase the usability of the system so here we have epics we have validators we have staking and slashing what does that mean we all put currency into a big basket and then we have people checking the chain constantly to make sure that people are telling the truth and if we find someone who lied then we can slash their steak burn what they antied up and what are the guarantees here right as long as we have 111 validators we have a 2 to the negative 40 chance that we will miss one of these colluding actors or that colluding actors will be grouped into the same committee and so we we have to realize that again this is a probabilistic uh estimate but it allows us to bring that requirement of honest actors down to one-third so we're getting better and better over time and again in order to uh make these transactions occur faster now we're adding these layers of sharding on top of it so now there are these additional guarantees that you have to take into account as you move into layer two um so we have sort of these four different models right now we have state channels and validiums we have roll-ups of the zk variety and the optimistic variety and we have plasmas and basically this exists on a continuum from on-chain validation to off-chain validation right who are you trusting in a state channel you're trusting the person who's taking the money off the chain and who's guaranteeing that all the transactions that occur in their state channel are going to go back on chain for the plasma you are trusting all of the side chains and hoping that somebody will catch a liar before your money disappears for roll ups all of it occurs on chain and it exists on a continuum of validation to challenging so does is it poll where we validate all the transactions as they come in or do we require somebody to go find the liar and and so it's push in that way so what are the guarantees of the sharding protocol right in channels you have instant withdrawal but you have to trust somebody uh for plasma uh you don't have to have that trust necessarily but somebody has to go find the liars and so you have seven days to find that liar when you want to withdraw for zk roll ups you get the instant withdrawals but you know you have a higher cost associated with that because of the proof generations so that brings us to sort of another paradigm besides nakamoto consensus where we look at acyclic directed graphs all of the previous uh sort of protocols we've talked about require consensus blocks everything has to happen synchronously in time with each other and so the idea is if we move to adgs now we don't have to do this at the same time we can be asynchronous so if you look at iota's tangle or hash graph these things allow you to have these sort of asynchronous events and you only have to track your transactions and the transactions of a couple of your neighbors and as long as the number of transactions is really large then the odds that we can find a valid random path back to the root uh increases exponentially uh in in favor of validators and against uh colluders so you know the guarantees here are you have to start kind of centralized because there aren't a lot of transactions that exist in the early days but as the protocol gets larger and larger you can progressively decentralize and still regain a lot of the guarantees of the acyclic directed graph and then of course in all these protocols you can layer anonymity on top of it because privacy becomes really important so you have crypto note with ring signatures in monero you have zk starks and zk snarks which use algorithmic circuits um and you have mimbo wimble that uses um peter's commitments and homomorphic encryption to obfuscate past transactions but each of these have slightly separate guarantees around the anonymity right so monero has this anonymity set where you don't know if you or 11 other transactors actually made the transaction and you can continuously produce new addresses z cash if you ever make a public address then you know that uh sorry a public transaction that address is burned you now you have to get back into the anonymity set because you've removed yourself from it for mimblewimble anything in the past is is uh visible uh for unspent transaction put outputs that aren't currently being spent but the currently spent on tr spent transaction outputs are anonymous um and so these are very specific guarantees and you should be aware of them before using any of the protocols be aware of the underlying assumptions is the key takeaway and and so how can we like create a model to go through each of these considerations when you're considering a new protocol and today i'm going to propose that we should look at identity privacy the verification model liquidity the administration the composability of the underlying primitives the interactivity uh how easy is it to use and the persistence of the chain so what do i mean when i say identity right in the existing paradigm we have social identity you get a passport social security number you can change your name this is social identity in crypto you have your seed phrase you have your 256 bit entropy you have your elliptic curves you can generate from that entropy and then you can hang proof of humanity or bright id or ens or any other identifier on that elliptic curve but you also have capital identity what do you own what are the things how do we know that an nft belongs to you or or that the transaction belongs to you in the existing paradigm we have checks serial numbers on cash credit cards um and you know in the cryptocurrency paradigms we consider today we have unspent transaction outputs state machines and then various block validation paradigms right if a chain forks then you briefly duplicate the identity of all the transactions so it's really important about how you resolve those disputes about identity with for example orphan blocks uncle blocks and ethereum or stale blocks so the questions are with what probability can the protocol prevent cloning of social or capital identities how are identity conflicts resolved and over what time frame can cloned identities control additional protocol decision power and can identities be recovered if they're lost or compromised which brings us to privacy right so now we have identity but what about bribery or threats how can we evade people trying to steal our votes or or trying to threaten us for for the things that we have so again we have the privacy models we can layer anonymity on top of it which uh several zk solutions are coming out on ethereum but you also have to be aware of the network topology right it's possible to de-anonymize people by the way that the protocol interacts and why and the way that computers communicate with each other um so dandelion protocol is an attempt to try and mitigate um some of these network topology attacks the questions that it begs is how well does the protocol prevent threats and bribes can privacy be recovered if an identity is de-anonymized and does the protocol admit alternative attacks like network analysis which brings us to sort of the reverse side of privacy right if you can be private how can we verify you are who you say you are or that you did what you said you did um so each protocol has a cost to verify right how much of the blockchain history do i have to store to really understand whether you did something or not or what's the information that i have to include in the block in order to fully describe the actions that you took on chain or who you are what are the inputs to verify how much do i have to know about you or do i have to know about what you're trying to accomplish in order to allow you to do that thing again this is where sort of zero knowledge and computational integrity proofs uh come into play is it a push or pull system do i have to go find bad actors and punish them or is it a a part of the protocol that we we can't actually create of an invalid transaction so what are the data and compute requirements for validation what are the guarantees around the checkpoint data how much about the inputs and outputs must the validator be aware is validation queued in a push or a pull model what's the probability of catching a liar because again these this is all probabilistic which brings us to liquidity right how do i get into a chain or out of a chain uh you know what are the pairs that are available for me to get from us dollar to nano or or from nano to omize go right the the ease with which i can get in and out is really important the transaction throughput how well the underlying token maintains its value and can be traded for value what's the velocity of the money how often do people actually spend it and do they generate transaction fees for the miners and create an ecosystem that people want to participate in what's the net issuance per day right ethereum just did um uh 1559 uh for the burn protocol and and that's completely changed the dynamics of ethereum as as a protocol how easy is it to get one from one protocol token to any other how well does the protocol token maintain value in relation to others how easy is it to send and accept the token on the underlying protocol and what is the issuance model will people accept that token as payment for goods which leads us to administration right not everything can be on chain there there is the oracle problem there are some things that we just can't put inside the protocol and so you have to have a method for resolving those disputes and bringing things on chain or dealing with things that happen off chain in the united states we have the federal reserve board and the open market committee and they they create all of these policies in order to shape the economy um but obviously now in ethereum we have daos we have governance built into tezos at the protocol lair and we can sort of compose these voting uh paradigms with these treasury management paradigms um but the question is how is power distributed across those paradigms right is it one dollar one vote where the more tokens i have the more voting power i have or is it one person one vote where i have to have proof of humanity and and this gives me voting power or is it some combination of the two uh the important bit this leads to is what are the guarantees of the dispute resolution process how are all the market participants incense to cooperate how's the protocol control distributed to participants and how long can the administration of that protocol be deadlocked and then we have composability so we have all of these primitives can we put them together to do really cool things there's vertical composition in the case of polka dot you know you have substrate where you can take all of these uh layers of the data layer the network layer the consensus layer and you can put them together into your own side chain your own parachain you have horizontal composition where you're trying to make work happen across protocols using bridges um or or using your own contracts and a centralized party or there's depth composition just chaining contracts together within the same protocol and and what kinds of useful things can you do there so how easily can you stack vertical horizontal and depth composition and how easy is it to shoot yourself in the foot by doing that which leads us to interactivity right how easy is it to use right we have ledgers public keys private keys there's on-ramps but nobody knows which ones to use there's a whole ecosystem of wallets out there but we've only really reached a fifth of americans with cryptocurrency uh if you go buy coinbase accounts not much to say of defy accounts right so how do we make this easier to use and how do we make it easier for developers to get onboarded what is the community like what's the dev activity on the protocol how many active users are there what's the transaction volume you know it these are all important aspects of the health and it's all public because they're distributed ledgers so you should really check these things before you build on them or before you partake in in the protocol um so it begs questions how easy is it to get started how much support is there for new entrants what's the cost of ongoing participation how active is the community generally and is there interoperability with other communities which leads us to our final criterion persistence how long has it been around right has it forked how has it existed past other forks do those forks have claim to the mining power and can they attack the main fork or vice versa where the main fork can attack the children forks these are important considerations because you know you don't want to get 51 percent attacked because there was a community dispute so it begs the questions how long has the protocol been around has it survived divisive conflict in the community how many forks exist and can the miners on those forks attack the canonical protocol and do i expect it to be around in the future and so the real question is how can we abstract away this complexity right as developers as users as people creating the ecosystem and that's exactly what we're trying to do at hedgehog so if you want to try and tackle these problems with us i encourage you to approach me after the talk and i open it up to questions

Automatic transcript — names and jargon may be misspelled.