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

Loading player…

You Had Me At Celo - Marek Olszewski / Toss a CELO To Your Prestwicher: - James Prestwich

Ethereum DenverSat, Oct 9, 2021, 12:00 AM

Speakers

James Prestwich

00:00 - You Had Me At CELO: Act 1 - Marek Olszewski 22:09 - You Had Me At CELO: Act 2: Interoperability - James Prestwich This talk is from ETHDenver & ColoradoJam , the world’s largest Web3 BUIDLathon and Community Gathering. ETHDenver’s content is crypto and blockchain focused. Learn more: ethdenver.com Subscribe to our channel to learn more + connect on Twitter: https://twitter.com/EthereumDenver. Speakers: Marek Olszewski & James Prestwich, Celo This talk was recorded Friday, February 5th, 2021 ETHDenver 2021’s content themes included DeFi & Money Legos, NFTs & the Creator Economy, ColoradoJam & the Next Frontier of Statehood, Protocols & Interoperability, Open Source & Public Goods, The Ownership Economy & Digital Orgs, Usability Design & Adoption and Legal, Privacy & Identity. Industry experts also weighed in on topics like decentralization, privacy, identity, non-fungible tokens, scaling, governance, diversity, and arts and culture in blockchain technology. The 2021 event was February 5-12 and hosted virtually in 2021 with 5000+ blockchain enthusiasts, developers and community members from 80 countries and 50 U.S. states. 🔴 SUBSCRIBE ETHDenver’s YouTube https://www.youtube.com/channel/UCgz9NU06t_FkT0Py1Vadczw 💡 LEARN ETHDenver’s Official Website https://www.ethdenver.com/ 👋 CONNECT ETHDenver Twitter https://twitter.com/EthereumDenver 📖 READ ETHDenver News on Medium https://medium.com/ethdenver 🛍️ SHOP ETHDenver Official Merchandise bufficorn.com 💬 CHAT Telegram https://t.me/Ethdenver Discord https://discord.gg/AxFmNdCVnU 📱 FOLLOW LinkedIn https://www.linkedin.com/company/ethdenver Instagram https://www.instagram.com/ethdenver/ Facebook https://www.facebook.com/ETHDenver/

Transcript

so we are gonna move into our next speaker from cello we've actually got a cello power hour coming up we've got uh uh we'll start with merrick so uh you here i am can you hear me yep we can hear you just fine amazing hello everyone uh it's really really wonderful to be here thank you uh denver for having me uh once again i'm marikoshevsky i'm the founder and uh cto of c labs one of the companies building out cello you can find me on twitter at merrick underscore uh and yeah today we're going to be talking about cello and so if you're new to cello we commonly say that cello is a permissionless platform focused on making financial tools accessible to anyone with a mobile phone but i think for this community uh here i think maybe a better definition for everyone uh is that cello is a ethereum signed sidechain uh plus plus so what does that mean it means it's fully evm compatible uh it's scalable uh we're building bridges to ethereum and as we just heard it's going to be another talk right after this and so if you're interested in bridges i highly recommend sticking around to hear from the one and only james presswitch and then the platform also has some really amazing kind of bonus features which i'll talk about in a bit including a stable coin that's backed in part by eth but for now i just want to start with a story about someone that i'm going to be calling manuel to preserve their privacy so manuel lives in kind of the favelas in laura de freitas in brazil favelas for those of you who don't know their kind of low income informal settlements throughout brazil uh and manuel he he heard about this kind of universal basic income uh program by a project called impact market and he had a smartphone uh so he figured he would uh he would sign up for for this program in kind of this group onboarding session that you can see here on the left and uh in that session he installed a mobile wallet crypto wallet on his phone uh and the impact market that and since then it's pretty exciting he's been getting an average of 66 cents deposited into a smart contract every day which he can redeem directly into his wallet simply by pressing a single button on his phone so perhaps not surprisingly um you know he initially would would take those 66 cents and depaul and then cash them out immediately uh but uh as merchants in the neighborhood started accepting solo dollars uh he now changed his behavior a bit he now saves funds uh every week so that he can go to his kind of local grocery store and buy groceries directly with cello dollars using his his crypto wallet so that's pretty exciting uh and then since then uh the stella community actually voted to offer rewards for people holding cellular dollar balances in their wallets which actually further changed behavior uh increasing circulation in in this in other communities and increase the desire for people to keep kind of funds in their wallets and secure them using the blockchain so manuel's not alone impact market now operates in 53 communities which is really exciting to see and in the last two months they've grown incredibly to now over 10 000 beneficiaries and you can see this is a heat map of of where these communities are located uh and once again folks are receiving on the order of 60 cents kind of a day now um this is what the app looks like it's completely mobile first it's completely open source and by using the blockchain they estimate that they're an order of magnitude they have an order of magnitude less overheads than other direct giving programs that that aren't crypto base and so it really epitomizes what a cello dap looks like and if you guys are interested they recently opened up their beta to anyone and so you can you can play around with the app uh simply by going to impactmarket.com and then you'll see the the two links to two stores and then if you're interested of course please consider donating uh again your funds go directly to to these communities now why did impact market build on sello i think that's the question that we're looking to answer in this talk uh and it's likely because sallow had really everything that they needed to build kind of the end-to-end experience that we just kind of walked through um and i would argue uh that the reason the platform has kind of the features that are necessary to build that experience is because the platform was built in this kind of mobile-first manner uh so the community didn't just want to build a new and more scalable blockchain the community wanted to build something that would allow people to build just incredible mobile experiences on top of it now you might be asking why mobile is mobile really important do people even have enough smartphones out there this is a common question that i get asked and the answer is a resounding resounding yes so here's a graph by the erickson mobility report um it shows that two years ago now globally we have crossed eight billion mobile phones that have active active mobile subscriptions in the world and just last year we crossed the 6 billion smartphone mark for the number of smartphones that have active mobile subscriptions that is a staggering staggering absolutely massive number and then if you look at these colors you'll see that network connectivity is also rapidly rapidly improving globally as well so already this year we're talking about 80 percent of global connectivity is 3g or better and so that means that people are able to load the internet with with decent or even incredibly fast speeds now the rest of i would say the tech sector has figured this out i would say maybe 10 years ago um but you know somehow web 3 is still predominantly building kind of for desktop computers first and then only mobile second and so in an effort to change that when we built the seller platform uh we in parallel actually even to some extent before built an incredibly easy to use wallet on top of it which we're calling veloura that really helped us shape kind of the features that needed to go into the underlying platform that would then allow kind of the experience that we were looking to build in the actual mobile wallet and so you can think of veloura as a permissionless venmo it's super easy to use it's focused primarily on payments it has a fully decentralized phone verification onboarding and it connects directly to the peer-to-peer network using a like client protocol instead of connecting to a centralized backend and this is all thanks to all of these features uh of the seller platform that again have really been built in service of velour so what are these features uh this three uh primary ones that i wanted to cover today uh and the first is around stable value the platform has a um built-in um native stablecoin platform that lets you launch multiple stable coins that are all backed by the same uh over collateralized crypto asset reserve it's a hybrid of kind of the senorite share model that i think base is popularized uh and the kind of the crypto collateral model that the maker uses so you can think of it as a bit of a best of both worlds and what's nice by sharing the reserve multiple assets can be quickly rolled out so the cello dollars launched last summer and the seller euro is about to launch next month and perhaps most importantly uh these these stable coins are actually implemented as erc20 tokens on the platform but in order to make it really really easy for people to send them around you can actually pay for gas uh using erc20 tokens on the seller platform and so that just makes it much much easier to interact with these stable coins to you know if you receive one to send it uh forward to someone else without having to maintain a balance of another asset and clearly manuel uh finds that very very helpful when he redeems his ubi uh and then goes and pays for uh groceries at his local store again he doesn't have to think about gas and other currencies that he has to maintain so that's the the stable uh kind of platform um there's also a kind of built-in identity protocol that effectively maps hashes uh uniquely salted hashes of phone numbers to public keys and then there's a decentralized phone verification protocol that lets you verify your phone number in order to add one of these entries and this this makes it really really easy for for folks to send payments to to phone numbers instead of to public key derived kind of addresses and so critically what that means is that you can actually send payments to people directly in your contact list you don't have to go and request an address you can look them up by name in a traditional kind of search box that you and me know from centralized services and they can be in a different wallet it doesn't even have to be the same wallet and it becomes really really easy to send payments to anyone that is kind of in your your address book and perhaps more importantly you can also send the payment to someone before they've actually signed up so before they've actually created their private key and derived their their public key and their and their address you can send money to a phone number and the wallet automatically puts those funds in an escrow smart contract and then uh the recipient when they verify their phone number can request those funds automatically excuse me and then finally you know i mentioned the veloura connects to the to the peer-to-peer network using a like line pro protocol so when we built the consensus protocol uh we worked really really hard to create an extremely efficient lifeline protocol one that at launch uh is or was 17 000 times lighter than what's typical for other chains um and we do that through kind of two techniques we use what we call epoch based syncing which means that in the proof of stake protocol the validator set can only change once per epoch our epochs are one day so once per day this means that a like client only has to download the last header of each day secondly we use bls signature aggregation so all these signatures from all these validators they all get aggregated into a single multi-sig that saves a lot of space in headers and then finally since 17 000 times uh lighter wasn't actually enough for us we wanted it to be just blazing fast competitive with centralized offerings uh we worked incredibly hard to create plumo which is a zk snark based like line protocol that is actually 1.7 million times lighter um plumos coming out in the next hard fork in about a month and a bit uh and once it launches like clients can simply download a 500 byte snark proof that they can verify in constant time really quickly and that proof allows you to sync up to a year's worth of headers again with just 500 bytes so that is incredibly lightweight excuse me again so maybe switching gears a little bit what about scalability you know any chain worth itself these days has to be extremely fast and scalable and to that end seller uses a kind of bft based consensus protocol we talked about those those signatures being aggregated and and then kind of a proof-of-stake network on top of this that i would say has many many similarities to polka dot uses the hans algorithm to select validators in elections that are based on you know how much stake is voting for specific validator groups the network launched with five second block times but this can be trivially lowered uh through ancient governance everything on cello is governable through on chain governance now the the like client that we just talked about it turns out it's also useful for scalability uh syncing is clearly an issue for full nodes joining the network um and uh luckily a very efficient like client makes fast mode a lot more efficient as well for syncing which which is really great we want to make it as easy as possible for full nodes to come and go from the network which as the network gets more load becomes even more important and then perhaps most importantly um the platform also has full node incentives um so even if the kind of the size of each block goes up uh and machines have to get a little faster in order to keep up um there is an incentive for these full nodes to stick around and not drop off because they actually earn money simply by serving like clients on the network and so they full nodes actually get a cut of every transaction uh that they forward from a like client onto uh towards the the peer-to-peer um full node network and so that incentive is critical you know there's a lot of uh debate around increasing block sizes on on many chains and the common uh argument against doing it is that the network becomes less decentralized full nodes start dropping off it becomes too expensive and so we wanted from the get-go to have a incentive mechanism to keep these full nodes around and so um luckily we were able to come up with something that works pretty well and really uh works nicely for connecting kind of those uh those like clients running on those mobile devices worldwide now none of this actually matters uh if there's no ecosystem around it and there's no users um and certainly you know d5 developers really really care about what's going on in these chains is there enough liquidity other other projects that i can compose with all of those things uh and the answer uh is that uh super excited and happy to share that um there's a lot of defy already happening on the platform um so there's decentralized stable coins as i mentioned cello dollars is already live and cello euros is launching next month uh there's been an on-chain dex that's been around since july called mento and another one called coral swap that's about to launch uh there's a lending market moolah that is very very similar to uh to avian compound that is just coming out of beta right now tbtc is looking to launch on sello very soon and we've already heard about impact market and on top of that there are literally hundreds now of companies that have committed to building on top of or integrating with cello through the cello alliance for prosperity uh and so there's a lot of activity happening on the platform and a lot of really really good opportunities to to compose with other projects and to benefit from liquidity and and other integrations speaking of liquidity i think many people frequently ask about on and off ramps uh and surely a network that has launched less than a year ago doesn't have any good options uh and on that front um also absolutely uh humbled and excited to share that there's been a lot of interest from exactly these kind of companies that provide these kind of services so already moon pay simplex bidali and ramp all support seller currencies uh wire i believe is actively working on adding support literally right now and many of these are directly already integrated into into velora so it's just really really easy to cash in and out of the wallet and so if you're interested in learning more uh especially if you're a technical and you want to look into the sdk docs and dig into some code then i highly highly recommend uh checking out uh docs.cello.org uh where there's a lot of good technical documentation uh there you'll read up about contract kit and app kit which are kind of our two really big and popular sdks i also highly recommend joining our discord uh at chat.

sellout.org pretty easy to remember um there's a whole community there of folks who are very excited to to chat and and offer any support if you have any questions you might also be asking about funding and on that front uh uh also thrilled to have a lot of funding options throughout the community uh really regardless what stage you're currently at uh and to see all of those different options go to funding.cello.org there are fellowship options [Music] grants that you can apply for and easily get if you're a little earlier [Music] there's an incubator program called cello camp that's on its third incarnation right now highly recommend that there's also vc style funding from folks like flory and polychain through the polychain solo ecosystem fund so definitely highly recommend checking out fundingnotzella.org for more info and then finally uh if you're interested in just hearing more from the broader cell community highly also encourage you to sign up to connectco.

celo.org it's our community all hands that happens once per quarter and you can sign up again at connected.cell.org and the next one is happening really soon on february 18th and uh i think that is all um again really uh great to uh be here thank you so much for having me i highly recommend checking out these links stay connected and once again i'm eric olszewski uh with uh at merrick underscore at twitter thanks mary we appreciate it and we're just going to pass it right to your uh write to your colleague mr prestwich how's it going john doing great so you ready yeah now that i figured out how to use the microphone all right uh hey everyone um i am giving the follow-up numerix talk you had me at cello act two and uh merrick gave a great overview of this cello ecosystem and where things are today and why we decided to build it this way and i'm going to talk about my favorite thing to talk about interoperability if you've seen me speak before a lot of the elements of this are going to be familiar and that's because i'm really kind of a one-trick pony here i just spend all of my time kind of bike the bike shedding uh bike shedding these interoperability systems um apologies there uh i work on bitcoin cello ethereum near solana and a bunch of other chains i'm always building some sort of cross-chain relay or interoperability project i recently a few months ago joined cello full-time to head up interoperability projects and i'm going to spend time today going through you know what is interoperability what's a bridge how does it work under the hood and why does it work that way so our goals right now are to talk about uh bridges first and getting an intuitive understanding of bridges uh i'm going to give an overview of like what we want to bridge to do why we want to do it and then i'm going to describe uh you know cross-chain communication the primitive that underlies these bridge applications and after that we're going to talk about a couple different models for cross-chain communication if we've got the high-level application and the underlying primitive how do we actually build that out in practice and what are our choices so throughout the talk i'm going to be using kind of standard flowchart diagrams the rounded rectangles are start and end the parallelograms are inputs and outputs from the system uh squares are steps and diamonds are decisions um there are quite a few decisions and uh you may have noticed i've only got one output from it in this chart uh if you only see one out outgoing whisker from a decision uh it means that the other path is uh everything falls apart you do not have a bridge today and we have to rebuild the system from scratch um so uh you know uh we'd like taking the happy path because the unhappy path is uh you do not have a cross-chain application all right so we're to talk about bridges specifically um this is the problem statement for a bridge i have cello ethereum has dapps uh i'd like to take my cello and go use it in ethereum steps and more generally there might be any information on the cello blockchain and some smart contractors some other chain might want access to that information this could be assets like tokens this could be whether a loan is collateralized enough or not uh it could be like the identity of the current validator set there's a lot of different things that you might want to use in another blockchain we want to get that information out of one chain into the other and we want to do it safely quickly and securely so you know from a high level this is what a bridge does is it locks up cello and then on some other chain it's going to mint eath cello so we can go use that in depth and when we want to get our cello back we just do the whole process in reverse and that's why i've put the exact same chart in reverse here we pull it out of our gaps we burn the east cello and then we want to unlock the cello so you know the part that makes it a bridge is this minting and burning step is the goal of the bridge is to make sure that the amount of cello doesn't go up or down we lock some up we create some new new ethel over there and then we destroy the ethelo to get it back on the original chain the bridge is an application it's not a technology itself it's not a primitive that we're using here in order to build the bridge we're going to need some sort of technology to get across these big fat boundaries between chains we're going to need to get something out of cello and into ethereum we're going to need to get information out of ethereum back to cello and uh in order to do that we're going to build out two we're going to build out some technology and we've got to do it twice here you can see there's two different boxes and that's because these minting and burning processes are actually unrelated uh the application of the bridge wants them to be related and we want to kind of enforce that uh supply doesn't go up or down there's no inflation and we don't actually pitch your cello out into space um the uh you know thing we got to plug in there is some sort of one-way communication channel we have to build some you know like wire some telephone system that connects cello to ethereum and then another one that goes the other way so bridges they rely on these cross-chain communication channels and the thing about cross-chain communication is that it's what we call simplex uh it only goes one direction we can't have a two-way like telephone conversation like uh you and i would um cross-string communication is always one direction and that means we need two of them bridges use two independent one-way communication channels and those two channels succeeders fail independently and how we build them can be different the same bridge can use two different uh completely different security models for these channels and you know we would love to bundle those into one channel and go both directions but unfortunately duplex channels aren't possible building these two one-way channels is literally the best we can do it's the closest we can get to two-way communication um a chain has one way of receiving messages and no way of sending them and we need to figure out how to kind of fix that all right so we we've talked about you know bridges from a high level they want to lock up tokens on one place and minch them on the other and then they want to destroy them over there to bring them back and unlock them on the original chain and what's so hard about them is we have to design and run these two low-level communication channels um and those are really complex so we're going to talk for a few minutes about you know why they're hard we're going to go in from kind of first principles and talk about one-way communications uh we've established our bridge needs two of these how do we build them um this is what we wish would happen i wish that i could just on sello send a message and to know that a dap on ethereum will get it if it worked that way then we wouldn't worry about bridges at all it would take like 15 minutes to build one and it would be nice and easy and everyone would be happy now unfortunately for me this is this is the actual situation um you just can't do that we have these big walls around the chain and information can't get out or in very easily um the dap can't just receive that message it's on ethereum and it needs an ethereum transaction it needs that message to be put into a tx so we need to send that ethereum transaction to kick off the dap okay but uh so so you might think we can just have cello dispatch this ethereum transaction and then we'll have ethereum process the transaction and then the will get the message right well you know unfortunately uh cello can't send ethereum transactions it doesn't have an ethereum wallet built into it uh i i don't think that's really like a feasible thing to be doing you can't put a private key into a blockchain the cello chain just can't sign an ethereum transaction in fact uh chains can't have any outside effects the only thing that they can do is read an incoming transaction and update their own state um and that makes best sending messages really hard you know we can't have cello directly trigger an action on ethereum because cello can't send a transaction and if it did ethereum wouldn't get it so we have to add this new intermediary in order to get a message off of cello we need to have some person off chain running software the software has to watch cello for messages it has to decide whether to forward it and then it has to choose to dispatch an ethereum transaction containing that message then ethereum can process that transaction and then the message can be received at the dap by the dap um so we have a bunch of steps here right cello updates its own state to commit a message someone sees that message someone forwards it to ethereum ethereum processes the transaction and then the dap gets the message uh this is much much more complicated than ethereum smart contracts calling each other where you just like you know one contract sends a message and the other one gets it immediately and that's why you know there are very few bridges out in production today is they are inherently much more complex than uh you know same chain transactions we're still really figuring out how to build and deploy these reliably all right so we talked about this a little bit chains are passive uh they can only respond to transactions and update their own state communications need to be active and that's why we need this off chain intermediary they're watching cello and forwarding to ethereum and going the other direction they have to watch ethereum and forward dicello it's impossible to run communications without some off-chain party doing that message observing forwarding and ensuring it gets processed on the remote chain the kind of taxonomy for these communication channels is determined by how we check that party's work what is the trust model for that off chain intermediary and so that brings us to the third part of the talk um what are trust models uh who who is running these things and how do we decide whether they're reliable we have this intermediary and they're responsible for performing certain roles and we want to force them to perform that role now unfortunately the sending chain cannot know if its message was received it shouts this message off into the void and it relies on the off-chain actor to do their job um it gets no guarantees and so we have to add one more step because the sending chain the origin of this message cannot know if it was processed we have to make sure that the destination chain enforces that and because the destination chain can't directly read the sending chain we have to have it authenticate this message otherwise our intermediary our off-chain actor could uh commit fraud and submit messages that were never actually dispatched from cela so you know we have to add this one more step here we have to when we see a tx on ethereum on the receiving chain we have to decide whether that transaction is any good and so between starting to process the transaction and sending the message to the dap we need some on-chain solidity contract that looks at the transaction looks at the message and figures out if it's good so we're gonna define in solidity you know this programming language how we tell if a message is any good and whether we should process it uh which what we're really talking about is what makes a message trustworthy you know we message how do we know we can trust it and if you want to be very very like procedurally oriented here we have to know what makes a message actionable at some point you know we gotta say yes we're gonna forward this to the dap and it's gonna do something or no we're not we need to commit and the code that needs to commit is going to be running in solidity on chain so that code needs to be relatively cheap it needs to be deterministic and it needs to you know create high confidence in this message the ways we get confidence are what we call trust models now i'm going to talk about two but there are a few more out there the easy one the one everyone loves to use because it's so cheap and easy and fun is called proof of authority in this case we're actually talking about proof of james right uh you know i'm gonna be the intermediary and i promise that i am only going to forward valid messages from cello to ethereum uh and so what we're gonna do is in this uh full diagram i'm gonna perform all these middle steps i'm gonna be the only off chain guy and i'm gonna forward everything to ethereum and i promise i'm going to do it right and not like censor anything or commit fraud and then all ethereum needs to do is check that i signed the transactions if i signed it they're good we can move on we can send messages to depth so what are the kind of pros and cons there uh the pros are that uh you know messages are small and cheap and fast all you have to do is check my signature um the cons are that there's a single point of failure if i go offline the whole bridge dies uh if i start selectively censoring transactions you may not be able to use it if i decide to steal your money there's nothing you can do about it so we say that the failures are kind of catastrophic here right is with proof of authority if the authority ever becomes malicious or just wants to get your money uh there's no way to stop them and they just get it all we'd like to avoid that we'd like to find some better security models after all i think that's uh you know what got a lot of us interested in blockchains and smart contracts in the first place so another alternative for cross-chain communication is what we call relays and for a relay the destination chain is actually going to run the consensus process of the sending chain so for you know cello and ethereum this means that there is a cello lite client embedded in ethereum this doesn't exist today but we're optimistic that at some point in the future it will uh the only running relay out there right now is the uh bitcoin relay that's part of tbtc i built that it relays bitcoin headers to ethereum and runs a full bitcoin lite client in solidity um so the goal here is that we're going to do exactly what the sending chain does we're going to do the consensus process of the sending chain we're going to run this little light client we're going to process all the headers if it's proof of stake we're going to do all the validator set updates and changes and we're going to keep track of whose validators so we're actually like running the consensus process uh i see someone in chat saying there's a poa relay that's not a relay that's a proof of authority so let's talk about relays the goal is to get as good security as any wallet of the other chain gets and we're going to do that on the receiving chain and if we do this then we can validate proofs of the other chain's state and of events on that chain and so this is how a proof of work relay works in the wild you're going to get an incoming transaction it's going to be either a header or an event if it's a header we're going to append it to our chain we're going to first check that it extends our known chain you know that it is building off of a header we already know of uh so then we're going to actually check the proof of work for bitcoin we're going to do the double shot 2 we're going to see all those zeros we're going to see that it extends a header and we're going to append it to our local view of the remote state we're going to append it to our header chain in solidity in a smart contract if it's not a header it's probably a transaction so we're going to check if that transaction is in our view of the remote state that means checking if we know of a header that confirms that transaction right so in bitcoin this means that you get your transaction you use a merkle proof to connect it to a header you check that that header is in the header chain that you know of and that's buried a certain number of blocks deep and then we can check if that transaction contains a message and we dispatch that message to the dap so the key thing here is that we're doing proof of work if the proof of work is working we get transactions that have actually occurred on bitcoin and we cannot receive a transaction that didn't occur so we get high confidence in these messages so for proof-of-stake it works very similarly the transaction processing the message processing is just the same but because we're actually running the consensus process the rest of it the header chain works really differently proof of stake requires a trusted setup for example someone has to start off the relay by telling it who the current validators are and then every time the validator set changes we need to update the relay with information about that so uh if we miss some of the validator set changes the relay may be within out of date it may have an old validator set and that old validator set could potentially defraud the relay and so we have what's called a synchrony assumption the relay must be updated with a certain frequency for proof of stake where it falls out of date and becomes less reliable you have less confidence that the information is actionable but generally speaking all we're doing here is running a light client we're following the validator set we're checking that they sign block headers and we're appending them to our chain and we're doing that in solidity on ethereum uh building these is complex and annoying but isn't actually that bad the main differences are the trusted setup and keeping track of the remote signer set um and if you do it right you actually you know end up with a view of who all the signers are what their balances in cello are and you keep that view updated over time and you can accept their signatures on any given header because you know that the pos is done right um so for relays uh the off chain actors can be anybody um because the remote consensus system proof of work or proof of stake is public and objective anybody can forward those headers or those transactions over there's no need for this permissioned intermediary like me or like a poa bridge anybody can ensure that it operates correctly and that's a really desirable property and in the smart contract side when you process this incoming transaction you run it through the relay to check that it's good um and that way you can have this publicly maintained bridge with no permissioned parties and everybody can contribute and can verify that it is behaving correctly all right so the the pros are that it's about as good as the remote consensus set if the proof of work is working the relay will work too if the proof of stake is on us the relay will be honest too there's no need to rely on this trusted authority figure um we get economic security the cons are that there's a lot of overhead for proof of work we have to transmit every header so every time there's a bitcoin block we have to send a bitcoin header and that gets expensive uh and for proof of stake there's a trusted setup that may need to be repeated if we fail to update the validator set on time we may have to do another trusted setup and everybody has to be kind of comfortable with that idea um and uh so those are the two security models and i'm running out of time so i'm going to quickly add a couple notes what is sharding you may have heard of this in the context of eth2 or near essentially sharding is doing the relay on the consensus level so you're doing this mandatory relay instead of doing it in a smart contract and with sharding you get this guarantee that failures are known about so if the one shard fails you definitely learn about it whereas with the relay in a smart contract if the other chain fails you may or may not learn about it um so sharding is like this uh strictly better stronger guarantee for a relay and uh what about atomic swaps for question communication is kind of like what about them they don't really work or do anything they have very bad user experience and can't transmit arbitrary messages which means you can't use them to wrap assets or do most of the things we want out of a bridge and that is about it for my prepared remarks i think i've ended just about on time uh thanks everyone for coming out today feel free to ping me on twitter if you have any questions or anything like that well thank you for coming we appreciate it

Automatic transcript — names and jargon may be misspelled.