What is Datum?
A decentralized data store, think of it as alternative to a cloud database. As well as a data trading protocol allowing you to monetize your users data.
What can I do with the Datum SDK?
Current functionality includes a distributed key/value store, data is stored off-chain in a network of storage nodes, with on-chain guarantees around proof of storage and optionally proof of access and proof of sharing/sales
Why does this need Blockchain?
Blockchain enables a few key things: No one controls the infrastructure, users control and own their data, tokens are useful for micropayments to distribute rewards to users for sharing data.
Isn't storing data on Blockchain expensive and slow?
Ordinarily yes, however Datum only stores hashes of data on the blockchain and provides direct, fast, access to the storage node network so access times are reduced to similar figures of cloud databases
Can Storage Nodes read my data?
No, all stored data is encrypted and storage nodes do not know what they store and cannot decrypt the data.
Why not simply use a cloud database?
Data in cloud databases is prone to leakage and attacks, there is still a significant amount of maintenance involved, there is no encryption out of the box. Cloud Database are under central authority and prone to data access requests, modifications, tampering etc.
Why not just use IPFS?
IPFS provides no storage guarantees and no encryption.
Do you have some examples of apps that could benefit from your data store?
Many use cases can take advantage of a secure decentralized data store, for example: Electronic Health Records, Advertising Solutions, iOT Data Sensor Networks, personal data marketplaces, open social media platforms, open data analytics platforms etc. What will you use it for?
Is this GDPR compliant?
Yes, Datum can be used in fully GDPR compliant scenarios. You can delete data (Right to be Forgotten), we only store data with user consent and provide clear consent, we allow data portability (export of data by user), we provide data transparency (what data is stored, who accessed it, who bought it).
What Blockchains is Datum available on?
Currently Datum is available on Ethereum, we plan to support EOS, NEO and others in the future.
How can I access data?
The Datum SDK offers a simple Map like API with set/get/remove functions
How much does it cost to store data?
Currently fixed at equivalent of 5 USD (in DAT Tokens)/GB stored and 1 USD / GB downloaded. In the future storage nodes compete to offer the lowest storage and bandwidth costs
Who pays for data storage and transaction fees?
You as developer pay for storage and transaction fee's on behalf of your users. You put a deposit of DAT tokens into the Datum Smart Contract and pay only for resources as they get used. Optionally you can require the user to pay for storage and transaction costs (note adoption barrier around requiring users to pay)
Where can I get DAT Tokens to pay for storage?
You can get free DAT tokens for test networks from the faucet. DAT for the public network can be acquired from various cryptocurrency exchanges.
What happens to data on the test network?
Assume data on the test network to be deleted at any point in time.
Can I run a local test network or a private network version of Datum?
Currently no but planned for the future.
Who owns the data?
By default data is owned by the data source, usually the user, and encrypted with the user's private key. Optionally you can define different ownership terms.
Can I (developer) delete data?
You can delete data on Storage Nodes, a record of the hash of the data stays on the immutable Blockchain Layer. Depending on data policies you can or can not delete a users data without their approval.
Can the user delete data?
By default a user can delete data of which he is the owner, but can be overriden and restricted by data policies.
Do you have Objective-C/Swift/Java/Python libraries available?
When will public storage nodes be available?
Public storage nodes will be available by 31 August 2018
How can I know which storage nodes currently have my data?
Use the Datum Block explorer or Public Node API directly to get a list of storage nodes for a given data hash
How can I control which storage nodes save my data?
Currently by default your data is replicated to 3 storage nodes at random, in the future you will be able to define the number of replicas as well as characteristics of storage nodes like geographical locations and quality of service.
Do you have a trust rating or other analytics on storage nodes?
A rating and performance/reputation system for storage nodes will be implemented as part of Datums Proof of Storage algorithm.
Is my data secure?
As long as you keep your private key safe your data is secure. All data is encrypted with a randomly created symmetric key using the AES256-GCM cipher, the symmetric key is then encrypted with public keys of owners and accessors using an Elliptic Curve Digital Signature Algorithm, aka ECSDA , the same cipher that underpins the security of Ethereum.
Is my data guaranteed to always be available and never be deleted?
Your data storage is guaranteed for as long as its paid for, it is possible however that storage nodes go offline (for which they are punished by slashing of their stake), with sufficient replicas there should always be a copy of your data available. However it is good practice to plan for a backup strategy.
How fast is it to store data?
To persist a data hash to the blockchain layer currently takes around 4 to 10 seconds. In the future and with faster Blockchains this time will decrease. Reading data from Storage Nodes is much faster and only bound by bandwidth/latency from your users location to the particular storage node.
How can I sell my data?
Data trading functionality is not yet available. A data trading protocol component to build your own data marketplace will be available soon.
What is a Datum Identity?
Each user of the Datum Network, including you as a developer, is identified by a Datum Identity which follows the W3C Distributed Identity standard. The identifier for each Datum Identity is a MNID.
What's a MNID?
A multi network ID, essentially an Ethereum Address encoded with information bits for network and version, it can be encoded and decoded any time. The advantage of an MNID is that if users enter this address into a normal cryptocurrency wallet a transfer will not succeed, preventing invalid transfers across public and private networks.
What is a claim?
A claim is a cryptographically signed statement of some "authority" (anyone can be an authority, depends if you want to trust the authority) about a certain fact.
Can I always access data that my users store through my app?
This depends on the policies set for a specific piece of data, but by default a user can remove you from the accessors of his data.
What structure does my data need to be in?
Your data can be in any format, string or binary, json or yaml etc. The metadata is json by convention.
Can I store multiple records of data with the same key name?
Yes, you can store multiple records under the same keyname and optionally enable or disable storage of historic records under the same keyname
Can I search through stored data values?
No, data is encrypted. Some search functionality is planned for the future.
Can I aggregate stored data values?
No, aggregation is planned for the future
What information about my users and data is public on Datum?
Your users Datum Identity is public, key names are public by default. Data itself is encrypted and not public. Metadata is public.
Can I keep my key names and other metadata of my data secret?
Currently No, but in future yes, you can choose to keep key names and other metadata encrypted so that only your user and yourself as developer can decrypt it
Where can I see what data my users have stored?
Check the Datum Block Explorer