According to GitHub, a total of nine Ethereum Improvement Plan (EIP) have been accepted for Byzantium.
Moving closer to Metropolis, Byzantium is released on Ropsten testnet officially on Monday, September 18, 2017. So far, everything is running as expected. It verified ZK-SNARK and Zcash transaction following the fork on the blockchain.
Considering everything goes smoothly, today (September 22, 2017), in Core Developers Meeting the team decided on the probable block and possible date for hard fork on main net. Earlier, it was planned on Block # 4.35 million (approx. October 9, 2017) but now it has been postponed to Block # 4.37 million (approx. October 17, 2017). Vitalik Buterin, the founder of Ethereum wanted the hard fork to happen by late October but team suggested that it will be too close to the upcoming Devcon 3 meet (November 04, 2017).
Byzantium hard fork is almost certain on October 17, 2017 unless something goes wrong. According to a post on reddit, Ropsten, the test network was attacked by malicious miners, spamming contract creation transactions that fill 99% of the block gas limit. Hence, Ropsten was experiencing issues with processing transactions. It is difficult to understand the intention of attacking the test net as no real Ether ( ETH) is involved in transaction. According to Vitalik Buterin , the attack was "fairly inconsequential."
Other Clients Geth, Parity, CPP, EthJ and EthJS also showed successful transaction for Byzantium testing.
For, Live infographic of the Byzantium fork on Ropsten, click here.
The Constantinople Metropolis hardfork implements EIP 86 & 96. It may be released in early 2018.
#ethereum #metropolis #hardfork #byzantium #blockchain #cryptocurrency
The first name which flashes in our mind when someone says Blockchain or Digital Currency is Bitcoin. In my initial days of learning, when I tried talking to my friends about Blockchain technology many of them wouldn’t even have heard about it, the only name heard was Bitcoin. I think, today also in many part of the world Blockchain means Bitcoin. Since we are working on a series - ‘Cryptocurrency for beginners’, let’s talk about Bitcoin today, in a little less technical way.
What is Bitcoin?
Bitcoin is the first decentralized digital currency or cryptocurrency. These are digital coins that can be sent through internet using peer to peer network. It was designed by Satoshi Nakamoto (unknown) in 2009 and the core technology used is called as Blockchain Technology.
Compared to other alternative, Bitcoin has a number of advantages.
Permission less - Bitcoin can be transferred directly from person to person via internet without going through a bank or a clearing house.
Fast - The transaction is confirmed in minutes.
Anonymous - The transaction is anonymous, no one would now the real identity of the sender and the receiver, it’s all just the addresses that we know.
Irreversible – Transaction done is permanently recorded and can’t be reversed.
Cheaper - Transaction fee is much lower, because there is no middleman and no govt. parties involved.
Global - It can be used in every country,
No central monetary authority –It is not regulated by any govt. but is generated by the miners.
A user’s account cannot be frozen.
There is no pre-requisite or minimum limits.
How Bitcoin works?
Bitcoin, based on blockchain technology are generated all over the internet by anybody who runs a free application called a ‘Bitcoin Miner’ on its computer (device). Mining requires a certain amount of work for each block. These are expensive computation performed in order to provide the security and verification of transaction. The process involved is commonly known as Proof of Work (PoW). Each time a miner successfully solves Bitcoin’s proof of work algorithm, he is rewarded a set number of bitcoins agreed upon by the network. The difficulty level is automatically adjusted by the network such that Bitcoin is always created at a predictable and a limited range and the reward is decreased by 50% every 4 years by a process called ‘Halving’.
How can I obtain Bitcoin?
Bitcoin can be obtained from one or all of the below methods:
- Purchase from an exchange – As on date, this is the easiest way to obtain Bitcoin and probably most accepted too.
With fiat currency – In most of the cases, first Bitcoin is purchased with Fiat currency. There are exchanges that allow purchase directly through fiat currency like Coinbase (US most trusted exchange), Kraken. They accept bank transfers and or credit card payments for the purchase of Bitcoin and provide online wallet to save them.
With another cryptocurrency – One can also purchase Bitcoin through cryptocurrency exchange without paying in fiat currency. This can be done only if he possesses Ethereum or altcoins in his wallet in exchange like Poloniex, Coinbase – GDAX, Kraken, Bitfinex, Gemini, Bitstamp (one of the oldest Bitcoin exchange, supports world wide..
Purchase from an exchange is widely accepted method for obtaining any digital currency. A buyer can select an exchange that is supported in his location.
Purchase from a Bitcoin ATM - A bitcoin ATM is an internet machine that allows a person to exchange bitcoins and cash. Some Bitcoin ATMs offer bi-directional functionality; these machines enable both the purchase of Bitcoin (given as a paper receipt or by moving money to a public key on the blockchain) as well as the redemption of Bitcoin for cash (fiat currency).
In some cases, Bitcoin ATM providers require users to have an existing account in order to transact on the machine. In order to buy bitcoins using a bitcoin ATM one needs to find the closest to his location and understand what kind of machine it is. Eg. San-Diego based company Genesis Coin produces three types of ATMs: Genesis1 (two-way), Satoshi1 (one-way) and Satoshi2 (two-way).
The buying process may vary as per location and can be more expensive than online transactions as the infrastructure cost is higher and the steps that are actually needed to transfer the money and Bitcoins. The average ATM charges a fee of 5-10%, but this is what people are willing to pay to buy bitcoins privately and with no verification.
Purchase from a local trader – A classified service where you can find a seller who will help you trade bitcoins for cash. LocalBitcoins charges a flat 1% fee on each purchase and is one of the popular website listing this service. BitQuick connects you with sellers who want cash for their bitcoins and is available in the United States.
- Bitcoin Mining - Back in 2009, mining was the only way to possess bitcoin. In order to mine Bitcoin, we need a computer and a bitcoin mining software. As Bitcoin mining gained popularity, people invented sophisticated hardware (ASIC cards) to perform the computation faster and generate Bitcoin. Today, we have lot of miners having big setups with most advanced hardware and extremely efficient software. So, in order to possess Bitcoin, buying Bitcoin through alternative options is preferred over mining. Bitcoin mining can be done in different ways
Individual mining – When you are mining individually, you need to setup hardware required for Bitcoin mining and install related software. Few popular softwares are Bitcoin Miner (for Windows 10 and Windows 8.1), BTCMiner, CGMiner (for Linux, the most famous and commonly used), EasyMiner (GUI based), RPC Miner (for Mac OS 10.6 or higher).
Pool mining – In case of Bitcoin pool mining, you need the software to connect to your mining pool. Mining pools are groups of cooperating miners who agree to share block rewards in proportion to their contributed mining hashing power. Few big mining pools (based on data from Blockchain’s pool share) are AntPool (a Chinese based mining pool, maintained by BitMain, mines about 15% of all blocks), DiscusFish/F2Pool (China based, mined about 12% of all blocks), BitFury Pool (Geogia based, one of the largest producers of Bitcoin mining hardware and chips, but it is not open for public as it’s a private pool, mines about 12% of all bitcoins), BTCC (China’s third largest Bitcoin exchange, mines about 7% of all blocks), BW Pool (is another mining company based in China, mines about 8% of all blocks), KnCMiner (Sweden), 21 Inc. (California, US).
China mines most of the Bitcoins. It’s estimated that F2Pool, AntPool, BTCC, and BW mining pools own somewhere around 60% of Bitcoins hash power, meaning they mine about 60% of all new bitcoins.
Cloud Mining - Cloud mining or cloud hashing is the process of bitcoin mining utilizing a remote datacenter with shared processing power. It enables users to purchase Bitcoin mining power from Bitcoin mining hardware placed in remote data centers. It is still considered as mining as even if users are not using their own hardware, yet they are allowed to mine bitcoins. Cloud mining is really useful for those who aren’t technically minded and don’t want to run their own software or hardware. Hashflare or Genesis Mining provides cloud mining contract with them .
Bitcoin miners are very important to Bitcoin and its security. Without miners, Bitcoin would be vulnerable and easy to attack.
Where can I save Bitcoin?
Bitcoins are stored in a digital wallet. Digital wallet or cryptocurrency wallet is very similar to online banking. When a transaction is made an electronic signature is added. After a few minutes, the transaction is verified by a miner and is stored permanently and anonymously in a network.
There are many Bitcoin wallets, popular wallets are Ledger Nano S (hardware wallet for all platforms), Electrum (for Mac, Windows, and Linux), Mycelium (Android), breadwallet (for iOS).
Where can it be used?
It has got wide application and acceptability.
One can purchase any item through online store that accepts Bitcoin.
We can exchange Bitcoins for USD, Euro or more with help of several currency exchanges.
It is a great way for small businesses and free lancers to get noticed.
It doesn’t cost anything to start accepting it.
Will provide additional business from the Bitcoin economy.
Billion dollar businesses such as Dell, Expedia, PayPal, and Microsoft accepts it.
The Bitcoin software is completely open source and anybody can review the code, anyone can create its own digital currency as well. It does come with a little precautionary warning. It is highly volatile and is open for thieves hacking accounts. So, user needs to be cautious while storing in a wallet, using it for any transaction.
Bitcoin is changing the finance the same way ‘internet’ changed the publishing. With everyone having access to the global market, more use cases are flourishing.
Disclaimer: This is not an investment advice but for educational purpose only. Readers are requested to conduct their own research before investing into cryptocurrency. Our website (etherworld.co) neither intend to advertise any project nor recommend buy or sell any cryptocurrency. This is author’s personal opinion and is not a sponsored article.
For more updates, technical blogs and general discussion on Blockchain Technology and Ethereum, please join us at our Website, reddit, Facebook, Medium, Slack and follow us at Twitter. Please feel free to share this post, email us with your suggestions and connect at LinkedIn.
#cryptocurrency #blockchain #bitcoin #wallet #eli5 #mining
Octagon Strategy Ltd. announces Ethereum OTC trading
Octagon Strategy, a Hong Kong based commodities and digital assets trading house announced on March 30, 2017 that it has formally commenced trading Ethereum digital assets on its OTC trading desk. For the first time, Ethereum will be easily and simply available in Hong Kong for trading over the counter (OTC). Ethereum is considered a rising star in digital world. It's demand is increasing everyday with its popularity.
Octagon Strategy Limited is a privately-owned company which specializes in commodity and digital asset trading across international markets. It has customers across more than 20 countries with the majority based in the US, Asia and in Europe. With over 25 years of experience in financial industry, Octagon is one of Asia's oldest and most established digital assets and commodity trading desks, which also focuses on digital assets like bitcoin, Dash, and now Ethereum.
Source : PR Newswire
Hong Kong Monetary Authority (HKMA) and a consortium of banks in association with Deloitte develops Blockchain PoC for Trade Finance
Ethereum meet in Hong Kong
An Ethereum meet-up with Vitalik Buterin sponsored by METTA and hosted by Hong Kong’s wonderful Jehan Chu of Jen Advisors was organized in Hong Kong on April 1, 2017. Vtalik spoke about zk-SNARK (Zero Knowledge Proofs), also updated that team Ethereum is close to implement a Stage 1 version of Casper, and the full version with Metropolis. He also explained technical aspects of zk-SNARK as explained in “Quadratic Arithmetic Programs: from Zero to Hero” and Minimal Slashing Conditions with respect to upcoming Proof of Stake (POS) model.
He shared his thoughts about increasing adoption of general purpose usage of blockchain technology everywhere. “Ethereum will likely be one of the big ones”, he said.
For more updates, technical blogs and general discussion on Ethereum and blockchain technology, please follow us @ether_world (Twitter), EtherWorld_co (reddit.com) and Ethereum Blockchain Technology (Facebook).
Project Amply is one of the best use cases of Ethereum (blockchain technology). Govt. of South Africa has been working through various policy, documents and laws to support early childhood program. In the year 2005, UNICEF came up with a program named “NATIONAL INTEGRATED PLAN FOR EARLY CHILDHOOD DEVELOPMENT IN SOUTH AFRICA” to support South African govt. This was a big initiative by UNICEF to create an environment and VISION opportunities for African underprivileged children to access to a range of safe, accessible and high-quality Early Childhood Development (ECD) programs. It included a developmentally appropriate curriculum, knowledgeable and well-trained program staff and educators and comprehensive services that support their health, nutrition, and social well-being in an environment that respects and supports diversity.
Project Amply is an another big project using mobile and blockchain technology (Ethereum) to increase impact and accountability of public services and generate real-time data. It is a protocol that provide every child with their own self-sovereign digital identity based on the blockchain. Project Amply will create accountable blockchain based Subsidies Management Platform that will ensure every kid to receive benefits and services that they might not have received in the past.
The pilot project will replace an existing paper-based system to register children for a government funded pre-school subsidy in South Africa. Children’s attendance at classes and other useful information will be captured using mobile app used by the management. This will create a trust based system in which funding will be made available for children who need it. a child’s digital identity and personal data are privately owned and controlled by the individual (with some help from their guardians).
This is a big step towards both the application of Ethreum (blockchain) based system and step to provide developmental need of children in South Africa. This project is supported by South African govt. and UNICEF.
“When we’re looking at problems like giving someone an identity when they don’t have a sovereign identity granted to them, or how you allow movement of money from one place to another quickly, those are things that blockchain starts to hint at.”
Christopher Fabian, UNICEF Innovation Fund
If you like the article, please hit the like and share button. For more updates, technical blogs and general discussion on Ethereum and blockchain technology, please follow us @ether_world (Twitter), EtherWorld_co (reddit.com) and Ethereum Blockchain Technology (Facebook).
#Ethereum #Amply #blockchain #ECD
In a recent press release, Deloitte announced developing a Distributed Ledger Technology (blockchain) proof of concept (PoC) for Trade Finance in association with the Hong Kong Monetary Authority (HKMA) and the leading trade finance banks (industry participants) in Hong Kong. Deloitte has developed more than 30 blockchain-related prototypes, covering a multitude of uses such as digital identity, digital banking, cross-border payments, trade finance, and loyalty and rewards solutions, as well as distinct efforts for the investment management and insurance sectors.
Industry participants include: Bank of China (Hong Kong) Limited, The Bank of East Asia, Limited, Hang Seng Bank Limited, the Hong Kong and Shanghai Banking Corporation Limited (HSBC) and Standard Chartered Bank (Hong Kong) Limited.
The project focuses to create a DLT platform for banks, buyers and sellers, and logistics companies. Usage of blockchain (DLT) for trade finance in Hong Kong financial institutions will strengthen them by overcoming the “Trust” issue.
“Nearly half of the trade transactions in Hong Kong fail to obtain financing due to the lack of trust and potential fraudulent loss,” said Paul Sin, a partner with Deloitte China who leads the FinTech practice. “We are glad that HKMA and the leading banks in Hong Kong are driving the use of DLT to infuse transparency and trust into the ecosystem, not to mention the potential productivity gain in the currently labour-intensive process. With great vision and determination, Hong Kong is well positioned to lead the region on trade finance DLT application. ”
The project will reduce the risk of fraudulent trade & duplicate financing, improve the transparency of the transactions and digitize the process through smart contracts. This project has also explored the implications of DLT from the dimension of operations, legal, regulatory, governance and data security.
Executive Director of the HKMA, Li Shu-pui said: “We are very pleased to see this industry-led fintech effort on trade finance. The proof of concept result has shown the potential of using Distributed Ledger Technology for trade finance though there are still a number of matters such as legal, regulatory and governance issues which need further consideration. We will continue to work with the banking industry to explore the possibility to materialise the value proposition of this proof of concept work. ”
Gautam Jain, Global Head, Digitisation and Client Access, Transaction Banking, Standard Chartered bank, said: “At Standard Chartered, we firmly believe that we can leverage DLT to transform today’s Trade Finance solutions, and deliver improved efficiency and greater transparency to our clients and their ecosystems. This is why we are very excited to be working with HKMA to complete this DLT Smart Contract prototype for Open Account Trade Financing. We see significant potential in the application of Smart Contracts in Trade Finance and will continue to work with industry partners and regulators to make this a reality in the near future.”
HKMA and the Hong Kong Applied Science and Technology Research Institute (ASTRI) produced a white paper on Distributed Ledger Technology on November 11, 2016. For the first time through the white paper, HKMA revealed their willingness to conduct proof-of-concept work in three areas: mortgage loan application, trade finance, and digital identity management.
DLT in other financial regulators
Following the gusts of DLT several other financial regulators are also trying to keep up. Singapore's Central Bank has reported its successful implementation of blockchain in interbank's payments proof-of-concept (PoC) project in March 2017. Monetary Authority of Singapore (MAS) has plans to launch two 'spin-off' projects that will leverage the lessons of the inter-bank payments project. The first project, driven by the Singapore Exchange (SGX), focuses on making the fixed income securities trading and settlement cycle more efficient through DLT. The second project focuses on new methods to conduct cross border payments using central bank digital currency.
In March 2017, the Australian Securities and Investments Commission (ASIC), Australia’s corporate, markets and financial services regulator released an information sheet on DLT, designed to help both ASIC and financial service providers or infrastructure operators evaluate whether the use of DLT would allow an entity to meet its regulatory obligations.
China is conducting trial runs of its own cryptocurrency as reported by Bloomberg. On the other side, to tighten regulation over the digital currency, China's central bank has warned the country's Bitcoin exchanges against margin trading and money laundering.
#DLT #blockchain #HKMA #Deloitte #Ethereum
Scalability in blockchain
Most popular debate in bitcoin community is that blockchain do not scale properly. It doesn't scale because every full node has to verify every transaction. The scaling doesn't really work well because of fixed block time (time between two blocks creation). If there are more and more transaction (meaning system grows); then every single node has to process more transactions in that fixed time. The transactions in Ethereum are more complicated than Bitcoin. Though, it hasn't hit it's limit yet community is working on ways to deal with scalability issue.
In simple database system, the solution to the problem of scalability is adding servers which can take over the additional transactions and even up the system. Blockchain on the other hand is a distributed database, adding nodes doesn't help here because every node has to process every transaction, so it's not easing the problem. If we decide to distribute the additional transactions to few nodes only; then these nodes may cheat during verification as the transactions are not recorded with other nodes. Also, this is against the basic rule of blockchain system (trust) that every node has to process every transaction.
Scalability in Ethereum
Scalability issue in Ethereum is same as that of Bitcoin. The advantage Ethereum has over Bitcoin is that Ethereum team are aware of the issue since begenning and hence are ready for fork to deal with the problem, if needed.
There are three proposals to deal with scalability issue in Ethereum.
- Casper is not just about POS, but also to scale the blockchain. In Casper the scaling is done based on a concept called Sharding, which is very much similar to concept of distributed database system to deal with scalability. In Sharding, the transactions are sent to certain nodes for verifying but because casper is more secure.
- Raiden is the Ethereum analogy of Bitcoin's lightning network. In Raiden, the concept is to scale transactions by state channels. It means by grouping transactions into certain way and then moved to process into a different network (off chain). At the end, multiple similar transactions are grouped and put back on the blockchain network. It simply means, more transactions enclosed into a single extra transaction.
- TrueBit is the third proposal to deal with the issue. In TrueBit, the concept is to scale computation through interactive verification.
Only Casper requires to fork because other two can be directly implemented using smart contract codes.
Overview - TrueBit
TrueBit uses interactive verification for offloading computations, providing help in scaling and giving a proper incentivisation scheme for doing computationally-intensive work. The idea is that large computations are proven to be faulty by chopping them up into smaller and smaller pieces until a tiny step remains that can be easily checked by smart contracts. The difficulty lies in motivating Verifiers to watch the process. Verifiers are hard to reward if they do not find an error and the desired situation is precisely the one where nobody cheats and thus no computation contains an error. TrueBit introduces an incentive layer that properly rewards verifiers "even" in the case where everyone is honest.
The technical white paper was released by Christian Reitwiessner (Ethereum) and Jason Teutsch (TrueBit Foundation) on March 7, 2017.
- Task Giver publishes "question" and provides fee.
- Solvers provide solutions in commit/reveal manner. In order to participate as solver, they have to pay deposit. This deposit is slashed if fraud is detected else get rewards.
- Majority solution is accepted. Any dispute is resolved in court (blockchain) using the Verification Game. Verification game will only be played in case of an attack due to incentives.
This is like blockchain with multiple miners who processes all transactions and verify each other on a blockchain. If there is disagreement, fork can be done. To convince the network of the correct version, over 50% of hashpower should be convinced in the blockchain. TrueBit differs with this idea of blockchain as here everyone must be convinced.
Properties - TrueBit
It has unanimous consent.
The computation results can be challenged, starting a "verification game". It means, if an honest verifier disagrees (after checking the computation), then he / she can post it on the blockchain and can outrule anyone if stands correct. It helps prevent attack by 99.9%. Single honest verifier suffices that nobody can cheat.
The honest actor will always win this game. Presence of honest verifier is ensured by economic incentives mechanism.
On-chain part: storing hashes plus tiny computation step.
There are few other projects which have similar concept like Golem / iExec / Sonm. But they focus on performing the computations or outsourcing the computation and not on the fact that they are done correctly. Other use blockchain to pay for cloud computation. TrueBit, on the other hand focuses on the correctness and not on the costs. It is really about scaling verified computation (about what can be done inside the single transaction).
How to scale computation?
The reason why blockchain can't scale computation is because every node has to compute everything.
So, the suggested solution is
- Only few people perform computation off chain, where not everyone has to compute everything. Suppose there is a computational task for the blockchain then 2-3 people perform the computational task and post the result on the blockchain.
- Majority answer is considered, but if there is any disagreement then the person can go to court (which is actually the blockchain). The smart contract judge of the blockchain (court) finds out the correct answer without any error. Simple solution here could be that the entire computation should be rerun by the smart contract, but it doesn't scale.
- The on-chain checking (who is correct) must settle faster.
Key features - TrueBit
- Ethereum has smart contracts, which means computations are running on the blockchains. But they are limited in complexity and resource usage because every full node has to process every transaction and stores all state (account balances, contract code and storage, etc).
- TrueBit provides smart contracts without gas limits. (The amount of computations is measured in unit, called “gas”).
A contract can be written in any programming language and can be executed on blockchain with the help of its interpreter added to the blockchain.
It is driven by neural networks and hence we can have AI (artificial intelligence) on the blockchain with filesystem access to Swarm. It means that TB sized big files can be accessed and chunk can be read in there. It can even compute the big sums over all the gigantic file.
These smart contracts will not run directly on the blockchain, because it doesn't scale but the 'Trust' promise will be the same as on the blockchain.
Applications - TrueBit
- It can link multiple blockchains. eg. Dogecoin Ethereum project. This project tries to create a bridge from Dogecoin to Ethereum and also way back from Ethereum to Dogecoin. The basic idea of this project is that one can take Doge (currency of Dogecoin) and move it around the Ethereum blockchain as an independent token and also move it back by destroying the token and releasing (generating) a new Doge on Dogecoin. To perform this transaction, we need light client for moving from one network to the other network and also for destroying token on Ethereum network. Since, it doesn't have gas limit, it can implement anything and verify the code for Dogecoin blockchain on Erthereum.
- It can be used to verify Golem computations. Golem is a project to pay for other people to do computations. Its white paper mentions that it is actually too big to verify that their computations are actually correct.
- It can also be used for project Livepeer. It is video streaming platform where people are paid to encode the videos. TrueBit can be used to verify that encoding done is correct.
It can be used for several other similar applications.
Verification Game (TrueBit as Decentralized Computational Court)
It is a concept used to settle the on-chain disagreement faster. It is done not by sampling but by binary search. Suppose, someone (challenger) disagrees with the result by another verifier (proposer) and decides to go to the smart contract judge of the blockchain, then the smart contract (judge) doesn't check each and every step or random sampling. It goes by binary search. Here, parties compute Merkle trees of full state (memory) at every single computation step and submit roots at certain step.
Fig: Binary Search
eg. In the fig. above we see that, the dispute is about a computational program of 1000000 steps. Both the parties compute and submit Merkle tree of full state (memory) at Step 1, Step 5000000, Step 750000, Step 625000 and so on. After 20 rounds, agreement changes to disagreement in one step (Step 638295 to Step 638296). Both submits the Merkle proof and smart contract verifies (re-compute just a single step) with no effort and finds the cheater. It took 20 rounds which is very small in comparison to 1000000 rounds and hence faster on chain than actually doing all the computation.
Benefits of the verification game
- Number of rounds can be further reduced.
- Cheater is found with certainty. Large disincentive to cheat. The part of deposit is destroyed of the guilty. The person who identifies it, gets the reward.
- In reality, the game will never be played because cheater will be found if someone watches. But it has to be there in code and correct as fallback for this whole mechanism to work.
Problem: Verifier’s Dilemma
The verification game is well planned and there is very less probability of cheating. Solvers are aware of the mechanism and they would not want to lose their deposit on the blockchain. Verifiers may stop looking over the time because system the works, nobody cheats yet they have to keep looking for the mistakes without any scope of incentive. This would be the perfect timing for the solver to cheat and the system will break. To avoid this problem, the proposed solution is Forced Errors.
Solution: Forced Errors
Concept of Forced Error states that inject the forced error into the system which can then be detected by the verifier and they get the reward. Since, this is not the actual error so solver is not punished if forced error is found. The reward received by the verifier is paid by the system. TrueBit system needs fee to solve the task. This fee is paid out in-part to person who posts the solution to the task and in-part is saved in an account called jackpot and if set of forced errors occurs and a verifier finds the error then the verifier is paid from the jackpot.
Problem: Information Sharing
A solver is forced to inject an error, so he is aware about the forced error. If he denies then he will be punished. This condition is verifiable by the smart contract. The reward is for every verifier who detects the error.
Consider a scenario,
- solver notifies the verifiers about the error
- verifiers can create multiple accounts
- how to ensure computation was actually run?
Solution: Reduce reward with every challenge
- Solver can also challenge
- total error finding reward is halved for each report
- 1 challenge: 100 = 100
- 2 challenge: 25+25 = 50
- 3 challenges: 8.333+8.333+8.333 = 25
Rewards are decreased from 100 to 25, so nobody would like to share it.
In TrueBit, the system works as the task is post, solved by the solvers and verified by the verifiers. It always has multiple parallel tasks and verifier choose randomly between these tasks.
If you like the article, please share. For more updates, technical blogs and general discussion on Ethereum and blockchain technology, please follow us @ether_world (Twitter) and Ethereum Blockchain Technology (Facebook).
#TrueBit #Ethereum #smartcontract #verificationgame
Ethereum Ice Age
Ethereum Ice Age is considered to be an external factor that can affect decision making on other application on Ethereum like ZoE (Zerocash Over Ethereum) and several others. Basically, there is a feature in the protocol that makes Ethereum blockchain blow up after some amount of time. This was introduced in Ethereum because in Bitcoin, it was observed that in due course of time, huge pressure is developed towards the default protocol. Learning by the example, Ethereum team decided to avoid ending up into similar situation of getting default pressure in absence of change in protocol. So, it was decided to make the protocol such that, the Ethereum blockchain blows up on its own after 2.5 years.
Ethereum Ice Age is a difficulty adjustment process that was put into place (in November, 2015) to ensure that everyone has incentive to move to the new blockchain. It is programmed to raise difficulty level exponentially. It will be difficult for miners to keep up with the increase of difficulty level. Block time will be increased and will lead to blockchain freeze. This is why it is named as Ice Age.
However, the blockchain is not going to blow up literally. The reason to consider this feature was to ensure that the community must coordinate on some change after certain period. It means, Ethereum blockchain community don't have to take decision on whether to change or not (as change is a must) but they should take decision on what to change 'A' or 'B'?
At present, Ethereum works on 'Proof of Work' concept. It means to perform any transaction or produce a new coin, computational work is needed. It keeps the entire ecosystem moving. Engineers of Ethereum are planning to change the present 'Proof of Work' concept to 'Proof of Stake' (Casper) believing it will make decentralized system more reliable and secure. Work on Casper is still in progress while Ethereum blockchain is moving closer to difficulty time bomb. It’s high time for Ethereum to take a decision on change in the system else we should expect 'Ethereum Ice Age' to start in next 3-6 months. At present, block time is about 14.45 seconds and after three months it can be about 15.8 seconds and after six months it can be about 28 seconds and keep going up (corrections in data are welcome). So, to delay the Ice Age, Metropolis hard fork is a must.
In Jan 2017, DigixGlobal, Singapore organised a meetup on Ethereum. Vitalik Buterin gave a keynote presentation on Metropolis, the upcoming planned protocol improvements for Ethereum. Metropolis was in top of roadmap for Ethereum for quite some time but because of distraction created by DOS (Denial Of Service) attack in June 2016, engineers had to detour their priorities towards improving core client efficiency, focus on securities and making sure all of the holes of the clients are fixed. Since then, Ethereum Virtual Machine (EVM) improved by 40%, and it's in most efficient state reading, fast synching improvements etc. Now, overall Ethereum clients are working fine and they are moving forward on implementing the Metropolis hard fork.
Vitalik, tabled few major goals to be achieved with Metropolis through his presentation. Possible list of Ethereum Improvement Proposal (EIP) that would be rolled out in a Metropolis release are:
EIP 86 (Principle of abstraction)
Goal: Try to make the protocol itself as simple as possible and to make Ethereum Virtual Machine (EVM) do most of the work.
Allows sending unsigned transactions from a special “entry point address”.
Contract address based on code hash (allows sending to not-yet-existent contracts)
Any account in the call execution chain can pay for gas instead of only the account that sent the transaction. A recipient, or middle account, could pay the gas cost. It helps anonymization, instead of needing to use only one account to pay for gas.
It has privacy benefits.
EIP 98 (removal of intermediate state roots)
Goal: Make it easier to process transactions in parallel.
Reduces light client functionality to a slight extent.
EIP 96 (EVM-ification)
Goal: Try to make light clients more secure.
Moves block hashes and state roots into the state.
Allows for some client simplifications
Direct hash-links between distant blocks allow for much more secure light clients.
EIP 100 (target block time including uncles)
Goal: Security upgrades
Reduces incentive for large mining pools to deliberately mine uncles.
EIP 101 (big integer precompiles)
Goal: Make it easier to verify certain types of cryptography. Currently supported Cryptography in Ethereum is elliptic curve cryptography. But other applications use RSA which is currently computationally inefficient to verify in Ethereum. Introducing various optimization to try make that work faster.
Useful for verifying RSA
Likely only modular exponentiation required.
EIP 116 (STATIC_CALL)
Idea: A way of calling a contract to get just information without changing state or any other security measures. It is special kind of opcode to ensure that it is just for information extraction and not changing anything. It's still under consideration.
The caller and descendants can only read state, not write to state.
Useful for functional programming features.
EIP 195 (Pure call)
Idea: It is even more static version of STATIC CALL. It can’t either read or write.
Takes two memory slices as arguments
Performs the computation and returns. No sub-calling, state reading or state writing is allowed.
Useful for Casper validation code and functional programming feature.
EIP 140 (throw opcode)
It's more efficient and cleaner way of doing exceptions.
It throws an exception without consuming all remaining gas.
Possible extension: pushes an error code onto the stack.
EIP 141 (invalid opcode)
- Not a protocol change.
EIP (Ethereum Improvement Proposal)
Ethereum is an open source project. It has a defined system of 'Ethereum Improvement Proposal' (EIP) at Github to track and discusses new ideas for the protocol. Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.
EIP has four status:
Draft - an EIP that is open for consideration
Accepted - an EIP that is planned for immediate adoption, i.e. expected to be included in the next hard fork (for Core/Consensus layer EIPs).
Final - an EIP that has been adopted in a previous hard fork (for Core/Consensus layer EIPs).
Deferred - an EIP that is not being considered for immediate adoption. May be reconsidered in the future for a subsequent hard fork.
After all, Metropolis release has its own timeline but the uncertain variable is the number of features to be included in the release. If there is a time crunch, Metropolis may be released with only the most important features in the list. Rest of them may be considered for fork after that or may be six months after the Metropolis release. It is evident Metropolis upgrade will bring some aspects to Ethereum that the community has been looking for a while now.
If you like the article, please follow us @ether_world (Twitter) and Ethereum Blockchain Technology (Facebook) for more updates, technical blogs and general discussion on Ethereum and blockchain technology.
#metropolis #ethereumiceage #Ethereum #blockchain #iceage # EIP #ethereumnews #EtherWorld #news #hardfork #crypto
Hard Fork and Soft Fork in blockchain
Hard fork and soft fork are the protocol upgrade mechanism in blockchain. Hard fork creates an incompatibility between the previous version and the latest version on software. There is always a possibility of split of blockchain (like Ethereum Classic). However, it is debatable, if they are preferred upgrade mechanism for blockchain.
Fig: Hard Fork Vs. Soft Fork
There are also two sub-types of hard forks: strictly expanding hard forks, which strictly expand the set of transactions that is valid, and so effectively the old rules are a soft fork with respect to the new rules, and bilateral hard forks, where the two rulesets are incompatible both ways.
Fig: Venn diagram to illustrate the fork types
If you like the article, please follow us @ether_world (Twitter) and Ethereum Blockchain Technology (Facebook) for more updates, technical blogs and general discussion on Ethereum and blockchain technology.
#Ethereum #Hardfork #hardforkinethereum #blockchain #EtherWorld
It is one of the hottest topics in cryptography over the last year. One major reason behind it being hot is Zcash launch. Zcash is a cryptocurrency, whose flagship feature is that it integrated zk-SNARKS (Zero Knowledge Succinct Non-Interactive Argument of Knowledge).
As the title suggests, this is ultimate in privacy.
It is about proving thing about encrypted data without revealing anything about the data except for the claim that you are proving.
In other words, you can verify the correctness of computations without having to execute them and you will not even learn what was executed; just that it was done correctly.
Example – Suppose you have a cryptocurrency on any blockchain, but you don't want people's balances to be visible to everyone else. Then we store people's encrypted balances on the blockchain. Here, transaction amount is encrypted and it is not allowed to people to set their balances in encrypted data (as they can give themselves free money). Now, if you want to send a transaction, then there is a kind of correctness claim, that can be verified.
It says that, if a transaction is being sent then
B1 = old encrypted balance, B2 = new encrypted balance, T = Transaction value;
zk-prove : T <= B1, B2 = B1 – T
To check the correctness of the transaction in case all these data are encrypted is the biggest problem. Solution to this problem is being suggested in zk-SNARKS.
Zk-SNARKS are the cryptographic proof that other people can use to verify that the above computation was performed and the result of the computation says that this check is true but without knowing anything about the encrypted numbers. It suggests that the owner of the account and the sender of the transaction has the decryption key and they know the value can create magic cryptographic zk-SNARKS. In some way, it is a super protocol in the field of cryptography over the last 30 years. In addition to being great for privacy, they're also great at reducing the verification cost of complicated smart contracts. Since they can be verified quickly, and because the proofs are small, they can protect the integrity of the computation without burdening non-participants. It is potentially very powerful technology and similar technology is used in Zcash with some other complexity attached. Technical implementation of zk-SNARKS can be studied at zkSNARKs in a nutshell
For Ethereum, engineers are trying to use this approach but by generalizing them to use for other applications such as voting, digital identity system etc. beyond currency transactions as well.
The general concept was existing in some or the other form for about 30 years but yet not widely used. One of the reasons is that it become viable in last 2-3 years and there are very small number of people who can understand this kind of technology. Blockchain usage is the major use case for this concept.
It also has fundamental weaknesses of the technology:
Trusted setup (can be N of N multiparty computed, but still risk all N were compromised)
Takes 40 seconds to generate a proof-of-concept on a computer. (A year ago, it was 90 seconds.) This can increase to 5-10 minutes on a smaller device like smartphone.
- This could be mitigated by Application Specific Integrated Circuits (ASICs) [specialized computer chips]. Given the fact that specialized ASICs has made mining Bitcoin 10,000 times faster, it can also make proof creation faster as well.
Not the same as obfuscation; someone must have decryption key. It can't work with a system with no owner concept.
The basic idea of trusted setup is to provide access to the setup key generated by other people (on the blockhain network) to create and verify the transaction proof described in zk-SNARKS. The process of generating the setup key involves a bunch of secret information (which is not part of setup key) and is needed to be deleted at the end of the person (who created setup key) after the setup key is created and shared to be used for zk-SNARKS. But, if they end up not deleting the secret data; then other people (on the blockhain network) could use this secret data to create invalid proofs. Because this is on blockchain, people involved for creating the setup key is fairly large group of people. This problem can be mitigated but at the same time it's not perfect.
Implementing zk-SNARKS in Ethereum (Baby ZoE)
In July 2016, Vitalik Buterin, Andrew Miller, Eran Tromer and Sean Bowe from Ethereum, Zcash and IC3 Team were at Ethereum/IC3 Bootcamp at Cornell, USA. They worked together on a project called “Baby ZoE” (Zcash on Ethereum). It is an integration of zk-SNARKS into Ethereum. where a zk-SNARK precompiled contract was written for Parity (the Ethereum Rust client). The contract allows you to deposit discrete amounts (units of ETH) by inserting a commitment to a "serial number" into a Merkle tree maintained by the contract.
The idea of integrating Zerocash into a currency using a SNARK verification opcode goes back to the original Zerocash paper (Section 6.3 in Zerocash Extended Version). Following this prescription, it is possible to extend the ZoE contract to work with the complete Zerocash protocol.
In order to move forward from the “Baby ZoE” (Zerocash over Ethereum) prototype to more realistic project (actual implementation into Ethereum protocol) and keep project simpler; the entire zk-SNARKS verifier were not integrated directly. Over integrating is the most computational intense of the components of the SNARKS verification. This is called as an elliptic curve pairing verification.
Ethereum and Zcash are working together to achieve the functionalities such as creating anonymous tokens and verifying Zcash transactions on the Ethereum blockchain, implementing other elements used by Zcash in Solidity. Once these two requirements are met, project can be tested and implemented to provide a broader applicability of smart contracts. Release date of the project is not yet revealed.
#Ethereum #zoe #zksnarks #blockchain #zcash #EtherWorld
Merkle Tree also known as 'hash tree' is a data structure in cryptography in which each leaf node is a hash of a block of data, and each non-leaf node is a hash of its child nodes. In the most general sense, Merkle tree (named after Ralph Merkle who patented it in 1979) is a way of hashing many “chunks” of data together which relies on splitting the chunks into nodes, where each node contains only a few chunks, then taking the hash of each node and repeating the same process, continuing to do so until the total number of hashes remaining becomes only one called the root hash. It is a generalization of hash lists and hash chains.
The most common and simple form of Merkle tree is the binary Mekle tree, where a node always consists of two adjacent chunks or hashes. It is a kind of 'hash tree' where every single node of the tree is the hash of the two nodes below it. However, a Merkle tree can be created as an n-nary tree, with n children per node.
Fig: Binary Merkle Tree (diagram taken from Wikipidia)
Here, we see an input of data is broken up into blocks labeled L1, L2, L3 and L4. Each of these blocks are hashed using some cryptographic hash function. Then each pair of nodes are recursively hashed until we reach the root node, which is a hash of all nodes below it. SHA-2 is the most popular cryptographic hash function. If the hash tree only needs to protect against unintentional damage, CRCs can be used too.
Binary Merkle trees are very reliable data structures for authenticating information that is in a “list” format; essentially, a series of chunks one after the other. For transaction trees, they are also good because it does not matter how much time it takes to edit a tree once it’s created, as the tree is created once and then forever frozen solid.
Benefits and Utility
The benefit of this hashing algorithm is that it allows for a neat mechanism known as Merkle proofs. A Merkle proof consists of
the root hash of the tree,
the “branch” consisting of all of the hashes going up along the path from the chunk to the root.
Someone reading the proof can verify that the hashing (at least for that branch), is consistent going all the way up the tree, and therefore that the given chunk actually is at that position in the tree. Example, a user wants to do a key-value lookup on the database (eg. “tell me the object in position 612345”) can ask for a Merkle proof, and upon receiving the proof verify that it is correct, and therefore that the value received actually is at position 612345 in the database with that particular root.
Merkle Trees protocol allows for efficiently verifiable proofs that a transaction was included in a block.
If you have all the transactions / entire database then you can know your account balance, what some body's storage / account and other information. But you don’t have enough resources to process the entire blockchain. In this situation, Merkle Trees protocol helps. It allows data to store in smaller chunks hash of hash. So, instead of downloading the entire block; all we download is the Merkle branch that verifies that hashes inside of the branch is consistent. You can verify the Merkle branch with block header. It is basically taking help of miners to verify that this piece of state is what it is saying.
In distributed (peer-to-peer) network, the same data exists in multiple locations and hence data verification is very important. Merkle trees allow efficient and secure verification of the contents in distributed systems. This is efficient because it uses hashes instead of full files. Hashes are ways of encoding files that are much smaller than the actual file itself. Merkle tree allows a simpler mechanism for authenticating a small amount of data like hash, as well as authenticate large databases of potentially unbounded size. The original application of Merkle proofs was in Bitcoin, as described and created by Satoshi Nakamoto in 2009. The Bitcoin blockchain uses Merkle proofs in order to store the transactions in every block. Currently, it is used in few other peer-to-peer networks such as Ethereum, Tor, and Git.
Merkle Tree in Blockchain
The benefit of using the Merkle Tree in blockchain is that instead of downloading every transaction and every block, a “light client” can only download the chain of block headers.
In blockchain, every block contains few hundreds of transactions data. If someone needs to verify existence of a specific transaction in a block, then he doesn't have to download the entire block. Downloading a set of branch of this tree which contains this transaction is enough. We check the hashes which are just going up the branch (relevant to my transaction). If these hashes check out good, then we know that this particular transaction exist in this block.
Block Header : An 80-byte chunks of data belonging to a single block which is hashed repeatedly to create proof of work is called as block header. It contains five things:
A hash of the previous header
A mining difficulty value
A proof of work nonce
A root hash for the Merkle tree containing the transactions for that block.
If the light client wants to determine the status of a transaction, it can simply ask for a Merkle proof showing that a particular transaction is in one of the Merkle trees whose root is in a block header for the main chain.
Block : A block in the ethereum blockchain consists of a header, a list of transactions, and a list of uncle blocks. Included in the header is a transaction root hash, which is used to validate the list of transactions. Transactions are sent over the wire from peer to peer as a simple list. They must be assembled into a special data structure called a trie to compute the root hash. Uncle blocks are the stale blocks re-included in the blockchain.
The state in header needs to be frequently updated: the balance and nonce of accounts is often changed, and what’s more, new accounts are frequently inserted, and keys in storage are frequently inserted and deleted.
Light Client : A client that accesses the blockchain without processing every block and without downloading every transaction in the chain is called as “light client”. This is needed for clients accessing blockchain to verify data with a little low memory device such as mobile phone.
Merkle Tree Protocol in Ethereum
Creating Ethereum system without Merkle tree could be like creating giant block headers that directly contain every transaction. This could have posed large scalability challenges and in long term making it out of reach of all except for the most powerful computers in the world.
The concept of Merkle tree is introduced in Ethereum to allow for compact and efficiently verifiable proofs that a transaction was included in a block. This is already in existing in Bitcoin. Ethereum takes the Merkle tree concept of Bitcoin implementation a step further.
Every block header in Ethereum contains not just one Merkle tree, but three trees for three kinds of objects:
Receipts (essentially, pieces of data showing the effect of each transaction)
Fig : Block Header in Ethereum
This allows for a highly-advanced light client protocol that allows light clients to easily make and get verifiable answers to many kinds of queries:
Has this transaction been included in a particular block? (handled by Transaction tree)
Tell me all instances of an event of type X (eg. a crowdfunding contract reaching its goal) emitted by this address in the past 30 days. (handled by Receipt tree)
What is the current balance of my account? (handled by State tree)
Does this account exist? (handled by State tree)
Pretend to run this transaction on this contract. What would the output be? (handled by State tree).
Merkle Patricia tree
Merkle tree used in Ethereum is more complex than simple binary Merkle tree. This is called as the “Merkle Patricia tree”. Patricia tree is used in order to allow efficient insert / delete operations.
PATRICIA is abbreviation to Practical Algorithm To Retrieve Information Coded in Alphanumeric (source: original paper by Donald R. Morrison).
Patricia Tree provide a cryptographically authenticated data structure that can be used to store all (key, value) bindings, although for the scope of this paper we are restricting keys and values to strings (to remove this restriction, just use any serialization format for other data types).
Fig: An example of a radix tree (Source :Wikipedia)
A Patricia tree is a binary radix tree (also known as radix trie). It is a data structure that represents a space-optimized trie (digital tree) in which each node that is the only child is merged with its parent.
To implement Particia tree in Ethereum, couple of modification are introduced to boost efficiency. In a normal radix tree, a key is the actual path taken through the tree to get to the corresponding value. That is, beginning from the root node of the tree, each character in the key tells you which child node to follow to get to the corresponding value, where the values are stored in the leaf nodes that terminate every path through the tree. In Ethereum, hexadecimal is used - X characters from an 16 character "alphabet". Hence nodes in the trie have 16 child nodes (the 16 character hex "alphabet") and a maximum depth of X. A hex character is referred to as a 'nibble'.
If you like the article, please follow us at
facebook: EtherWorld, Ethereum Blockchain Technology
#blockchain #ethereum #merkletree #patriciatree #merklepatriciatree #blockheader #EtherWorld