What Is Blockchain Technology? The ... - academy.binance.com

Bitcoin (BTC)A Peer-to-Peer Electronic Cash System.

Bitcoin (BTC)A Peer-to-Peer Electronic Cash System.
  • Bitcoin (BTC) is a peer-to-peer cryptocurrency that aims to function as a means of exchange that is independent of any central authority. BTC can be transferred electronically in a secure, verifiable, and immutable way.
  • Launched in 2009, BTC is the first virtual currency to solve the double-spending issue by timestamping transactions before broadcasting them to all of the nodes in the Bitcoin network. The Bitcoin Protocol offered a solution to the Byzantine Generals’ Problem with a blockchain network structure, a notion first created by Stuart Haber and W. Scott Stornetta in 1991.
  • Bitcoin’s whitepaper was published pseudonymously in 2008 by an individual, or a group, with the pseudonym “Satoshi Nakamoto”, whose underlying identity has still not been verified.
  • The Bitcoin protocol uses an SHA-256d-based Proof-of-Work (PoW) algorithm to reach network consensus. Its network has a target block time of 10 minutes and a maximum supply of 21 million tokens, with a decaying token emission rate. To prevent fluctuation of the block time, the network’s block difficulty is re-adjusted through an algorithm based on the past 2016 block times.
  • With a block size limit capped at 1 megabyte, the Bitcoin Protocol has supported both the Lightning Network, a second-layer infrastructure for payment channels, and Segregated Witness, a soft-fork to increase the number of transactions on a block, as solutions to network scalability.

https://preview.redd.it/s2gmpmeze3151.png?width=256&format=png&auto=webp&s=9759910dd3c4a15b83f55b827d1899fb2fdd3de1

1. What is Bitcoin (BTC)?

  • Bitcoin is a peer-to-peer cryptocurrency that aims to function as a means of exchange and is independent of any central authority. Bitcoins are transferred electronically in a secure, verifiable, and immutable way.
  • Network validators, whom are often referred to as miners, participate in the SHA-256d-based Proof-of-Work consensus mechanism to determine the next global state of the blockchain.
  • The Bitcoin protocol has a target block time of 10 minutes, and a maximum supply of 21 million tokens. The only way new bitcoins can be produced is when a block producer generates a new valid block.
  • The protocol has a token emission rate that halves every 210,000 blocks, or approximately every 4 years.
  • Unlike public blockchain infrastructures supporting the development of decentralized applications (Ethereum), the Bitcoin protocol is primarily used only for payments, and has only very limited support for smart contract-like functionalities (Bitcoin “Script” is mostly used to create certain conditions before bitcoins are used to be spent).

2. Bitcoin’s core features

For a more beginner’s introduction to Bitcoin, please visit Binance Academy’s guide to Bitcoin.

Unspent Transaction Output (UTXO) model

A UTXO transaction works like cash payment between two parties: Alice gives money to Bob and receives change (i.e., unspent amount). In comparison, blockchains like Ethereum rely on the account model.
https://preview.redd.it/t1j6anf8f3151.png?width=1601&format=png&auto=webp&s=33bd141d8f2136a6f32739c8cdc7aae2e04cbc47

Nakamoto consensus

In the Bitcoin network, anyone can join the network and become a bookkeeping service provider i.e., a validator. All validators are allowed in the race to become the block producer for the next block, yet only the first to complete a computationally heavy task will win. This feature is called Proof of Work (PoW).
The probability of any single validator to finish the task first is equal to the percentage of the total network computation power, or hash power, the validator has. For instance, a validator with 5% of the total network computation power will have a 5% chance of completing the task first, and therefore becoming the next block producer.
Since anyone can join the race, competition is prone to increase. In the early days, Bitcoin mining was mostly done by personal computer CPUs.
As of today, Bitcoin validators, or miners, have opted for dedicated and more powerful devices such as machines based on Application-Specific Integrated Circuit (“ASIC”).
Proof of Work secures the network as block producers must have spent resources external to the network (i.e., money to pay electricity), and can provide proof to other participants that they did so.
With various miners competing for block rewards, it becomes difficult for one single malicious party to gain network majority (defined as more than 51% of the network’s hash power in the Nakamoto consensus mechanism). The ability to rearrange transactions via 51% attacks indicates another feature of the Nakamoto consensus: the finality of transactions is only probabilistic.
Once a block is produced, it is then propagated by the block producer to all other validators to check on the validity of all transactions in that block. The block producer will receive rewards in the network’s native currency (i.e., bitcoin) as all validators approve the block and update their ledgers.

The blockchain

Block production

The Bitcoin protocol utilizes the Merkle tree data structure in order to organize hashes of numerous individual transactions into each block. This concept is named after Ralph Merkle, who patented it in 1979.
With the use of a Merkle tree, though each block might contain thousands of transactions, it will have the ability to combine all of their hashes and condense them into one, allowing efficient and secure verification of this group of transactions. This single hash called is a Merkle root, which is stored in the Block Header of a block. The Block Header also stores other meta information of a block, such as a hash of the previous Block Header, which enables blocks to be associated in a chain-like structure (hence the name “blockchain”).
An illustration of block production in the Bitcoin Protocol is demonstrated below.

https://preview.redd.it/m6texxicf3151.png?width=1591&format=png&auto=webp&s=f4253304912ed8370948b9c524e08fef28f1c78d

Block time and mining difficulty

Block time is the period required to create the next block in a network. As mentioned above, the node who solves the computationally intensive task will be allowed to produce the next block. Therefore, block time is directly correlated to the amount of time it takes for a node to find a solution to the task. The Bitcoin protocol sets a target block time of 10 minutes, and attempts to achieve this by introducing a variable named mining difficulty.
Mining difficulty refers to how difficult it is for the node to solve the computationally intensive task. If the network sets a high difficulty for the task, while miners have low computational power, which is often referred to as “hashrate”, it would statistically take longer for the nodes to get an answer for the task. If the difficulty is low, but miners have rather strong computational power, statistically, some nodes will be able to solve the task quickly.
Therefore, the 10 minute target block time is achieved by constantly and automatically adjusting the mining difficulty according to how much computational power there is amongst the nodes. The average block time of the network is evaluated after a certain number of blocks, and if it is greater than the expected block time, the difficulty level will decrease; if it is less than the expected block time, the difficulty level will increase.

What are orphan blocks?

In a PoW blockchain network, if the block time is too low, it would increase the likelihood of nodes producingorphan blocks, for which they would receive no reward. Orphan blocks are produced by nodes who solved the task but did not broadcast their results to the whole network the quickest due to network latency.
It takes time for a message to travel through a network, and it is entirely possible for 2 nodes to complete the task and start to broadcast their results to the network at roughly the same time, while one’s messages are received by all other nodes earlier as the node has low latency.
Imagine there is a network latency of 1 minute and a target block time of 2 minutes. A node could solve the task in around 1 minute but his message would take 1 minute to reach the rest of the nodes that are still working on the solution. While his message travels through the network, all the work done by all other nodes during that 1 minute, even if these nodes also complete the task, would go to waste. In this case, 50% of the computational power contributed to the network is wasted.
The percentage of wasted computational power would proportionally decrease if the mining difficulty were higher, as it would statistically take longer for miners to complete the task. In other words, if the mining difficulty, and therefore targeted block time is low, miners with powerful and often centralized mining facilities would get a higher chance of becoming the block producer, while the participation of weaker miners would become in vain. This introduces possible centralization and weakens the overall security of the network.
However, given a limited amount of transactions that can be stored in a block, making the block time too longwould decrease the number of transactions the network can process per second, negatively affecting network scalability.

3. Bitcoin’s additional features

Segregated Witness (SegWit)

Segregated Witness, often abbreviated as SegWit, is a protocol upgrade proposal that went live in August 2017.
SegWit separates witness signatures from transaction-related data. Witness signatures in legacy Bitcoin blocks often take more than 50% of the block size. By removing witness signatures from the transaction block, this protocol upgrade effectively increases the number of transactions that can be stored in a single block, enabling the network to handle more transactions per second. As a result, SegWit increases the scalability of Nakamoto consensus-based blockchain networks like Bitcoin and Litecoin.
SegWit also makes transactions cheaper. Since transaction fees are derived from how much data is being processed by the block producer, the more transactions that can be stored in a 1MB block, the cheaper individual transactions become.
https://preview.redd.it/depya70mf3151.png?width=1601&format=png&auto=webp&s=a6499aa2131fbf347f8ffd812930b2f7d66be48e
The legacy Bitcoin block has a block size limit of 1 megabyte, and any change on the block size would require a network hard-fork. On August 1st 2017, the first hard-fork occurred, leading to the creation of Bitcoin Cash (“BCH”), which introduced an 8 megabyte block size limit.
Conversely, Segregated Witness was a soft-fork: it never changed the transaction block size limit of the network. Instead, it added an extended block with an upper limit of 3 megabytes, which contains solely witness signatures, to the 1 megabyte block that contains only transaction data. This new block type can be processed even by nodes that have not completed the SegWit protocol upgrade.
Furthermore, the separation of witness signatures from transaction data solves the malleability issue with the original Bitcoin protocol. Without Segregated Witness, these signatures could be altered before the block is validated by miners. Indeed, alterations can be done in such a way that if the system does a mathematical check, the signature would still be valid. However, since the values in the signature are changed, the two signatures would create vastly different hash values.
For instance, if a witness signature states “6,” it has a mathematical value of 6, and would create a hash value of 12345. However, if the witness signature were changed to “06”, it would maintain a mathematical value of 6 while creating a (faulty) hash value of 67890.
Since the mathematical values are the same, the altered signature remains a valid signature. This would create a bookkeeping issue, as transactions in Nakamoto consensus-based blockchain networks are documented with these hash values, or transaction IDs. Effectively, one can alter a transaction ID to a new one, and the new ID can still be valid.
This can create many issues, as illustrated in the below example:
  1. Alice sends Bob 1 BTC, and Bob sends Merchant Carol this 1 BTC for some goods.
  2. Bob sends Carols this 1 BTC, while the transaction from Alice to Bob is not yet validated. Carol sees this incoming transaction of 1 BTC to him, and immediately ships goods to B.
  3. At the moment, the transaction from Alice to Bob is still not confirmed by the network, and Bob can change the witness signature, therefore changing this transaction ID from 12345 to 67890.
  4. Now Carol will not receive his 1 BTC, as the network looks for transaction 12345 to ensure that Bob’s wallet balance is valid.
  5. As this particular transaction ID changed from 12345 to 67890, the transaction from Bob to Carol will fail, and Bob will get his goods while still holding his BTC.
With the Segregated Witness upgrade, such instances can not happen again. This is because the witness signatures are moved outside of the transaction block into an extended block, and altering the witness signature won’t affect the transaction ID.
Since the transaction malleability issue is fixed, Segregated Witness also enables the proper functioning of second-layer scalability solutions on the Bitcoin protocol, such as the Lightning Network.

Lightning Network

Lightning Network is a second-layer micropayment solution for scalability.
Specifically, Lightning Network aims to enable near-instant and low-cost payments between merchants and customers that wish to use bitcoins.
Lightning Network was conceptualized in a whitepaper by Joseph Poon and Thaddeus Dryja in 2015. Since then, it has been implemented by multiple companies. The most prominent of them include Blockstream, Lightning Labs, and ACINQ.
A list of curated resources relevant to Lightning Network can be found here.
In the Lightning Network, if a customer wishes to transact with a merchant, both of them need to open a payment channel, which operates off the Bitcoin blockchain (i.e., off-chain vs. on-chain). None of the transaction details from this payment channel are recorded on the blockchain, and only when the channel is closed will the end result of both party’s wallet balances be updated to the blockchain. The blockchain only serves as a settlement layer for Lightning transactions.
Since all transactions done via the payment channel are conducted independently of the Nakamoto consensus, both parties involved in transactions do not need to wait for network confirmation on transactions. Instead, transacting parties would pay transaction fees to Bitcoin miners only when they decide to close the channel.
https://preview.redd.it/cy56icarf3151.png?width=1601&format=png&auto=webp&s=b239a63c6a87ec6cc1b18ce2cbd0355f8831c3a8
One limitation to the Lightning Network is that it requires a person to be online to receive transactions attributing towards him. Another limitation in user experience could be that one needs to lock up some funds every time he wishes to open a payment channel, and is only able to use that fund within the channel.
However, this does not mean he needs to create new channels every time he wishes to transact with a different person on the Lightning Network. If Alice wants to send money to Carol, but they do not have a payment channel open, they can ask Bob, who has payment channels open to both Alice and Carol, to help make that transaction. Alice will be able to send funds to Bob, and Bob to Carol. Hence, the number of “payment hubs” (i.e., Bob in the previous example) correlates with both the convenience and the usability of the Lightning Network for real-world applications.

Schnorr Signature upgrade proposal

Elliptic Curve Digital Signature Algorithm (“ECDSA”) signatures are used to sign transactions on the Bitcoin blockchain.
https://preview.redd.it/hjeqe4l7g3151.png?width=1601&format=png&auto=webp&s=8014fb08fe62ac4d91645499bc0c7e1c04c5d7c4
However, many developers now advocate for replacing ECDSA with Schnorr Signature. Once Schnorr Signatures are implemented, multiple parties can collaborate in producing a signature that is valid for the sum of their public keys.
This would primarily be beneficial for network scalability. When multiple addresses were to conduct transactions to a single address, each transaction would require their own signature. With Schnorr Signature, all these signatures would be combined into one. As a result, the network would be able to store more transactions in a single block.
https://preview.redd.it/axg3wayag3151.png?width=1601&format=png&auto=webp&s=93d958fa6b0e623caa82ca71fe457b4daa88c71e
The reduced size in signatures implies a reduced cost on transaction fees. The group of senders can split the transaction fees for that one group signature, instead of paying for one personal signature individually.
Schnorr Signature also improves network privacy and token fungibility. A third-party observer will not be able to detect if a user is sending a multi-signature transaction, since the signature will be in the same format as a single-signature transaction.

4. Economics and supply distribution

The Bitcoin protocol utilizes the Nakamoto consensus, and nodes validate blocks via Proof-of-Work mining. The bitcoin token was not pre-mined, and has a maximum supply of 21 million. The initial reward for a block was 50 BTC per block. Block mining rewards halve every 210,000 blocks. Since the average time for block production on the blockchain is 10 minutes, it implies that the block reward halving events will approximately take place every 4 years.
As of May 12th 2020, the block mining rewards are 6.25 BTC per block. Transaction fees also represent a minor revenue stream for miners.
submitted by D-platform to u/D-platform [link] [comments]

Cosmos — an early in-depth analysis at the ecosystem of connected blockchains — Part One

Cosmos — an early in-depth analysis at the ecosystem of connected blockchains — Part One
This is part one of three articles where i will discuss what i have learnt whilst looking into Cosmos. I will provide links throughout the article to provide reference to sections as well as a list of sources at the bottom of the article for you to look into specific areas in more detail if required. Hopefully it will be useful for those interested in learning more about the project.
Cosmos is still very early in development process with components such as IBC which connects two blockchains together currently in research / specification stage, as a result can change by the time its released.

What is Cosmos?

Cosmos is a network and a framework for interoperability between blockchains. The zones are powered by Tendermint Core, which provides a high-performance, consistent, secure PBFT-like consensus engine, where strict fork-accountabilityguarantees hold over the behaviour of malicious actors. Cosmos is not a product but an ecosystem built on a set of modular, adaptable and interchangeable tools.
In Tendermint, consensus nodes go through a multi-round voting proposal process first before coming to consensus on the contents of a block. When 2/3 of those nodes decide on a block, then they run it through the state transition logic providing instant finality. In current proof of work consensus for Ethereum, the consensus process is inverted, where miners pick the transactions to include in a block, run state updates, then do “work” to try and mine the block.
Tendermint BFT can handle up to thousands of transactions per second (depending on the number of validators). However, this only takes into account the consensus part, the application layer is the limiting factor though. Ethermint (described below) has achieved up to 200 tps to give you an idea of the speed available per blockchain which is significantly more than current versions of Ethereum and Bitcoin etc.
The Tendermint consensus is used in a wide variety of projects, some of the most notable include Binance Chain, Hyperledger Burrow. It’s important to note though that just using Tendermint consensus doesn’t mean they can connect to other chains with the cosmos ecosystem, they would need to fork their code to implement IBC as a native protocol to allow interoperability through IBC.
see https://raw.githubusercontent.com/devcorn/hackatom/mastetminfo.pdf for high res

The Tendermint consensus algorithm follows a traditional approach which relies on all validators to communicate with one another to reach consensus. Because of the communication overhead, it does not scale to 1000s of validators like Bitcoin or Ethereum, which can have an unlimited number of validators. Tendermint works when there are 100s of validators. (Cosmos Hub currently has a maximum of 100 validators and the maximum tested so far with Tendermint is 180 validators)
Therefore, one of the downsides of a blockchain built using Tendermint is that, unlike Bitcoin or Ethereum, it requires the validators to be known ahead of time and doesn’t allow for miners to come and go as they please.Besides this, it also requires the system to maintain some notion of time, which is known to be a complex problem in theory. Although in practice, Tendermint has proven this can be done reasonably well if you use the timestamp aggregates of each node.
In this regard, one could argue that Tendermint consensus protocol is “less decentralized” than Bitcoin because there are fewer validators, and they must be known ahead of time.
Tendermint’s protocol guarantees safety and liveness, assuming more than 2/3 of the validators’ voting power is not Byzantine (i.e., malicious). In other words, if less than 1/3 of the network voting power is Byzantine, the protocol can guarantee safety and liveness (i.e., validators will never commit conflicting blocks at the same height and the blockchain continues to make progress).https://www.preethikasireddy.com/posts/how-does-cosmos-work-part1
To see the process of how Tendermint works please see this diagram as well as more info here

Sovereignty

Cosmos goal is to provide sovereignty through governance to developers by making it easy to build blockchains via the Cosmos SDK and provide interoperability between them, using Tendermint consensus. This is their main differentiator compared to competition like Polkadot and Ethereum 2.0. Ethereum 2.0 and Polkadot are taking a different approach by only using shared security, where there is a root chain which controls the security / prevents double spending for all connected blockchains.
In Hub governance all stakers vote, the validators vote is superseded if the delegator votes directly
Governance is where all stakers vote on proposals to determine what changes are implemented in the future for their own blockchain, stakers can either choose to delegate their vote to the validator or they can instead vote directly. Without sovereignty all DAPPs share the same underlying environment. If an application requires a new feature in the EVM it has to rely entirely on the governance of the Ethereum Platform to accept it for example. However, there are also tradeoffs to having sovereignty as each zone is going to need a way to incentivise others to validate / create blocks on the Zone by running Full Nodes. Whilst it may be easy to create a blockchain using the cosmos SDK and to mint a token, there are the legal costs / regulation associated with creating your own token. How are you going to distribute the tokens? How are you going to list them on exchanges? How are you going to incentivise others to use the token without being classed as a security? All of which have led to a significant reduction in the number of ICOs being done. With every zone needing their own validator set, there’s going to be a huge number of validators required each trying to persuade them to validate their zone with only a finite number of validators available.
Each Zone / App is essentially a mini DAO and not all are going to be comfortable about having their project progress been taken out of their hands and instead relying on the community to best decide on the future (unless they control 2/3 of the tokens). The Cosmos Hub has proved this can be successful, but others may be risk averse to having their application be a mini DAO. Should someone / competitor acquire 1/3 of the tokens of a zone then they could potentially prevent any further progress being made by rejecting all governance votes (this would be very costly to do on the Cosmos Hub due to its high amount staked, but for all the other less secure zones this potentially may be an issue).
Security for some zones will likely be a lot lower with every developer needing to validate their own blockchain and tokenise them with POS with no easy way to validate the setup of a validator to ensure its secure. Whilst the Cosmos hub is very secure with its current value staked, how secure zone’s will be with significantly less staked remains to be seen. Whilst providing soverignty was Cosmos’s main goal from the start, they are also looking at being able to provide shared security by having validators of a connected Hub also validate /create new blocks on the connected zone’s blockchain for them as well. They are still going to need some way to incentivise the validators to this. Another option is if the developers didn’t want to create a token, nor want sovereignty etc, then they could just build a DAPP on the EVM on a zone such as Ethermint.
As can be seen their are potential advantages and disadvantages to each method, but rather than forcing shared security like Ethereum and Polkadot, Cosmos is giving the developer the choice so will be interesting to see which they prefer to go for.

Layers of a blockchain

From an architecture standpoint, each blockchain can be divided into three conceptual layers:
  • Application: Responsible for updating the state given a set of transactions, i.e. processing transactions.
  • Networking: Responsible for the propagation of transactions and consensus-related messages.
  • Consensus: Enables nodes to agree on the current state of the system.
The state machine is the same as the application layer. It defines the state of the application and the state-transition functions. The other layers are responsible for replicating the state machine on all the nodes that connect to the network.
The Cosmos SDK is a generalized framework that simplifies the process of building secure blockchain applications on top of Tendermint BFT. The goal of the Cosmos SDK is to create an ecosystem of modules that allows developers to easily spin up application-specific blockchains without having to code each bit of functionality of their application from scratch. Anyone can create a module for the Cosmos SDK and using ready built modules in your blockchain is as simple as importing them into your application.
The Tendermint BFT engine is connected to the application by a socket protocol called the Application Blockchain Interface (ABCI). This protocol can be wrapped in any programming language, making it possible for developers to choose a language that fits their needs.

https://preview.redd.it/5vpheheqmba31.png?width=770&format=png&auto=webp&s=ec3c58fb7fafe10a512dbb131ecef6e841e6721c

Hub and Spoke Topology

Cosmos follows a hub and spoke topology as its not feasible to connect every zone together. If you were to connect every blockchain together the number of connections in the network would grow quadratically with the number of zones. So, if there are 100 zones in the network then that would equal 4950 connections.
Zones are regular heterogenous blockchains and Hubs are blockchains specifically designed to connect Zones together. When a Zone creates an IBC connection with a Hub, it can automatically access (i.e. send to and receive from) every other Zone that is connected to it. As a result, each Zone only needs to establish a limited number of connections with a restricted set of Hubs. Hubs also prevent double spending among Zones. This means that when a Zone receives a token from a Hub, it only needs to trust the origin Zone of this token and each of the Hubs in its path. Hubs do not verify or execute transactions committed on other zones, so it is the responsibility of users to send tokens to zones that they trust.
There will be many Hubs within Cosmos network the first Hub to launch was the Cosmos Hub whose native staking token is called ATOM. ATOM tokens are specific to just the Cosmos Hub which is one hub of many, each with their own token. Transaction fees for the Cosmos Hub will be payable in multiple tokens so not just ATOMs whereas other Hubs such as IRIS has made it so that all transaction fees are paid in IRIS for transactions on its hub.
As mentioned, the Cosmos Hub is one of many hubs in the network and currently has a staking ratio of around 70% with its token ATOM having a market cap of just over $800 million. IRISnet was the second Hub to launch which currently has around 28% bonded with its token IRIS which has a market cap of just under $17 million. The Third Hub about to be launched later this month has its token SENT which has a market cap of around $3.4 million. As you can see the security of these 3 hubs differ wildly and as more and more hubs and then zones are brought online there is going to need to be a lot of tokens / incentivisation for validators.
Ethermint
Standard Cosmos zones / hubs don’t have smart contract functionality and so to enable this, as the Application layer is abstracted from the consensus layer via ABCI API described earlier, it allows Cosmos to port the code over from other blockchains such as Ethereum and use it with the Tendermint Consensus to provide access to the Ethereum Virtual Machine. This is what is called Ethermint.
This allows developers to connect their zones to specialised zones such as Ethermint to build and run smart contracts based on Solidity, whilst benefiting from the faster performance of the tendermint Conensus over the existing POW implementation currently. Whereas a normal Go Ethereum process runs at ~12.5 transactions per second (TPS), Ethermint caps out at 200 TPS. This is a comparison against existing Ethereum speeds, whilst obviously Ethereum are working on their own scaling solutions with Ethereum 2.0 which will likely be ready around the same time. Existing tools / dapps used on ethereum should easily be able to be ported over to Ethermint by the developer if required.
In addition to vertical scaling (with the increase in tps by using Tendermint consensus), it can also have multiple parallel chains running the same application and operated by a common validator set. So if 1 Ethermint zone caps out at 200 TPS then 4 Ethermint zones running in parallel would theoretically cap out at 800 TPS for example.

https://preview.redd.it/e2pghr9smba31.png?width=554&format=png&auto=webp&s=a6e472a6e4a0f3845b03c36caef8b42d77125e46
There is a huge number of developers / apps currently built on Ethereum, should a developer choose to migrate their DAPP over to Ethermint they would lose native compatibility with those on Ethereum (except through Peg Zone), but would gain compatibility with those running on Ethermint and others in the cosmos ecosystem.
You can find out more about Ethermint here and here

IBC

IBC stands for inter-blockchain communication protocol and is an end-to-end, connection-oriented, stateful protocol for reliable, ordered, authenticated communication between modules on separate distributed ledgers. Ledgers hosting IBC must provide a certain set of functions for consensus transcript verification and cryptographic commitment proof generation, and IBC packet relayers (off-chain processes) are expected to have access to network protocols and physical datalinks as required to read the state of one ledger and submit data to another.
In the IBC architecture, modules are not directly sending messages to each other over networking infrastructure, but rather creating messages to be sent which are then physically relayed via “Relayers”. “Relayers” run off-chain and continuously scan the state of each ledger via a light client connected to each of the 2 chains and can also execute transactions on another ledger when outgoing datagrams have been committed. For correct operation and progress in a connection between two ledgers, IBC requires only that at least one correct and live relayer process exists which can relay between the ledgers. Relays will need to be incentivised to perform this task (the method to which hasn’t been established as of this writing)
The relay process must have access to accounts on both chains with sufficient balance to pay for transaction fees. Relayers may employ application-level methods to recoup these fees, such by including a small payment to themselves in the packet data. More information on Relayers can be found here

https://preview.redd.it/qr4k6cxtmba31.png?width=1100&format=png&auto=webp&s=d79871767ced4bcb0b2632cc137c118f70c3863a
A high-level overview of the process is that Zone 1 commits an outbound message on its blockchan about sending say 1 x Token A to Hub1 and puts 1 x Token A in escrow. Consensus is reached in Zone 1, and then it’s passed to the IBC module to create a packet which contains the reference to the committed block, source and destination channel/ connection and timeout details and is added to Zone 1’s outbound queue as proof.
All relayers (who run off-chain) are continuously monitoring the state of Zone 1 via the Zone 1 light client. A Relayer such as Relayer 1 is chosen and submits a proof to Hub1 that Zone 1.
Hub 1 then sends a receipt as proof that it has received the message from Zone 1, relayer1 sends it to Zone 1. Zone 1 then removes it from its outbound queue and sends proof via another receipt to Hub1. Hub1 verifies the proof and mints the token.

https://preview.redd.it/qn7895rumba31.png?width=770&format=png&auto=webp&s=96d9d808b2284f87d45fa0bd7b8bff297c86c2da
This video below explains the process in more detail as well as covers some of the other points i raise later in this article so worth a watch (time stamped from 22:24 to 32:25) and also here from 38:53 to 42:50
https://youtu.be/5h8DXul4lH0?t=1344
Whilst there is an option for UDP style transfer where a zone will send a message to a Hub and it doesn’t care whether it gets there or in any order etc, Token transfers are going to require the TCP style connections in IBC where there is a send, receipt and then another receipt as explained above. Each Send, receipt followed by another receipt is going to take at least 2 blocks and so using Cosmos Hub block times as an example with 6.88 second block times a transfer between one zone and hub could take a minimum of 41.28 seconds. You also then have to factor in the amount of other transactions going through those at that time and relevant gas price to see whether it is able to use 2 consecutive blocks or whether it may take more. This is also explained in this video “ILP Summit 2019 | Cosmos and Interledger | Sunny Aggarwal” (time stamped) from to 12:50 to 15:45

In Part Two we will look at potential issues with multi hop routing, token transfers across multiple routes and Peg Zones, whilst also looking at other interoperability solutions that would resolve some of these issues and compliment the cosmos ecosystem. Part Two can be found here
submitted by xSeq22x to cosmosnetwork [link] [comments]

Cosmos — an early in-depth analysis at the ecosystem of connected blockchains — Part One

Cosmos — an early in-depth analysis at the ecosystem of connected blockchains — Part One
This is part one of three articles where i will discuss what i have learnt whilst looking into Cosmos. I will provide links throughout the article to provide reference to sections as well as a list of sources at the bottom of the article for you to look into specific areas in more detail if required. Hopefully it will be useful for those interested in learning more about the project.
Cosmos is still very early in development process with components such as IBC which connects two blockchains together currently in research / specification stage, as a result can change by the time its released.

What is Cosmos?

Cosmos is a network and a framework for interoperability between blockchains. The zones are powered by Tendermint Core, which provides a high-performance, consistent, secure PBFT-like consensus engine, where strict fork-accountabilityguarantees hold over the behaviour of malicious actors. Cosmos is not a product but an ecosystem built on a set of modular, adaptable and interchangeable tools.
In Tendermint, consensus nodes go through a multi-round voting proposal process first before coming to consensus on the contents of a block. When 2/3 of those nodes decide on a block, then they run it through the state transition logic providing instant finality. In current proof of work consensus for Ethereum, the consensus process is inverted, where miners pick the transactions to include in a block, run state updates, then do “work” to try and mine the block.
Tendermint BFT can handle up to thousands of transactions per second (depending on the number of validators). However, this only takes into account the consensus part, the application layer is the limiting factor though. Ethermint (described below) has achieved up to 200 tps to give you an idea of the speed available per blockchain which is significantly more than current versions of Ethereum and Bitcoin etc.
The Tendermint consensus is used in a wide variety of projects, some of the most notable include Binance Chain, Hyperledger Burrow. It’s important to note though that just using Tendermint consensus doesn’t mean they can connect to other chains with the cosmos ecosystem, they would need to fork their code to implement IBC as a native protocol to allow interoperability through IBC.

see https://raw.githubusercontent.com/devcorn/hackatom/mastetminfo.pdf for high res

The Tendermint consensus algorithm follows a traditional approach which relies on all validators to communicate with one another to reach consensus. Because of the communication overhead, it does not scale to 1000s of validators like Bitcoin or Ethereum, which can have an unlimited number of validators. Tendermint works when there are 100s of validators. (Cosmos Hub currently has a maximum of 100 validators and the maximum tested so far with Tendermint is 180 validators)
Therefore, one of the downsides of a blockchain built using Tendermint is that, unlike Bitcoin or Ethereum, it requires the validators to be known ahead of time and doesn’t allow for miners to come and go as they please.Besides this, it also requires the system to maintain some notion of time, which is known to be a complex problem in theory. Although in practice, Tendermint has proven this can be done reasonably well if you use the timestamp aggregates of each node.
In this regard, one could argue that Tendermint consensus protocol is “less decentralized” than Bitcoin because there are fewer validators, and they must be known ahead of time.
Tendermint’s protocol guarantees safety and liveness, assuming more than 2/3 of the validators’ voting power is not Byzantine (i.e., malicious). In other words, if less than 1/3 of the network voting power is Byzantine, the protocol can guarantee safety and liveness (i.e., validators will never commit conflicting blocks at the same height and the blockchain continues to make progress).https://www.preethikasireddy.com/posts/how-does-cosmos-work-part1
To see the process of how Tendermint works please see this diagram as well as more info here

Sovereignty

Cosmos goal is to provide sovereignty through governance to developers by making it easy to build blockchains via the Cosmos SDK and provide interoperability between them, using Tendermint consensus. This is their main differentiator compared to competition like Polkadot and Ethereum 2.0. Ethereum 2.0 and Polkadot are taking a different approach by only using shared security, where there is a root chain which controls the security / prevents double spending for all connected blockchains.
Governance is where all stakers vote on proposals to determine what changes are implemented in the future for their own blockchain, stakers can either choose to delegate their vote to the validator or they can instead vote directly. Without sovereignty all DAPPs share the same underlying environment. If an application requires a new feature in the EVM it has to rely entirely on the governance of the Ethereum Platform to accept it for example. However, there are also tradeoffs to having sovereignty as each zone is going to need a way to incentivise others to validate / create blocks on the Zone by running Full Nodes. Whilst it may be easy to create a blockchain using the cosmos SDK and to mint a token, there are the legal costs / regulation associated with creating your own token. How are you going to distribute the tokens? How are you going to list them on exchanges? How are you going to incentivise others to use the token without being classed as a security? All of which have led to a significant reduction in the number of ICOs being done. With every zone needing their own validator set, there’s going to be a huge number of validators required each trying to persuade them to validate their zone with only a finite number of validators available.
Each Zone / App is essentially a mini DAO and not all are going to be comfortable about having their project progress been taken out of their hands and instead relying on the community to best decide on the future (unless they control 2/3 of the tokens). The Cosmos Hub has proved this can be successful, but others may be risk averse to having their application be a mini DAO. Should someone / competitor acquire 1/3 of the tokens of a zone then they could potentially prevent any further progress being made by rejecting all governance votes (this would be very costly to do on the Cosmos Hub due to its high amount staked, but for all the other less secure zones this potentially may be an issue).
Security for some zones will likely be a lot lower with every developer needing to validate their own blockchain and tokenise them with POS with no easy way to validate the setup of a validator to ensure its secure. Whilst the Cosmos hub is very secure with its current value staked, how secure zone’s will be with significantly less staked remains to be seen. Whilst providing soverignty was Cosmos’s main goal from the start, they are also looking at being able to provide shared security by having validators of a connected Hub also validate /create new blocks on the connected zone’s blockchain for them as well. They are still going to need some way to incentivise the validators to this. Another option is if the developers didn’t want to create a token, nor want sovereignty etc, then they could just build a DAPP on the EVM on a zone such as Ethermint.
As can be seen their are potential advantages and disadvantages to each method, but rather than forcing shared security like Ethereum and Polkadot, Cosmos is giving the developer the choice so will be interesting to see which they prefer to go for.

Layers of a blockchain

From an architecture standpoint, each blockchain can be divided into three conceptual layers:
  • Application: Responsible for updating the state given a set of transactions, i.e. processing transactions.
  • Networking: Responsible for the propagation of transactions and consensus-related messages.
  • Consensus: Enables nodes to agree on the current state of the system.
The state machine is the same as the application layer. It defines the state of the application and the state-transition functions. The other layers are responsible for replicating the state machine on all the nodes that connect to the network.
The Cosmos SDK is a generalized framework that simplifies the process of building secure blockchain applications on top of Tendermint BFT. The goal of the Cosmos SDK is to create an ecosystem of modules that allows developers to easily spin up application-specific blockchains without having to code each bit of functionality of their application from scratch. Anyone can create a module for the Cosmos SDK and using ready built modules in your blockchain is as simple as importing them into your application.
The Tendermint BFT engine is connected to the application by a socket protocol called the Application Blockchain Interface (ABCI). This protocol can be wrapped in any programming language, making it possible for developers to choose a language that fits their needs.

https://preview.redd.it/go1bgareiba31.png?width=770&format=png&auto=webp&s=c9a2c9faa9c99dd8c7a7b6925c7ea281e203eb47

Hub and Spoke Topology

Cosmos follows a hub and spoke topology as its not feasible to connect every zone together. If you were to connect every blockchain together the number of connections in the network would grow quadratically with the number of zones. So, if there are 100 zones in the network then that would equal 4950 connections.
Zones are regular heterogenous blockchains and Hubs are blockchains specifically designed to connect Zones together. When a Zone creates an IBC connection with a Hub, it can automatically access (i.e. send to and receive from) every other Zone that is connected to it. As a result, each Zone only needs to establish a limited number of connections with a restricted set of Hubs. Hubs also prevent double spending among Zones. This means that when a Zone receives a token from a Hub, it only needs to trust the origin Zone of this token and each of the Hubs in its path. Hubs do not verify or execute transactions committed on other zones, so it is the responsibility of users to send tokens to zones that they trust.
There will be many Hubs within Cosmos network the first Hub to launch was the Cosmos Hub whose native staking token is called ATOM. ATOM tokens are specific to just the Cosmos Hub which is one hub of many, each with their own token. Transaction fees for the Cosmos Hub will be payable in multiple tokens so not just ATOMs whereas other Hubs such as IRIS has made it so that all transaction fees are paid in IRIS for transactions on its hub.
As mentioned, the Cosmos Hub is one of many hubs in the network and currently has a staking ratio of around 70% with its token ATOM having a market cap of just over $800 million. IRISnet was the second Hub to launch which currently has around 28% bonded with its token IRIS which has a market cap of just under $17 million. The Third Hub about to be launched later this month has its token SENT which has a market cap of around $3.4 million. As you can see the security of these 3 hubs differ wildly and as more and more hubs and then zones are brought online there is going to need to be a lot of tokens / incentivisation for validators.

Ethermint

Standard Cosmos zones / hubs don’t have smart contract functionality and so to enable this, as the Application layer is abstracted from the consensus layer via ABCI API described earlier, it allows Cosmos to port the code over from other blockchains such as Ethereum and use it with the Tendermint Consensus to provide access to the Ethereum Virtual Machine. This is what is called Ethermint.
This allows developers to connect their zones to specialised zones such as Ethermint to build and run smart contracts based on Solidity, whilst benefiting from the faster performance of the tendermint Conensus over the existing POW implementation currently. Whereas a normal Go Ethereum process runs at ~12.5 transactions per second (TPS), Ethermint caps out at 200 TPS. This is a comparison against existing Ethereum speeds, whilst obviously Ethereum are working on their own scaling solutions with Ethereum 2.0 which will likely be ready around the same time. Existing tools / dapps used on ethereum should easily be able to be ported over to Ethermint by the developer if required.
In addition to vertical scaling (with the increase in tps by using Tendermint consensus), it can also have multiple parallel chains running the same application and operated by a common validator set. So if 1 Ethermint zone caps out at 200 TPS then 4 Ethermint zones running in parallel would theoretically cap out at 800 TPS for example.

https://preview.redd.it/oboyonufiba31.png?width=554&format=png&auto=webp&s=18560aa44596fc2357590b54ddb39fd8ee1c8783
There is a huge number of developers / apps currently built on Ethereum, should a developer choose to migrate their DAPP over to Ethermint they would lose native compatibility with those on Ethereum (except through Peg Zone), but would gain compatibility with those running on Ethermint and others in the cosmos ecosystem.
You can find out more about Ethermint here and here
IBC
IBC stands for inter-blockchain communication protocol and is an end-to-end, connection-oriented, stateful protocol for reliable, ordered, authenticated communication between modules on separate distributed ledgers. Ledgers hosting IBC must provide a certain set of functions for consensus transcript verification and cryptographic commitment proof generation, and IBC packet relayers (off-chain processes) are expected to have access to network protocols and physical datalinks as required to read the state of one ledger and submit data to another.
In the IBC architecture, modules are not directly sending messages to each other over networking infrastructure, but rather creating messages to be sent which are then physically relayed via “Relayers”. “Relayers” run off-chain and continuously scan the state of each ledger via a light client connected to each of the 2 chains and can also execute transactions on another ledger when outgoing datagrams have been committed. For correct operation and progress in a connection between two ledgers, IBC requires only that at least one correct and live relayer process exists which can relay between the ledgers. Relays will need to be incentivised to perform this task (the method to which hasn’t been established as of this writing)
The relay process must have access to accounts on both chains with sufficient balance to pay for transaction fees. Relayers may employ application-level methods to recoup these fees, such by including a small payment to themselves in the packet data. More information on Relayers can be found here

https://preview.redd.it/twjzlc8hiba31.png?width=1100&format=png&auto=webp&s=2e546142573b61af031e27dac83ddca675a4b693
A high-level overview of the process is that Zone 1 commits an outbound message on its blockchan about sending say 1 x Token A to Hub1 and puts 1 x Token A in escrow. Consensus is reached in Zone 1, and then it’s passed to the IBC module to create a packet which contains the reference to the committed block, source and destination channel/ connection and timeout details and is added to Zone 1’s outbound queue as proof.
All relayers (who run off-chain) are continuously monitoring the state of Zone 1 via the Zone 1 light client. A Relayer such as Relayer 1 is chosen and submits a proof to Hub1 that Zone 1.
Hub 1 then sends a receipt as proof that it has received the message from Zone 1, relayer1 sends it to Zone 1. Zone 1 then removes it from its outbound queue and sends proof via another receipt to Hub1. Hub1 verifies the proof and mints the token.

https://preview.redd.it/d4dclm3iiba31.png?width=770&format=png&auto=webp&s=9ca521efc8580800067e1c4e3f74c0ab8df30555
This video below explains the process in more detail as well as covers some of the other points i raise later in this article so worth a watch (time stamped from 22:24 to 32:25) and also here from 38:53 to 42:50
https://youtu.be/5h8DXul4lH0?t=1344

Whilst there is an option for UDP style transfer where a zone will send a message to a Hub and it doesn’t care whether it gets there or in any order etc, Token transfers are going to require the TCP style connections in IBC where there is a send, receipt and then another receipt as explained above. Each Send, receipt followed by another receipt is going to take at least 2 blocks and so using Cosmos Hub block times as an example with 6.88 second block times a transfer between one zone and hub could take a minimum of 41.28 seconds. You also then have to factor in the amount of other transactions going through those at that time and relevant gas price to see whether it is able to use 2 consecutive blocks or whether it may take more. This is also explained in this video “ILP Summit 2019 | Cosmos and Interledger | Sunny Aggarwal” (time stamped) from to 12:50 to 15:45

In Part Two we will look at potential issues with multi hop routing, token transfers across multiple routes and Peg Zones, whilst also looking at other interoperability solutions that would resolve some of these issues and compliment the cosmos ecosystem. Part Two can be found here
submitted by xSeq22x to CryptoCurrency [link] [comments]

Byzantine General's Problem Binance bevriest bitcoins, CBDC China af, Technische Analyse  #27 Madelon Praat  Misss Bitcoin The Byzantine Generals Problem and Blockchain Consensus ... El Problema del General Bizantino y blockchain Byzantine Attacks/Fault Tolerance In a Nutshell Tutorial 2 : Byzantines's General Problem [CS198.2x Week 1] Byzantine Fault Tolerance Bitcoin and cryptocurrency mining explained - YouTube [BaSE Seminar] 20-14차 세미나: The Byzantine Generals Problem (서중원) Byzantine Agreement

The name is derived from the “Byzantine Generals Problem”, a problem that explores the following idea: there is an army split with the two groups on opposing sides of an enemy city. If one of the two groups were to attack the enemy city alone, then the enemy city would be able to outlast them. The only way for an attack operation to succeed is for both groups to attack at the same time. To ... Trustless - Bitcoin solved the Byzantine's Generals Problem which means nobody needs to trust anybody for it to work. Pseudonymous - No need to expose personal information when purchasing with cash or transacting. Secure - Encrypted cryptographically and can’t be brute forced or confiscated with proper key management such as hardware wallets. Programmable - Individual units of bitcoin can be ... Bitcoin Gold (BTG) Jeder, der schon seit einiger Zeit hier ist, kennt Bitcoin Gold. Bitcoin Gold ist eine weitere Abspaltung von Bitcoin, die 2017 ins Leben gerufen wurde. Und es wurde geschaffen, um den Bitcoin Mining demokratischer zu gestalten, indem eine Version von Bitcoin geschaffen wurde, die mit GPUs schürfbar ist. The Byzantine Generals Problem. The real challenge standing in the way of a system like that described above is something called the Byzantine Generals Problem. Conceived in the 1980s, it describes a dilemma in which isolated participants must communicate to coordinate their actions. The specific dilemma involves a handful of army generals that surround a city, deciding whether to attack it ... The Byzantine Generals Problem is a logical problem first introduced in a 1982 paper titled, appropriately enough, “The Byzantine Generals’ Problem.” In that paper, authors Leslie Lamport, Robert Shostak, and Marshall Pease discussed the problem of creating consensus within a distributed, electronic system. To explain the issue, the authors relied on a medieval metaphor. $500 Million Worth of Bitcoin (BTC) Futures Liquidated… 7 November 2020. News. Samsung Now Allows You to Earn Bitcoin Rewards. 6 November 2020. News. Tether market cap surpasses $17 billion, fueling Bitcoin… 6 November 2020. News. Binance’s DeFi index crashes 60% as Bitcoin overshadows… 6 November 2020. News. DigiByte (DGB) Community Full of Life and Encouraging… 6 November 2020 ... Vad är The Byzantine Generals’ Problem? I det här blogginlägget går vi genom vad ’The Byzantine Generals’s Problem är för något. På svenska översätts det till det ’Byzantinska generalsproblemet’ och genom att förstå detta, kommer du att snabbare förstå bitcoin, blockchain och andra blockkedjor. Konsensusalgoritm När du hört folk prata om bitcoin eller kanske läst […] Tue. Nov 10th, 2020 ; Bitcoin; Crypto Tech In letzter Zeit hat die Rentabilität des Mining aus verschiedenen Gründen begonnen, zu sinken. Die zunehmende Schwierigkeit, den Hash zu berechnen und die Belohnung für den abgebauten Block zu reduzieren, was bei den meisten Projekten praktiziert wird, lässt die Miner an der Durchführbarkeit dieser Initiative zweifeln. Obwohl einige Anfänger immer noch zum Spaß mit dem […] CoinCentral is an independent publication covering news and information on cryptocurrencies such as Bitcoin, Ethereum and their underlying blockchain technology.

[index] [7196] [21439] [6512] [12208] [21155] [16405] [16973] [4017] [6701] [419]

Byzantine General's Problem

In this video, I cover the Two Generals Problem, The Byzantine Generals Problem, Byzantine Fault Tolerance, Proof of Work, Proof of Stake, and Delegated Byza... The Byzantine Generals Problem and Blockchain Consensus Models ... Binance Academy 30,670 views. 4:10 . 부자 되고 싶다면 젊을 수록 돈공부 올인해라. - Duration: 25:37. 재테크 ... Hi lieve mensen, De video eindigt te vroeg. Door problemen met mijn laptop heb ik niet de complete video kunnen uploaden. Morgen komt deel twee Sorry!! Liefs • BELANGRIJKE LINKS • Support mij ... Bitcoin and Byzantine Generals ... Live Session 2 with Andreas Antonopoulos, The Byzantine General's Problem - Duration: 50:46. MSc in Digital Currency - University of Nicosia 7,025 views. 50:46 ... Byzantine Agreement is a fundamental problem in distributed computing, that is--design a protocol to bring processors to agreementon a bit despite a fraction of bad processors behaving to disrupt ... The Byzantine Generals Problem and Blockchain Consensus Models ... Mike Maloney S1 • E8 From Bitcoin To Hedera Hashgraph (Documentary) Hidden Secrets Of Money Episode 8 - Duration: 1:14:26 ... The Byzantine Generals Problem and Blockchain Consensus Models ... Two Generals' Problem Explained - Duration: 8:25. Finematics 16,594 views. 8:25. Bitcoin Sidechains & SPV Proofs - Duration: 9:00 ... The Byzantine Generals Problem and Blockchain Consensus Models ... BITCOIN Basico: Problema de los Generales Bizantinos Explicación sencilla - Duration: 4:54. Crypto Sheinix 236 views. 4:54. EL ... Bitcoin and cryptocurrency mining explained with the Byzantine Generals Problem. We use it to explain the essence of cryptocurrency mining. Get started with ... In this tutorial we will learn about the Byzantines's General Problem.

#