Ethereum White Paper Explained. Part 3

Ethereum White Paper, Explained. Part 1 & Part 2 aimed to help you understand how the Ethereum ecosystem works, now let us delve into the applications of the Ethereum Platform.

Ethereum has three main applications.

  • Financial Applications

These include currencies, derivatives, contracts, wallets, wills and could even include employment contracts.

  • Semi-Financial Applications

This category involves partial inclusion of money along with a non-monetary aspect. An example would be automatic bounties on finding solutions to computational problems.

  • Governance

Online voting is a possible use case for the Ethereum ecosystem.

 

Token Systems

Tokens have numerous use cases for sub-currencies such as USD, gold, equity, property, coupons and even tokens with no conventional means of value which might be used for incentives. Token systems are quite easy to be implemented on the Ethereum platform. The logistics involved on how the tokens work is well explained in Part 1 & Part 2. The ledger subtracts units from one account and enters units into another.

You can find the basic code implemented in Serpent below:

def send(to, value):
if self.storage[msg.sender] >= value:
self.storage[msg.sender] = self.storage[msg.sender] – value
self.storage[to] = self.storage[to] + value

This is an implementation of a state transition function that works as a banking system. You enter a few lines of code to program conditions of how the currency units are distributed or for numerous other use cases.

 

Financial Derivatives and Stable-Value Currencies

Financial derivatives are one of the most common applications of smart contracts. They are quite easy to be implemented in code as well. One challenge here is implementing contracts that can refer an external price ticker.

Consider the following example:

A smart contract that hedges against the volatility of ETH with USD as the base currency. This application, however, requires one to know the value of ETH/USD traded on an exchange. This can be done by a data feed that is maintained by a third party designed such that the third party can update the price of the contract as and when needed. Other contracts can ping the data feed and get back a response that provides the price.

The contract would look as mentioned in the Ethereum white paper and is pretty much self-explanatory.

  1. Wait for party A to input 1000 ether.
  2. Wait for party B to input 1000 ether.
  3. Record the USD value of 1000 ether, calculated by querying the data feed contract, in storage, say this is $x.
  4. After 30 days, allow A or B to “reactivate” the contract in order to send $x worth of ether (calculated by querying the data feed contract again to get the new price) to A and the rest to B.

Such contracts have high impact use cases in crypto-commerce. Most users stay away from cryptocurrency due its high volatility. Users want the security and convenience of cryptocurrencies, however, the idea of losing 10%-20% of value in a single day is unpleasant. The most common solution used up until now are issuer-backed assets. The idea involves creating a sub-currency that they hold the right to issue, revoke and provide units of the currency to a seller who provides them with one unit of another asset. For example, these assets could be Gold or USD. Although they can be modified to accept a vast number of assets as well. The issuer then exchanges one unit of the sub-currency to one defined unit of the physical asset. This allows numerous different assets to be converted into cryptographic assets and exchanged for value. However, it all depends on the trust and reliability on the issuer.

Cryptographic financial derivatives act as our knight in shining armor in this scenario. They provide an alternative. Instead of a single issuer, we can use a market of traders betting on the price of a decentralised asset like ETH. Speculators do not default while trading as the smart contract holds their funds in escrow. However, this source is not fully decentralised, as we rely on a third-party source to provide the price of ETH. This is still a major improvement and reduces the potential for fraud when compared to issuers that cannot be trusted.

 

Identity and Reputation Systems

Namecoin was one of the first alternative cryptocurrencies that tried to use a Blockchain similar to Bitcoin to provide a name registration system. This allowed users to register their names in a public database with other data. Other use cases include mapping domain names to an IP Address, email authentication and advanced reputation systems.

The following code is for a Namecoin like registration system on the Ethereum network:

def register(name, value):
if !self.storage[name]:
self.storage[name] = value

The smart contract programs a simple database inside the Ethereum network where data can be added, but not modified or removed. Thus, maintaining the immutability feature of the Ethereum platform. Any registration made against a name with some value will be stored on the blockchain forever. A sophisticated program may allow other smart contracts to query and fetch data from it, it may also allow the owner to change or transfer ownership.

 

Decentralised File Storage

There are numerous popular online storage services. Services like Dropbox, Google Drive let you upload a backup of your hard drive on to their centralised servers for a monthly fee. Sure, they have a free storage facility up to a certain size limit, but most the data that we need to store on the cloud exceeds this free storage. Ethereum contracts provide a much better tradeoff for developing decentralised file storage ecosystems, where users can earn money by renting out the free space on their own hard drives.

An example of such a contract on the Ethereum network would work as follows:

  1. Data is split into blocks, encrypted and a Merkle tree is built.
  2. Every N blocks, the contract picks a random index in the Merkle tree, then gives some ether to the first entity to supply a transaction with a simplified payment verification; like proof of ownership of the block at that index, in the Merkle tree.
  3. If the user wants to download their file, they may use a micropayment protocol. This can  be as low as 1 szabo per 32 Kilobytes.
  4. To pay less gas fees, the payer would replace the transaction at the end of 32 Kilobytes with a slightly more lucrative one in order to fetch more data.

It might seem like trust is distributed among random nodes so that the file is not forgotten, but this risk can be reduced by splitting the file into many pieces and watching the contracts to check if each piece is still in some node’s possession. If there is enough ether in the contract and it is still paying out money, that is enough proof that the file is still stored somewhere according to the programmed protocol.

 

Decentralised Autonomous Organizations

The concept behind a DAO (“Decentralized Autonomous Organization”) is that a certain set of members or shareholders, perhaps with a 67% majority, may spend the funds of the entity and modify its code. Members will come to a collective decision on how to allocate the funds of the organization. This may range from bounties, salaries, to even more complex mechanisms like rewarding internal work. It tries to replicate the functioning of a company by using only Blockchain technology as the solution. Most discussion surrounding DAOs has focused on the capitalist model of a DAC (Decentralized Autonomous Corporation) with shareholders who receive dividends. An ideal alternative, however, is a Decentralised Autonomous Community where all members have a share in decision making and where they require at least 67% of existing members to add or remove a member.

Following is a general outline of how to code a DAO. A simple design is a piece of code that can modify itself when two thirds of members agree on a change. The code is immutable, however, there is a work around. Code can be divided into separate contracts having de-facto mutability and the addresses of each contract can be stored in mutable storage. This would allow us to mix and match code from smart contracts in order to change the code. There would be three transaction types as mentioned in the Ethereum White Paper:

  • [0,i,K,V] to register a proposal with index i is to change the address at storage index K to value V
  • [1,i] to register a vote in favor of proposal i
  • [2,i] to finalise proposal i if enough votes have been made

The contract would store clauses for each of these. It would maintain a repository of all open storage changes along with the list of people who voted for them. This would accompany a list of all members. Whenever a storage change would get the bare minimum of the members voting for it, a final transaction would execute the change. Further sophisticated features would include built in voting ability for sending transactions, adding/removing members, delegation of votes, etc. This would let DAOs grow as a decentralised community.

 

Further Applications

There are numerous applications on the Blockchain and following are a few instances:

  • Savings Wallets

Alice wants to keep her funds safe but worries that someone might hack her private key, or she might lose it. She transfers ether into a contract with Bob who will act as a bank in this scenario.

  • Alice alone can withdraw a maximum of 1% of the funds per day.
  • Bob alone can withdraw a maximum of 1% of the funds per day, but Alice can make a transaction with her key, shutting off this ability.
  • Alice and Bob together can withdraw anything.

Normally, 1% per day is enough for Alice, and if Alice wants to withdraw more she can contact Bob for help. If Alice’s key gets hacked, she runs to Bob to move the funds to a new contract. If she loses her key, Bob will get the funds out eventually. If Bob turns out to be malicious, then she can turn off his ability to withdraw.

Such conditions can easily be programmed into an Ethereum smart contract.

 

  • Crop Insurance

A Financial Derivatives contract can be made using a data feed of the weather instead of a price index. A farmer purchases a derivative that pays out inversely based on the precipitation in any selected area. If there is a drought, the farmer gets paid and if there is rain, crops will do well which implies the farmers business is safe. Farmers can essentially hedge their businesses. This use case can be expanded to natural disaster insurance as well.

 

  • Decentralised Data Feed

There is a protocol called ShellingCoin that lets you decentralise data.

The working of SheelingCoin is mentioned below:

N number of parties enter the value of ETH/USD in a system and everyone between the 25th and 75th percentile get rewarded with a token. This way, any person will only get the incentive if they give the answer that everyone else provides. Theoretically, this protocol can create any number of values.

 

  • Smart Multisig Escrow

Multi signature transaction contracts are where, for example, at least 2 out of 3 keys are mandatory to spend the funds. On the Ethereum platform a lot of more complex conditions can be programmed. Being a Turing complete language, the programming capabilities of Ethereum are limitless.

 

  • Cloud Computing

Ethereum can also be used to create a computing environment, which will allow users to carry computations on other systems on the Ethereum Blockchain, optionally also asking for proofs for computations done at random checkpoints. This allows creation of a Cloud Computing market where anyone can participate. This kind of computing, however, is not suitable and recommended for all tasks

 

  • P2P Gambling

Peer to Peer Gambling protocols can be implemented on the Ethereum Blockchain. There are numerous Ethereum gambling websites that are already exist.

 

  • Prediction Markets

Prediction markets are also easy to implement. They allow you to bet on the prediction of a certain outcome and which is then verified on the Blockchain and those who predict correctly are rewarded.

 

  • On-Chain Decentralised Marketplaces

Such marketplaces use identity and reputation systems as a base.

 

This concludes the third part of the Ethereum White Paper series. Stay tuned for more updates on the BBOD and follow us on Twitter.

Fundamental Pick: Neo

 

Image result for neo logo

 

BUILDING THE INFRASTRUCTURE FOR A NEW INNOVATIVE SMART ECONOMY 

 

BBOD RATING [10/10/2018]


BUY: A low-risk buying opportunity

OVERVIEW


Currency Code NEO
Transaction Start Date 09/09/2016
Total Supply 100,000,000
Circulating Supply 65,000,000
Protocol Type Base Blockchain
Base Protocol NEO
Where To Buy Binance, HitBTC, Bitfinex, Bibox

 

THE NEO ECOSYSTEM


NEO is a non-profit, open source Blockchain platform which aims to build the infrastructure for an innovative new smart economy. The project was founded in 2014 by CEO Da Hongfei and CTO Erik Zhang, backed by their now notorious Chinese firm Onchain, which undergoes Blockchain research and development in Shanghai. The project started out as the first Blockchain platform in China coined Antshares, before the founders decided to rebrand to NEO in an effort to appeal to a more global market. NEO understands that community development is the most essential aspect of any efficient Blockchain ecosystem and so have placed a great amount of emphasis on expanding their global developer community at a rapid rate. The project now supports such a community with side projects including City of Zion (CoZ), NeoResearch and NEL, who aim to continuously develop the ecosystem to make NEO one of the best functioning Blockchain platforms in the world.

 

THE SMART ECONOMY


In order to achieve the vision of a new smart economy based on a distributed network, NEO aims to utilise Blockchain technology and digital identity to digitise assets, automating these digital assets using smart contracts. Thus, NEO aims to convert real-world assets such as property, vehicles and physical possessions into digital assets recorded on the NEO Blockchain in the form of smart contracts, that can be verified to unique individuals using their digital identity. As a result, such digital assets acquire the ability to be traded, transferred and registered (to name a few use cases) via a distributed network, allowing global peer-to-peer agreements to be made efficiently and with ease. Not only does this open up a global market for digital ownership of assets, but it also provides immutability not possible when often untrustworthy centralised intermediaries are involved, creating a digitalised, programmable and trustless economy. Whilst some might be suspect to such a drastic change to the status quo, NEO’s purpose is not to destroy traditional Chinese institutions. Instead, they aim to help gradually transfer the Chinese economy into the smart economy of the future.

 

NEO APPLICATIONS


DIGITAL ASSETS 

As previously mentioned, in order to facilitate their smart economy NEO aims to convert traditional assets into digital assets on the NEO Blockchain. Digital assets are programmable assets which represent a traditional asset in the form of a smart contract. By converting traditional assets to digital assets individuals no longer need unnecessary intermediaries to transfer ownership between parties, exchange value or register an asset to a particular individual. Instead, the inherent trust of NEO consensus algorithm allows assets to become fully decentralised, traceable and transparent. All of this is possible due to NEO’s digital identity system which connects individuals to physical assets via digital certificates placed on the NEO Blockchain. Ultimately, digitalising assets allows individuals from all over the world to exchange physical value seamlessly without the need for a third party. This eradicates traditional fees associated with centralised authorities and provides liquidity from a globalised market.

 

DIGITAL IDENTITY 

Digital Identity will allow NEO to accumulate the information of willing organisations, individuals and other entities in electronic form, to create a digital fingerprint for such parties in a highly secure manner stored on the NEO Blockchain. As a result, once they are baked into the Blockchain, the identity documents will become tamper-proof and impossible to destroy. Such digital identity will then be utilised by parties using highly secure multi-factor authentication methods such as fingerprints, voice and facial recognition in order to digitalise assets themselves and exchange value of existing assets. The concept of digital identity allows organisations and individuals to transact knowingly with one another without needing to trust them. Moreover, assets registered using NEO’s digital identity system can be protected by law due to the transparency of ownership. This innovative solution combining law with a trustless system ensures all digital assets are unconditionally verifiable to parties and cannot be seized.

 

SMART CONTRACTS: THE ETHEREUM OF CHINA?

Whilst many have coined NEO ‘The Ethereum of China’ there are some key differences. Although both platforms provide similar functionality, allowing developers to build smart contracts on top of their existing platform in order to create dApps, NEO allows a much more diverse set of programming languages to be utilised. For instance, if one wishes to build a dApp on the Ethereum Blockchain, they will need to learn Solidarity, Ethereum’s unique programming language. Comparably, in order to create a dApp on the Neo Blockchain, one can utilise a variety of widely used coding languages including Javascript, C#, Python, Java, and Go. The ability for developers to code smart contracts without needing to learn a new coding language significantly reduces the high barriers to entry in the industry by eradicating the time it takes to learn a new distinct language. This opens up a global pool of talent who already have the ability to program smart contracts with ease. Looking forward, this should allow for many more dApps to be deployed than possible on the Ethereum network which should grow the NEO ecosystem exponentially.

 

CATALYSTS


Prominence Within China: The Chinese economy is growing at an exponential rate, with the Chinese government placing a strong emphasis on innovation within the financial-technology (FinTech) sector. Already meeting with government officials, NEO has placed itself at the forefront of this development. Other platforms such as Ethereum will incur high barriers to entry when seeking to penetrate the Chinese market, due to the inherent language barriers and cultural differences. Hence, a homegrown Chinese platform such as NEO has the potential to gain substantial market adoption within China, especially when they place a strong emphasis on respecting Chinese regulations alongside business and cultural norms.

Universal Programming Language Support: Many existing Blockchain platforms require developers to learn a unique programming language in order to build smart contracts on their platform. This excludes a wide number of businesses from developing dApps on their platforms, due to the obvious cost and time of learning an entirely new coding language. To the contrary, NEO affords developers the ability to program smart contracts using numerous traditional programming languages, substantially reducing the cost of implementing smart contracts into existing business practices. This removes the high barriers to entry for businesses looking to enter the Blockchain ecosystem, which could lead to widespread adoption.

International Partnerships: Despite being based in China, Neo has managed to garner support from international tech giants. For example, Microsoft Azure partnered with NEO in order to attract talented developers to the platform from a global community. Such large-scale partnerships are likely to further bolster their standing within China, drawing attention to the platform from other tech giants within the local Chinese business community.

 

RISK FACTORS


Chinese Regulation: Although China is keen to be at the forefront of the Fin-Tech revolution, with a strong focus on Blockchain for business purposes, they do impose strict regulations on cryptocurrencies. For example, in the past year, they banned ICO sales within the country alongside unregulated cryptocurrency exchanges. Despite this, NEO places a strong emphasis on ensuring they comply with all necessary government regulations and now appeal to a global market of developers, limiting internal risk and the ability for businesses outside of China to develop on their platform.

Keeping Pace: The environment for Blockchain platforms has grown exponentially over the past year as a result of the clear success of Ethereum’s platform. Global competition is now incredibly saturated and if NEO wishes to keep pace with other platforms they must ensure that they attract the best talent to their platform. Nonetheless, with an incredibly strong brand name, an increasingly global community, significant developer bounties and by utilising a universal known coding language, the platform looks set to compete with other well-known platforms within the Blockchain ecosystem.

 

CONCLUSION


The Neo platform has positioned itself to become the world-leading provider of smart contracts for the smart economy of the future. By allowing businesses and individuals to digitalise assets, verified by their digital identity, NEO has the potential to cut out unnecessary intermediaries in the transaction of value and ownership of physical assets between parties on a global scale. The ability to program smart contracts in a variety of traditional programming languages gives NEO a real edge over many large players within the industry who require developers to learn an entirely new language. As a result, the platform has the potential to see widespread adoption by businesses and individuals who simply do not have the time or funds to learn a new language. Thus, as the global community continues to grow, NEO looks set to have a bright future ahead of itself.

 

BBOD RATING STANDARD


BUY: A low-risk buying opportunity

ACCUMULATE: An opportunity to buy a medium risk cryptocurrency at a low price

SPEC BUY: A speculative opportunity for investors with a higher risk tolerance

HOLD: Maintain current levels of position until further research is published

SELL: Investment is associated with the potential of losing capital

 

DISCLAIMER


BBOD Research is an independent cryptocurrency research-house. The company has not received any remuneration (cryptocurrency or otherwise) in preparing this analysis.

This report has been prepared solely for informative purposes and should not be the basis for making investment decisions or be construed as a recommendation to engage in investment transactions or be taken to suggest an investment strategy in respect of any financial instruments or the issuers thereof. This report has not been prepared in accordance with the legal requirements designed to promote the independence of investment research and is not subject to any prohibition on dealing ahead of the dissemination of investment research under the Market Abuse Regulation (EU) No 596/2014. Reports issued by Trade the Future Holding (“BBOD Research”) or its affiliates are not related to the provision of advisory services regarding investment, tax, legal, financial, accounting, consulting or any other related services and are not recommendations to buy, sell, or hold any asset. The information contained in this report is based on sources considered to be reliable, but not guaranteed, to be accurate or complete. Any opinions or estimates expressed herein reflect a judgment made as of this date, and are subject to change without notice. BBOD Research will not be liable whatsoever for any direct or consequential loss arising from the use of this publication/communication or its contents. Trade the Future Holding and its affiliates hold positions in digital assets and may now or in the future hold a position in the subject of this research.

 

 

 

 

Bitcoin Scarcity: Perception Vs. Reality

Earlier this year the press flooded the internet with articles stating that only 20% of total Bitcoins remained to be mined, causing a frenzy of fear of missing out for those who were not already invested. They were correct, 80% of the total fixed supply of 21 million Bitcoins set by mysterious Satoshi Nakamoto was now accounted for, with the 16.8 millionth transaction occurring on the 13th of January 2018. Despite this, many news outlets failed to convey how that, with time, Bitcoins would become increasingly more difficult to mine as a result of minings inherent complexity and the diminishing reward scheme over time. As a result, many have suggested that a vague approximation of the last Bitcoin block to be mined will take place in 2140. This article aims to ensure that market participants are aware of the facts surrounding Bitcoins fixed supply, the evolution of mining Bitcoin and how scarcity, or the perception of it, could affect demand in the future.

Bitcoins 21 Million Hard Cap

Unlike in traditional nation-state economies, Bitcoin operates in an entirely decentralised manner with a fixed supply. Whereas a central bank usually issues currency as they wish – according to the growth of the number of goods which are being exchanged in the economy (commonly known as Quantitative Easing). Bitcoin is produced at a predetermined rate defined by the initial algorithm that was implemented by its anonymous creator. The algorithm has set rules which cannot be altered. As such, how the currency is created and at what rate was inherently finalised at inception. Hence, one can be certain that only 21 million Bitcoins will ever be created.

The certainty of the fixed supply of 21 million Bitcoins can be explained as follows. Bitcoins are created every time a miner discovers a new block. Since the first block on the Bitcoin Blockchain was created (otherwise known as the Genesis Block), the rate that blocks have been mined has adjusted every 2016 blocks in order to maintain a two week adjustment period, as six blocks are created per hour. The total number of Bitcoins generated per block is predefined to decrease every 210,000 blocks by half, equating to approximately four years. These predetermined conditions mean that the rate of new Bitcoin created exponentially slows down over time and ensures that no more than 21 million Bitcoins will ever be created.

(Source: Controlled Supply: Timeline Estimation)

 

The intentional decreasing supply algorithm was chosen in order to introduce the concept of digital scarcity to the cryptocurrency. Certain individuals compare Bitcoins scarce attributes to precious metals such as Gold. For instance, as time passes large quantities of Gold are becoming increasingly impossible to find without large-scale investment. This process continues until the cost of sourcing Gold almost outweighs its market value. Capturing this phenomenon in the digital sphere is no easy feat and thus scarcity is one of the defining characteristics of Bitcoin. It should be noted that the concept of scarcity is not widely seen in the cryptocurrency marketplace, projects like Ripple, Nem and Lisk released all coins into the market at once.

The Evolution of Bitcoin Mining

To continue the analogy of Gold, in order to obtain the raw material huge amounts of physical effort must be expended to mine the scarce asset. In Bitcoin, this equates to the large amount of computational power which is necessary to solve extremely complex mathematical problems in order for a new block to be created. Hence, those who endeavour to solve such challenges are coined ‘miners’.

As discussed previously, every 210,000 blocks miners receive half the reward for solving a new block. When Bitcoin was originally created in 2009, miners received an astonishing 50 BTC for solving a block as a reward for being innovators within the space, albeit with much easier equations to solve. For instance, when Bitcoin was first released in 2009, an average retail computer would have been able to mine approximately 200 BTC in a few days. Nowadays, it would take the same computer 98 years to mine just 1 BTC. As a result, such mining is not as available to retail clients as it was previously. Instead, more industrial institutions have moved into the market with Application Specific Integrated Circuit (ASIC) computer configurations to maximise the amount mined. This truly displays the exponential increase in difficulty in a relatively short space of time.

(Source: Controlled Supply)

Today, miners receive 12.5 BTC as a reward for solving a new block. The next ‘halving’ event is expected to take place in 2020. As this process unfolds, miners will receive less and less reward for the blocks they create whilst the equations they need to solve will become increasingly complex, thus requiring much more computational effort and expense. This intentional paradox implemented by Satoshi ensures that the supply of coins cannot rise too quickly. As previously stated, the last block will be mined in approximately 2140. Consequently, with Bitcoins supply remaining constrained until 2140 and demand likely continuing to rise, as a result of Bitcoins scarcity amongst numerous other factors, the value of Bitcoin is almost certain to increase exponentially over time. This ensures that Bitcoin is an excellent store of value, once again similar to Gold.

How Scarcity Affects Demand

Undoubtedly, scarcity has had a great impact on the demand for Bitcoin and this will feed into the self-perpetuating snowball effect as time goes on and supply continues to decrease. As with any limited supplied asset, when the underlying resource becomes harder to source, the scarcity of supply causes significant demand for the market when the asset is perceived to have value. As previously suggested and widely acknowledged, Bitcoin is now viewed as a desirable store of value comparable to Gold. Thus, with only 21 million Bitcoins ever to be created, the market shows, or certainly will in the future, a significant gap between the number of individuals who wish to purchase the asset and the amount available. As this process unfolds, digital scarcity will make Bitcoin exponentially more valuable over time.

To further perpetuate this, individuals perception of Bitcoin scarcity over the actual reality will only increase the rate of adoption. It won’t be long until we see headline articles stating that only 15% of all Bitcoins ever to be created have been already been mined. No doubt the masses will hoard the asset once more, before they feel it is too late. The fact of the matter is, as displayed in this article, the supply of Bitcoin rapidly slows down with time, as the complexity of solving blocks becomes increasingly difficult and miners are rewarded less. Bitcoin will continue to be mined until the approximate year of 2140. Hence, there is still plenty of time to invest. As Bitcoin continues to be recognised as a store of value and understood and adopted by the layman, one may wish they invested sooner rather than later.

Conclusion

This article has aimed to bridge the gap between one’s perception of the scarcity of Bitcoin and the actual reality of the matter. There is no denying that the majority of Bitcoins have already been mined, yet the excellence of the mysterious creators’ code ensures that supply cannot be created too quickly. This inherent attribute makes Bitcoin an excellent store of value, akin to Gold, yet in the digital sphere. Something truly pioneering and unique in our digital world. Instead of investing for the fear of missing out, perhaps we should marvel in the astonishing technology behind the project itself. Either way, one can be certain that the price of Bitcoin will increase as its supply slowly decreases whilst people perceptions remain unchanged.

Check out the BBOD Research Blog for more similar articles.

Fundamental Pick: Quantstamp

 

Image result for quantstamp logo

PROVIDING MUCH-NEEDED SECURITY AUDITS FOR SMART CONTRACTS

BBOD RATING (04-10-2018)


ACCUMULATE: An opportunity to buy a medium risk cryptocurrency at a low price

 

OVERVIEW


Currency Code QSP
Transaction Start Date 21/11/2017
Total Supply 976,442,388
Circulating Supply 617,314,171
Protocol Type Application Protocol
Base Protocol Ethereum
Where To Buy Binance, Huobi, Kucoin, IDEX

 

PROBLEM TO SOLVE


Currently, the development of smart contracts is left solely in the hands of those who create a blockchain project. Although such contract creators are often highly skilled in their field, the potential for oversight of vulnerabilities in their code is highly possible as a result of a single point of failure, with only a few individuals ensuring optimal smart contract security.

The importance of auditing smart contracts efficiently cannot be understated. Without such a mechanism, projects that are backed by huge sums of investors money could be vulnerable to attack once deployed on the Ethereum network. For instance, Quantstamps whitepaper presents two notable hacks where $30 million and $55 million were respectively stolen, as a result of flaws in smart contract code. This is the exact scenario Quantstamp seeks to prevent. With the creation of new ERC-20 tokens being a continual process, and only set to increase in volume in the future, Quantstamp’s services are likely to be in high demand.

 

SOLUTION


Quantstamp aims to solve smart contract impenetrability by creating the leading decentralised protocol that will provide security auditing for smart contracts based on the Ethereum network. In essence, Quantstamp allows developers of smart contracts to submit their work to their protocol where numerous security auditors can review the contract, in order to receive QSP tokens as a bounty. The level of auditing required is set by the initial developer who pays such fees to any individual who identifies a problem within the smart contract.

As noted in Quantstamp’s whitepaper, traditional smart contract auditing is extremely expensive, costing on average $5000 and taking up to a week to complete. By spreading the workload amongst numerous security experts, Quantstamp aims to considerably lower the cost of auditing and substantially decrease the amount of time taken to complete

 

APPLICATIONS


When the project launches in Q2 2019, Quantstamp protocol will comprise of two main types of security audit. Firstly, their software verification system that is entirely automated will scan Solidity programs for bugs. The software is designed to become more intelligent over time as the result of artificial intelligence, allowing it to catch attacks of increasing sophistication. Secondly, Quantstamp will automatically provide a bounty to human participants in the form of QSP tokens who manage to find vulnerabilities in smart contract code. Human auditors receive compensation for their efforts and Quantstamps clients ensure the integrity of their cryptocurrency project.

This multifaceted approach combines the best of artificial and human intelligence to form a strong alliance to fight against any proposed security threats. Thus, clients of Quanstamp should feel much more confident in the overall strength of their network than if merely working as sole actors.

 

SUMMARY


Quantstamp seems to have uncovered a gap in the market that needs to be filled. The project has the potential to become the leading security auditing protocol. This could provide the level of trust the community needs to feel safe in investing substantial amounts of money, by confirming a project is safe from attacks that currently plague the industry. With support from Binance, already completing numerous security checks for ICO’s launched on their exchange, the project looks to have a great future ahead of itself and is certainly one to keep a close eye on.

 

CATALYSTS


  • Proven Ability: CEO Richard Ma and CTO Steven Stewart have extensive experience in software security testing and smart contract development
  • Academically Respected: The team as a whole has over 500 citations in Google Scholar regarding software security
  • Proof of Concept: Numerous successful audits have already been completed for Binance clients, indicating substantial interest in the project
  • Growing Interest: The expansion of mainstream interest in smart contracts will attract more security threats in the future that need to be addressed
  • Expanding Market: The continual introduction of new projects using smart contracts ensures an expanding target market

 

RISK FACTORS


  • Foresight: The Ethereum network may not always be the leading smart contract platform, the project could consider expanding to include Ethereum’s competitors
  • Low Supply of Able Workforce: Currently, the talent pool within the blockchain space is minimal, with demand far outstripping supply, finding enough auditors to become scalable could become an issue
  • Competition: Not the only project trying to lower the cost of smart contract development, although the projects rigorous emphasis on security is unique

 

EVENTS


  • 30th April 2019 (or earlier): Quantstamp audit network launch, as described in the whitepaper

 

CONCLUSION


In the continually evolving blockchain industry, unique problems to solve are always present yet often missed. Quantstamp’s vision to provide much-needed security to smart contracts is certainly a valid addition to the blockchain ecosystem. By decentralising auditing work and splitting traditionally expensive costs and knowledge amongst actors, Quantstamp could substantially improve the security of smart contracts moving forward, whilst providing a discounted price.

With numerous successful audits already completed for reputable firms on the Binance platform, the project has the potential to become the go-to protocol for contract creators seeking network security in years to come. As the market for smart contracts continues to grow, Quantstamp could become an incredibly lucrative endeavour for investors if this holds true. Certainly, one to keep on your radar.

 

BBOD RATING STANDARD

BUY: A low-risk buying opportunity

ACCUMULATE: An opportunity to buy a medium risk cryptocurrency at a low price

SPEC BUY: A speculative opportunity for investors with a higher risk tolerance

HOLD: Maintain current levels of position until further research is published

SELL: Investment is associated with the potential of losing capital

 

DISCLAIMER

BBOD Research is an independent cryptocurrency research-house. The company has not received any remuneration (cryptocurrency or otherwise) in preparing this analysis.

 

Bitcoin ETF Proposals Possess Substantial Market Influence

gold-colored Bitcoin on book

Before July, one could be forgiven for being confused by the prospect of a Bitcoin ETF being introduced into the cryptocurrency ecosystem. Almost three months on, however, such ETFs have become synonymous with the term Bitcoin. To claim naivety of the ETF proposals at this stage risks entirely misinterpreting current market conditions. This article aims to ensure market participants are completely aware of the facts thus far including what exactly a Bitcoin ETF entails, when they are likely to be implemented and how they will impact the overall market.

 

ETFs Defined

Exchange-traded funds, commonly known as ETFs, are a traditional investment vehicle offered on all major stock exchanges around the globe. The most notorious example of such a fund is the well-regarded S&P 500 on the New York Stock Exchange (NYSE). They allow exposure to an underlying asset or basket of assets offered in the form of a security that is proportionally represented by the funds’ shares. Most importantly, they allow exposure to a market without needing to physically hold or store the underlying asset, which is left up to the fund. For many years now, ETFs have become one of the key mainstream methods for passive investment by the masses in mainstream markets, as they are commonly associated with lower investment risks than individual stocks.

Indeed, as ETFs allow an individual to buy a basket of multiple assets, they mitigate strong price swings which individual stocks often suffer from, especially in the incredibly volatile cryptocurrency market. Any losses from assets which do not meet up to their promise are counterbalanced with assets which have performed particularly well and the growth of the overall industry during that period. Driving up the funds share price over time. The notorious investment tycoon Warren Buffett once proved the power of ETFs with a successful bet that the S&P 500 would outperform a collection of well-regarded Wall Street hedge funds over the period of a decade. His victory truly displayed to the masses the power of such funds.

 

Bitcoin ETFs Market Impact

One of the major barriers to mainstream cash inflow into the blockchain ecosystem has been the lack of institutional investors ability to purchase assets using traditional methods. Many do not understand that such market participants are simply not going to risk their hard-earned capital on unfamiliar and unregulated cryptocurrency exchanges, there is simply too much at stake. Instead, institutional money will enter the space once they can acquire cryptocurrencies without needing to hold the underlying asset, in a highly regulated and fully insured manner. Thus, for institutional investors crypto ETFs mitigate the risks of the industry whilst allowing them to profit from one of the greatest financial revolutions one will likely see in their lifetimes. Make no mistake, institutional investors want to get involved in the ongoing revolution, they simply want to do so in a highly regulated and safe fashion.

Although the impact of such institutional investors on the market will likely be of a speculatory nature in the first instance, this huge influx of money to the market will bring much-needed market exposure. The media love to shame the cryptocurrency ecosystem as much as feasibly possible, calling it a scam or a fad on a regular basis. Such institutional money would bring credibility to the entire industry and allow well-respected entities who have been quietly investing in the cryptocurrency space to come out of the woodwork and into the spotlight. Ultimately this could lead to mainstream cryptocurrency adoption long term, as a result of the perceived integrity of the industry as a whole.

 

Bitcoin ETF Calendar

Issuer Company Filing Date Status SEC Date
“Physically” Backed by Bitcoin Holdings
Winklevoss Bitcoin Shares Winklevoss Cap Mgmt 01/07/13 Denied 26/07/18
VanEck SolidX Bitcoin Trust VanEck & SolidX 05/06/18 Postponed 30/09/18
Bitwise HOLD 10 Cryptocurrency Index Fund Bitwise 24/07/18 Awaiting Approval Unknown
Derivatives Based
GraniteShares Bitcoin ETF GraniteShares 15/12/17 Denied 15/09/18
GraniteShares Short Bitcoin ETF GraniteShares 15/12/17 Denied 15/09/18
Direxion Daily Bitcoin 1.25X Bull Direxion 05/01/18 Denied 21/09/18
Direxion Daily Bitcoin 1.5X Bull Direxion 05/01/18 Denied 21/09/18
Direxion Daily Bitcoin 2X Bull Direxion 05/01/18 Denied 21/09/18
Direxion Daily Bitcoin 1X Bear Direxion 05/01/18 Denied 21/09/18
Direxion Daily Bitcoin 2X Bear Direxion 05/01/18 Denied 21/09/18
Evolve Bitcoin ETF Evolve Funds 21/09/17 Awaiting Approval Unknown

The table above displays cryptocurrency ETFs which are currently laying the foundations for their approval. Such firms are on a waiting list ready for their hearing with the U.S. Securities and Exchange Commission (SEC), who will ultimately determine their fate. The notorious Winklevoss twins fund has already been turned down for the second time as of the 26th of July. Following this, the SEC has denied a following 9 applications, predominantly from Derivatives based ETFs such as GraniteShares and Direxion. Such a decision results from their perceived inability to provide significant liquidity due to their market size, which could lead to significant market manipulation.  

Despite such dismissals, the most important ETF which market participants should be fully aware of is the VanEck SolidX Bitcoin Trust who plan to release their ‘physically’ backed ETF on the notorious Chicago Board of Options Exchange (CBOE). Recently, the SEC hearing date was postponed to the 30th of September. The CBOE has true industry influence as the largest options exchange in the world and have proven themselves in the cryptocurrency market by introducing their Bitcoin futures market in late 2017. They have meticulously studied the failures of all previous ETF denials and reviewed their application accordingly. If an ETF is likely to get approved this year, this will most likely be the one.

Despite all the hype, some sceptics suggest that ETF delays are usual, with Copper being the last ETF to pass through the SEC. With their reasoning, the likelihood of an ETF being approved in 2018 is minimal. However, regardless of whether a decision happens in the next few months or not, the market has certainly been responding rapidly to both positive and negative news. The first Winklevoss twins ETF denial news caused a flash crash which quickly corrected, whilst the delay of the major CBOE proposal caused a more prolonged fall in Bitcoins valuation. Ultimately, the market appears to be in a stalemate until a further delay, approval or disapproval occurs. The latter would likely cause a long-term downtrend, whilst an approval could see prices increase exponentially. As the 30th of September looms, the market tension builds. Be sure to have a plan for all situations to ensure one maximises or minimises the ETFs impact.

 

Centralisation Undermines The Most Fundamental Principle Of Blockchain Technology

airport-bank-board-534216.jpg

 

Blockchain technology promised users the ability to become their own bank, yet the majority of exchanges which allow individuals to purchase cryptocurrencies are entirely centralised.

This is a fundamental problem plaguing the industry currently, with centralised exchange hacks occurring on a far too frequent basis. For example, the colossal Mt. Gox hack of 850,000 BTC, Bitfinex’s loss of 120,000 BTC and more recently the Bithumb breach, the 5th largest exchange by volume at the time. Such events indicate that no matter how established the exchange, there is always a possibility of being infiltrated by hackers, after all this may be the most profitable heists of all time, as Bitcoin continues to increase in value.

The problem here is simple, just like with traditional institutions, all of your money is held in one or several accounts, which can easily be targeted by hackers to great effect. A single point of failure.

Whilst traditional firms have heavy measures in place to avoid such attacks, they are still vulnerable. Yet at least such firms provide consumers with reassurance, if your funds are stolen, they will be replaced. This is not the case with the majority of cryptocurrency exchanges, someone hacks the exchange, you lose your entire account. Will you get refunded? Maybe. When? Who knows.

Surely there must be a solution to such a problem, after all, can you really call yourself a proponent of blockchain technology when you may as well be handing over your precious money to a central bank. Let us consider our options.

 

How Fully Decentralised Exchanges Work Using Blockchain Technology

 

THE IDEAL

Dissimilar to centralised exchanges, decentralised exchanges are not controlled by one single entity. Instead, they are distributed over the entire Blockchain network that they utilise. This ensures that a decentralised exchange does not possess any of their customers’ funds or information and so are impossible to hack or shut down. They simply match trade orders for consumers by utilising a certain blockchains smart contract system. Thus, entirely decentralised exchanges live up to the libertarian promise of a free society where individuals are their own bank and they inherently avoid censorship from any third parties such as governments seeking to seize control. Pretty awesome right? Why aren’t they used more often then?

 

THE REALITY

Usability

First, they are difficult to use for the consumer, with the high barriers to entry in the Blockchain space already, centralised companies like Coinbase have thrived from attracting new money through their simple user interfaces and user experiences. No need for understanding a public or private key, just connect your bank account and buy some crypto. Unfortunately, this approach is far more appealing, who wants to understand how the technology works as long as it functions? Early adopters perhaps, but not the majority. Here we are again at square one, with our funds in the control of a centralised authority.

 

Functionality

Second, decentralised exchanges offer limited functionality compared to their centralised competitors.  Unfortunately, entirely relying on distributed networks has not yet allowed exchanges to offer certain essential trading utilities such as stop losses and limit orders, two things the majority of traders simply cannot function without. Additionally, the number of different cryptocurrencies on offer are often largely limited to a select few as result of the point to follow.

 

Lack of Liquidity

The shortcomings of usability and functionality lead to decentralised exchanges not being able to encourage the trade volume necessary for an exchange to function as it should. There are often difficulties finding a counterparty to match one’s trade order, resulting in missed opportunities and aggravated traders. The less liquid the cryptocurrency in general, the less likely one will find a counterparty to complete their trade.

 

THE STATUS QUO

At first glance of the ideal, one might question why most exchanges who supposedly support a decentralised future are living in the centralised present.  But after thorough analysis, it is clear that Blockchain technology and its ecosystem simply isn’t ready to handle the complex functionality and underlying usability that traders desire. Maybe in years to come full decentralisation will be feasible, a world we should all strive to live in, but for now, it simply isn’t.

So, how can one be in control of their own funds whilst enjoying the complexities and subtleties of centralised trading? Enter the hybrid trading model.

 

Hybrid Trading

This model brings with it the best features of both the decentralised and centralised models. One can become their own bank and possess sole control of their funds whilst enjoying the functionality and usability of centralised platforms. No more exchange hacks, no authoritarian governments have the ability to seize funds or close accounts, complete financial freedom. Integrate such liberty with powerful means to profit from one of the biggest financial revolutions in human history and you are onto a winning combination. So how is this all possible?

 

Decentralised Custody

First one must understand the concept of decentralised custody. Utilising Blockchains that allow for the creation of smart contracts, Hybrid Trading Platforms, such as BBOD, merely settle profit and loss from a personal distributed wallet by employing the functionality of smart contracts. Here, one creates a set of defined rules which auto-complete when such rules are met. In this case, settle profit and loss every 24 hours between different counterparties.

Such personal wallets are inherently impenetrable as they are distributed over the entire chosen Blockchain ecosystem, BBOD utilises Ethereum’s. In order to hack one account, you would have to hack every account simultaneously, much like the Blockchain itself, an impossible feat when networks are distributed over millions of computers.

Thus, BBOD users become completely in control of their own funds in an incredibly secure decentralised manner and can choose to withdraw money from their personal wallet at any time.

 

Centralised Trading Engine

Second, one must understand the concept of a centralised trading engine. Here transactions are settled off-chain utilising the mechanism commonly used on centralised exchanges. For instance, BBOD utilises a custom trading engine built by well-respected GMEX, which can handle more than a million transactions per second with latency of less than 25 microseconds.

Essentially this ensures lightning fast transaction speeds between parties, avoiding the pitfall of the functionality of decentralised exchanges. Additionally, BBOD’s user-interface is extremely user-friendly allowing traders of all levels to utilise the platform.

 

CONCLUSION

This article has discussed the pitfalls of centralised exchanges, the pro and cons of fully decentralised exchanges and the overwhelming benefits of hybrid trading platforms, such as BBOD.

Now one must ask themselves how much trust they want to place in the hands of centralised exchanges. Do you want to be a victim of the next centralised hack? Blockchain technology has afforded us the ability to be in control of our own funds, so why not utilise this capability for the security and freedom that it allows.

BBOD offers users financial freedom and the opportunity to get involved in the ever-evolving cryptocurrency revolution. Be sure to make the most of being an early adopter.

 

 

How Do Ethereum Smart Contracts Work

smart contracts.jpeg

 

Most of us must have used the term ‘Smart Contracts’ in a blockchain discussion with colleagues or friends without completely realising the impact Smart Contracts can have on the entirety of the socio-economic framework our society thrives on.

We have mentioned multiple times in this blog that Blockchain as a technology is revolutionary.

We refrain from calling ourselves maximalists of any particular cryptocurrency. Rather, you may call us blockchain/crypto maximalists.

Coming back to the topic at hand, you may already know by now what Blockchain is and how it works. If not, feel free to read our previous blog posts. Now, let us delve into a more intriguing topic of what are smart contracts.

 

What are smart contracts

Quoting Wikipedia,

“A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible.”

The above definition basically states that smart contracts as the name suggests are contracts that can be programmed, verified without third parties, are trackable and are immutable unless explicitly mentioned in the contract.

There are numerous blockchain platforms that let you create custom smart contracts for varied use cases. Some of them are Ethereum, Hyperledger fabric, R3 Corda, Stellar, Achain, etc.

 

How do smart contracts work

We will now try to understand smart contracts right from its inculcation.

Smart Contracts were first introduced by cryptographer and Computer Scientist Nick Szabo in 1994. A rough idea of smart contracts could be understood by analysing vending machines. You select a particular snack and enter the appropriate amount into the machine, the snack then presents itself to you. Just like that, magic.

However, sometimes the machine fails (mainly because of poor programming and centralisation), something which is tackled very efficiently when it comes to blockchain.

A Smart Contract needs several mathematical moving parts for it to function seamlessly.

  1. A Blockchain platform – for it to perform and verify transactions on chain
  2. Public Keys and Private Keys – the Smart Contract must have access to the private keys that it plans on controlling.
  3. Conditions – Clear conditions must be defined by the Smart Contract so that relevant transactions are carried out. (a simple if loop on the blockchain)

Smart Contracts are highly beneficial in a wide variety of domains as they let you create contracts that are secure, fast and are standardized for numerous use cases.

The use cases of smart contracts are so vast that we would probably need more than one post to elaborate on each of them. However, we will try to cover as much as possible in one post.

We will define this with 3 different examples that will adopt Smart Contracts in growing stages.

  1. Minimal
  2. Partial
  3. Complete

Let’s take a real-life scenario where smart contracts could possibly be used in the near future. In this example, we will consider Uber. Uber, as we all know, are disruptors of traditional taxis and are probably the largest cab hailing service in the globe. Smart Contracts potentially have the capability of disrupting this disruptive service.

 

Minimal

In this scenario, we will modify the payment system that Uber uses after completing a ride. You will ideally link your credit card to Uber which automatically deducts the fees when your ride completes.

If you do not prefer digital money, you will pay cash to the Uber driver based on the amount that shows up on your phone. Uber runs an algorithm that calculates how much fees should be charged to the rider based on the distance covered and the traffic/wait time.

Now, this can be completely automated if linked with a smart contract.

At the end of each ride, Uber will send a message to the smart contract linked with your profile and the appropriate amount gets deducted seamlessly. This use case is much similar to current day credit cards, however, Smart Contracts are more secure.

 

Partial

In the Partial scenario, we take the application of Smart Contracts up a notch and eliminate human drivers completely.

With the innovation Tesla, Uber and Google are doing on the grounds of self-driving cars, it isn’t long until you see self-driving private cars and cabs doing everyday rides on the freeway.

Now, imagine you book an Uber and it turns up to be a self-driving car. At the end of your ride, a Smart Contract can be programmed such that the fees charged are deducted directly from your crypto wallet and only after the payment of fees, will the doors of the cab open.

The Uber cab may have one or many owners and the fees will then get transferred to their accounts based on the logic written in the smart contract.

 

Complete

Now, this scenario is utopian and far-fetched but the possibilities of this happening cannot be outright denied.

In this scenario, an Uber is not owned by anyone but itself. The car in and of itself is a decentralised autonomous entity. This concept is adapted from ‘Internet of Money’ by Andreas Antonopoulos. (Highly recommended read)

Consider a self-driving car that has no owner. All the rides that it takes go towards the maintenance and fuel costs that it has to undertake. It saves the excess money for major upgrades or unforeseen circumstances.

But the car essentially has no owner and all the money it gets from rides can be used for varied purposes, all determined purely by the car on its own.

When you hail a ride from such a vehicle, at the end of each ride, the smart contract automatically deducts money from your wallet and sends it to the DAE (Decentralised Autonomous Entity), which is your Uber in this case.

The Uber then uses the same money for fuel or maintenance which again makes the use of Smart Contracts.

Uber or self-driving cars is one such example. You can put numerous transactions on the Smart Contract, including real estate transactions.

Smart contracts have use cases in everyday lives. Things you couldn’t imagine without the internet now; in the future, you wouldn’t imagine it without Smart Contracts!

Another real-life use case of Smart Contracts is how BBOD settles transactions on your Ethereum wallet.

We run a proprietary non-custodial smart contract using which you can trade on BBOD without transferring funds to the central wallet. Your funds stay safe in your very own Ethereum wallet.

We hope this blog post gave you a brief idea of how Smart Contracts work. In future posts, we will explore more in and around the blockchain ecosystem. Stay tuned!

 

Ethereum White Paper, Explained. Part 2

We are glad you made it to the second part of our dissection of the ethereum white paper. Read on to uncover the rest of the ethereum white paper document.

Ethereum White Paper Format.png

Ethereum was built around the central focus of creating a protocol for building a variety of decentralized applications with numerous use cases.

They provide a Turing complete programming language where development time, security and interaction between dapps (decentralized apps) are important. A Turing complete programmable blockchain allows a wide variety of smart contracts to be developed which are much more sophisticated than those offered by Bitcoin.

Ethereum Philosophy

Ethereum is designed on the following five principles.

Simplicity

Ethereum is built as a protocol that is simple and has a vision of being open to all, even at the

cost of data storage and time inefficiency. Any average programmer should be able to pick the

workflow and implement projects with ease.This helps in fully realizing the unprecedented

potential of Blockchain and Cryptocurrency.

Universality

The Turing completeness of Ethereum helps in creating any smart contract that can be

mathematically defined. Currency, financial derivatives or your very own Skynet, anything can be built. However if you do plan on building Skynet, you might need to have an array of many interlocking contracts and feed them with enough gas to keep the smart contract running.

Modularity

Ethereum is designed such that all parts of the protocol can be separated into individual units. Even if somebody makes a small protocol modification in one place, other parts of the application stack would be seemingly unaffected and continue to work without further modification.

Innovations like Ethash, modified Patricia trees and RLP (which will be discussed in future posts) are implemented as separate, feature complete libraries. Ethereum development is done so as to benefit the whole cryptocurrency system rather than just itself.

Agility

Constructs of the Ethereum protocol are not set in stone, although modifications to high-level constructs will only be done judiciously.

Non-discrimination and non-censorship

Being a true open for all protocol, any and all kinds of applications can be developed using Ethereum. The regulatory mechanisms used in Ethereum are used to restrict and minimize the harm to the ecosystem rather than restrict a specific category of applications.

For instance, you can run an infinite loop script as long as you pay necessary and relevant charges to the miners for running your code.

Ethereum Accounts

In Ethereum, the state is made up of objects called “accounts” where each account has a 20-byte public address. State transitions are transfers of value and information between two or more accounts. An Ethereum account contains the following four fields.

  • Nonce; this is a counter that ensures each transaction can only be processed once
  • The account’s current Ether balance
  • The account’s Contract code, (if present, applicable to smart contracts)
  • The account’s Storage (empty by default)

Ether is the main fuel used in Ethereum and is used for transaction fees also known as Gwei.

There are two types of accounts namely :

  1. Externally owned accounts; controlled by Private keys : Have no inherent code. Messages are sent by creating and signing a transaction.
  2. Contract accounts; controlled by Contract code : Code activates depending on the content of the received message and further process like reading & writing into internal storage, sending other messages or creating contracts can be activated.

The second type of account is used by a cryptocurrency exchage :Blockchain Board of Derivatives in its non-custodial smart contract wallet system.

Smart contracts are thus autonomous agents that live inside the Ethereum environment and execute code when conveyed by a transaction or a message. Such contracts have direct control over their ether balance and their own key store.

Transactions

Transaction in Ethereum is essentially a signed and encrypted data package that stores a message to be sent from an externally owned account.

Typical transactions contain the following:

  • The recipient of the message (Public Key of the recipient)
  • Signature identifying the sender (Private Key of the sender)
  • The amount of ether to transfer from the sender to the recipient
  • An optional data field
  • A STARTGAS value, representing the maximum number of computational steps the transaction execution is allowed to take
  • A GASPRICE value, representing the fee the sender pays per computational step

Let us break down these individual points. The first three are standard fields present in every cryptocurrency. The data field has no default function but can be used by a contract to access the data. For instance, if a contract is functioning as a domain registration service, then it may wish to interpret the data being passed to it as containing two “fields”, the first field being a domain to register and the second field being the IP address to register the domain to. The contract would read these values from the message data and appropriately place them in storage.

STARTGAS and GASPRICE fields are crucial for Ethereum’s anti-denial of service model. In order to prevent infinite loops or other computational wastage, each transaction is required to set a limit to the number of computational steps it can use. The fundamental unit of computation is “gas”. Usually, a computational step costs 1 gas, but some operations cost higher amounts of gas because they are more computationally expensive or increase the amount of data that must be stored as part of the state.

There is a fee of 5 gas for every byte in the transaction data. The fee system causes an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage. Hence, any transaction that leads to high network consumption naturally leads to a higher gas fee.

In simple terms, gas paid is directly proportional to the number and complexity of computations done on the blockchain.

Messages

Contracts can send messages to other contracts.

Typical messages contain:

  • The sender of the message
  • The recipient of the message
  • The amount of ether to transfer with the message
  • An optional data field
  • A STARTGAS value

A message is similar to transaction except that messages are created by a contract and not an externally owned accounts. A message is produced when a contract executing code executes the CALL opcode, producing and executing a message.

The message is received by the recipient account which then runs its code. In this manner, contracts can enact in relationships with other contracts in a way similar to externally owned accounts.

The gas allocation assigned by a contract applies to both the gas consumed by transaction and all sub-executions.

Let us understand the same with an example.

@A is an externally owned account

@B is a contract

@A sends @B a transaction with 1000 gas.

@B consumes 600 gas and sends a message to @C.

The internal execution of @C consumes 300 gas.

1000-600-300=100

This implies that the contract @B can only spend another 100 gas on computation / message / transaction before running out of gas.

Ethereum State Transition Function

eth paper 2.2.PNG

As mentioned in part 1 of the series, you might recall the state transition function

APPLY(S,TX) -> S’

Further steps are taken from the white paper and are pretty much self-explanatory:

  1. The transaction must have the right number of values, the signature must be valid and the nonce should match the nonce in the sender’s account. If it does not comply, throw an error.
  2. The transaction fee is calculated as STARTGAS * GASPRICE, the sending address can be determined from the signature. Subtract the fee from the sender’s balance and increment the sender’s nonce. If there is not enough balance to spend, throw an error.
  3. Initialize GAS = STARTGAS, and a certain quantity of gas per byte is taken off to pay for the bytes in the transaction.
  4. Transfer the transaction value from the sender’s account to the receiving account. If the receiving account does not yet exist, create it. If the receiving account is a contract, run the contract’s code either to completion or until the execution runs out of gas.
  5. If the value transfer failed because the sender did not have enough money, or the code execution ran out of gas, revert all state changes except the payment of the fees, and add the fees to the miner’s account. The payment of fees cannot be reverted as miner expends energy to facilitate the transaction.
  6. Otherwise, refund the fees for all remaining gas to the sender, and send the fees paid for gas consumed to the miner.

Assume the contract code to be the following:

if !self.storage[calldataload(0)]:
self.storage[calldataload(0)] = calldataload(32)

The contract is actually written in low-level EVM code but the above example is written in Serpent.

Now let us consider an example:

The contract’s storage is initially empty and a transaction is sent with 10 ether value, 2000 gas, 0.001 ether gasprice, and 64 bytes of data, with bytes 0-31 representing the number 2 and bytes 32-63 carrying the string CHARLIE.

The state transition function process in this scenario is as follows. These steps are similar to the ones mentioned in the generic example above.

  1. Check that the transaction is valid and well-formed.
  2. Check that the transaction sender has at least 2000 * 0.001 = 2 ether. If it is, then subtract 2 ether from the sender’s account. (Since we have to use STARTGAS * GASPRICE as the formula)
  3. Initialize gas = 2000; assuming the transaction is 170 bytes long and the byte-fee is 5, subtract 850 (170*5) so that there is 1150 (2000-850) gas left.
  4. Subtract 10 more ether from the sender’s account, and add it to the contract’s account.
  5. Run the code. In this case, this is simple: it checks if the contract’s storage at index 2 is used, notices that it is not, and so it sets the storage at index 2 to the value CHARLIE. Suppose this takes 187 gas, so the remaining amount of gas is 1150 – 187 = 963
  6. Add 963 * 0.001 = 0.963 ether back to the sender’s account, and return the resulting state.

This concludes the steps that are undertaken in the whole process.

If there was no contract at the receiving end of the transaction, then the total transaction fee would simply be equal to the provided GASPRICE multiplied by the length of the transaction in bytes, and the data sent alongside the transaction would be irrelevant.

In this case, all gas would be utilized by a miner to provide no result as any contract does not exist.

Messages and transactions work on similar terms when it comes to reverts: if a message execution runs out of gas, then that message’s execution, and all other executions triggered by that execution, revert, but parent executions do not need to revert.

This implies that it is “safe” for a contract to call another contract as if A calls B with G gas then A’s execution is guaranteed to lose at most G gas. However, parent executions outside of contracts do not revert.

Also, there is an opcode, CREATE, that creates a contract. Its execution mechanics are generally similar to CALL, with the exception that the output of the execution determines the code of a newly created contract.

We will delve into opcode in further detail in our future in-depth technical blog posts.

Code Execution

The code in Ethereum contracts is written in a low-level, stack-based bytecode language, referred to as “Ethereum Virtual Machine code” or “EVM code”. EVM code is essentially a series of bytes and each byte is an operation.

“Code execution is an infinite loop that consists of repeatedly carrying out the operation at the current program counter (which begins at zero) and then incrementing the program counter by one, until the end of the code is reached or an error or STOP or RETURN instruction is detected.”

The operations have access to three types of space in which to store data:

  1. Stack, a last-in-first-out container to which values can be pushed and popped like a typical stack.
  2. Memory, an infinitely expandable byte array.
  3. Storage, a key/value store. Unlike stack and memory, which resets after computation ends, storage persists for the long term.

The code also has the ability to access the value, the sender, the data of the incoming message and the block header as well. The code can also return a byte array of data as output.

The execution model of EVM code is quite simple. We will further explore it in the below steps.

While the Ethereum virtual machine is running, its full computational state can be defined by the tuple. A tuple consists of block_state, transaction, message, code, memory, stack, pc and gas.

Here, block_state is the global state containing all accounts and includes balances and storage.

At the start of every round of execution, the current instruction is found by taking the pc-th byte of code (or 0 if pc >= len(code)) which means pc is considered to be zero when it is greater than or equal to the length of the code.

Each instruction has its own definition on how it would affect the tuple.

ADD pops two items off the stack, pushes their sum, reduces gas by 1 and increments pc by 1 (typical working of a stack)

SSTORE pops the top two items off the stack and inserts the second item into the contract’s storage at the index specified by the first item.

There are many ways to optimize EVM execution via just-in-time compilation, a basic implementation of Ethereum can be done in a few hundred lines of code.

Blockchain and Mining
eth paper2.3.PNG

Ethereum blockchain is more or less similar to the Bitcoin blockchain with a few subtle differences.

The main difference between Ethereum and Bitcoin with regard to the blockchain architecture is that, unlike Bitcoin (which only contains a copy of the transaction list), Ethereum blocks contain a copy of the transaction list, the most recent state, the block number and the difficulty.

The basic block validation algorithm in Ethereum can be explained in the following steps:

  1. Check if the previous block referenced exists and is valid.
  2. Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future.
  3. Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts which will be covered later) are valid.
  4. Check that the proof of work on the block is valid.
  5. Let S[0] be the state at the end of the previous block. (recall this being discussed and explained in the previous blog post)
  6. Let TX be the block’s transaction list, with n transactions. For all i in 0…n-1, set S[i+1] = APPLY(S[i],TX[i]). If any applications returns an error, or if the total gas consumed in the block up until this point exceeds the GASLIMIT, return an error.
  7. Let S_FINAL be S[n], but adding the block reward paid to the miner (S_FINAL =S[n]+Block reward). The reward is awarded once a miner completes mining a block successfully.
  8. Check if the Merkle tree root of the state S_FINAL is equal to the final state root provided in the block header. If it is, the block is valid; otherwise, it is not valid. (Merkle tree and validation with the block header is explained with relevant pictures in the previous blog post)

The approach of storing the entire state within each block might seem inefficient at first but is comparable to that of Bitcoin.

The state is stored in the tree structure and after every block, only a tiny part of the tree needs to be changed. This implies that between two adjacent blocks, the vast majority of the tree should be the same. The data can be stored once and referenced twice using pointers (hashes of subtrees).

A special kind of tree known as a “Patricia tree” is used to accomplish this, including a modification to the Merkle tree concept that allows for nodes to be inserted and deleted in an efficient manner.

Additionally, because all of the state information is part of the last block, there is no need to store the entire blockchain history.

A commonly asked question is “where” contract code is executed, in terms of physical hardware.

The process of executing contract code is defined in the state transition function itself, which is part of the block validation algorithm. If a transaction is added into block B the code execution spawned by that transaction will be executed by all nodes that download and validate block B, either now or in the future.

This marks the end of Part 2 of the Ethereum white paper. In the next part, we will discuss real-time applications of the Ethereum protocol and the ecosystem.

Part 3 available here.

Ethereum White Paper, Explained. Part 1

In the following blog posts, we will be dissecting the Ethereum white paper by describing it in layman terms. As the paper is too long to fit into one blog post, we will be dividing it into several sections. We will try to explain the niche details mentioned in the Ethereum white paper in the simplest terms possible.

Ethereum White Paper Format.png

 

Introduction and Existing concepts


We all know that Satoshi Nakamoto’s development of Bitcoin gave rise to the monumental technology known as – Blockchain. Hopefully, you already know what Blockchain technology is, thanks to our previous posts.

There are numerous other applications for Blockchain technology some of them include: coloured coins, smart property, namecoin, smart contracts or DAO (Decentralised Autonomous Organizations). These applications are complex to build on top of the Bitcoin blockchain. To address this issue, Ethereum proposes a Turing-complete programming language that can be used to create smart contracts or encode complicated functions. A Turing-complete language can essentially be used to simulate a Turing machine. A Turing machine is a model that can simulate any computer algorithm regardless of the complexity.

The Ethereum foundation proposes that all of the above can be achieved effortlessly in a few lines of code. We will validate this claim further in this blog and future posts.

 

History


Digital currencies as a concept have been prevalent for decades. In the 80s and 90s, a cryptography technique called Chaumian Blinding was used. However, they relied on a centralised intermediary which was a clear deal breaker. Then came B-money which proposed a decentralized consensus system but how that would be achieved was debatable. This was followed by Hal Finney proposing reusable proofs of work which when combined with the concept of B-money seemed promising at first but attempts to implicate such a solution were unsuccessful.

Satoshi Nakamoto collated all of these concepts along with other established primitive technologies for managing ownership through cryptography techniques. The consensus algorithm used by the Bitcoin Blockchain to keep track of the coins is called proof of work.

The proof of work consensus mechanism was a major breakthrough in this area as it solved two main problems.

  1. Nodes in the network could now easily agree on using the consensus algorithm to enter transactions in the distributed ledger.
  2. The problem of who gets to decide the entry into the distributed ledger was solved by using the computing power each node is willing to spend.

For miners, this essentially means – More computing power = More blocks mined = More crypto rewards.

Another concept called proof of stake calculates the weight of a node in the voting process based on the number of coins it holds and not just computational resources.

 

State transition systems


The ledger of any cryptocurrency is essentially a state transition system which at any given point in time holds information about how many coins are there in individual wallets and the transactions done by these wallets.

In the below diagram there are three main blocks to be considered

 

 Image Courtesy: https://github.com/ethereum/wiki/wiki/White-Paper

 

State – This consists of all ownership information contained in the ledger which is cryptographically encrypted.

Transaction – Transaction block defines the amount of the transfer that is initiated in the system. It also includes a signature which is defined by the sender.

State’ – This state consists of the final ownership information that is distributed across all nodes. This State’ will then act as State in the next transaction.

In a traditional fiat banking setting, the states are individual balance sheets and when money is sent from A to B, their individual records get updated.

Obviously, using traditional banks we cannot send more money than we have in our individual accounts, a similar logic has been applied here which is defined by the following function.

APPLY(S,TX) -> S’ or ERROR

To illustrate this in the context of the banking example, we can translate it into the following expression.

CRYPTO

APPLY(S,TX) -> S’

BANKS

APPLY({ Alice: $50, Bob: $50 },”send $20 from Alice to Bob”) = { Alice: $30, Bob: $70 }

Here S is the initial state where both Alice and Bob have $50 in their accounts.

TX is the transaction which defines “send $20 from Alice to Bob”

S’ is the final state which reflects the updated balances of Alice and Bob

Before moving to the next scenario, we must understand how the possession of coins in individual accounts is calculated.

A bitcoin “state” has the collection of all coins that exist along with the public key of their owner. The collection of these coins are determined by total UTXO associated with the address. UTXO is Unspent Transaction Outputs, which as the name suggests have not been spent by the owner. These outputs are measured by checking if the coins that came from the previous owner were also UTXO, to begin with. This is confirmed by checking the previous owner’s UTXO and pairing it with the cryptographic signature produced by the previous owner’s private key.

Now let us analyse what happens if you try selling coins that you don’t have?

CRYPTO

APPLY(S,TX) -> ERROR

BANKS

APPLY({ Alice: $50, Bob: $50 },”send $70 from Alice to Bob”) = ERROR

1. Check the value mentioned in TX ($70)

a.    If this value is not verified by UTXO of the owner, then it is not present in their account. Return an error.

b.    If the mentioned cryptographic signature does not match the signature of the owner, return an error.

2.     If the sum of all UTXO of the owner is less than the figure mentioned in TX, return an error.

3.    If the transaction is valid, transfer funds to the receiver. This transfer happens by removing the input UTXO from the sender and adding it under the receiver’s public key address.

Step 1a prevents the sender from sending coins that do not exist and step 1b prevents senders from sending other people’s coins.

Step 2 makes sure that there are enough coins with the sender before proceeding with the transaction.

Step 3 completes the process by subtracting values from the sender and adding it in the receiver’s wallet.

Now, these steps might look easy to visualize but behind the scenes, there is a lot going on.

The following example should help you better understand.

Suppose you go out to buy a bunch of Bananas. Now for some vague reason, 1 banana costs $75. In a traditional setup, to see if you can afford this precious overpriced banana, you will open your wallet and check the balance. You have two notes of $50 each totalling $100 (50+50=100, duh!). These two notes were given to you by your mom to buy Bananas.

To be able to afford this Banana you have to give away both your $50 notes to the Banana seller and he will return $25 using a combination of USD note denominations. You are now a proud owner of this super expensive Banana. The real problem that now lies ahead of you, is explaining to your mom the price of 1 Banana.

This is reasonably simple to understand, now let us see what happens in a typical cryptocurrency transaction.

Consider Alice wants to send 75 BTC (yes, Alice is filthy rich) to Bob. To proceed she will first check if she has 75 BTC in her wallet. To check this, she must sum up all of her UTXO (value inputs). Consider this UTXO as the two notes of $50 in the previous example. However, Alice has two UTXO values in her wallet of 50 BTC each. This implies that Alice has received two transactions into her wallet. Each UTXO is worth 50 BTC.

Now, we know that you cannot cut a $100 note into two parts to divide into two $50 notes, that would render the $100 note worthless. However, in cryptocurrency, you can do microtransactions by dividing 1 coin into ten 0.1 coins. This division is, however, not straightforward.

To transfer 75 BTC to Bob, Alice will create a transaction with the two 50 BTC inputs to give out two outputs. One output will be given to Bob, another balance will be transferred back into Alice’s wallet.

50BTC + 50BTC → 75BTC to Bob + 25BTC to Alice

In this scenario, Bob is not entrusted with returning the balance as compared to the previous example. Rather the transaction handles the return of the remaining balance output to Alice.

 

Mining


 Image Courtesy: https://github.com/ethereum/wiki/wiki/White-Paper

In an ideal society where we could trust a centralized system with all transactions, this step would be totally unnecessary. But we are trying to create a decentralized consensus system that has the potential to disrupt the monopoly that banks have over our economies. Mining is a method by which we can combine the state transition system with a consensus system such that all nodes in the network agree on the transactions. These transactions are combined and packaged into blocks as shown in the below figure.

The Bitcoin network produces 1 block every 10 minutes. Each block has a timestamp, a nonce (an arbitrary non-repeatable number), a reference to the previous block mentioned as Prevhash in the above diagram and the list of all transactions that have taken place after the previous block is mined. This never-ending chain of blocks always represents the latest state of the distributed ledger and thus acquires its name – the Blockchain.

The following steps check the validity of a block:

  1. Check if the previous block referenced by the block exists and is valid.
  2. Check that the timestamp of the block is greater than that of the previous block and less than 2 hours into the future.
  3. Check that the proof of work on the block is valid.
  4. Let S[0] be the state at the end of the previous block.
  5. Suppose TX is the block’s transaction list with n transactions. For all i in 0…n-1, set S[i+1] = APPLY(S[i],TX[i]) If any application returns an error, exit and return false.
  6. Return true, and register S[n] as the state at the end of this block.

Points 1 to are straightforward. However, the next 3 points might sound a bit confusing. Let us understand how that works.

As mentioned in point 4, let S[0] be the state at the end of Block 5624.

In point it is mentioned that for each n transaction, there is a particular state as follows:

So by the function →  S[i+1] = APPLY(S[i],TX[i])

We have the following:

S[1] = APPLY(S[0],TX[0]) ← First transaction

S[2] = APPLY(S[1],TX[1]) ← Second transaction

.

.

S[n] = APPLY(S[n-1],TX[n-1]) ← nth transaction

If you remember the function that we read about in the previous topic. We should be able to backtrack the value of S’ based on the Apply function.

APPLY(S,TX) -> S’

This is predominantly used to link various transactions and blocks. So each transaction in the block defines a valid state transition using the above functions from one transaction to another. The state, however, is not stored anywhere in the block and is calculated correctly only by starting from the genesis state of that particular block, for every transaction in that block. This finally gives an output of S[n] which will act as S[0] for the next block.

The order of the transactions is of prime importance because if B creates a transaction involving funds (UTXO) that have been sent (created) by A, then the transaction done by A must come before B for the block to be valid.

The condition of proof of work required is that the double-SHA256 hash of every block which is a 256-bit number must be less than a dynamically adjusted target. These dynamic targets vary from time to time so that the miners provide ample computational power to confirm their proof of work. Also, since the SHA256 function is completely pseudo random and unpredictable, the only way to crack it is by simple trial and error or brute force.

Suppose the dynamic target is set at ~2150 , then the network must achieve an average of 2(256-150) which equals 2106 tries before a valid block is found. This dynamic target is reset every 2016 blocks and calibrated to new target value. A new block on an average is produced every ten minutes on the Bitcoin network. For all the heavy lifting that miners do by facilitating our transactions and solving complex math problems, they are given Bitcoins as reward. The initial reward was 25 BTC per block mined. Currently, the reward is 12.5 BTC per mined block. This is how bitcoins come into circulation. The Bitcoins awarded to miners are new bitcoins that are being unlocked from the 21,000,000 Bitcoins which is the hard limit of Bitcoins that can ever be in circulation.

 

WHAT HAPPENS IN THE EVENT OF AN ATTACK?


Now let us analyse the benefits of mining and how it prevents attacks. The following lines have been picked from the Ethereum white paper as the text is pretty much self-explanatory.

“The attacker’s strategy is simple:

  1. Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good)
  2. Wait for the delivery of the product
  3. Produce another transaction sending the same 100 BTC to himself
  4. Try to convince the network that his transaction to himself was the one that came first. 

Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270. After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus “confirming” it. At this point, the merchant will accept the payment as finalized and deliver the product; since we are assuming this is a digital good, delivery is instant. Now, the attacker creates another transaction sending the 100 BTC to himself. If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run APPLY(S,TX) and notice that TX consumes a UTXO which is no longer in the state. So instead, the attacker creates a “fork” of the blockchain, starting by mining another version of block 270 pointing to the same block 269 as a parent but with the new transaction in place of the old one. Because the block data is different, this requires redoing the proof of work. Furthermore, the attacker’s new version of block 270 has a different hash, so the original blocks 271 to 275 do not “point” to it; thus, the original chain and the attacker’s new chain are completely separate. The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 275 chain while the attacker alone is working on the 270 chain. In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, “51% attack”).

The above text shows how to gain control over the blockchain, the attacker has to have more processing power than 51% of the total blockchain which is probabilistically impossible for top coins.

 

Merkle Trees


 Image Courtesy: https://github.com/ethereum/wiki/wiki/White-Paper

Merkle trees help maintain the uniqueness of a block. Merkle trees are a binary tree where each node has two children, and this goes all the way to the bottom to have individual leaf nodes which consists of transaction data. These leaf nodes build up to the top as shown in the below figure and end up in one ‘hash’. This hash of a block consists of a timestamp, nonce, previous block hash and the root hash of the Merkle tree as shown in the image on the left.

Now, the beauty of cryptographic functions is, even if one bit of input is changed, the whole encryption pattern changes and the intermediate hash value output is different. This changes the hash value output of the overall block and is rejected by the blockchain because it does not have a valid proof of work. The output of a Merkle tree is a single hash which is secure enough to act as an assurance to nodes.

These nodes compare this hash from one source with another small part of the Merkle tree from another source to ultimately validate the authenticity of the block. A similar scenario is shown in the right side of the above image when a node rejects a block because its hash does not match with the data in Merkle tree.

As the data stored in the blockchain of bitcoin is continuously increasing, there will be a point at which average desktop computers would not be able to store all the data. This is where a protocol known as “simplified payment verification” (SPV) comes into play. This protocol lets nodes verify the proof of work using the hash in individual blocks. Such nodes are also called as ‘light nodes’. These light nodes download the block headers, verify the proof of work on the block headers, and then download only the “branches” associated with transactions that are relevant to them. Light nodes thus assure that the transactions are legit despite downloading only a very small portion of the blockchain.

 

Alternative Blockchain Applications


  1. NameCoin
    NameCoin lets you register names on a decentralized database.
  2. Colored coins
    Colored coins serve as a protocol to allow people to create their own digital currencies on the Bitcoin Blockchain.
  3. Metacoins
    Metacoin protocol is stored on top of Bitcoin but uses a different state transition function from Bitcoin. They provide a mechanism to create an arbitrary cryptocurrency protocol.

There are two ways to build a blockchain system. The first is building an independent network and the second includes building a protocol on top of Bitcoin. The first approach is difficult to implement because of the costs involved. Also, the number of applications that would run on the Blockchain do not demand a full-fledged independent network. The requirements of these applications are relatively less computer intensive.

The Bitcoin-based approach has the flaw that it does not inherit the simplified payment verification features of Bitcoin. SPV works for Bitcoin because it can use blockchain depth as a proxy for validity; at some point, once the ancestors of a transaction go far enough back, it is safe to say that they were legitimately part of the state. A fully secure SPV meta-protocol implementation would need to backward scan all the way to the beginning of the Bitcoin Blockchain to determine whether or not certain transactions are valid.

 

Scripting


Bitcoin protocol does handle a primitive version of a concept known as ‘smart contracts’. UTXO in Bitcoin can be owned not just by a public key, but also by a complicated script expressed in a simple programming language. In this scenario, after a transaction, UTXO must provide data that satisfies the script. Afterall, even the basic public key ownership mechanism is implemented via a script which is verified using elliptic curve signatures. The script returns 1 if the verification is successful and returns 0 otherwise.

This can be further controlled to write a script that requires signatures from two out of a given three private keys to validate (“multisig”). This is a use case for large conglomerate corporate accounts, secure accounts and escrow situations. These smart contract scripts can be modified to do numerous actions depending on the use case.

However, there are several limitations in the Bitcoin scripting language:

  1. Lack of Turing Completeness – Loops are not available to prevent infinite loop situations but to write a smart contract in a language that is not Turing complete can be considerably daunting.
  2. Value Blindness – The UTXO script is not able to determine if the value of BTC has changed when compared to USD.
  3.  Lack of State – A UTXO can either be spent or unspent. To create complicated smart contracts that might include two stage cryptographic verification on the Bitcoin network is not possible.
  4. Blockchain Blindness – UTXO also does not have access to nonce, timestamp or previous block hash. This limits the application of Bitcoin in many fields.

“Ethereum proposes to build an alternative framework that provides even larger gains in ease of development as well as even stronger light client properties, while at the same time allowing applications to share an economic environment and blockchain security.” 

This concludes the interpretation of Part 1 of the Ethereum white paper. To summarise, this post gave us a general overview of how Bitcoin, the very first Cryptocurrency, functions. We will now move on to analyse how Ethereum is different from the Bitcoin protocol.

 

 

BBD Token Overview

Blockchain Board of Derivatives (BBOD) will launch their cryptocurrency trading platform in December 2018.

Below we present basic information about BBD token and a few advantages you can expect from participating in the purchase of BBD tokens.

Basic data

Contract #: 0xb79fc5505ea4f3b920ee7e3349de064226692717

Circulating Supply: 117,282,569 BBD (as of 07 December 2018)

Total Supply: 275,803,582 BBD

What are BBD tokens?

BBD is an ERC-20 token issued by BBOD. Just like BNB coin by Binance, when you use BBD to trade on BBOD, you save a considerable amount of money on the trading fees.

How / where I can buy BBD tokens?

BBD tokens will be available to buy or sell on BBOD trading platform in December 2018.

Owning BBD tokens offers multiple benefits for investors and traders.

Traders may use BBD to pay for trading fees and they can expect a discount on trading fees.

Other benefits under consideration include:

  1. access to the periodic ‘TUSD Lottery Bounty Program’ (eg. 1 BBD token — one lottery ticket)
  2. And more, more, more!

Join our global community 👫👭👬

Stay updated on the BBOD launch date and BBD coin first listing date.

Telegramhttps://t.me/BBODCommunity

Twitterhttps://twitter.com/BBODTrading

Facebookhttps://www.facebook.com/BBODTrading

YouTube: https://www.youtube.com/c/BBODTV

Linkedinhttps://www.linkedin.com/company/bbod