zkSummit - ZK0x02 - Lightning talks
16 Sept 2018 · 31:40
Recorded at the Zero Knowledge Podcast's ZK0x02 summit in Berlin, this lightning talk session features Mariano Conti of MakerDAO on oracles and zero-knowledge proofs, Cory Levinson on Scuttlebutt and the case for soft governance, Rachel of Summa on hidden swaps via zk proofs in lightning payments, and Julian Arni on Radicle, a language for collaborative platform building.
Speakers
Topics
Transcript
[Music] okay hello everybody this is a lightning talk so I'm gonna go pretty quickly it's called price field Oracle's and I'm gonna show a little bit about how we plan on using zero knowledge for Oracle's at maker Dow and what we're currently using which is probably not as as good as what we could be doing so quick introduction my name is mariano Conte and the head of Oracle's at maker and just a disclaimer have zero
knowledge about zero knowledge you probably heard that one before so I'm here mostly to learn watching all the sessions and maybe catching up with some of you and that's the disclaimer right so I'm gonna talk a little bit about what our Oracle's are right now version 1 they're essentially just smart contracts that store for each asset like eath or nkr or eventually digits they store only price in USD for example and the timestamp that's basically all they do and if you get like 10 or 15 of these controlled by different parties you
essentially have a decentralized oracle network and you plug a million answer contract which reads from all of this and calculates million on this prices then you have a real decentralized price with Oracle and this is what we use to control the prices on the die credit system and there are several problems with this the main one is that every single Oracle whenever it updates its price they need to send a transaction so with the volatility we have of different assets this can often mean several transactions per day sometimes per hours sometimes even every couple of minutes right and the more Oracle
to get assuming they increased security by decentralizing they also have like a huge gas cost so we're moving to a version to which use signed messages so every single Oracle has just public private key there are any theorem address they sign messages with the price and timestamp they're distributed be a scuttlebutt which is really amazing and looking forward to the Scarlet out later they are aggregated off chain we can move some of that computation of chain but maybe sorting by price we verify it on chain and this means that
we get only one transaction per update comprising all the different Oracle's say 10 15 20 or more this lowers gasca's and we still keep it decentralized as long as you have access to the skull of a network to get all the messages so assuming we have an Oracle let's say that's an easy theorem address let's say the price is 260 I wrote this this morning so it's probably lower now timestamp you hash both of those and you get a 32 byte hash you sign that with the private key you get a hash sign message and this is just like a quick solidity smart contract I remove stuff
for brevity but essentially you have to go through every single message you have to validate to an EZ recover to validate that the data you get from each of the Oracle's belong to a whitelisted address you require that the H is newer than the previous one you check that the values are ordered and if they are then you just get the median right if the if there were an even number of values you just grab the middle two and do an average if it was an odd number of values you just grab the one in the middle you write it and you're done so I want to talk a little bit about
what we want to do in 2019 for version 3 so what if we could move even more of that computation of Qiang could we use aggregate signatures may be something like BLS we're looking at how etherium is what they're doing to solve the proof of stake problem I know they mentioned having thousands of signers verifying data problem is we cannot afford a 24-hour challenge period right we need data that is real-time as it gets if the price of ether is crashing at 10 percent per hour we cannot allow that to we
cannot have challenge period of 24 hours where maybe the price it's going to be totally different from what the system has and that would allow you to maybe borrow died a ridiculous price can we do a myrtle tree representation of n number of messages can we just check the route for that is that even really possible these are all just questions that I've been asking myself here's a hypothetical how about we have five Oracle's they each sign a message there we can see in the table that they're sorted by price let's say we have the prices the time stamps design messages can we grab all
of these into one single signature and verify it unchanged that you want the correct medium of the price I have no idea but I'm hoping that I can answer this question soon and a couple of more canned we mask Oracle addresses this would make it very secure for the Oracle signers can we only know that analysis in a whitelist can we even hide that white list what is the cheapest way we can prove unchanged that the computation will happen and we something like Intel SGX some of the other methods that people have brought
up here do we know that we're using the correct data we also have to assume that everything is of course signed by a whitelist or Oracle right so like I said this and other challenges we're gonna be working on them in 2019 and we're looking for collaborators to help us with the challenge so if anybody wants to tackle this alongside us please feel free to message me and I will see you around in Berlin this week so thank you who wants to go next I don't know I think we had an order but I don't know
where's Corey do you want to go Corey you just mentioned scuttlebutt so that might be a good follow up do you you have slides yeah cool I forget which one we have for you [Music] I have to actually go run and deal with
some stuff okay I'm sorry bear with me one said someone there's a full screen [Music]
how's everyone doing do people know about scuttlebutt can I get like a hand of people who have like heard of the project and kind of have a rough idea of what it is cool how many people have downloaded patchwork and actually like used it ever couple nice alright so my name is Corey I am an independent researcher and spent a lot of time also working in the music industry but kind of half of my time is meandering around the block chain space done a number of things kind of over the years sometimes in the blockchain and music kind of ecosystem but more recently I've been getting involved with this project called scuttlebutt doing a doing a
process research project of my own there and here I'm going to kind of give you an overview of just sort of what the project is very briefly and then some of the interesting ways that I'm kind of noticing this community think about governance and think about how they're how they're making decisions how they're allocating funds how they're organizing and collaborating together so in some ways that I think actually the rest of the blockchain ecosystem can actually take some interesting learnings from so to start off let's let's look at scuttlebutt and kind of ask ourselves like what this thing is before we go into some of the ways that they're operating and and to do that and to motivate that I kind of want to pose this first question of like why is it that we actually even talk about consensus within the decentralized
ecosystem that we're talking about today and one way of kind of framing it is that we talk about consensus or we need consensus in our systems in as much as we need multiple identities to validate transactions so the converse of that is if all you really need is to verify that someone said something that they like made a claim and you actually don't need other people to check or to do any kind of double spending prevention there's really no need for consensus in that way and what I'm gonna show you in a bit is how like social networks actually have this property where that isn't a requirement so in the blockchain ecosystem most of what we're talking about are identities and identities owning things so there's a lot of asset transfer be that coins be that NF T's
and if you look at what social networks are they're really much more about identities and identity saying things and to validate that someone said something all you need is a signature and and a kind of proof and or some sort of understanding of who they are and so scuttlebutt is is is kind of a protocol but then it also has some applications that run on top of it mostly operating within the social network space and at the protocol level what it is is it's a personal chain so every kind of user or device would have its own chain of cryptographically signed messages then there's a social network that kind of acts as a network topology so you can imagine a social graph but as these identities are tied to devices the social graph actually can kind of represent a network topology and then
there's a gossip protocol that that kind of motivates and and and and allows for the message propagation throughout the network so that's how content actually travels throughout the scuttlebutt network so in our case where we can start and look at kind of the use case of a social network here we have Dominic Tarr who's the founder of scuttlebutt he lives on a sailboat in New Zealand and sometimes Dominic wants to chat with his buddy sub stack who's also sometimes spending some time on scuttlebutt the two of them have their apps they're downloaded on their computers yet because they're kind of in these the the internet isn't connectivity isn't so great when you're living on a sailboat or when you're on a solar farm in Hawaii where a sub stack lives
so they're using scuttlebutt as a means of communication that kind of is it is really effective for these sort of low bandwidth scenarios and one of the things that I'm not going to talk about in detail as much but it's a really interesting property of scuttlebutt is how it's offline first so using the app reading it is all stuff that's happening on your app directly on your computer no network activity there but the kind of synchronization and any of the data caching that it's happening is going on in the background so what's going on here again is we have Dominic and substract talking to each other they're each kind of broadcasting that they follow each other and then if they're in the same local area network or you can also use these things called pub servers to communicate with each other that's
how they can kind of broadcast that they're interested in each other's data and with that can exchange messages and so in this kind of world of scuttlebutt you kind of have this model where everyone's getting a chain of cryptographically signed transactions instead of one unified blockchain that we're all supposed to kind of agree on the state of so here's a little preview of what the app looks like there's a bunch of active channels there are pubs that you can connect to and and people are basically posting essentially it's like a like a Twitter where instead of 128 byte characters there's markdown posts of a couple thousand words and so as I mentioned before you also have pubs which essentially act as these self
hosted servers for individuals or communities these pubs replicate your feeds and your friends feeds essentially they replicate the feeds of anyone who that pub follows and so they act as an always-on user that's essentially another node in this social graph and so now we're going to shift a little bit to talk about governance and the way that within this ecosystem people are thinking about how they want to how they want to operate and how they want to to contribute to the development of this protocol of this project and so on the contrary you can kind of look at how people are thinking about governance in the rest of the blockchain space and there's a lot of taco on chain or off chain but since there's no singular blotching here that's not even really on the table we really have to be thinking from the core what does it mean for us
to be communicating with each other what does it mean for us to be in a decentralized organization where it's literally just a bunch of open-source contributors and community members on the internet how do we actually coordinate to solve problems together so within scuttlebutt there are kind of two main principles that I want to sort of hammer home today that that I've noticed in the research that I'm doing which is this idea of one soft governance and to experimental funding schemes and so soft governance is a term that you can see in in a lot of talk around project management research and some examples of that is within models of soft governance you can have acting as a participatory leader who involves team members in strategic as well as
tactical aspects of the project promoting cooperation rather than competition among team members installing governance mechanisms that are explicitly flexible yet formal so that third one may be sounds a little bit like some of the things we talked about in Unchained governance but as you see on the right these kind of principles for hard governance having formal bureaucratic procedures roles and responsibilities being clearly delineated these are all things that we always think about in the decentralized space when we're thinking about governance but all too often we forget about some of the more softer kind of interpersonal aspects of what it means to do human coordination and so on scuttlebutt not only do you have people actively interest in this in this stuff but some of the people who are quite prolific in this space and in the theorizing around decentralized organization from a very kind of soft
human perspective they're active on this community so Richard Bartlett has written a book that's that's an ePub which you can grab and download that talks a lot about these ideas from intentionally producing counterculture systematically distributing care labor talking about power as like an explicit kind of part of the way that you organize and and kind of make decisions and with people like him on the network we also have active developers in the community like Andres salts making explicit posts and talking about what it means for us to have principles within the context of this project and the last thing that I'm going to mention is some of the experimental funding schemes that are at play within scuttlebutt there there are kind of three main ones that we've sort of seen happen over the
past maybe six to twelve months this year the first one is a more formal program called SSB sea grants this was initiated by a large sum of money that we actually received the organization of scuttlebutt received from Definity as a grant and with that money there was basically a github repo that was initiated a grant procedure initiated that explicitly said we're gonna have up to four grants each month we're gonna give 5k USD for each grant we're gonna rotate all the administrative roles and all discussions are going to happen directly on scuttlebutt so with that you kind of had the the founder Dominic who kind of proposed this initiating and kind of deliberating and and giving out power to the rest of the community to and and to charge them
essentially with distributing these funds and so some of the other ones around mobile SSB quests this was a grant that yeah I'll wrap this up this was a grant that Andre Stotts received specifically for his work that he's doing on a mobile application and with that he basically came up with a bunch of larger scale bounties that he wanted to issue and as Beacher is a smaller experiment around tipping that people are exploring with and so with that I kind of want to throw out this idea that we can think of governance is more or less mechanisms for distributing funds maybe that's not all that governance does but that's certainly a core part of it and within the decentralized ecosystem I see a lot of talk about developer bounties I see a lot of talk about larger scale grant
programs but what I don't see as much is decentralize coordination processes for allocating funds that start at the very small and experimental and as they succeed grow into kind of larger scale and larger scope so yeah this is an overview of the stuff happening in this world and I'm curious to hear how other projects are kind of thinking about these problems as well Thanks all right we're gonna have Rachel come up next with suma hi guys I'm the new MC Hudson and I had to go welcome Rachel give her a clayey give her a hand my jet lag uh I don't have a presentation prepared sorry but I work
at Summa I'm a back-end of there and one thing I really like about Summa is that we're basically taking the current infrastructure in the space and we're just building off of what's there and what currently works we're specifically targeting ways to manage in like hedge risk for financial for crypto holders and so we do this by building a set of financial tools and they're completely trust lists which means there's there's no third party there's no Oracle it's just between two two parties and they can trust each other via secret sharing and some of the tools we've built are like we have options we've got hash rate derivatives futures forwards we have a whole plethora of prototypes and essentially
we try to take away a lot of the risk in holding a lot of crypto by being able to enter in these contracts and if for example like a buyer and a writer will enter into an option right and a buyer will initiate like a secret and then in order to gain the writers funds the buyer has to reveal that secret the writer can verify that the buyer that the buyer is providing that accurate secret because the writer knows the hash of the buyer secret and then once the buyer reveals that secret then the writer can go to the buyers chain and get the buyers funds so it's kind of
like a higher level idea of what's going on we can enter into these contracts on Bitcoin chains Bitcoin like chains and we all can also trade between like Bitcoin and aetherium and any number of like ERC 20 tokens as well which i think is pretty cool and like also any any mixture and one one problem is liquidity because if you enter into these contracts right like you lock up your funds and like nobody wants to do that no one wants to lock up a bunch of their etherium and then just be sitting there for like six months so I don't wanna do that we have actually like tokenized
a lot of these contracts will be like tokenize options and then the writer can take the new ERC 20 tokens and enter into other contracts and like other options with these tokens you have like tokens on tokens on tokens and it's pretty cool and the idea is you basically have like you can do theoretically like infinity options even though James says you can't do infinity options but maybe you can yeah and then you can kind of like build out a marketplace based on that so that's what we do [Applause] all right Thank You Rachel all right and finally we have Julian yes from radical
get my hand the wrong one let's see if it doesn't work in a second oh there we go there you go thank you hi I'm Julian I
work on from an attic and the project open-source coin and I'm gonna be talking about radical the language we've developed so and this is the radical rebel so if you're built on Bitcoin by making the language in the blockchain general purpose and this as we all know enabled a large array of smart contracts and wider array of applications but the result is always as with Bitcoin one very large program which runs everything and which every full node runs now one possible solution that we've been seeing and talking a lot about is snarks let's solve some of these problems but I want
to talk first about specifically the open source coin case and see how there's another possible solution and how we came up with the design for radical now open source coin aims to provide an incentive incentivization mechanism for open source development as well as a decentralized platform for open source collaboration now I'm not going to talk about the first one here even though it's really cool because ever eleftherios Jekyll Michalis is giving a talk tomorrow that you can attend and because on my area but I will talk about the second one in the second one you can think decentralized github now think of all the information that get up stores and processes and makes
available now the tens of millions of users tens of millions of almost 100 million repos each repo has long lists of commits and a number of issues h issue has no comments and and the PR as well has you know sort of number of commits and then that discussion is on those and then many more things besides those now two things become apparent when you consider this first they'd be insane to sort of ask everyone if you're creating a decentralized version of this to store all of this data and process all of this data and second the data segments semantics boundaries so you have feds sort of in with specific meanings now
this this meaning the semantics determine what the elements in the thread are for instance comments and how they relate to other data being about a particular issue on a particular repository they also determine what content is loud so if you're thinking of all the commits the commit history as a thread then only valid patches are allowed anything else is not allowed and also the determine for the semantics of the chain also determines who's allowed to contribute or change that content so only contributors or maintainer czar allowed to you know make them it on master now at OSC at open source coin we decided to sort of do justice to this
semantic boundaries and and so this led us to multiple chains you know this idea that exists elsewhere as well but each chain additionally can very easily be given its own semantics and this is where radical comes in so if an aetherium you can program in a chain in radical you can program the chain itself so as a very simple example I'll have to put the microphone down so I can code so as a face as a very simple example thank you so much as a very simple example I'll enter a chain so I'm now in a new chain and here the usual so
the radical is basically a lisp with a few other things so you know prefix parenthesized expressions and if I run this I get five as am I expect but then additionally I can define eval the semantics of the chain to be a function that takes an expression and always returns true now if I run the same thing it returns true so I've changed the semantics in a very very silly weight of a chain and now if I try to do anything else in the chain won't work because everything is not evaluated instead it just returns true so I'm gonna quit this chain thanks it might need you again in a
moment so as you might have noticed the process of evaluate of changing the semantics of the chain is part of the chain itself so consensus the underlying consensus takes care of ensuring there we agree on the semantics now you've probably wished that some some code of yours so if that github have some feature X or Y and you probably didn't get your wish or you had way very long to get that wish by decentralizing a surface that github we gained the right to collectively define what the service is rather than github alone having that right but with a language like radical we're trying to give the means to do so as an example
radical has a base library you prelude and you know you're probably familiar with this pattern where if you open an issue about bug report you better have a reproducible test case to help the maintainer is if you're a maintainer you sort of expect people to do that otherwise you're pissed off but there's no real way of enforcing that besides pop having on github beside having some sort of like text that suggests that you do so well for us in the radical previewed a filling test case is basically some bit of radical code that if you run it fails by throwing an exception or by returning false so when you create an issue I can create an issue Shane and so I can they have you against so I can create an issue chain so again
I enter a new chain and and here I can define eval to be a function that I've already defined before for simplicity and now if I tried doing simple operations I'll get an error the operation has to be one of new issues or list issues and if I list issues there's nothing there but if I try creating an issue I need the author the title a description and a failing test case so
x0 0 does not fail ah thank you so the test is not failing so that so if I list issues again it's not there whereas if I make a failing test case equal zero equal equals one and then I list issues I get the issue there so I've in about 30 lines of code that you didn't see I've managed to define my own issue system very quickly in a new chain now this is thank you now this is the just a tiniest example of radical I don't have much time to go on go into more details and how this is
distributed and network and whatnot but on Friday James Hayden and I James was over there will be talking about talking about radical and much longer so setting for an hour it's listed it's on Friday at 6 p.m. insisted in the the calendar again as I mentioned sorry as I mentioned I think haven't yeah the LA is also giving a talk to Maura the central plateau forum serve the incentivisation scheme there's a website with a simple drop low this means compile to
JavaScript freenode we can start over there and email thank you [Applause]