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

Loading player…

Building A Scalable Decentralized Database Network - Evgeny Ponomarev @ TOKEN2049

TOKEN2049Tue, Oct 9, 2018, 12:00 AM

Transcript

[Music] hello everyone I'm you Guinea from fluence and I wanna talk to you about the decentralized database networks what it is why we need it and how it could be built so blockchain technology is a great thing it can be used to organize wide variety of decentralized trustless networks and it can be used not only to build the crypto currencies like Bitcoin aetherium it can be built it can be used as a foundation or four different decentralized applications and the whole decentralized internet and let think a little bit about what decentralized applications are or for example some great projects try to organize independent Hardware independent resources to a network to a one distributed computational platform and two instead of calculating useless hashes to do some useful work for example scientific computations or rendering video or something else other projects also try to build decentralized web services so it's possible to build a decentralized website that cannot be shut down by any censorship any authority or censorship organization or government and the same thing with for example decentralized messengers it's possible to build a messenger app where your data is never disclosed to any party and for example also data marketplaces are it's possible to build the service where you can store and share and monetize your personal data and keep the data under control without the single point of failure and any initial party access so all of these services are basically used data and they store data somewhere and if we try to store data in a decentralized fashion let's see how it can be how it can be really stored but at first let's think about how it's stored in traditional world so roughly speaking in traditional wrote the data is stored in two flavors structured and unstructured so a structured data is stored in databases and unstructured in files and databases are basically spreadsheets with your data and files are basically black boxes so we don't know what's inside until you open it and the difference becomes essential when you have your data stored on a remote machine so imagine that we are in in a hospital for example and we have a list of patients in our in our database and we want to find those ones who are ready to be discharged tomorrow if all of them are stored in a file we have to download it first then scan through all the file and find find results that we need in and this takes time and in resources so in a database example databases have special index that points to specific entries in our database so we just can look at the index and see and find results that we need and it it does this seem much more faster so if a hospital would have a website it definitely would use a database instead of just keeping all the data in files and but let's get back to our decentralized world we have a blockchain and blockchain basically is a database and let's think can we store big amounts of data in a blockchain and if you look at the numbers that this is like not exact number they are changing every day but to upload one gigabyte of data to public blockchain like a theorem or Bitcoin we need few days and few millions of dollars and this is just we cannot just use it and imagine that we want to create a decentralized Wikipedia to create a public humanity knowledge or for like the tree of any censorship or governments so English Wikipedia compressed takes about 15 gigabytes of data and to upload it to the blockchain we need 100 million and if you take the history of edits it will be 700 million if we take other languages it will be more so we also have decentralized file storage projects this project allows to upload and download files in in a decentralized network but they have the same problem if we want to do some queries some requests to our data we just cannot do that we have only files we have to download it first to our local machine and that's where decentralized database network can be useful and let me give you just a quick impression how it could be built and what challenges we have so first thing is the data application blockchain by design is a fully replicated database so we have nodes and each nodes keeps the same copy of the whole blockchain and that's why it doesn't scale we cannot just copy all the data to all the machines and that's why for decentralized database we can just pick small groups of nodes that will be responsible for particular parts of data so we can organize machines to clusters and that's how we can put like any amounts of data almost in amounts of data to a network we can just create a new clusters for new or datasets and if some node goes offline or becomes malicious or just cut cut of the network by any authority we just have other copies of our data on other machines and data is still online and here a few more challenges next thing is we need a way to verify that our like data is there and our requests are responded correctly because we create a decentralized networks that rely on untrusted machines of independent owners we need a way to check that when we ask a network for some data it responds correctly so we can keep the hash this state of a database on a on a blockchain and not to put all the data on a blockchain and this hash helps a client that don't have any data to check that result that it received from a network is correct neck think is performance in traditional world databases can process thousands of requests per second on a single machine and current block chains like give you few dozens of transactions per second and that's why we need to create the direct communication channels between the clients and the nodes that keeps data and only periodically timestamp the results to a blockchain and it works almost the same as the Lightning Network where you have the direct transactions between two parties and only the results comes to global chain next thing is data encryption because we rely on on untrusted machines or we should have the encryption of our data and in case of files it's or relatively easy so we encrypt file on a client we are plot it to a network and it's protected but if we want to perform queries we want to perform the some requests on top of this data we need to create the encrypted index on top of this data and if we in and this is the I would say active area of research so we we need to find the right balance between data safety and the the type of requests that we allowed to do with our data because if we do some kind of requests we have to disclose some knowledge about our data for example total count of of the entries or one like for example we can we can we may disclose timestamp of our entries and also we have to we need to have the data availability and we need to create the incentive is a ssin layer for data availability to motivate nodes to keep data online so it works like if i'm a client and i store data on some nodes i in this node goes offline and lose my data i have to be compensated in some way and otherwise if i refuse to pay for storage node have to be compensated and that's why before putting the data on the network the smart contract on the blockchain should be created and this contract should be funded by both parties by a client and the node with security deposits and this security deposits works like the insurance and they are paid to to one party if other party lies or operates incorrectly so this motivates both parties to operate correctly and the final thing is we need to have an open market of hardware because different clients can have different more clouds and different data types in different request types and different nodes they have different hardware and open market just allows clients to find the the best hardware and the best no donors to find ideal clients and finally what we have we we have the database network that distributes data across different locations to different two independent hardware owners secures data with end-to-end encryption and effectively reduced price for storage by creating in open hardware market just the few use cases of this so it can be used for any kinds of public data for example as our Wikipedia example or private data as our hospital example or any other personal data business data and anything and few more examples so we can create for example the patient controlled medical records using the decentralized database or we can create the decentralized Wikileaks for example that cannot be stopped by any government or we can process huge amounts of data just because we have almost infinite scalability and yeah that's what we are building at fluence and thank you for your attention [Applause] [Music]

Automatic transcript — names and jargon may be misspelled.