How Much Do You Know About Blockchain Technology— December 2018 review
What you have to know about blockchain in 2018
1. What is the blockchain? What is block? What is Chain?
- Blockchain : A blockchain is a decentralized, distributed and public digital ledger that is used to record transactions across many computers so that any involved record cannot be altered retroactively, without the alteration of all subsequent blocks.
- Block: Transaction data is permanently recorded in files called blocks. They can be thought of as the individual pages of a city recorder’s recordbook (where changes to title to real estate are recorded) or a stock transaction ledger.
- Chain: Blocks are organized into a linear sequence over time (also known as the block chain). Every block contains a hash of the previous block so Each block is guaranteed to come after the previous block chronologically because the previous block’s hash would otherwise not be known.
2. Why is blockchain immutable?
In plain English, immutability is used to denote something which can never be modified or deleted. In a blockchain, it refers to the logs of transactions, which is created by consensus among the chain’s participants. The basic notion is this: once a blockchain transaction has received a sufficient level of validation it can never be replaced or reversed or edited.
Most people, when asked, cite “the blockchain” as the reason behind Bitcoin’s Immutable nature. However, it isn’t the “blockchain” that makes bitcoin immutable, but its Proof of Work consensus method.
The Proof Of Work that backs the Bitcoin Network is what makes it’s blockchain “the hardest thing to change in the world”. The “Work”, aka electricity/hashpower, earned bitcoin its badge of Maximum Immutability.
If a miner tries to change a transaction from history, he will have to re-mine all the blocks from that block till the current block and this will have to be reflected in every copy of the ledger in the network. Miners will have to rebuild the merkle tree of the block in which the transaction is present and redo all the proof of work for that block.
Now, since the next block stores the hash of this block, the next block will also have to be re-mined. This is because the next block will have to be edited with the new “previous block hash”. This change will result in a different block hash. The new block hash might result in a hash that does not match the set difficulty level. Thus, this block will also have to be re-mined.
The same process will have to be propagated to the latest block in the chain. While this miner is busy remining old blocks, there will be new blocks getting added to the chain. Thus to edit a historical record, the miner will have to remine the old blocks and keep up with the pace of newly generated blocks too. This is extremely difficult, close to impossible. The computing power required to achieve this is enormous and probably only theoretical.
3. What is mining and why is it necessary?
When bitcoins are mined, a valuable service is provided to the Bitcoin network: decentralized transaction recordation and validation. Bitcoin relies on miners to record and validate transactions because of a particular problem inherent in any system of digital currency: double spending.
4. How does public/private key encryption work?
A private key and public key work in as a pair. The public key (which is specific to person A but everyone knows it [let everyone be B]) can be used to encrypt a message. B then sends the message to A. The private key for person A can then be used to decrypt the message. If A wants to send a message back to B, they will first encrypt it with B’s public key, send it, then B would decrypt it using their private key.
5. What is the consensus algorithm?
An algorithm is a process or set of rules to be followed in calculations to reach a goal, usually seen in computer systems. New networks (such as cryptocurrency networks) and rudimentary networks (such as those used by financial institutions) of transactions are considered working, valid and valuable only if the network can agree on current balances in a double-spend-proof ledger of transactions — only if they reach consensus.
6. What is the public blockchain ,consortium blockchain and private blockchain?
- Public blockchain : any individual may access the information, submit transactions that would be effectively confirmed, and participate in the consensus procedures therein.
- Private Blockchain : the private blockchain, the inverse of a public blockchain in almost all key attributes, allows organizations or individuals to control who can see what transactions, and when those people can see them. With private blockchains, writing permissions are retained by a single person or organisation. This allows them to carry out the wishes of an individual while keeping certain transaction information private. A typical example for a private blockchain is MONAX, an open platform for developers and devops to build, ship, and run blockchain-based applications for business ecosystems.
- Consortium blockchain: Consortium blockchain refers to blockchain with consensus procedures controlled by preset nodes. Consortium blockchains do not allow any person with an internet connection to participate nor do they grant full control to a single entity but rather a group of approved individuals. They therefore provide the efficiency and security of public blockchains while still allowing for some degree of central control, monitoring and safeguarding. Consortium blockchains are most often the banking sector, for instance Quorum is an Ethereum-powered consortium blockchain created by JP Morgan to service the needs of financial industries and beyond. Another example, Hyperledger, open source collaborative effort that unites finance, banking, Internet of Things, supply chains, manufacturing and Technology on a consortium blockchain.
1. What’s difference between Bitcoin and Ethereum
Bitcoin and Ethereum are both simply examples of cryptocurrencies — digital money transfer systems which use blockchain technology and encryption — there are subtle differences in how they work and what they can be used for.
- Bitcoin was the first true cryptocurrency and has been in circulation since 2009. Ethereum is a far more recent development, going live in 2015.
- Bitcoin’s average block time is 10 minutes, whereas Ethereum’s average block time is 15 seconds. Ethereum transactions can be confirmed much faster.
the main difference between the two cryptocurrencies is the ease of making programmable smart contracts on the Ethereum blockchain. Initially, the Bitcoin network was unable to process smart contracts. As Bitcoin and its blockchain evolved, support for smart contracts was added, though Bitcoin continues to play second-fiddle to Ethereum in this regard.
2. What’s the smart contract
“smart contracts” can seem confusing at first. A smart contract is an agreement between two people in the form of computer code. They run on the blockchain, so they are stored on a public database and cannot be changed. In 1994, Nick Szabo (a cryptographer), came up with the idea of being able to record contracts in the form of computer code. This contract would be activated automatically when certain conditions are met. This idea could potentially remove the need for trusted third-party companies (such as banks). To put it simply: Smart contracts is a programming application on blockchain.
3. What’s the difference between Account and UTXO (Unspent Transaction output)
UTXO Model : A user’s wallet keeps track of a list of unspent transactions associated with all addresses owned by the user, and the balance of the wallet is calculated as the sum of those unspent transactions.
The Account/Balance Model keeps track of the balance of each account as a global state. The balance of an account is checked to make sure it is larger than or equal to the spending transaction amount.This is the same as in banking, the account balance is the amount of money an individual has available in his checking or savings account.
4. What’s POS(Proof of state) , POW (proof of work) and POA( Proof of Authority?
Proof of stake (PoS) is a type of algorithm by which a cryptocurrency blockchain network aims to achieve distributed consensus. In PoS-based cryptocurrencies the creator of the next block is chosen via various combinations of random selection and wealth or age (i.e., the stake).
Proof of work(POW) is a piece of data which is difficult (costly, time-consuming) to produce but easy for others to verify and which satisfies certain requirements. Producing a proof of work can be a random process with low probability so that a lot of trial and error is required on average before a valid proof of work is generated. Bitcoin uses the Hashcash proof of work system.
Proof-of-authority (PoA) is an algorithm used with blockchains that delivers comparatively fast transactions through a consensus mechanism based on identity as a stake.In PoA-based networks, transactions and blocks are validated by approved accounts, known as validators. Validators run software allowing them to put transactions in blocks. The process is automated and does not require validators to be constantly monitoring their computers.
5. Why is there a public blockchain to mine?
Blockchain mining involves adding transactions to the existing blockchain ledger of transactions distributed among all users of a blockchain so Mining that is based on grinding through an enormous cryptographic search is needed where the nodes are not to be trusted.
6. What’s mining pool? Why it need mining pool?
Mining pools are groups of cooperating miners who agree to share block rewards in proportion to their contributed mining hash power.
Why it need mining pool ? With the increase in the number of people involved in mining, the chances of successfully packing the blocks are getting lower and lower. Therefore, combined with everyone’s calculation of mining and increasing the probability of successful mining, there is an opportunity to allocate more stable income.
7. What’s ERC?
ERCs (Ethereum Request for Comments) are technical documents used by smart contract developers at Ethereum. They define a set of rules required to implement tokens for the Ethereum ecosystem. These documents are usually created by developers, and they include information about protocol specifications and contract descriptions. Before becoming an standard, an ERC must be revised, commented and accepted by the community through an EIP (Ethereum Improvement Proposal). Actually, an ERC is just a specific type of EIP. ERCs are application-level conventions and standards, and they may be of different types (token, registration name, URI schemes, library, packets, etc.).
Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol…
8. What’s difference between ERC20 and ERC721?
ERC-20 tokens are called fungible tokens whereas ERC-721 tokens are called non-fungible tokens. Let us look at the differences.
Fungible tokens :
Fungible tokens of the type ERC-20 are those that represent a value, like a currency note. They are interchangeable and not unique. Most of the tokens that we see on exchanges today are fungible tokens on Ethereum blockchain.
Non-fungible tokens of the type ERC-721 are those that represent a unique asset, like a certificate of ownership for a painting. These tokens are not interchangeable and although they hold value, that value is not the same as any other token of the same type. ERC-721 tokens are non-divisible which means you cannot give half of your token to someone.
9. What’s difference between Decentralized exchange and Centralized exchange?
A centralized exchange (ex. Coinbase, Kraken, Binance, etc.) is run by a profit-oriented company that gets revenue from their platform’s fee structures. To put it simply: both the access and exit points into the current blockchain ecosystem require fees — all of which go to centralized exchanges like Gemini https://gemini.com/
A decentralized exchange like Herdius works in a distributed way through a blockchain, with orders and information routed in a peer-to-peer protocol. This way, you are entrusting a system of hundreds of independent nodes instead of a single centralized entity, like an exchange like idex https://idex.market/
10. What’s double spending? How does Bitcoin handle it ?
Double spending means spending the same money twice. For example, you paid cash, so the payment was confirmed and verified instantly by another human in Starbucks. Cash is physical cash. By all means, you simply cannot spend the same $10 somewhere else to make another purchase. But with digital currency like BTC, if this verification mechanism is missing, it can lead to double spending. This is because Bitcoin transactions have a possibility of being copied and rebroadcasted. This opens up the possibility that the same BTC could be spent twice by its owner.
Bitcoin manages the double spending problem by implementing a confirmation mechanism and maintaining a universal ledger (called “blockchain”), similar to the traditional cash monetary system. Bitcoin’s blockchain maintains a chronologically-ordered, time-stamped transaction ledger from the very start of its operation in 2009.
11. What’s sybil attack?
The Sybil attack in computer security is an attack wherein a reputation system is subverted by forging identities in peer-to-peer networks. It is named after the subject of the book Sybil. The blockchain is distribute network system so system can be attacked by forging identities.
12. What’s 51% attack?
A 51% attack means an attack on a blockchain by miners who would take control of more than 50% of the network’s mining hash rate, or computing power. These attackers would then be able to stop new transactions from being confirmed, giving them the ability to stop payments between some or all of the blockchain’s users.
13. What’s soft fork? what’s hard fork ?
A hard fork is a permanent divergence from the previous version of the Blockchain, and nodes running previous versions will no longer be accepted by the newest version. A hard fork is a radical change to the protocol that makes previously valid blocks or transactions invalid.
1. Why bitcoin generate a block every ten minutes?
When you make a Bitcoin transaction, it needs to be approved by the network before it can be completed. The average time it takes to mine a block is 10 minutes. The average block time can actually be slightly shorter or longer depending on if the total hash power of the Bitcoin network is growing or shrinking.
2. Why it take around a hour for a bitcoin transaction to be confirmed?
A bitcoin transaction generally needs 6 confirmations from miners before it’s processed. The average time it takes to mine a block is 10 minutes, so you would expect a transaction to take around an hour on average.
3. What’s Orphan block ?
Orphaned blocks: with orphan in its original meaning of “having no parent”. These are blocks received by a node that does not have its entire ancestry (yet) and thus cannot be validated. Nodes keep such blocks in memory, while asking their peers to fill in the gap of their history. The client does not show these, so when people talk about orphan blocks, they are most likely referring to extinct blocks. Note that since Bitcoin Core v0.10, there are no such orphan blocks anymore, due to a significant change in the download mechanism.
4. What’s sharding, extension block and sidechain?
Sharding is breaking a single database into smaller, more manageable chunks, and distributing those chunks across multiple servers, in order to spread the load and maintain a high throughput. There are two main ways of cutting up a database — vertical partitioning and horizontal partitioning.
In case of the blockchain, each node will have only a part of the data on the blockchain, and not the entire information, when sharding is implemented. Nodes that maintain a shard maintain information only on that shard in a shared manner, so within a shard, the decentralization is still maintained. However, each node doesn’t load the information on the entire blockchain, thus helping in scalability.
Extension blocks were actually first proposed by Bitcoin Core developer Johnson Lau in 2013 (as “auxiliary blocks”), and again earlier this year . The extension blocks is a way to increase in the Bitcoin block size.
The solution generally shares many of the virtues of hard forks: extension blocks allow for almost any protocol change. But they share one significant benefit with soft forks: extension blocks are backward compatible.
Sidechains are emerging mechanisms that allow tokens and other digital assets from one blockchain to be securely used in a separate blockchain and then be moved back to the original blockchain if needed. Sidechain functionality holds tremendous potential to enhance the capabilities of existing blockchains.
A sidechain is a separate blockchain that is attached to its parent blockchain using a two-way peg. The two-way peg enables interchangeability of assets at a predetermined rate between the parent blockchain and the sidechain. The original blockchain is usually referred to as the ‘main chain’ and all additional blockchains are referred to as ‘sidechains’.
5. What problem does the existing blockchain application face?
5. 1 Scalability :
Almost all of the well-known first-generation blockchain systems have hard limits on the number of transactions. Bitcoin limits the maximum block size, Ethereum limits the total amount of gas in a block, as examples. Due to the increased adoption of cryptocurrencies in recent years, the number of users and transactions have skyrocketed, testing the limits of first-generation blockchain systems.
Scalability issues have given rise to significant transaction fees, clogged mempools and long drawn debates resulting in forks and community splits. Ethereum’s ambitions are currently constrained by the transactions per second (TPS) factor. For it to replace Visa, it should have a TPS of 45,000; however at its current TPS of 15 — one popular application like CryptoKitties suffices to make the network unusable.
5.2 Limited Programming Ecosystem:
Although Ethereum created the application development aspect on a blockchain, building complex applications remains very difficult. Ethereum Virtual Machine was a significant step-up from the highly limited (by design) Bitcoin programming environment. However, with increasing adoption; the EVM has hit design limits and security pitfalls.
5.3 Blockchain Security Vulnerabilities:
Although Very few instances of the Bitcoin protocol or the Ethereum protocol being vulnerable have been reported, Smart contract has resulted in multiple incidents. It started with the DAO hack (~$60M). There is room for improvement in this. Developers keep up with all the security knowledge and tools like Code Analysers, Formal Verification, Manual Validation and so on.
Currently, mobile applications or web applications interacting with blockchains are still extremely low in numbers and most are not user-friendly enough. Tools for secure smart contract development and for Dapps are still in progress. We still have a long way to go .
6. What is Byzantine Generals Problem?
The Byzantine Generals Problem is a term etched from the computer science description of a situation where involved parties must agree on a single strategy in order to avoid complete failure, but where some of the involved parties are corrupt and disseminating false information or are otherwise unreliable.
The Byzantine Generals Problem makes for an excellent fundamental example of how Bitcoin’s Proof-of-Work consensus algorithm functions, and understanding it generally elevates your comprehension of other consensus algorithms.
The solution to the Byzantine Generals Problem isn’t simple by any means. It involves some hashing, heavy computing work, and communication between all of the nodes (generals) to verify the message. The agreement between all of these nodes is called consensus.
7. What’s IPFS?
IPFS stands for Interplanetary File System and it is an open-source, peer-to-peer distributed hypermedia protocol that aims to function as a ubiquitous file system for all computing devices. It is a complex and highly ambitious project with some serious and profound implications on the future development and structure of the Internet as we know it.
I made a ERC721 by using IPFS
8. What DAG?
A directed acyclic graph (DAG) a finite directed graph with no directed cycles. That is, it consists of finitely many vertices and edges, with each edge directed from one vertex to another, such that there is no way to start at any vertex v and follow a consistently-directed sequence of edges that eventually loops back to v again. Equivalently, a DAG is a directed graph that has a topological ordering, a sequence of the vertices such that every edge is directed from earlier to later in the sequence.
IOTA is not a blockchain and it is based on a different technology called Tangle (DAG). The DAG network chooses an existing later transaction to link to when a new transaction happens. The goal is to keep the network width within a certain range that can support quick transaction validation. IOTA also proposed its own algorithm controlling the width on the tangle network. Simply say, Each transaction is a block, which greatly improves the transaction throughput. The trader is also a miner. The transaction process participates in the consensus of the block, so there is no need to pay transaction fees.
9. What’s Merkle Tree?
Merkle Trees are a fundamental component of blockchains that underpin their functionality. They allow for efficient and secure verification of large data structures, and in the case of blockchains, potentially boundless data sets.
The implementation of Merkle trees in blockchains has multiple effects. It allows them to scale while also providing the hash-based architecture for them to maintain data integrity and a trivial way to verify the integrity of data. Cryptographic hash functions are the underlying technology that allow for Merkle trees to work.
10. What is CAP Theorem? What does CAP stand for ?
CAP Theorem is a concept that a distributed database system can only have 2 of the 3: Consistency, Availability and Partition Tolerance. CAP Theorem is very important in the Big Data world, especially when we need to make trade off’s between the three, based on our unique use case.
Consistency : The system continues to run, despite the number of messages being delayed by the network between nodes. A system that is partition-tolerant can sustain any amount of network failure that doesn’t result in a failure of the entire network.
Availability : all nodes see the same data at the same time. Simply put, performing a read operation will return the value of the most recent write operation causing all nodes to return the same data. A system has consistency if a transaction starts with the system in a consistent state, and ends with the system in a consistent state.
Partition Tolerance : Every request gets a response on success/failure. Achieving availability in a distributed system requires that the system remains operational 100% of the time. Every client gets a response, regardless of the state of any individual node in the system.