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

Loading player…

Racin W Nygaard: Motivating increased participation with incentives

SwarmWed, Oct 9, 2019, 12:00 AM

Racin Nygaard: Motivating increased participation with incentives This talk will mainly be focused on Proof-of-Storage and a discussion about how to fairly incentivise storage providers. I plan to start the talk by introducing the document storage part of the BBChain project. The BBChain project envisions a global academic database for degree certificates, and to that end aims to verify document authenticity using biometric signatures of the students. Following this introduction I want to have a high-level talk about the properties and features we desire in the Proof-of-Storage / Proof-of-Custody scheme. In particular I want to discuss the trade-offs which we foresee have to be considered in a practical system. Lastly I want to talk briefly about how the PoS/PoC scheme is coupled with the incentive scheme, and provide motivation for why the incentive scheme is the primary mechanism for keeping rational participants contributing to the system. About Racin Racin Nygaard is a Research Fellow at the University of Stavanger. Racin is studying the feasibility of a distributed storage system for authenticated documents based on blockchain technology. Racin received his Master’s degree in Computer Science at the University of Stavanger in June 2018, and has since then worked in the same lab towards his PhD. The topic of the concluding Master’s Thesis was Distributed Storage with Strong Data Integrity based on Blockchain Mechanisms. Recently, he presented a poster paper at ACM SAC 2019, DADS track, titled Distributed Storage System based on Permissioned Blockchain. Racin worked full time as a senior software developer for five years before his academic positions.

Transcript

so thank you for inviting me to have this talk I just have some cheat notes here because I couldn't remember the whole speech but yeah my name is Hasini goat and I'm a first year PhD student at the University of style in Norway and I have a master's degree in computer science and then my thesis I studied blockchain storage systems and currently I'm researching the applications of block chains and with the focus on storage systems so I'm here today because I believe that we are researching many of the same things and I hope that it's possible to collaborate on on some to all come some of these challenges so my talk will be first to talk a little bit about the project which I'm associated with in the university and then I'll go sort of over informal introduction to proof of storage and then try to develop this idea from proof of storage into how it can be used in with the blockchain to form our reputation system and then I'll try to even further develop this and how it can be used in an incentive scheme to increase node participation so Bibi chain it's the project a research project which is a joint effort with the University of Toronto and University of tromsø and it's funded by the Research Council in Norway so part of the VP chain project is to design a global academic database of student decree records and there's two main tasks in this project and the first one is to verify document authenticity using biometric signatures and the second one is to ensure the permanent and verifiable storage of the degree certificates so my job in this project is to focus on the challenge of ensuring that these degree certificates it's permanently available and the one of the challenges which we have is that these degrees might not be accessed for several years and in our design we have sort of separated the storage layer from the agreement protocol or the consensus and additionally we designed the system without making any trust assumptions on the storage nodes and there probably we believe that the only way to sort of in ensure that the data is still there is to use the proof of storage algorithms so in the simplest form the proof of storage algorithm is a protocol between an owner and the storage node where a data owner is asking the storage node if it's holding its data or not so the storage node could either reply yes or no to this answer but the problem here is that we do not have any trust to the storage node so this answer doesn't tell us anything and another solution which would just be to send back the entire file to the owner and have him run the integrity check on his own but this has a difficult bandwidth cost so instead we design an algorithm based on probabilistic proof where we only ask the storage node to tell us parts of the file and if the storage node is able to answer the probabilistic challenge correctly we can infer that he has the whole file so the store Chenault can either answer the probabilistic challenge correctly or incorrectly but if the storage nodes know so sure that it doesn't have the data they will most likely just stay silent and don't answer anything so the informal definition which we use for proof of storage is just to check the if this if the stores not has the data and there are many properties which we want in this scheme but the most important one is to instead it should be impossible for anyone to construct a well proof without being in possession of data and the second property which we have listed here is that it should be able for other ones than the own data owner to issue these challenges and the reason which we want this property is so that the owner can sort of delegate this task to other nodes and then you can sort of upload this data and forget all about it and in swamp this algorithm is you call it proof of custody it's basically the same thing and you can read more in the smash proof paper for the details there but now I'll just go through like a simple protocol which is not really practical but just to highlight some of the properties which we need to sort develop this into incentive scheme so first off we need to handle these incorrect responses so when the owner issues a public challenge and the storage node answers incorrectly what can the owner do obviously it's a big problem for him because now his data is lost but in a system he can also maybe cast this message to the other nodes so that at least no one else tossed the data with them but what happens when the storage node has the data but the owner still claims that it wasn't so the the storage node in this case can also claim that you know the owner is lying but for a third party listening indeed it doesn't give any value because he has no idea who we should believe so therefore we need this property called public availability and the idea behind this is that you can verify both the messages given by the owner and the storage node so it is possible to verify both the proof and the challenge but here I'll just show you an example how you can build the public verifiability for the proof using the blockchain so we have the same protocol but now instead initially the owner writes the expected proof he wants onto the blockchain and then it carries the same probabilistic challenge and now the storage note also writes the proof to the blockchain and then this third party can just check the blockchain and he will immediately know what was the challenge what was the correct proof and from the other side who is correct but obviously this is not the most practical solution because writing to the blockchain is expensive both in terms of the computation that you need and also the might be some transactions cost so to overcome this we want to minimize the amount of data we need to write and to do this we can sort of infer the correct responses and again we can start off by the owner writing they expected proof issuing the probabilistic challenge but now the storage node can just as the Proteas answer into a digital signature or use the digital signature to sign the answer send it to the owner and then the third party can listen in and see that there is no complaints list does not be like any complaints given to about the storage node and then he can just assume that he's bearing correctly but if the owner finds out that actually is not behaving correctly he can put this signed answer onto the blockchain and the third party can than listening so when you're inferring this you are making the assumption that there will be much purer incorrect answers than the correct answers and this the assumption here is of course that if if he's only giving incorrect answers he's not having a lot of revenue anyway so to build the reputation from the proof of storage we sort of realized that the proof of storage give us both the measure of integrity and availability integrity because that's essentially what you're checking with proof of storage and availability because only those notes who are online is able to respond in a timely fashion and with this public variability property only those notes everyone in the system is able to check the challenges and the proofs given and from Delic and infer the behavior of the storage nodes and if anyone read the Columbia paper here they claim that a node which has been online or the longer node has been up the more likely it is to be online for another hour and we sort of make the same assumption for reputation so to illustrate how this reputation scheme could work is that we have three possible events a correct response no response or incorrect response and each of these affect the reputation of the nodes here I'll just assume that they are linear but there should be some more complex function because the consecutive event events matter huh so anyway the nodes start off initially and from each block which is the answers are inferred for each block then the reputation of each node changes but just to clarify it is not the actual data to written to the block is just what is inferred by the third parties listening and also here I've written that they're sort of a wone everyday but this is not necessarily though it's just sort of clarify that should be some causality between these events so we believe we can use this to sort of build the incentive scheme and our goal for the incentive scheme is that we want to have an interactive system which motivates correct behavior and also we believe that to increase the participation we must open the system to the diverse participants so that not only those with very high bandwidth or very high capacity can join but that the threshold for joining should be much lower and we're also looking at a scheme which do not require you to have such Lodge deposit because we think that if you require very large deposit then you might exclude some some participants because they might not be willing to put up so much money because they could just go and invest it elsewhere so we realized that of course it's a different sensory system we cannot use simple fault tolerant models we need to use a Byzantine fault tolerant model and we also have the constraint in our internet system that any node can join and leave at any time and you can just create a new identity and then there's not any you cannot put a claim to a node because you can just recreate this identity at any point so in our vision we need to use the power model and here we have three actors the Byzantine nodes which are sort of can arbitrarily fail at any point the altruistic nodes which always follow the protocol and you have correctly and the majority is rational nodes which only does what benefits them so the to get the non-rational nodes to follow the protocol we need to have an acceptance incentive scheme which benefits them so the we are the incentives in the fundamentals is that it's a way to either encourage correct behavior in the notes or to penalize behavior with not one what it's cutting out or a combination between them so we also realized that there's an inherent cost from notes to participate in the system so the rewards must be at the minimum greater than the cost for participation so traditionally in blockchain systems the most common way is to vote out money for example in mining a bit and the more you mind the more money you earn but we sort of look at this reputation and we we see that this is sort of a way to sort of increase business opportunity because in the real life if you have a good reputation amongst your peers that they are more likely to trust you or collaborate with you and also we we think that having a reputation gives you some kind of stake in the system if you are able to increase your revenue for by having this reputation and therefore we think that having loss of traction is soft can be comparable to having the loss of a large deposit as long as the reputation or actually I can generate some revenue for you yeah so then I just want to give an real example of example of an incentive scheme in the storage market so this is the real price examples taken from storge and dropbox and there is some misalignment of the terms here but just to clarify the first or Jade the amount given the bottom is how much the storage node can earn but for Dropbox it's how much the client has to pay so in all this example there's one terabyte of data stored so in storage it they have this fixed pricing thing where they have defined already what how much you earn for storing every foot per terabyte of data and also how much you earn for serving any data so the example to the left we have arrival node which is just storing one terabyte of data and there's no uploaded download just the necessary proof of storage challenges and in the streaming example in the middle there's a 6th terabyte of monthly access and this means that you're able to download your full 1 terabyte of data 6 times and here you the note is actually earning 128 dollars and that reason we chose exactly 6 terabyte is that on the Dropbox example you are allowed to have 200 gigabyte download every day and if we multiply this by 30 you end up it sort of a 6 terabytes so here you are playing only $9.99 for a similar kind of service so the idea behind this is just to show you that if you have a fixed pricing scheme it's very difficult to to set the correct price and you might end up being running yourself out of business because you're not very flexible and you might also cater to a specific type of storage type so in this example it's much more beneficial to be a streaming type note and archival type notes the other chairmen share is that who is actually responsible for setting the price and at least me it seems like there should be like some central authority which sets this price and this is in not exactly what you want in a decentralized model so instead we are looking into having a decentralized marketplace where the sort of both the owners and the storage node can compete for the price and have the typical supply and demand model with the storage node publish the price for the service and then the data owners in the storage node can sort of negotiate and come to agreement on the terms via a smart contract and this this terms is a very flex flexible notion but in our example with the degree certificates we want these terms to include some promises which encourages archival storage so we have just made some model here with with the potential earnings of the storage nodes and the key idea here is that a node with high reputation is rewarded more for serving the same amount of chunks and as you can see on the very left there the nodes have a very high potential earning even though they are not serving any chunks and similarly nodes which is very far right I can earn a lot revenue even though they not have a high reputation means that they are not online all the time so we believe that we need sort of some kinds of scheme like this to reward the nodes in our case because our data will very rarely be accessed and we don't want this kind of thing where nodes are able to delete the content which is not access very often and then they can just get the content which is more frequently downloaded and then we have a lot of thing with how to have this litigation process and everything but instead we want to sort of make the note unwilling to delete any data because he's rewarded more but just storing the data which is not very often accessed and then the problem here is which you see at the bottom the pink area that this means that the node has too low reputation to be able to earn anything and the question is of course how can on new note get into the scheme here so we are looking at having some kind of proof when a new notes don't the system that he has to sort of publish his computational power his upload them with paranoid just to say that he is a strong node or not so strong node and the idea here is that the stronger note you are the more or the less likely are to just join the system and leave again for for no reason and also you sort of limit this possibility of a civil attack when node can just create new identities to try to disrupt the system so lastly I just want to mention some of the research which I plan to go to do going forward so the first thing is to look at some ways where we can sort of move the task of challenging storage nodes onto the storage nodes themselves so that they are responsible for proving to others that they are storing the data another is regarding with this reputation system I mentioned where we think that there needs to be some kind of minimum frequency of the challenges which you issue so that you can maintain this reputation and the study errors of course to find if there is a limit and in case what is the minimum frequency and lastly this privacy-preserving bullet point it's not concerning the privacy on the blockchain or on the storage node but rather what happens to degree degree certificate after its downloaded and shown to someone how can you serve limit the exposure of the degree certificate of chain so that's what I had for me thanks for your attention if you have any questions feedback also be I'll also be at a hackathon F thank you for the presentation in the beginning of the presentation you have mentioned about the proof of custody could you explain it you mean the proof of custody protocol yeah well it's kind of integrate the whole protocol but it's based on these merkel proofs and they cannot cannot not give you the same the exact protocol right there but it's in the paper and so maybe any link link 1 link will be enough Alec yeah I can send you the link it's ok on the variant documentation ok thank you this match is called the smash proof the paper these two questions related kind of to this on which primitives are they proofs constructed is it per chunk or are the chunks aggregated somehow and second of all is the system designed to be compatible with this warm building blocks or is it a standalone solution that you are presenting so so here I'm just talking about sort of the general idea for our system that well to go back to you first if it's per chunk or per file or aggravated assault depends on what is the storage model if it's only storing a chunk or it's bit storing the entire file and that's how you can build this disproof but I had some more slides but I didn't have enough time but the point is that you want to have a few of these storage challenges as possible because they consume a lot of bandwidth and computations or you want to aggravate as much as possible so one idea we have is that even though unnoticed may be storing a chunk from Mary different files you're possible you can aggregate the whole challenge and just challenge the whole data set the storage notice is holding this is just to complete the answer from Rossi like we came here so we work together and we are trying to be the collaboration which one with we I don't know at this stage if we will have a separate system or we will build with swarm but yeah that's idea of coming here presenting our problematic and see how can we collaborate together any more questions so as I understood it's about certificates do you prove who is the issue of the certificate and how do we do that that's actually the project of another PhD student who is not here so the BB chain project actually includes like three sub projects they are insufficient is to them working on distributed systems and making a framework to facilitate the distributed systems to be developed in a in an easier way because nowadays complicated the second student is working on the verification and he is now working on a small contract he was also studying there the sovereign network but currently is much more on the idea of small contracts but yeah it is recently started so and the ricean who is working on the part of incentives and proof of storage I'm a postdoc they are and yep any any further questions okay well thank you very much for asking

Automatic transcript — names and jargon may be misspelled.