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

Loading player…

EthCC 2: Dimitri de Jonghe

Ethereum ParisWed, Oct 9, 2019, 12:00 AM

EthCC 2 EthCC, the Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. Follow us : @AssethFR https://ethcc.io

Transcript

speaker Dmitri or D me he is from Ocean protocol they're building a new data economy so unlocking data and data silos so this is super compatible with a multi-chain network like like polka dot so he's definitely gonna get into how the two can integrate but more importantly ocean protocols hosting a crowd sale tomorrow so if you like the talk maybe you can you can you know buy some buy some coins but 10% of everything goes to me now no I run well when this pops up we can proceed so yeah my name is Dimitri I've been working previously on I think we started with something called a scribe with some other people right here and then we moved to bikini B and now we're verging towards Ocean protocol which is kind of like an extension of previous thoughts and here I'm kind of talking about how it would look like for us to integrate with parity but also with polka dot and also giving you a bit of like more are you into for some more technical stuff or more like high-level stuff I was thinking some technical stuff so yeah so yeah what do we do like what's all the commotion about well a lot of data sharing and yada yada yada actually why I'm doing this is something else let's imagine you want to create a very cool Dao let's call it a doll Lama right a repetition of the internet so I should have accredited well let's see and let's give it some eyes yeah so what do you want you basically want to do some object recognition right if you want this thing to see recognize patterns then you probably are going to use some pretty trained convolutional neural networks trained maybe on something called image net which is a huge data set of images and and then yeah then you can actually recognize objects right well you want to go a step further you also want to add some outer captioning so what you're going to use here you you're going to use something like recurrent neural networks or long short-term memory things and are you gonna have something called wartooth vac which is basically how to map words into a vector space and then suddenly our dalam I can say well hey I can see for GRS in this plane and that's this auto captioning thing right and you'll see you'll have some image data providers some some neural net providers some some work data providers etc etc now see what let's make it here a bit so let's talk about speech recognition right that's again similar things you want to have a recurrent neural network there you want to have a huge database of speech and you can hear stuff and then maybe you want it to also respond have its own Twitter feed like I know Simon has a few of those bots running around having the Twitter net and then you know use something like hidden Markov models a plurality of providers there as well you can generate text is becomes very quickly these machine learning things especially if you say well what if it's an artist right a bit like Dali or something and I can look at this generative adversarial networks which are pretty pretty creepy that's what I use for this deep fake stuff do styl transforms you're gonna you can basically from quite plain rough sketches you can fill it in with very real world like images so again you want to have people knowing about these this generative virtual Nets and again make them a provider into your system so imagine this doll lava comes to life and then in the end what he wants to become is something autonomous right something that nobody owns and controls and then he's going to give a lot of love to people that feed him data and the nets and and compute power and that's kind of what I thought when I was building ocean protocol so this kind of goes aside with the public messaging we do it's kind of my personal thing that I added to the system so you could say this Dalai Lama is actually a data service supply chain but aren't we all dinner service supply chains or parts of it so you you have all these providers coming in there typically you need like three components you need data compute and then maybe some algorithms that run that compute right and now you can feed it to next stages of your pipeline so this is basically how you would make an how I would make an app on ocean protocol something now we need a lot of components here and it's a very heterogeneous space a lot of providers all of these different types of data computer models that we want to provision so we need to split this up to make it a bit more congested so we kind of call it an inter service network so we kind of want to glue existing services together into this data service supply chains or maybe can cool it solution supply change depending which angle you're looking at the problem right so think about bigger market stripes where a lot of providers are could be web to at three what two and half currently what we fear is a lot of the data a lot of the UX and the data scientists are still in a web to world it's hard to move over to stuff like ipfs and because there's like just a lot of traction you have tensorflow you have Kaggle you have all these existing frameworks and and and so we kind of have to accommodate also for read to write not only about three but as you can see we're working at a service layer we want to connect all these services now what's an IDE your protocol to connect blockchains let's poke it up so we see this as basically a level above polka dot using that inter blockchain communication protocol to connect to all this type of web tree services and now we can use stuff like chain link and other type of articles to connect to web to services and and really focusing on these data orchestration pipelines from a component point of view we have a consumer where we try to take care of the UX or basically we're working a lot with these data science things like what is it again jupiter notebooks and all these tips types of things it's a Python driven environment it's moving a bit more into the JavaScript space as well so most of the drivers you find for ocean protocol are either Java JavaScript and Python because we think that's where our users or consumers of these these applications like on the other side well we kind of have this web 203 web - yeah there are you looking at cloud providers on-premise systems private permission clusters all these things and they have well they have the resource but they of their access control and policies around that as well and now with three well that's worth three right if you have a consent a transaction you basically are granted access to that service are you thinking about i exac enigma falcone all these type of things if you have a wallet you can access a service and then in the middle is where we add a few components to make this a bit more digestible I guess there's three main parts one of them is what we call a decentralized metadata store to just find your data find your assets to store them as a metadata not the actual data itself that stays like on the providers and then we have these things called service execution agreements or smart contracts we made modular it kind of will dive into that later but it's basically how the the policy between the consumer and the provider and then on the bottom we have verifiers that kind of want to check what are those things that should have happened in the service agreement actually happened and one of the components we're using there as well is called a secret store from parity and that's basically you could call it a proxy you're a Christian network using something called a Shamir secret sharing for doing like cluster based encryption now we have one missing component which glues these two worlds together from our site we have web to access control for the word three interlocking communication we're using polka dot as a relay chain so that's kind of the setup and now we have to wire all these things together right what I'll do is I'll go into a few of these components more in-depth so you can see what kind of the decisions in our architecture were we made maybe have some comments or some suggestions that would be awesome so first of all it's something we would call a decentralized a that DNS this kind of the DNA we inherited from big chain DB which is a blocking database it's quite similar here as well we're using a decentralized data store it's it's not too fancy but the interesting thing is everything is labeled with the decentralized identifiers using the D ID expect from w3c decentralized identities in order to make it a bit more global accessible than just within our metadata stores so basically you could go to any identity that you're implementing that spec and drop your mate metadata there so far as assets our identities in the system as well and the only thing you have to do is find a way to resolve the asset or that that identifier into actual metadata so you can go both way you can query find the ID and you can from the D IDE can resolve the metadata the second part that's where we use the most of the solidity code and we call it service execution agreements just because it makes a C in oceans and stuff like that but it has is it makes it you can take this Agreement you can make it modular you can add in kind of what your terms and conditions are in order to fulfill such an agreement and it connects every consumer with every provider so every stage in this pipeline would have an agreement attached to it and the cool thing here is it can then be used as access control forward to ever three but it can also it also has a built-in verification and you can play with incentives and you can put incentive structures within these agreements at the right locations and then the third part is actually saying that well we're not going to provide all these services we're gonna glue them together so we're going to create ocean relay chain that's trying to bundle a lot of these interesting with three services that are already out there into our ecosystem and then of course the messaging protocol that we are tending to use is polka dot and also of course the verification pooled at such a relay chain office so I think the most exciting part of what we've built so far is these Service Association agreements let me give you a bit rundown what it actually means what it is how we built how we implemented in salinity and etc so most of you know things like service level agreements right that's where an internet provider says hey I'm gonna have so much uptime and if not I'm gonna give you an Xbox there's even like servers that are out there for 24 years and that's kind of the highest I found so that's kind of highly available and then there's also recourses right if you if AWS has a downtime for what what is it 1% and they're gonna pay out 30% of Amazon credits which are tokens of course so yet what we're building is it already exists but then on the on the silo side well we're really interested in is of course it's data services solutions and and we're talking about machine learning ai and they also have something like SAS attached to it and there it can be very clever you could for example set up a bounty saying hey a bit like Kegel or something Kegel is a framework that a lot of data scientists are using the same hey I'm gonna put out a bounty if you find an algorithm that performs so well on my hidden data set I won't reveal that but you can submit maybe once or twice a day now you get a bounty well that's super easy to set up with these servers execution agreements you make a bounty contract you say this is my performance function and off we go what our service levels in machine learning well typically is about how do you specify the metadata how do you specify the input formats but sauce about what's the accuracy the performance function and privacy privacy is an interesting beast let's say a private data set and and an algorithm they walk into a bar they're having a cocktail getting a bit touchy and the data provider the algorithm says hey I'd like to train on your data Oh the data provider says I cannot reveal my data oh wait would you then run my algorithm on your site I don't need to see the data I only want to see the verbs response of your data yeah I could do it maybe maybe in homomorphic encryption mode okay and then they're negotiating and getting to a database or something what we recognize here is that a lot of data doesn't want to move data wants to stay where it is there's a few reasons privacy is one but also the sheer volume there is this thing called the FedEx bandwidth at some point it's cheaper to take out your hard drives put it on a truck and move it across the country I'm pumping all the data over the wire like data just has a lot of inertia so that's something we learned from talking to a lot of data scientists so often what you're gonna do is you can bring the compute to the data so you're gonna say that you have a data set hey can I throw my algorithm in your data set and come back with a result and maybe also an attestation that you actually run my data my algorithm on your data so that's that's another topic that we're very interested in how can we prove that the computation happens somewhere off chain and then come back with a result and that that result actually ran on a data set and there's a lot of interesting techniques going from Starke starts to something they call PCPs you can go into multi-party computation and a lot of other crypto tricks which always do one thing they kill true put them on tweets but that's that's gonna get solved right there's a lot of stuff that can go wrong in this in this data date the request wasn't sent wasn't delivered something went wrong in the middle etcetera a lot of unhappy pets and what do you do with unhappy Pat's you hear I just wanted to show that what we're kind of moving away from this typical service level agreement into those errors who are predicting it into what we call maybe web to service with Oracle's like we just saw this chain link thing and there's a lot of cryptographic material you can add and then you can prove maybe certificate or a TLS session you can maybe have staking and loading an incentive on was it actually that Oracle truthful if you go a bit further it's still wet to services but you attest with proofs like CK Starks and are things you can also you can publicly verify that it actually happen and then if we go one step further we go into decentralization which means are we gonna have a lot of replication of the computer gonna have deterministic stuff running etc so we're basically looking at the full spectrum of types of services and how to prove that that service actually run so we're gonna deal with a lot of proof types and all of condition types and we're not gonna make all those proofs ourselves we're gonna basically repurpose them or connect from other networks if Falcone has approved space-time we just gonna connect to Falcone and see whether a proof run and got verified that goes and into our service agreement these agreements well they're kind of we want to make a modular we want to say that well everybody has own terms and conditions so we should make it that these agreements are composable on chain so you'll have one smart contract that has the ability to create a a lot of different brands of these service agreements with different terms and conditions different types of rewards that you can plug and play so this is where we spend a lot of time on in maybe the last few months I'm very bad in copy-pasting these things so the main the main ideas that we're going to work with a challenge and a proof we call it a condition and a fulfillment of that condition think about a condition being here is a hash find me an ounce that hashes to this hash right that's you put something out there on chain for example that says here's a challenge try to solve the crypto challenge here is a public key find me a signature here's a multi-sig that needs to be fulfilled a threshold etc I'm going to show in a few seconds how these things actually reconcile to something useful for machine learn but what I also want to add is these challenges can also add rewards to them if you solve this condition you get the reward if you fulfill that condition you get a reward that's kind of how we can create very dynamic contracts and we can play with the types of rewards play with the types of conditions etc the condition itself we try to keep it very simple it's just a state transition it goes from I don't exist to I exist and nobody really touched me to I exist and I have been cryptographically fulfilled or a timeout X appeared or something like that and or somebody found an anti proof and I go into a board vote and based on these things these things you can create what we call this service execution agreements so what you see here is well everybody here in this on the left side they all have a task because to lock up tokens a curator has to discover a service a verifier has to verify the the service delivered a provider has to provide a prove that he actually did the service and that's ain't going to be verified by the verify and based on a combination of of the outcomes of the fulfillment or the condition what state these conditions are in you can create work functions around that if you do this and this in this you get this our art if you do that and then you get another type of reward so now it's going to boil down to a few more things we want we're kind of into the privacy mode these days so we kept a lot of the data off chain and we put it in our decentralized metadata store and the stuff we put on chain is content addressed has access control on each type of condition and it's actually only taking care of the of the states change so this thing these things are stored on chain as just a hash and a state and they also have a type of condition you're going to they're going to be you can have a lock of art you can have maybe signature a hash etc so what we kind of created was a service bus where people can put these challenges in through these agreements and then others can fulfill these challenges and redeem the reward from that challenge and you can make combinations between those and compose etc so a bit of these compositions at the core the simplest ones we have are called hash a signature at threshold and a query for a query into blockchain communication or chain link is quite interesting you can compose this into more complex types for example a multi-sig but then also payment types and access control access control we currently are doing with true proximity encryption networks sharing session keys making sure that if somebody wants to consume that session key that they need to access get access granted through the proxy we encryption Network which will then flag that hey somebody accessed it and we granted the access and now we communicate with this contract there's a lot of more details in in our github repo if you're interested in one of these things we can compose into more more advanced things like for example if you have hashing and multi seek you can do something like folding if you have payments you can make steak you can make escrow rewards you can build full Oracle's out of these queries and then you can go one step further into composing these into full dowels curve bonds at other types of networks and that's what we are playing now with like different types of conditions and different ways to compose them into an agreement so one of these things you can do is for example a simple escort take agreement saying that hey I'm gonna lock payment if you grant me access I'm gonna release a payment and if you better give me access to that resource before a specific time out we can do also like things with signatures etc this is quite free-floating so what we're doing for the end-user is composing templates out of these things that already exist they just say that hey I just want to have a simple payment or I wanna have a steak or I want to have a lottery or something like that now what we an interesting part is that all these events these conditions might have different types of verifiers coming from different networks from which we don't really want to we're never gonna have the traction by as a single company to make this happen so we're relying on a lot of other networks to provide verification proofs and at the stations if we all gonna push this on if your main chain it's gonna be a bit high throughput so hence looking at power chains to make that validation happen in a pair a chain and having efficient communication purposes as well so this typical way you would set up a side chain or pair chain doing all the verifications of these of these services as lost I also want to see how we built-in incentives or at least playing with them so I'm gonna go back to this dilemma and he's connected through the service agreements with a lot of services and they keep him alive and now this dilemma wants to basically pay back so what we did is we take these service agreements and we can put them in bonding curves if you're not familiar with monikers Simon is there he can always explain you what it is exactly you can convert his C's to 2 NF TS you can put these NFC's under a bonding curve you can add lottery functions meeting rewards and you can start composing interesting value change maybe you want to put this into under if you know that asset value you can maybe create a CDP out of it to create a stable point really make it trying to make it flexible like say that this is a work or the axis you have and this is a reward you can get so that's kind of a few of the things we're playing with yeah it's very exciting it's also interesting to see how these modular compositions play out and what's kind of the optimal scenario there so while we're may be a little bit of about the stuff we're doing next mostly coming from research so we're spending a lot of about verifiable access control on web 2.0 because that's where the data is that's where the day scientists still are and a lot of things there are in research and we have some elementary protocols ready and then we're also looking at how can we prove that somebody run a machine learning algorithm on a service that's not replicated can you prove that an algorithm got trained go test it on a hidden data set and then of course seishun Oracle's like communication between side chain opening the web 3 connection and then in the end we're also spending a lot of time in things like bonding curves and incentives and a combination we will soon have a little blog post about how you can short so bonding curves like creating negative signals and actually short on a bonding curve there's some some tricks we still have to do but shout out to Paul Cole has and then Simon for reviewing and giving him we're also playing a lot around these incentives that we've built into the system and now we need to test them right we need to run simulations on them we need to see how this display out two security audits and then we're also building more like fronting see stuff like Commons that data marketplace funds for data funds for algorithms all that so I think that's kind of it I'll put these slides online as well so there's a few links of more details of each of the components and then you can look it up and maybe contribute or leave a comment or something like that that would be nice yeah that's it have a great evening maybe there's a few questions do we have time left yeah I thanks for the talk it's very rich I'm more into machine learning and data science and you have been presenting a very funny way with a dialogue between the algorithm and the data to talk about federated learning and I would like to know how far you are in the implementation of this federated learning and you know what kind of MPC like Sam multi-party computing the use or do you make use of some library like open mine or whatever yeah yeah so I'll repeat the question I'm basically we're presenting a form of federated learning where the learning happens where multiple data pockets and then gets like some top somewhere the question is what kind of techniques we are employing and one of the things we're focusing most on is on print compute we have something and that we call feed chain which basically is try to secure docker containers have them vetted and they spit out like intermediate proof types or challenges it's something custom we're developing we're also we've been in contact with people working around Starks and snarks what we found there is that for training purpose for extracting gradients and doing by prop that probably won't work on the short run but to evaluate an algorithm with a sample that might end well work other things like open mind yeah for us that's kind of like would be a no-brainer to look at how far they are with MPC or homomorphic encryption and then tied in as a service in the network attached them to a service agreement and just use what they already have and leverages in more complex rich pipelines we're also talking with the guys at enigma which are also on the site of MPC and looking into like secure hardware modules secure heart modules what we found there was a memory requirements are like stringent a little bit you would hit like 500 max to 2 gigs that you can allocate in the Indian clave which for many data science purposes is kind of like tough but then if you really go into a federated learning where you if your algorithm supports federated learning then you probably can use those secure enclaves or smaller things like MPC and homomorphic encryption yeah like a lot of this is going on in research so what we're trying to really first nail is is make sure that we can run on Prem something and we have sufficient guarantees that we actually got run but we can take that offline because that's kind of a longer discussion any other questions for Jaime if we can go back to the slide on unhappy paths because we went kind of like quickly on it the unhappy paths when there's like problems between the consumer and provider yep how do you because some of these are going to be happening basically like off chain so of the network like it's good directly between the two so how do you like what's the dispute resolution process to make sure like to kinda determine which sin in which case we are and how to solve it for the service execution agreement yeah so a typical one an easy one is like the provider that's gonna promise that is gonna do a job puts up steak every time outs at sake its allocated to the consumer that's kind of an easy one you could put up a competition where you say the first one delivers gets the bounty again we're trying to be flexible with that because we don't really know upfront what's gonna play out toe connect and economically afterwards right so we have to have something flexible that we can play around with and that's kind of yeah if you have interesting like incentive scheme as to to make sure that the providers are in some device to actually do their best I'll be through replication through hardware through crypto to proofs or incentives there's a lot of pots you can go feel free yeah okay thank you so much to me yeah give it up for Dimitri so I want to make a small announcement and then give some additional information on the next couple days so first web three foundation just announced our next grant work we granted or issued a grant to soar Mitsui who's going to be building a implementation of the polka dot runtime environment and c++ so this includes yeah so this includes funding for lip p2p and c++ which is which were the only foundation or company in the space giving funding for so that's really exciting and c++ was chosen by summer Mitsu because a lot of enterprise developers maybe don't know go or Russ some of these new decentralized programming languages but they do know C++ so this will help polkadot become enterprise ready and we're really excited about the implications for this so yeah we're announcing that and in the next couple days there's going to be more workshops from the folks that you heard from today so Shawn is going to be giving a workshop with Sergey from Paraty tomorrow on substrate and walk you through a little bit more than the demo today so that's it 10 a.m. tomorrow and then there's also going to be a workshop at 12:30 by Edward Dillon about support contracts and dowse Evo is going to be live code some payment channels and substrate and then on day 3 we'll hear from Jane safe again so chain safe as reminders is implementing both aetherium 2.0 and they're implementing the polka-dot runtime environment so they're doing theirs and go parody's doing theirs in rust and now cermets is doing theirs in c++ and there's also a javascript client so that's that's four different teams around the world and about 120 hundred 30 developers all building core polka-dot tech so that's that's really important something really excited about and then of course eath paris is this weekend so you can come hack on a bunch of different technologies there including substrate and there'll be a lot of prizes and so forth for that so I want to thank you all for coming I think most of all assets and ECC for having us here and I hope all of you guys have a great rest tonight at all the meetups and stuff hope to see y'all around thanks a lot and if you want a t-shirt there's medium/large and XL zip

Automatic transcript — names and jargon may be misspelled.