Showing posts with label Data Storage. Show all posts
Showing posts with label Data Storage. Show all posts

Tuesday, April 28, 2015

Honoring Contracts with the Blockchain

Emergence of Smart Contracts
contracts.jpg
Contracts erect the framework of partnerships. Clearly established expectations and goals drive plans into completion. Trust is established by a legal obligation to perform the duties and responsibilities outlined in the contract. Decentralized networks are trustless and could create new forms of contracts. Oracles are programs that verify specific inputs are entered and validated before releasing pre agreed outputs. These outputs could be a payment for a service, a release of funds, or the outputs could create new contracts. Bitcoin can create distributed contracts via the blockchain. In a separate blog I wrote about a decentralized job board, LivelyGig, that could monetize individual tasks for outsourcing. This is a separate contract agreement for micro tasks that stays within LivelyGig’s network.

An oracle is only a script, a function awaiting desired inputs. The only limitations of a contract are the constraints outlined in the agreement. A smart contract uses the outline of the agreement to contain releasing an output (payment) until a certain prerequisite has been met. When prerequisites are met in a smart contract, finalizing payment is only delayed by human interaction. The owner of the private key withholding payment in a smart contract must have no interest in the contract for the agreement to be completely trustless. This is the opportunity for new services offering oracle smart contracts to emerge. A company, SmartContract, emerged late last year and are one of the first to offer smart contracts.

You are the district manager for a regional business branch. You have received word that servers are down across your district and a technician must be dispatched to repair the network immediately. Your servers are located off site and in a remote part of the district and it would be impractical to send an employee to troubleshoot. A solution could be formed by using micro task payment channels and oracle contracts provided by decentralized services. Combining the automatized payment of oracle created contracts, with a payment system for micro tasks and you have a new system for sending contractors to remote sites to fix equipment. The contract would await specific inputs before providing payment. A GPS location can provide an input that the contractor arrived on site. An additional input can be created once a specific metric is reached (operational performance being restored). After the job is complete the output (payment) can be sent to the person who completed the contract with no additional involvement from the district manager required.

smart_poperty.png

This example is not too far fetched and is a practical application for a service that does not quite have a large market at this time. Oracles have an autonomized payout by verifying inputs from each party. The service that creates the oracle will need a private key to verify that the transaction inputs are The oracle in the previous scenario can be set to pay out once connection can be reestablished with a specific server.

Wednesday, April 15, 2015

Properties of Bitcoin


Collecting firewood in


2.5 Billion people are without a traditional banking system. The rise of bitcoin in the last few years have started conversations about what constitutes a valid currency and how new currencies create value. Bitcoin is a useful form of money that can be exchanged regardless of the origin of the participants involved in the transaction. The characteristics of money are defined by scarcity, divisibility, portability, durability, fungibility, and recognizability. Bitcoin meets the requirements to be considered a viable form of money. As no central authority owns the bitcoin protocol, a transaction can be recorded on the blockchain that ties ownership of a good to the owner of those bitcoin. This creates a new value creation tool for goods that previously were not able to be traded outside of a regional market.


The properties of bitcoin are defined by mathematics, rather than value based on material goods or issue by a central authority. The value created by these algorithms  molds a currency that only relies on trust and the level of adoption. The adoption of bitcoin is measured by the frequency of users, merchants, or other parties exchanging the currency and the level of acceptance. An increase in the frequency of bitcoins exchanged does affect the price.


Bitcoin’s price is created by supply and demand. As demand for bitcoin fluctuates, the price will also change. When demand for bitcoin decreases, so does the price. There will only ever be 21 million bitcoins created. This creates a predictable rate of how many bitcoins will enter the market and inflation can be predicted if demand does not match the level of inflation. If the level of demand does not match the changing level of inflation, the price will fluctuate. Bitcoin’s overall market share is relatively small, and because of this small pool of currency, the price can become volatile when significant amounts of money are exchanged.

File:Hadrian Denarius.jpg


If bitcoin as a currency does not reach a high level of adoption, it can still hold value. Romans used the silver denarius as a means of exchanging currency and the coins still hold value today even though the coins are no longer in circulation. As long as there are people using bitcoin they will hold value. The usefulness of bitcoin boils down to trusting the reliability of the decentralized ledger and using bitcoins that are validated and recorded on the blockchain. Transactions being recorded on the blockchain, verified, and posted are referred to as blocks. It takes approximately ten minutes to solve, or validate, a block. There is an analogy I enjoy using from a talk Andreas Antonopoulos gave at MIT that describes the adjusting difficulty of validating a bitcoin transaction.



The analogy begins by describing a room with 50 people, each with their own Sudoku puzzle. The amount of rows and columns have been calculated to have the Sudoku solved in approximately 10 minutes. A reward is posted for the first person to solve the puzzle at 25 bitcoin. As the timer begins people have started to walk towards the front of the room to have their puzzle solution validated as correct. After 9 minutes of continuous attempts someone shares the correct solution, and is paid 25 bitcoin. The next round begins and someone solves the puzzle in 8 minutes. The puzzle is made more difficult as rounds are being solved faster than ten minutes. More rows and columns are added to the puzzle to adjust the time taken to solve the puzzle on average. After a few more rounds, a large crowd enters the room and now 500 people are attempting to solve a puzzle in 10 minutes. More rows and columns are added to the puzzle to adjust for the number of new players. The players are randomly guessing and checking their answers until the correct answer is discovered. That random element is also used in the bitcoin protocol as cryptographic nonces assign values to each transaction so it can be verified.

Test (assessment)



These basics give an overview of the technical complexity of bitcoin. Financial inclusion will increase for unbanked individuals as more consumers begin to use bitcoin and adoption increases. The ability to increase financial inclusion without the risk of fraud, laundering, or other negative financial disruption is unique feature that bitcoin offers. Economic uses of bitcoin are just the tip of the iceberg for the usefulness of the technology. Read other posts on the sidebar or an expanded look at how blockchain technology is affecting other industries.

Tuesday, March 17, 2015

Data Storage with Blockchain Technology

Storage Capabilities of Cryptographic Networks

Blockchain Cloud Storage



Distributed cloud storage is not a new service that was created by the emergence of Bitcoin. Cryptography is used today by large cloud storage firms to secure data, but the network structure of these firms is different then Bitcoin cloud services. Data is stored remotely on servers owned and maintained by a company offering storage services. The core difference offered by a Bitcoin cloud service is the blockchain ledger that records Data Inputs and Outputs. Data shards are audited while accessed, automatized when indexing, monitored by decentralized consensus, and secured by using cryptography.

Storj - Website


Decentralized autonomous organizations (DAO) offer new avenues to store data digitally. DAOs use a consensus protocol, built into bitcoin transactions, to grant access to data stored with their service. Storj encrypts portions of a file into the leased hard drive space of miners. Those encrypted portions of files are defined as shards and stored in the leased hard disk space. A shard is typically 8-32 MB in size, and may be further modified depending on outside file-sharing auditing requirements. A 32 MB shard does not necessarily mean that all 32MB are the contents of one file. Shards can be combined to create more fluid data flow of specific client information. Majority consensus of the network will allow the data to be recalled if the correct keys are presented. Consensus of the network is accomplished by Proof-of-Storage and Proof-of-Redundancy.

Visualizing storing data on Storj (Whitepaper)

Proof-of-Storage Consensus

Merkle Roots are recorded on transactions (See Below)
To create a trust-less data storage network, Storj uses Proof-of-Storage versus Proof-of-Work that is common in solving Bitcoin algorithms. Proof-of-Storage provides reliability that the data was not tampered with while being stored. Data shards are formed into Hash Challenges, a Merkle Tree is created and the Merkle Root is recorded on the Blockchain. These hashes act as the Heartbeat when providing proof of ownership. A miner that is using space for data storage is given a Merkle Tree without it's leaves. When the shard a miner's seed contains is referenced, the hash answers on the miner's Merkle Tree are verified before data is transferred.
Hash 01 and Hash 23 are "hearthbeats"
The client divides the file into individual hash challenges. The added values of each hash must match the unique hash answers in each Merkle Tree. The client periodically reissues seeds to farmers to verify that shards have not been altered. If a client alters a portion of their data, a different hash answer will be generated and that seed will not produce the correct hash answer. Storj uses predetermined heartbeat combinations that provide access to the contents of the Merkle Tree.

Proof-of-Redundancy

Information transcribed inside a Transaction
Cloud Storage companies today lease space on their servers using RAID schemes to protect from network or physical failure. Storj uses redundant storage of shards to provide the correct shards if multiple nodes are offline. Shards are stored on various nodes connected to each file, each shard contains different values for each hash. Storing files on a blockchain allows a user to compare contents of a file between to frames of time. Small meta-data is inserted into a blockchain transaction which can be referenced for external auditing purposes. This redundancy, provided by K-of-M erasure coding, compares the total # of shards contained in a file to the # of shards recorded when the file was input into a transaction.

Users can determine how many farmers they wish to share shards between. A farmer in this network is a user that has leased disk space to store shards. Farmers are paid in SJCX cryptocurrency on Storj's network. SJCX does not have the same value as a Bitcoin but SJCX values are broadcast on Bitcoin exchanges. Farmers are allowed to price the disk space that they provide, at a competitive rate compared to other farmers on the network. Less important data can be shared between 3-4 farmers at low cost. More important data can be secured with hundreds of farmers each with competitive storage and processing capabilities.

Cleversafe - Website

Compare Storj to other encryption dispersed storage models and research how nodes are validated to see the transparency decentralized ledgers provide. Cleversafe offers All or Nothing (AONT) encryption which enables the entire file to be accessed once a node threshold is met. This is the same erasure code that is used to grant access to Storj files that are separated and encrypted. The difference is the integrity of each node is dependent solely on Cleversafe’s algorithm. Blockchain node integrity is transparent, broadcast on the blockchain and is paired with a network consensus which removes central authoritative controls.


The usefulness of encrypted cloud storage offerings are dependent on the information stored. Smart Contracts and negotiations of those contracts are a future feature of the Storj network. Alternatives to conventional practices will spur innovation in both sectors. For more information on Bitcoin companies and blockchain topics, check out the more articles from previous topics on the Navigation Bar.