# How Bitcoin Works - dummies

• How Bitcoin Works - dummies
• Ethereum 2.0: Ethereum schlägt Bitcoin - Die Gründe für ...
• Bitcoin - Euro Chart Kurs Entwicklung Bitcoin - Euro ...
• Still Don't Get Bitcoin? Here's an Explanation For Five ...
• Bitcoin: A Peer-to-Peer Electronic Cash System

##### Two important diagrams explaining Bitcoin governance: (1) Symbiotic Relationships in Bitcoin Governance; (2) Checks and Balances in Bitcoin Governance

Symbiotic Relationships in Bitcoin Governance
https://imgur.com/DF61Pd5
Checks and Balances in Bitcoin Governance
https://imgur.com/nIMubUF
I don't know who created these diagrams.
I believe they were first posted at bitco.in or bitcointalk.org.

##### RESEARCH REPORT ABOUT KYBER NETWORK

https://preview.redd.it/9k31yy1bdcg51.jpg?width=936&format=pjpg&auto=webp&s=99bcb7c3f50b272b7d97247b369848b5d8cc6053

# ABSTRACT

In this research report, we present a study on Kyber Network. Kyber Network is a decentralized, on-chain liquidity protocol designed to make trading tokens simple, efficient, robust and secure.
Kyber design allows any party to contribute to an aggregated pool of liquidity within each blockchain while providing a single endpoint for takers to execute trades using the best rates available. We envision a connected liquidity network that facilitates seamless, decentralized cross-chain token swaps across Kyber based networks on different chains.
Kyber is a fully on-chain liquidity protocol that enables decentralized exchange of cryptocurrencies in any application. Liquidity providers (Reserves) are integrated into one single endpoint for takers and users. When a user requests a trade, the protocol will scan the entire network to find the reserve with the best price and take liquidity from that particular reserve.

## 1.INTRODUCTION

DeFi applications all need access to good liquidity sources, which is a critical component to provide good services. Currently, decentralized liquidity is comprised of various sources including DEXes (Uniswap, OasisDEX, Bancor), decentralized funds and other financial apps. The more scattered the sources, the harder it becomes for anyone to either find the best rate for their trade or to even find enough liquidity for their need.
Kyber is a blockchain-based liquidity protocol that aggregates liquidity from a wide range of reserves, powering instant and secure token exchange in any decentralized application.
The protocol allows for a wide range of implementation possibilities for liquidity providers, allowing a wide range of entities to contribute liquidity, including end users, decentralized exchanges and other decentralized protocols. On the taker side, end users, cryptocurrency wallets, and smart contracts are able to perform instant and trustless token trades at the best rates available amongst the sources.
The Kyber Network is project based on the Ethereum protocol that seeks to completely decentralize the exchange of crypto currencies and make exchange trustless by keeping everything on the blockchain.
Through the Kyber Network, users should be able to instantly convert or exchange any crypto currency.

## 1.1 OVERVIEW ABOUT KYBER NETWORK PROTOCOL

The Kyber Network is a decentralized way to exchange ETH and different ERC20 tokens instantly — no waiting and no registration needed.
Using this protocol, developers can build innovative payment flows and applications, including instant token swap services, ERC20 payments, and financial DApps — helping to build a world where any token is usable anywhere.
Kyber’s fully on-chain design allows for full transparency and verifiability in the matching engine, as well as seamless composability with DApps, not all of which are possible with off-chain or hybrid approaches. The integration of a large variety of liquidity providers also makes Kyber uniquely capable of supporting sophisticated schemes and catering to the needs of DeFi DApps and financial institutions. Hence, many developers leverage Kyber’s liquidity pool to build innovative financial applications, and not surprisingly, Kyber is the most used DeFi protocol in the world.
The Kyber Network is quite an established project that is trying to change the way we think of decentralised crypto currency exchange.
The Kyber Network has seen very rapid development. After being announced in May 2017 the testnet for the Kyber Network went live in August 2017. An ICO followed in September 2017, with the company raising 200,000 ETH valued at $60 million in just one day. The live main net was released in February 2018 to whitelisted participants, and on March 19, 2018, the Kyber Network opened the main net as a public beta. Since then the network has seen increasing growth, with network volumes growing more than 500% in the first half of 2019. Although there was a modest decrease in August 2019 that can be attributed to the price of ETH dropping by 50%, impacting the overall total volumes being traded and processed globally. They are developing a decentralised exchange protocol that will allow developers to build payment flows and financial apps. This is indeed quite a competitive market as a number of other such protocols have been launched. In Brief - Kyber Network is a tool that allows anyone to swap tokens instantly without having to use exchanges. - It allows vendors to accept different types of cryptocurrency while still being paid in their preferred crypto of choice. - It’s built primarily for Ethereum, but any smart-contract based blockchain can incorporate it. At its core, Kyber is a decentralized way to exchange ETH and different ERC20 tokens instantly–no waiting and no registration needed. To do this Kyber uses a diverse set of liquidity pools, or pools of different crypto assets called “reserves” that any project can tap into or integrate with. A typical use case would be if a vendor allowed customers to pay in whatever currency they wish, but receive the payment in their preferred token. Another example would be for Dapp users. At present, if you are not a token holder of a certain Dapp you can’t use it. With Kyber, you could use your existing tokens, instantly swap them for the Dapp specific token and away you go. All this swapping happens directly on the Ethereum blockchain, meaning every transaction is completely transparent. ## 1.1.1 WHY BUILD THE KYBER NETWORK? While crypto currencies were built to be decentralized, many of the exchanges for trading crypto currencies have become centralized affairs. This has led to security vulnerabilities, with many exchanges becoming the victims of hacking and theft. It has also led to increased fees and costs, and the centralized exchanges often come with slow transfer times as well. In some cases, wallets have been locked and users are unable to withdraw their coins. Decentralized exchanges have popped up recently to address the flaws in the centralized exchanges, but they have their own flaws, most notably a lack of liquidity, and often times high costs to modify trades in their on-chain order books. Some of the Integrations with Kyber Protocol The Kyber Network was formed to provide users with a decentralized exchange that keeps everything right on the blockchain, and uses a reserve system rather than an order book to provide high liquidity at all times. This will allow for the exchange and transfer of any cryptocurrency, even cross exchanges, and costs will be kept at a minimum as well. The Kyber Network has three guiding design philosophies since the start: 1. To be most useful the network needs to be platform-agnostic, which allows any protocol or application the ability to take advantage of the liquidity provided by the Kyber Network without any impact on innovation. 2. The network was designed to make real-world commerce and decentralized financial products not only possible but also feasible. It does this by allowing for instant token exchange across a wide range of tokens, and without any settlement risk. 3. The Kyber Network was created with ease of integration as a priority, which is why everything runs fully on-chain and fully transparent. Kyber is not only developer-friendly, but is also compatible with a wide variety of systems. ## 1.1.2 WHO INVENTED KYBER? Kyber’s founders are Loi Luu, Victor Tran, Yaron Velner — CEO, CTO, and advisor to the Kyber Network. ## 1.1.3 WHAT DISTINGUISHES KYBER? Kyber’s mission has always been to integrate with other protocols so they’ve focused on being developer-friendly by providing architecture to allow anyone to incorporate the technology onto any smart-contract powered blockchain. As a result, a variety of different dapps, vendors, and wallets use Kyber’s infrastructure including Set Protocol, bZx, InstaDApp, and Coinbase wallet. Besides, dapps, vendors, and wallets, Kyber also integrates with other exchanges such as Uniswap — sharing liquidity pools between the two protocols. A typical use case would be if a vendor allowed customers to pay in whatever currency they wish, but receive the payment in their preferred token. Another example would be for Dapp users. At present, if you are not a token holder of a certain Dapp you can’t use it. With Kyber, you could use your existing tokens, instantly swap them for the Dapp specific token and away you go. Limit orders on Kyber allow users to set a specific price in which they would like to exchange a token instead of accepting whatever price currently exists at the time of trading. However, unlike with other exchanges, users never lose custody of their crypto assets during limit orders on Kyber. The Kyber protocol works by using pools of crypto funds called “reserves”, which currently support over 70 different ERC20 tokens. Reserves are essentially smart contracts with a pool of funds. Different parties with different prices and levels of funding control all reserves. Instead of using order books to match buyers and sellers to return the best price, the Kyber protocol looks at all the reserves and returns the best price among the different reserves. Reserves make money on the “spread” or differences between the buying and selling prices. The Kyber wants any token holder to easily convert one token to another with a minimum of fuss. ## 1.2 KYBER PROTOCOL The protocol smart contracts offer a single interface for the best available token exchange rates to be taken from an aggregated liquidity pool across diverse sources. ● Aggregated liquidity pool. The protocol aggregates various liquidity sources into one liquidity pool, making it easy for takers to find the best rates offered with one function call. ● Diverse sources of liquidity. The protocol allows different types of liquidity sources to be plugged into. Liquidity providers may employ different strategies and different implementations to contribute liquidity to the protocol. ● Permissionless. The protocol is designed to be permissionless where any developer can set up various types of reserves, and any end user can contribute liquidity. Implementations need to take into consideration various security vectors, such as reserve spamming, but can be mitigated through a staking mechanism. We can expect implementations to be permissioned initially until the maintainers are confident about these considerations. The core feature that the Kyber protocol facilitates is the token swap between taker and liquidity sources. The protocol aims to provide the following properties for token trades: ● Instant Settlement. Takers do not have to wait for their orders to be fulfilled, since trade matching and settlement occurs in a single blockchain transaction. This enables trades to be part of a series of actions happening in a single smart contract function. ● Atomicity. When takers make a trade request, their trade either gets fully executed, or is reverted. This “all or nothing” aspect means that takers are not exposed to the risk of partial trade execution. ● Public rate verification. Anyone can verify the rates that are being offered by reserves and have their trades instantly settled just by querying from the smart contracts. ● Ease of integration. Trustless and atomic token trades can be directly and easily integrated into other smart contracts, thereby enabling multiple trades to be performed in a smart contract function. How each actor works is specified in Section Network Actors. 1. Takers refer to anyone who can directly call the smart contract functions to trade tokens, such as end-users, DApps, and wallets. 2. Reserves refer to anyone who wishes to provide liquidity. They have to implement the smart contract functions defined in the reserve interface in order to be registered and have their token pairs listed. 3. Registered reserves refer to those that will be cycled through for matching taker requests. 4. Maintainers refer to anyone who has permission to access the functions for the adding/removing of reserves and token pairs, such as a DAO or the team behind the protocol implementation. 5. In all, they comprise of the network, which refers to all the actors involved in any given implementation of the protocol. The protocol implementation needs to have the following: 1. Functions for takers to check rates and execute the trades 2. Functions for the maintainers to registeremove reserves and token pairs 3. Reserve interface that defines the functions reserves needs to implement https://preview.redd.it/d2tcxc7wdcg51.png?width=700&format=png&auto=webp&s=b2afde388a77054e6731772b9115ee53f09b6a4a ## 1.3 KYBER CORE SMART CONTRACTS Kyber Core smart contracts is an implementation of the protocol that has major protocol functions to allow actors to join and interact with the network. For example, the Kyber Core smart contracts provide functions for the listing and delisting of reserves and trading pairs by having clear interfaces for the reserves to comply to be able to register to the network and adding support for new trading pairs. In addition, the Kyber Core smart contracts also provide a function for takers to query the best rate among all the registered reserves, and perform the trades with the corresponding rate and reserve. A trading pair consists of a quote token and any other token that the reserve wishes to support. The quote token is the token that is either traded from or to for all trades. For example, the Ethereum implementation of the Kyber protocol uses Ether as the quote token. In order to search for the best rate, all reserves supporting the requested token pair will be iterated through. Hence, the Kyber Core smart contracts need to have this search algorithm implemented. The key functions implemented in the Kyber Core Smart Contracts are listed in Figure 2 below. We will visit and explain the implementation details and security considerations of each function in the Specification Section. ## 1.4 HOW KYBER’S ON-CHAIN PROTOCOL WORKS? Kyber is the liquidity infrastructure for decentralized finance. Kyber aggregates liquidity from diverse sources into a pool, which provides the best rates for takers such as DApps, Wallets, DEXs, and End users. ## 1.4.1 PROVIDING LIQUIDITY AS A RESERVE Anyone can operate a Kyber Reserve to market make for profit and make their tokens available for DApps in the ecosystem. Through an open reserve architecture, individuals, token teams and professional market makers can contribute token assets to Kyber’s liquidity pool and earn from the spread in every trade. These tokens become available at the best rates across DApps that tap into the network, making them instantly more liquid and useful. MAIN RESERVE TYPES Kyber currently has over 45 reserves in its network providing liquidity. There are 3 main types of reserves that allow different liquidity contribution options to suit the unique needs of different providers. 1. Automated Price Reserves (APR) — Allows token teams and users with large token holdings to have an automated yet customized pricing system with low maintenance costs. Synthetix and Melon are examples of teams that run APRs. 2. Fed Price Reserves (FPR) — Operated by professional market makers that require custom and advanced pricing strategies tailored to their specific needs. Kyber alongside reserves such as OneBit, runs FPRs. 3. Bridge Reserves (BR) — These are specialized reserves meant to bring liquidity from other on-chain liquidity providers like Uniswap, Oasis, DutchX, and Bancor into the network. # 1.5 KYBER NETWORK ROLES There Kyber Network functions through coordination between several different roles and functions as explained below: - Users — This entity uses the Kyber Network to send and receive tokens. A user can be an individual, a merchant, and even a smart contract account. - Reserve Entities — This role is used to add liquidity to the platform through the dynamic reserve pool. Some reserve entities are internal to the Kyber Network, but others may be registered third parties. Reserve entities may be public if the public contributes to the reserves they hold, otherwise they are considered private. By allowing third parties as reserve entities the network adds diversity, which prevents monopolization and keeps exchange rates competitive. Allowing third party reserve entities also allows for the listing of less popular coins with lower volumes. - Reserve Contributors — Where reserve entities are classified as public, the reserve contributor is the entity providing reserve funds. Their incentive for doing so is a profit share from the reserve. - The Reserve Manager — Maintains the reserve, calculates exchange rates and enters them into the network. The reserve manager profits from exchange spreads set by them on their reserves. They can also benefit from increasing volume by accessing the entire Kyber Network. - The Kyber Network Operator — Currently the Kyber Network team is filling the role of the network operator, which has a function to adds/remove Reserve Entities as well as controlling the listing of tokens. Eventually, this role will revert to a proper decentralized governance. ## 1.6 BASIC TOKEN TRADE A basic token trade is one that has the quote token as either the source or destination token of the trade request. The execution flow of a basic token trade is depicted in the diagram below, where a taker would like to exchange BAT tokens for ETH as an example. The trade happens in a single blockchain transaction. 1. Taker sends 1 ETH to the protocol contract, and would like to receive BAT in return. 2. Protocol contract queries the first reserve for its ETH to BAT exchange rate. 3. Reserve 1 offers an exchange rate of 1 ETH for 800 BAT. 4. Protocol contract queries the second reserve for its ETH to BAT exchange rate. 5. Reserve 2 offers an exchange rate of 1 ETH for 820 BAT. 6. This process goes on for the other reserves. After the iteration, reserve 2 is discovered to have offered the best ETH to BAT exchange rate. 7. Protocol contract sends 1 ETH to reserve 2. 8. The reserve sends 820 BAT to the taker. ## 1.7 TOKEN-TO-TOKEN TRADE A token-to-token trade is one where the quote token is neither the source nor the destination token of the trade request. The exchange flow of a token to token trade is depicted in the diagram below, where a taker would like to exchange BAT tokens for DAI as an example. The trade happens in a single blockchain transaction. 1. Taker sends 50 BAT to the protocol contract, and would like to receive DAI in return. 2. Protocol contract sends 50 BAT to the reserve offering the best BAT to ETH rate. 3. Protocol contract receives 1 ETH in return. 4. Protocol contract sends 1 ETH to the reserve offering the best ETH to DAI rate. 5. Protocol contract receives 30 DAI in return. 6. Protocol contract sends 30 DAI to the user. ## 2.KYBER NETWORK CRYSTAL (KNC) TOKEN Kyber Network Crystal (KNC) is an ERC-20 utility token and an integral part of Kyber Network. KNC is the first deflationary staking token where staking rewards and token burns are generated from actual network usage and growth in DeFi. The Kyber Network Crystal (KNC) is the backbone of the Kyber Network. It works to connect liquidity providers and those who need liquidity and serves three distinct purposes. The first of these is to collect transaction fees, and a portion of every fee collected is burned, which keeps KNC deflationary. Kyber Network Crystals (KNC), are named after the crystals in Star Wars used to power light sabers. The KNC also ensures the smooth operation of the reserve system in the Kyber liquidity since entities must use third-party tokens to buy the KNC that pays for their operations in the network. KNC allows token holders to play a critical role in determining the incentive system, building a wide base of stakeholders, and facilitating economic flow in the network. A small fee is charged each time a token exchange happens on the network, and KNC holders get to vote on this fee model and distribution, as well as other important decisions. Over time, as more trades are executed, additional fees will be generated for staking rewards and reserve rebates, while more KNC will be burned. - Participation rewards — KNC holders can stake KNC in the KyberDAO and vote on key parameters. Voters will earn staking rewards (in ETH) - Burning — Some of the network fees will be burned to reduce KNC supply permanently, providing long-term value accrual from decreasing supply. - Reserve incentives — KNC holders determine the portion of network fees that are used as rebates for selected liquidity providers (reserves) based on their volume performance. Finally, the KNC token is the connection between the Kyber Network and the exchanges, wallets, and dApps that leverage the liquidity network. This is a virtuous system since entities are rewarded with referral fees for directing more users to the Kyber Network, which helps increase adoption for Kyber and for the entities using the Network. And of course there will soon be a fourth and fifth uses for the KNC, which will be as a staking token used to generate passive income, as well as a governance token used to vote on key parameters of the network. The Kyber Network Crystal (KNC) was released in a September 2017 ICO at a price around$1. There were 226,000,000 KNC minted for the ICO, with 61% sold to the public. The remaining 39% are controlled 50/50 by the company and the founders/advisors, with a 1 year lockup period and 2 year vesting period.
Currently, just over 180 million coins are in circulation, and the total supply has been reduced to 210.94 million after the company burned 1 millionth KNC token in May 2019 and then its second millionth KNC token just three months later.
That means that while it took 15 months to burn the first million KNC, it took just 10 weeks to burn the second million KNC. That shows how rapidly adoption has been growing recently for Kyber, with July 2019 USD trading volumes on the Kyber Network nearly reaching $60 million. This volume has continued growing, and on march 13, 2020 the network experienced its highest daily trading activity of$33.7 million in a 24-hour period.
Currently KNC is required by Reserve Managers to operate on the network, which ensures a minimum amount of demand for the token. Combined with future plans for burning coins, price is expected to maintain an upward bias, although it has suffered along with the broader market in 2018 and more recently during the summer of 2019.
It was unfortunate in 2020 that a beginning rally was cut short by the coronavirus pandemic, although the token has stabilized as of April 2020, and there are hopes the rally could resume in the summer of 2020.

## 2.1 HOW ARE KNC TOKENS PRODUCED?

The native token of Kyber is called Kyber Network Crystals (KNC). All reserves are required to pay fees in KNC for the right to manage reserves. The KNC collected as fees are either burned and taken out of the total supply or awarded to integrated dapps as an incentive to help them grow.

## 2.2 HOW DO YOU GET HOLD OF KNC TOKENS?

Kyber Swap can be used to buy ETH directly using a credit card, which can then be used to swap for KNC. Besides Kyber itself, exchanges such as Binance, Huobi, and OKex trade KNC.

## 2.3 WHAT CAN YOU DO WITH KYBER?

The most direct and basic function of Kyber is for instantly swapping tokens without registering an account, which anyone can do using an Etheruem wallet such as MetaMask. Users can also create their own reserves and contribute funds to a reserve, but that process is still fairly technical one–something Kyber is working on making easier for users in the future.

## 2.4 THE GOAL OF KYBER THE FUTURE

The goal of Kyber in the coming years is to solidify its position as a one-stop solution for powering liquidity and token swapping on Ethereum. Kyber plans on a major protocol upgrade called Katalyst, which will create new incentives and growth opportunities for all stakeholders in their ecosystem, especially KNC holders. The upgrade will mean more use cases for KNC including to use KNC to vote on governance decisions through a decentralized organization (DAO) called the KyberDAO.
With our upcoming Katalyst protocol upgrade and new KNC model, Kyber will provide even more benefits for stakeholders. For instance, reserves will no longer need to hold a KNC balance for fees, removing a major friction point, and there will be rebates for top performing reserves. KNC holders can also stake their KNC to participate in governance and receive rewards.

## 2.5 BUYING & STORING KNC

Those interested in buying KNC tokens can do so at a number of exchanges. Perhaps your best bet between the complete list is the likes of Coinbase Pro and Binance. The former is based in the USA whereas the latter is an offshore exchange.
The trading volume is well spread out at these exchanges, which means that the liquidity is not concentrated and dependent on any one exchange. You also have decent liquidity on each of the exchange books. For example, the Binance BTC / KNC books are wide and there is decent turnover. This means easier order execution.
KNC is an ERC20 token and can be stored in any wallet with ERC20 support, such as MyEtherWallet or MetaMask. One interesting alternative is the KyberSwap Android mobile app that was released in August 2019.
It allows for instant swapping of tokens and has support for over 70 different altcoins. It also allows users to set price alerts and limit orders and works as a full-featured Ethereum wallet.

Kyber has announced their intention to become the de facto liquidity layer for the Decentralized Finance space, aiming to have Kyber as the single on-chain endpoint used by the majority of liquidity providers and dApp developers. In order to achieve this goal the Kyber Network team is looking to create an open ecosystem that garners trust from the decentralized finance space. They believe this is the path that will lead the majority of projects, developers, and users to choose Kyber for liquidity needs. With that in mind they have recently announced the launch of a protocol upgrade to Kyber which is being called Katalyst.
The Katalyst upgrade will create a stronger ecosystem by creating strong alignments towards a common goal, while also strengthening the incentives for stakeholders to participate in the ecosystem.
The primary beneficiaries of the Katalyst upgrade will be the three major Kyber stakeholders: 1. Reserve managers who provide network liquidity; 2. dApps that connect takers to Kyber; 3. KNC holders.
These stakeholders can expect to see benefits as highlighted below: Reserve Managers will see two new benefits to providing liquidity for the network. The first of these benefits will be incentives for providing reserves. Once Katalyst is implemented part of the fees collected will go to the reserve managers as an incentive for providing liquidity.
This mechanism is similar to rebates in traditional finance, and is expected to drive the creation of additional reserves and market making, which in turn will lead to greater liquidity and platform reach.
Katalyst will also do away with the need for reserve managers to maintain a KNC balance for use as network fees. Instead fees will be automatically collected and used as incentives or burned as appropriate. This should remove a great deal of friction for reserves to connect with Kyber without affecting the competitive exchange rates that takers in the system enjoy. dApp Integrators will now be able to set their own spread, which will give them full control over their own business model. This means the current fee sharing program that shares 30% of the 0.25% fee with dApp developers will go away and developers will determine their own spread. It’s believed this will increase dApp development within Kyber as developers will now be in control of fees.
KNC Holders, often thought of as the core of the Kyber Network, will be able to take advantage of a new staking mechanism that will allow them to receive a portion of network fees by staking their KNC and participating in the KyberDAO.

## 2.7 COMING KYBERDAO

With the implementation of the Katalyst protocol the KNC holders will be put right at the heart of Kyber. Holders of KNC tokens will now have a critical role to play in determining the future economic flow of the network, including its incentive systems.
The primary way this will be achieved is through KyberDAO, a way in which on-chain and off-chain governance will align to streamline cooperation between the Kyber team, KNC holders, and market participants.
The Kyber Network team has identified 3 key areas of consideration for the KyberDAO: 1. Broad representation, transparent governance and network stability 2. Strong incentives for KNC holders to maintain their stake and be highly involved in governance 3. Maximizing participation with a wide range of options for voting delegation
Interaction between KNC Holders & Kyber
This means KNC holders have been empowered to determine the network fee and how to allocate the fees to ensure maximum network growth. KNC holders will now have three fee allocation options to vote on: - Voting Rewards: Immediate value creation. Holders who stake and participate in the KyberDAO get their share of the fees designated for rewards. - Burning: Long term value accrual. The decreasing supply of KNC will improve the token appreciation over time and benefit those who did not participate. - Reserve Incentives:Value creation via network growth. By rewarding Kyber reserve managers based on their performance, it helps to drive greater volume, value, and network fees.

# 2.8 TRANSPARENCY AND STABILITY

The design of the KyberDAO is meant to allow for the greatest network stability, as well as maximum transparency and the ability to quickly recover in emergency situations. Initally the Kyber team will remain as maintainers of the KyberDAO. The system is being developed to be as verifiable as possible, while still maintaining maximum transparency regarding the role of the maintainer in the DAO.
Part of this transparency means that all data and processes are stored on-chain if feasible. Voting regarding network fees and allocations will be done on-chain and will be immutable. In situations where on-chain storage or execution is not feasible there will be a set of off-chain governance processes developed to ensure all decisions are followed through on.

## 2.9 KNC STAKING AND DELEGATION

Staking will be a new addition and both staking and voting will be done in fixed periods of times called “epochs”. These epochs will be measured in Ethereum block times, and each KyberDAO epoch will last roughly 2 weeks.
This is a relatively rapid epoch and it is beneficial in that it gives more rapid DAO conclusion and decision-making, while also conferring faster reward distribution. On the downside it means there needs to be a new voting campaign every two weeks, which requires more frequent participation from KNC stakeholders, as well as more work from the Kyber team.
Delegation will be part of the protocol, allowing stakers to delegate their voting rights to third-party pools or other entities. The pools receiving the delegation rights will be free to determine their own fee structure and voting decisions. Because the pools will share in rewards, and because their voting decisions will be clearly visible on-chain, it is expected that they will continue to work to the benefit of the network.

After the September 2017 ICO, KNC settled into a trading price that hovered around $1.00 (decreasing in BTC value) until December. The token has followed the trend of most other altcoins — rising in price through December and sharply declining toward the beginning of January 2018. The KNC price fell throughout all of 2018 with one exception during April. From April 6th to April 28th, the price rose over 200 percent. This run-up coincided with a blog post outlining plans to bring Bitcoin to the Ethereum blockchain. Since then, however, the price has steadily fallen, currently resting on what looks like a$0.15 (~0.000045 BTC) floor.
With the number of partners using the Kyber Network, the price may rise as they begin to fully use the network. The development team has consistently hit the milestones they’ve set out to achieve, so make note of any release announcements on the horizon.

## 4. COMPETITION

The 0x project is the biggest competitor to Kyber Network. Both teams are attempting to enter the decentralized exchange market. The primary difference between the two is that Kyber performs the entire exchange process on-chain while 0x keeps the order book and matching off-chain.
As a crypto swap exchange, the platform also competes with ShapeShift and Changelly.

## 5.KYBER MILESTONES

• June 2020: Digifox, an all-in-one finance application by popular crypto trader and Youtuber Nicholas Merten a.k.a DataDash (340K subs), integrated Kyber to enable users to easily swap between cryptocurrencies without having to leave the application. • June 2020: Stake Capital partnered with Kyber to provide convenient KNC staking and delegation services, and also took a KNC position to participate in governance. • June 2020: Outlined the benefits of the Fed Price Reserve (FPR) for professional market makers and advanced developers. • May 2020: Kyber crossed US$1 Billion in total trading volume and 1 Million transactions, performed entirely on-chain on Ethereum. • May 2020: StakeWith.Us partnered Kyber Network as a KyberDAO Pool Master. • May 2020: 2Key, a popular blockchain referral solution using smart links, integrated Kyber’s on-chain liquidity protocol for seamless token swaps • May 2020: Blockchain game League of Kingdoms integrated Kyber to accept Token Payments for Land NFTs. • May 2020: Joined the Zcash Developer Alliance , an invite-only working group to advance Zcash development and interoperability. • May 2020: Joined the Chicago DeFi Alliance to help accelerate on-chain market making for professionals and developers. • March 2020: Set a new record of USD$33.7M in 24H fully on-chain trading volume, and $190M in 30 day on-chain trading volume. • March 2020: Integrated by Rarible, Bullionix, and Unstoppable Domains, with the KyberWidget deployed on IPFS, which allows anyone to swap tokens through Kyber without being blocked. • February 2020: Popular Ethereum blockchain game Axie Infinity integrated Kyber to accept ERC20 payments for NFT game items. • February 2020: Kyber’s protocol was integrated by Gelato Finance, Idle Finance, rTrees, Sablier, and 0x API for their liquidity needs. • January 2020: Kyber Network was found to be the most used protocol in the whole decentralized finance (DeFi) space in 2019, according to a DeFi research report by Binance. • December 2019: Switcheo integrated Kyber’s protocol for enhanced liquidity on their own DEX. • December 2019: DeFi Wallet Eidoo integrated Kyber for seamless in-wallet token swaps. • December 2019: Announced the development of the Katalyst Protocol Upgrade and new KNC token model. • July 2019: Developed the Waterloo Bridge , a Decentralized Practical Cross-chain Bridge between EOS and Ethereum, successfully demonstrating a token swap between Ethereum to EOS. • July 2019: Trust Wallet, the official Binance wallet, integrated Kyber as part of its decentralized token exchange service, allowing even more seamless in-wallet token swaps for thousands of users around the world. • May 2019: HTC, the large consumer electronics company with more than 20 years of innovation, integrated Kyber into its Zion Vault Wallet on EXODUS 1 , the first native web 3.0 blockchain phone, allowing users to easily swap between cryptocurrencies in a decentralized manner without leaving the wallet. • January 2019: Introduced the Automated Price Reserve (APR) , a capital efficient way for token teams and individuals to market make with low slippage. • January 2019: The popular Enjin Wallet, a default blockchain DApp on the Samsung S10 and S20 mobile phones, integrated Kyber to enable in-wallet token swaps. • October 2018: Kyber was a founding member of the WBTC (Wrapped Bitcoin) Initiative and DAO. • October 2018: Developed the KyberWidget for ERC20 token swaps on any website, with CoinGecko being the first major project to use it on their popular site. ## Full Article submitted by CoinEx_Institution to kybernetwork [link] [comments] ##### Summary of Tau-Chain Monthly Video Update - July 2020 Karim Agoras Live: Five functionalities complete: 1. Registration 2. Login 3. User Profile Page 4. Calendar 5. Categories List 6. Wallet Screen Payments: Decided that implementing lightning would be too complex. Instead, we decided to implement our own micropayment mechanism using the native BTC multisig addresses. We are going to use the Omni wallet for payments. TML: Continued debugging, getting a TML demo and test cases ready. Hiring: More hiring efforts to increase team size. Timelines: Committing ourselves to a release of Agoras Live and a basic version of discussions in TML in 2020. Umar: Been working on making improvements to the context free grammar parsing. We now are able to add constraints to productions in the grammar, allowing us to recognize grammars that are context sensitive. Developed test cases for that, too. Tomas: Fixed issues in TML and ran several steps in a TML program. Now adding more tests to make sure everything is stable and won’t break. Also been working on a TML tutorial, a recorded script based on the intro to TML which was contained in the TML Playground. Also new features are going to be covered such as arithmetics. Kilian: More outreach & follow-ups to potential partner universities. Positive response by a professor based in Toronto, presented to him our project. Also, response by KULeuven, Belgium, who unfortunately don’t see a good fit in our project. We’ve had one applicant for the IDNI Grant program and currently are evaluating his proposal. Also, we’ve had an applicant from Bangalore, India for the IDNI Ambassador program and we also have been discussing his proposal. Translation Bounties: We’ve had the blog post “The New Tau” translated to Chinese and have been reviewing the translation. We are going to publish the translation on our website and on the Bitcointalk Chinese forum section. Still to be claimed: German translation of “The New Tau”. Done more effort on reach out to potential tribe channels: Research groups, LinkedIn groups, Facebook groups. Most represented keywords: Complex Adaptive Systems, NLP, Computational Linguistics. Usual feedback: Likes but no further interaction. Created an FAQ answering all possible questions surrounding IDNI, Tau & Agoras Idea: Hosting a virtual panel to spread the word about our project among the scientific community, as well as to create some visual content for our community. Two professors are interested in participating, one from Argentina with a focus in semantic parsing, the other one from the University of Washington with a focus on human-computer interaction and social computing. First step: organizing a pre-panel discussion where in 1on1 calls with the professors we get an opinion of them about what we are doing. Andrei: Agoras Live: Implemented mail system so users now get their mails (e.g. registration email). Improved UX together with Mo’az, e.g. user profiles. Token creation for accessing calls to identify and charge users. Customized Jitsi interface to suit our needs: E.g. display of how much time passed in a call and how much it costs. Next up: Further improve UX; make sure everything works as intended. Mo’az: Almost finished the IDNI website. Added two more pages: Events & Bounties in collaboration with Fola & Kilian. Agoras Live: Finetuned all the website’s components in collaboration with Andrei. Juan: Continued working on the payments system for Agoras Live. Had some delays due to the complexity of debugging such applications. Still, we made significant progress and got the funding transactions implemented over the Lightning network through the Omni layer. Spent time analyzing the minimum amount of BTC to pay for the fees associated to the Omni transactions. We aren’t using segregated witness native addresses and instead are using embedded segregated witness. So transaction sizes are enlarged and transaction fees are a bit higher. So there is a bit of finetuning analysis needed in order to enable the multisig address to pay for the closing & refund transactions. So to provide payment channels over the Omni layer, the main remaining technical detail we have to solve at this point is the closing transaction & the refund transaction. Fola: Have been continuing to look for great talent in different areas. Continued working on website with Mo’az and Kilian. Been working on the branding for Tau & Agoras. Been getting external support to make sure the branding for Tau & Agoras will be as professional as it can be. Working on marketing efforts needed for the release of Agoras Live to get the media pack for marketing ready. Working together with external people to put a plan together for listing the Agoras token on more prominent exchanges as we get closer to release of Agoras Live. Ohad: Continued working on restricted versions of second-order logic to understand how to implement them. There is a translation in the literature about how to convert second-order logic by Horn into Datalog. Also, I have been revisiting papers that deal with descriptive complexity of higher-order logic. They mention that they have a translation from second-order logic to QBF. I wasn’t able to find where they explain this translation but I wrote one of them and he said he will send me the paper. If so, that will be very good because we already have a QBF solver. Any binary decision diagram is already a QBF solver, so we can just translate arbitrary second-order logic formulas into QBF. This will be very helpful for us to implement second-order logic. Also, those papers mention several aspects that are relevant for self-interpretation, the laws of laws. Apparently, they suggest that certain fragments of higher-order logic may also support the laws of laws. But this is part of the papers that I didn’t have access to, so I have to wait to get further clarification. I also pushed the whitepaper significantly this month and hope we will be finishing it soon. Also, I was thinking about some optimizations for the parser and also was looking into the Lightning network. It was my mistake that I haven’t done so beforehand and if I had done it beforehand, I would have understood earlier, that Lightning is too much. It is too drastic of a change to how traditional payments work and there apparently is no reason to believe that it is secure. So I’m glad I discovered better now than later that it’s not something we’d like to rely on, although we can have it as an optional feature. Q&A: Q: With the project development taking longer than other projects such as Tezos, when can AGRS holders expect something to be released and, how can you reassure us that we made the right decision? A: With regards to when we see some releases, it seems that we will see some releases in 2020. For comparing to Ethereum and Tezos: Let’s first talk about funding. Both projects had a lot of money. For Ethereum, the reason for is that it has probably done one of the most aggressive marketing campaigns in history. It was completely lacking any kind of honesty. It was simply aggressive. None of Ethereum’s visions and promises became true. It simply became an insecure platform for scams. None of their vision of creating a world computer, of creating a better society, a better currency, became true. Because of this aggressive marketing, they not only raised a lot of money, they also took the price to be so high in the market. If you remember the campaign of the flipping, they did a whole campaign on how they would overtake the marketcap of Bitcoin. For Tezos, they made maybe the largest ICO in history in terms of money, mainly because they came at the right time, at the top of the bubble in 2017, and also their promises for better coordination didn’t come true. Their solution is based on voting and based on Turing completeness and the only reason why they managed to gain such a market cap as of today, is not because they offer better currency, better society, better anything. It basically is a Ponzi-scheme because they offer very high interest rate by very high inflation (5,51%). The only reason why people buy Tezos is to get into this Ponzi-scheme. Because both Tezos and Ethereum lack any true economical or technological substance, their value will not sustain and this is true for almost all projects in the cryptocurrency world. In the software, high-tech market, if you come up with good tech and you do all the right things, you succeed big time. But if you don’t have it and you are purely relying on brainwashing people, it will not sustain. Of course, our solution is so disruptive and sustainable. We offer to do advancements for humanity and for economy. Q: What three subjects would you first like to see discussed on Tau? A: Of course, picking three subjects now is a bit speculative, but the first thing that comes to mind is the definitions of what good and bad means and what better and worse means. The second subject is the governance model over Tau. The third one is the specification of Tau itself and how to make it grow and evolve even more to suit wider audiences. The whole point of Tau is people collaborating in order to define Tau itself and to improve it over time, so it will improve up to infinity. This is the main thing, especially initially, that the Tau developers (or rather users) advance the platform more and more. Q: What is stopping programmers using TML right now? If nothing, what is your opinion on why they aren’t? A: There is nothing essentially missing in TML in order to let it release. And in fact, we are now working towards packaging it and bringing it towards a release level. For things like documentation, bug fixes, minor features, minor optimizations. We indeed actively work towards releasing TML 1.0 and then we can publish it in e.g. developers channels for them to use it. submitted by m4nki to tauchain [link] [comments] ##### Bitcoin: Follow the money. A very interesting look at who's who in the game.  submitted by theantnest to btc [link] [comments] ##### Dive Into Tendermint Consensus Protocol (I) This article is written by the CoinEx Chain lab. CoinEx Chain is the world’s first public chain exclusively designed for DEX, and will also include a Smart Chain supporting smart contracts and a Privacy Chain protecting users’ privacy. longcpp @ 20200618 This is Part 1 of the serialized articles aimed to explain the Tendermint consensus protocol in detail. Part 1. Preliminary of the consensus protocol: security model and PBFT protocol Part 2. Tendermint consensus protocol illustrated: two-phase voting protocol and the locking and unlocking mechanism Part 3. Weighted round-robin proposer selection algorithm used in Tendermint project Any consensus agreement that is ultimately reached is the General Agreement, that is, the majority opinion. The consensus protocol on which the blockchain system operates is no exception. As a distributed system, the blockchain system aims to maintain the validity of the system. Intuitively, the validity of the blockchain system has two meanings: firstly, there is no ambiguity, and secondly, it can process requests to update its status. The former corresponds to the safety requirements of distributed systems, while the latter to the requirements of liveness. The validity of distributed systems is mainly maintained by consensus protocols, considering the multiple nodes and network communication involved in such systems may be unstable, which has brought huge challenges to the design of consensus protocols. ## The semi-synchronous network model and Byzantine fault tolerance Researchers of distributed systems characterize these problems that may occur in nodes and network communications using node failure models and network models. The fail-stop failure in node failure models refers to the situation where the node itself stops running due to configuration errors or other reasons, thus unable to go on with the consensus protocol. This type of failure will not cause side effects on other parts of the distributed system except that the node itself stops running. However, for such distributed systems as the public blockchain, when designing a consensus protocol, we still need to consider the evildoing intended by nodes besides their failure. These incidents are all included in the Byzantine Failure model, which covers all unexpected situations that may occur on the node, for example, passive downtime failures and any deviation intended by the nodes from the consensus protocol. For a better explanation, downtime failures refer to nodes’ passive running halt, and the Byzantine failure to any arbitrary deviation of nodes from the consensus protocol. Compared with the node failure model which can be roughly divided into the passive and active models, the modeling of network communication is more difficult. The network itself suffers problems of instability and communication delay. Moreover, since all network communication is ultimately completed by the node which may have a downtime failure or a Byzantine failure in itself, it is usually difficult to define whether such failure arises from the node or the network itself when a node does not receive another node's network message. Although the network communication may be affected by many factors, the researchers found that the network model can be classified by the communication delay. For example, the node may fail to send data packages due to the fail-stop failure, and as a result, the corresponding communication delay is unknown and can be any value. According to the concept of communication delay, the network communication model can be divided into the following three categories: • The synchronous network model: There is a fixed, known upper bound of delay$\Delta$in network communication. Under this model, the maximum delay of network communication between two nodes in the network is$\Delta$. Even if there is a malicious node, the communication delay arising therefrom does not exceed$\Delta$. • The asynchronous network model: There is an unknown delay in network communication, with the upper bound of the delay known, but the message can still be successfully delivered in the end. Under this model, the network communication delay between two nodes in the network can be any possible value, that is, a malicious node, if any, can arbitrarily extend the communication delay. • The semi-synchronous network model: Assume that there is a Global Stabilization Time (GST), before which it is an asynchronous network model and after which, a synchronous network model. In other words, there is a fixed, known upper bound of delay in network communication$\Delta$. A malicious node can delay the GST arbitrarily, and there will be no notification when no GST occurs. Under this model, the delay in the delivery of the message at the time$T$is$\Delta + max(T, GST)$. The synchronous network model is the most ideal network environment. Every message sent through the network can be received within a predictable time, but this model cannot reflect the real network communication situation. As in a real network, network failures are inevitable from time to time, causing the failure in the assumption of the synchronous network model. Yet the asynchronous network model goes to the other extreme and cannot reflect the real network situation either. Moreover, according to the FLP (Fischer-Lynch-Paterson) theorem, under this model if there is one node fails, no consensus protocol will reach consensus in a limited time. In contrast, the semi-synchronous network model can better describe the real-world network communication situation: network communication is usually synchronous or may return to normal after a short time. Such an experience must be no stranger to everyone: the web page, which usually gets loaded quite fast, opens slowly every now and then, and you need to try before you know the network is back to normal since there is usually no notification. The peer-to-peer (P2P) network communication, which is widely used in blockchain projects, also makes it possible for a node to send and receive information from multiple network channels. It is unrealistic to keep blocking the network information transmission of a node for a long time. Therefore, all the discussion below is under the semi-synchronous network model. The design and selection of consensus protocols for public chain networks that allow nodes to dynamically join and leave need to consider possible Byzantine failures. Therefore, the consensus protocol of a public chain network is designed to guarantee the security and liveness of the network under the semi-synchronous network model on the premise of possible Byzantine failure. Researchers of distributed systems point out that to ensure the security and liveness of the system, the consensus protocol itself needs to meet three requirements: • Validity: The value reached by honest nodes must be the value proposed by one of them • Agreement: All honest nodes must reach consensus on the same value • Termination: The honest nodes must eventually reach consensus on a certain value Validity and agreement can guarantee the security of the distributed system, that is, the honest nodes will never reach a consensus on a random value, and once the consensus is reached, all honest nodes agree on this value. Termination guarantees the liveness of distributed systems. A distributed system unable to reach consensus is useless. ## The CAP theorem and Byzantine Generals Problem In a semi-synchronous network, is it possible to design a Byzantine fault-tolerant consensus protocol that satisfies validity, agreement, and termination? How many Byzantine nodes can a system tolerance? The CAP theorem and Byzantine Generals Problem provide an answer for these two questions and have thus become the basic guidelines for the design of Byzantine fault-tolerant consensus protocols. Lamport, Shostak, and Pease abstracted the design of the consensus mechanism in the distributed system in 1982 as the Byzantine Generals Problem, which refers to such a situation as described below: several generals each lead the army to fight in the war, and their troops are stationed in different places. The generals must formulate a unified action plan for the victory. However, since the camps are far away from each other, they can only communicate with each other through the communication soldiers, or, in other words, they cannot appear on the same occasion at the same time to reach a consensus. Unfortunately, among the generals, there is a traitor or two who intend to undermine the unified actions of the loyal generals by sending the wrong information, and the communication soldiers cannot send the message to the destination by themselves. It is assumed that each communication soldier can prove the information he has brought comes from a certain general, just as in the case of a real BFT consensus protocol, each node has its public and private keys to establish an encrypted communication channel for each other to ensure that its messages will not be tampered with in the network communication, and the message receiver can also verify the sender of the message based thereon. As already mentioned, any consensus agreement ultimately reached represents the consensus of the majority. In the process of generals communicating with each other for an offensive or retreat, a general also makes decisions based on the majority opinion from the information collected by himself. According to the research of Lamport et al, if there are 1/3 or more traitors in the node, the generals cannot reach a unified decision. For example, in the following figure, assume there are 3 generals and only 1 traitor. In the figure on the left, suppose that General C is the traitor, and A and B are loyal. If A wants to launch an attack and informs B and C of such intention, yet the traitor C sends a message to B, suggesting what he has received from A is a retreat. In this case, B can't decide as he doesn't know who the traitor is, and the information received is insufficient for him to decide. If A is a traitor, he can send different messages to B and C. Then C faithfully reports to B the information he received. At this moment as B receives conflicting information, he cannot make any decisions. In both cases, even if B had received consistent information, it would be impossible for him to spot the traitor between A and C. Therefore, it is obvious that in both situations shown in the figure below, the honest General B cannot make a choice. According to this conclusion, when there are$n$generals with at most$f$traitors (n≤3f), the generals cannot reach a consensus if$n \leq 3f$; and with$n > 3f$, a consensus can be reached. This conclusion also suggests that when the number of Byzantine failures$f$exceeds 1/3 of the total number of nodes$n$in the system$f \ge n/3$, no consensus will be reached on any consensus protocol among all honest nodes. Only when$f < n/3$, such condition is likely to happen, without loss of generality, and for the subsequent discussion on the consensus protocol,$ n \ge 3f + 1$by default. The conclusion reached by Lamport et al. on the Byzantine Generals Problem draws a line between the possible and the impossible in the design of the Byzantine fault tolerance consensus protocol. Within the possible range, how will the consensus protocol be designed? Can both the security and liveness of distributed systems be fully guaranteed? Brewer provided the answer in his CAP theorem in 2000. It indicated that a distributed system requires the following three basic attributes, but any distributed system can only meet two of the three at the same time. 1. Consistency: When any node responds to the request, it must either provide the latest status information or provide no status information 2. Availability: Any node in the system must be able to continue reading and writing 3. Partition Tolerance: The system can tolerate the loss of any number of messages between two nodes and still function normally https://preview.redd.it/1ozfwk7u7m851.png?width=1400&format=png&auto=webp&s=fdee6318de2cf1c021e636654766a7a0fe7b38b4 A distributed system aims to provide consistent services. Therefore, the consistency attribute requires that the two nodes in the system cannot provide conflicting status information or expired information, which can ensure the security of the distributed system. The availability attribute is to ensure that the system can continuously update its status and guarantee the availability of distributed systems. The partition tolerance attribute is related to the network communication delay, and, under the semi-synchronous network model, it can be the status before GST when the network is in an asynchronous status with an unknown delay in the network communication. In this condition, communicating nodes may not receive information from each other, and the network is thus considered to be in a partitioned status. Partition tolerance requires the distributed system to function normally even in network partitions. The proof of the CAP theorem can be demonstrated with the following diagram. The curve represents the network partition, and each network has four nodes, distinguished by the numbers 1, 2, 3, and 4. The distributed system stores color information, and all the status information stored by all nodes is blue at first. 1. Partition tolerance and availability mean the loss of consistency: When node 1 receives a new request in the leftmost image, the status changes to red, the status transition information of node 1 is passed to node 3, and node 3 also updates the status information to red. However, since node 3 and node 4 did not receive the corresponding information due to the network partition, the status information is still blue. At this moment, if the status information is queried through node 2, the blue returned by node 2 is not the latest status of the system, thus losing consistency. 2. Partition tolerance and consistency mean the loss of availability: In the middle figure, the initial status information of all nodes is blue. When node 1 and node 3 update the status information to red, node 2 and node 4 maintain the outdated information as blue due to network partition. Also when querying status information through node 2, you need to first ask other nodes to make sure you’re in the latest status before returning status information as node 2 needs to follow consistency, but because of the network partition, node 2 cannot receive any information from node 1 or node 3. Then node 2 cannot determine whether it is in the latest status, so it chooses not to return any information, thus depriving the system of availability. 3. Consistency and availability mean the loss of the partition tolerance: In the right-most figure, the system does not have a network partition at first, and both status updates and queries can go smoothly. However, once a network partition occurs, it degenerates into one of the previous two conditions. It is thus proved that any distributed system cannot have consistency, availability, and partition tolerance all at the same time. https://preview.redd.it/456x2blv7m851.png?width=1400&format=png&auto=webp&s=550797373145b8fc1471bdde68ed5f8d45adb52b The discovery of the CAP theorem seems to declare that the aforementioned goals of the consensus protocol is impossible. However, if you’re careful enough, you may find from the above that those are all extreme cases, such as network partitions that cause the failure of information transmission, which could be rare, especially in P2P network. In the second case, the system rarely returns the same information with node 2, and the general practice is to query other nodes and return the latest status as believed after a while, regardless of whether it has received the request information of other nodes. Therefore, although the CAP theorem points out that any distributed system cannot satisfy the three attributes at the same time, it is not a binary choice, as the designer of the consensus protocol can weigh up all the three attributes according to the needs of the distributed system. However, as the communication delay is always involved in the distributed system, one always needs to choose between availability and consistency while ensuring a certain degree of partition tolerance. Specifically, in the second case, it is about the value that node 2 returns: a probably outdated value or no value. Returning the possibly outdated value may violate consistency but guarantees availability; yet returning no value deprives the system of availability but guarantees its consistency. Tendermint consensus protocol to be introduced is consistent in this trade-off. In other words, it will lose availability in some cases. The genius of Satoshi Nakamoto is that with constraints of the CAP theorem, he managed to reach a reliable Byzantine consensus in a distributed network by combining PoW mechanism, Satoshi Nakamoto consensus, and economic incentives with appropriate parameter configuration. Whether Bitcoin's mechanism design solves the Byzantine Generals Problem has remained a dispute among academicians. Garay, Kiayias, and Leonardos analyzed the link between Bitcoin mechanism design and the Byzantine consensus in detail in their paper The Bitcoin Backbone Protocol: Analysis and Applications. In simple terms, the Satoshi Consensus is a probabilistic Byzantine fault-tolerant consensus protocol that depends on such conditions as the network communication environment and the proportion of malicious nodes' hashrate. When the proportion of malicious nodes’ hashrate does not exceed 1/2 in a good network communication environment, the Satoshi Consensus can reliably solve the Byzantine consensus problem in a distributed environment. However, when the environment turns bad, even with the proportion within 1/2, the Satoshi Consensus may still fail to reach a reliable conclusion on the Byzantine consensus problem. It is worth noting that the quality of the network environment is relative to Bitcoin's block interval. The 10-minute block generation interval of the Bitcoin can ensure that the system is in a good network communication environment in most cases, given the fact that the broadcast time of a block in the distributed network is usually just several seconds. In addition, economic incentives can motivate most nodes to actively comply with the agreement. It is thus considered that with the current Bitcoin network parameter configuration and mechanism design, the Bitcoin mechanism design has reliably solved the Byzantine Consensus problem in the current network environment. ## Practical Byzantine Fault Tolerance, PBFT It is not an easy task to design the Byzantine fault-tolerant consensus protocol in a semi-synchronous network. The first practically usable Byzantine fault-tolerant consensus protocol is the Practical Byzantine Fault Tolerance (PBFT) designed by Castro and Liskov in 1999, the first of its kind with polynomial complexity. For a distributed system with$n$nodes, the communication complexity is$O(n2$.) Castro and Liskov showed in the paper that by transforming centralized file system into a distributed one using the PBFT protocol, the overwall performance was only slowed down by 3%. In this section we will briefly introduce the PBFT protocol, paving the way for further detailed explanations of the Tendermint protocol and the improvements of the Tendermint protocol. The PBFT protocol that includes$n=3f+1$nodes can tolerate up to$f$Byzantine nodes. In the original paper of PBFT, full connection is required among all the$n$nodes, that is, any two of the n nodes must be connected. All the nodes of the network jointly maintain the system status through network communication. In the Bitcoin network, a node can participate in or exit the consensus process through hashrate mining at any time, which is managed by the administrator, and the PFBT protocol needs to determine all the participating nodes before the protocol starts. All nodes in the PBFT protocol are divided into two categories, master nodes, and slave nodes. There is only one master node at any time, and all nodes take turns to be the master node. All nodes run in a rotation process called View, in each of which the master node will be reelected. The master node selection algorithm in PBFT is very simple: all nodes become the master node in turn by the index number. In each view, all nodes try to reach a consensus on the system status. It is worth mentioning that in the PBFT protocol, each node has its own digital signature key pair. All sent messages (including request messages from the client) need to be signed to ensure the integrity of the message in the network and the traceability of the message itself. (You can determine who sent a message based on the digital signature). The following figure shows the basic flow of the PBFT consensus protocol. Assume that the current view’s master node is node 0. Client C initiates a request to the master node 0. After the master node receives the request, it broadcasts the request to all slave nodes that process the request of client C and return the result to the client. After the client receives f+1 identical results from different nodes (based on the signature value), the result can be taken as the final result of the entire operation. Since the system can have at most f Byzantine nodes, at least one of the f+1 results received by the client comes from an honest node, and the security of the consensus protocol guarantees that all honest nodes will reach consensus on the same status. So, the feedback from 1 honest node is enough to confirm that the corresponding request has been processed by the system. https://preview.redd.it/sz8so5ly7m851.png?width=1400&format=png&auto=webp&s=d472810e76bbc202e91a25ef29a51e109a576554 For the status synchronization of all honest nodes, the PBFT protocol has two constraints on each node: on one hand, all nodes must start from the same status, and on the other, the status transition of all nodes must be definite, that is, given the same status and request, the results after the operation must be the same. Under these two constraints, as long as the entire system agrees on the processing order of all transactions, the status of all honest nodes will be consistent. This is also the main purpose of the PBFT protocol: to reach a consensus on the order of transactions between all nodes, thereby ensuring the security of the entire distributed system. In terms of availability, the PBFT consensus protocol relies on a timeout mechanism to find anomalies in the consensus process and start the View Change protocol in time to try to reach a consensus again. The figure above shows a simplified workflow of the PBFT protocol. Where C is the client, 0, 1, 2, and 3 represent 4 nodes respectively. Specifically, 0 is the master node of the current view, 1, 2, 3 are slave nodes, and node 3 is faulty. Under normal circumstances, the PBFT consensus protocol reaches consensus on the order of transactions between nodes through a three-phase protocol. These three phases are respectively: Pre-Prepare, Prepare, and Commit: • The master node of the pre-preparation node is responsible for assigning the sequence number to the received client request, and broadcasting the message to the slave node. The message contains the hash value of the client request d, the sequence number of the current viewv, the sequence number n assigned by the master node to the request, and the signature information of the master nodesig. The scheme design of the PBFT protocol separates the request transmission from the request sequencing process, and the request transmission is not to be discussed here. The slave node that receives the message accepts the message after confirming the message is legitimate and enter preparation phase. The message in this step checks the basic signature, hash value, current view, and, most importantly, whether the master node has given the same sequence number to other request from the client in the current view. • In preparation, the slave node broadcasts the message to all nodes (including itself), indicating that it assigns the sequence number n to the client request with the hash value d under the current view v, with its signaturesig as proof. The node receiving the message will check the correctness of the signature, the matching of the view sequence number, etc., and accept the legitimate message. When the PRE-PREPARE message about a client request (from the main node) received by a node matches with the PREPARE from 2f slave nodes, the system has agreed on the sequence number requested by the client in the current view. This means that 2f+1 nodes in the current view agree with the request sequence number. Since it contains information from at most fmalicious nodes, there are a total of f+1 honest nodes that have agreed with the allocation of the request sequence number. With f malicious nodes, there are a total of 2f+1 honest nodes, so f+1represents the majority of the honest nodes, which is the consensus of the majority mentioned before. • After the node (including the master node and the slave node) receives a PRE-PREPARE message requested by the client and 2f PREPARE messages, the message is broadcast across the network and enters the submission phase. This message is used to indicate that the node has observed that the whole network has reached a consensus on the sequence number allocation of the request message from the client. When the node receives 2f+1 COMMIT messages, there are at least f+1 honest nodes, that is, most of the honest nodes have observed that the entire network has reached consensus on the arrangement of sequence numbers of the request message from the client. The node can process the client request and return the execution result to the client at this moment. Roughly speaking, in the pre-preparation phase, the master node assigns a sequence number to all new client requests. During preparation, all nodes reach consensus on the client request sequence number in this view, while in submission the consistency of the request sequence number of the client in different views is to be guaranteed. In addition, the design of the PBFT protocol itself does not require the request message to be submitted by the assigned sequence number, but out of order. That can improve the efficiency of the implementation of the consensus protocol. Yet, the messages are still processed by the sequence number assigned by the consensus protocol for the consistency of the distributed system. In the three-phase protocol execution of the PBFT protocol, in addition to maintaining the status information of the distributed system, the node itself also needs to log all kinds of consensus information it receives. The gradual accumulation of logs will consume considerable system resources. Therefore, the PBFT protocol additionally defines checkpoints to help the node deal with garbage collection. You can set a checkpoint every 100 or 1000 sequence numbers according to the request sequence number. After the client request at the checkpoint is executed, the node broadcasts messages throughout the network, indicating that after the node executes the client request with sequence number n, the hash value of the system status is d, and it is vouched by its own signature sig. After 2f+1 matching CHECKPOINT messages (one of which can come from the node itself) are received, most of the honest nodes in the entire network have reached a consensus on the system status after the execution of the client request with the sequence numbern, and then you can clear all relevant log records of client requests with the sequence number less than n. The node needs to save these2f+1 CHECKPOINTmessages as proof of the legitimate status at this moment, and the corresponding checkpoint is called a stable checkpoint. The three-phase protocol of the PBFT protocol can ensure the consistency of the processing order of the client request, and the checkpoint mechanism is set to help nodes perform garbage collection and further ensures the status consistency of the distributed system, both of which can guarantee the security of the distributed system aforementioned. How is the availability of the distributed system guaranteed? In the semi-synchronous network model, a timeout mechanism is usually introduced, which is related to delays in the network environment. It is assumed that the network delay has a known upper bound after GST. In such condition, an initial value is usually set according to the network condition of the system deployed. In case of a timeout event, besides the corresponding processing flow triggered, additional mechanisms will be activated to readjust the waiting time. For example, an algorithm like TCP's exponential back off can be adopted to adjust the waiting time after a timeout event. To ensure the availability of the system in the PBFT protocol, a timeout mechanism is also introduced. In addition, due to the potential the Byzantine failure in the master node itself, the PBFT protocol also needs to ensure the security and availability of the system in this case. When the Byzantine failure occurs in the master node, for example, when the slave node does not receive the PRE-PREPARE message or the PRE-PREPARE message sent by the master node from the master node within the time window and is thus determined to be illegitimate, the slave node can broadcast to the entire network, indicating that the node requests to switch to the new view with sequence number v+1. n indicates the request sequence number corresponding to the latest stable checkpoint local to the node, and C is to prove the stable checkpoint 2f+1 legitimate CHECKPOINT messages as aforementioned. After the latest stable checkpoint and before initiating the VIEWCHANGE message, the system may have reached a consensus on the sequence numbers of some request messages in the previous view. To ensure the consistency of these request sequence numbers to be switched in the view, the VIEWCHANGE message needs to carry this kind of the information to the new view, which is also the meaning of the P field in the message. P contains all the client request messages collected at the node with a request sequence number greater than n and the proof that a consensus has been reached on the sequence number in the node: the legitimate PRE-PREPARE message of the request and 2f matching PREPARE messages. When the master node in view v+1 collects 2f+1 VIEWCHANGE messages, it can broadcast the NEW-VIEW message and take the entire system into a new view. For the security of the system in combination with the three-phase protocol of the PBFT protocol, the construction rules of the NEW-VIEW information are designed in a quite complicated way. You can refer to the original paper of PBFT for more details. https://preview.redd.it/x5efdc908m851.png?width=1400&format=png&auto=webp&s=97b4fd879d0ec668ee0990ea4cadf476167a2948 VIEWCHANGE contains a lot of information. For example, C contains 2f+1 signature information, P contains several signature sets, and each set has 2f+1 signature. At least 2f+1 nodes need to send a VIEWCHANGE message before prompting the system to enter the next new view, and that means, in addition to the complex logic of constructing the information of VIEWCHANGE and NEW-VIEW, the communication complexity of the view conversion protocol is$O(n2.) Such complexity also limits the PBFT protocol to support only a few nodes, and when there are 100 nodes, it is usually too complex to practically deploy PBFT. It is worth noting that in some materials the communication complexity of the PBFT protocol is inappropriately attributed to the full connection between n nodes. By changing the fully connected network topology to the P2P network topology based on distributed hash tables commonly used in blockchain projects, high communication complexity caused by full connection can be conveniently solved, yet still, it is difficult to improve the communication complexity during the view conversion process. In recent years, researchers have proposed to reduce the amount of communication in this step by adopting aggregate signature scheme. With this technology, 2f+1 signature information can be compressed into one, thereby reducing the communication volume during view change. submitted by coinexchain to u/coinexchain [link] [comments] ##### Komodo's 2.0 Infographic Contest: 5,000 KMD Grand Prize! https://preview.redd.it/0yq7rwnkjdq11.png?width=1500&format=png&auto=webp&s=950dd49d7e1f7f1e421f7074bd030aec064e6ac7 A total prize pool of 7,000 KMD in our infographic contest Calling all creatives to take part in our infographic contest and compete for a prize of 7,000 KMD. The winning infographic will explain the architecture of Komodo Platform’s technology. Winners will be those who are able to communicate our architecture and tech visually. This contest will run primarily on Reddit, with the exception of resources being posted to Medium and a master twitter thread for submissions on Twitter. You'll find links at the bottom of this post. # Prizes for winning infographics. Are you a creative designer? Here's what you can win… 1. A grand prize of 5,000 KMD 2. Two runner-up prizes of 500 KMD each 3. Two third-place prizes of 250 KMD each # Prizes for sharing and giving feedback! Not a designer? That's OK. You can still participate and win! We'll award five lucky winners 100 KMD each for sharing and promoting the contest. Winners will be picked in a raffle. If you'd like to take part click here https://gleam.io/MwMtO/komodos-20-infographic-contest-5000-kmd-grand-prize and share this post with your friends. # Your Goals • Create a high-quality infographic that illustrates the genesis of our platform, the working tech that has been created and how Komodo has been built differently, and deliberately, from the very beginning to ensure security, scalability and interoperability. This is why we refer to the architecture, because Komodo was designed to overcome common problems like congestion, governance and attacks that other platforms did not foresee or prevent, from the beginning. This is Komodo DNA. • Share your submission far and wide and encourage your friends and followers to vote for you. • Encourage feedback, ask questions and make your infographic the best that it can be. # Our Criteria to Judge Please note that upvotes and shares are not the only criteria we'll use to judge winners. While useful, we will value creativity, good questions and discussion on Reddit highly. When sharing your posts you will score more highly if people comment, provide feedback and are engaged. • How well the infographic conveys our working tech, it's core concepts and plans to build on top of it. • How well the infographic illustrates our story, purpose and conveys our tech so that it's easy to understand. • Constructive discussion, questions and feedback on Reddit that lead to improvement. • Sentiment and comments generated across all our social media. This will not include vanity metrics like likes or shares. • Upvotes on Reddit for the author's submission post ONLY. All votes will be counted (i.e. doesn't matter which week they were made). • Retweets of the submission in our master thread ONLY. Include your handle and a cover image in your submission. This means if you promote yourself on Twitter you ought to promote the tweet with your work in it. # How do you win? You may submit up to two infographics. By submitting an infographic, you understand Komodo may post and use your submissions on our digital channels during and after the contest. Each infographic must have it's own post. • Create a post on Komodo's subreddit using the 'infographic contest' flair. • Add the infographic image into the Reddit post. • Include your Twitter handle. • Include a social media friendly cover image for us to use when we tweet your submission out. • Post a link to your submission post here in the comments for all to see. # Contest Timeline Guide (these dates indicative and are subject to change). • 7th September. Announcement. If you're reading this on Reddit before the big announcement then well done! You have two extra days before this is announced on Friday. • 10th - 21st September. Research and Questions. We will promote the contest, invite questions and requests for resources, in the comments of this master Reddit post (because this means all information and good questions will be visible to all participants). • 22nd September. Draft Submissions. Creatives to submit their draft infographics on Reddit. All submissions need to have their own post and then be linked to in the comments of this master post. This is important to remember! • 24th - 30th September. Feedback. A period of one week will be devoted to promoting the submissions and asking the community and team to give you feedback. • 1st October. Final Submissions. • 2nd - 8th October. Voting. A week of promoting your work and at the end we'll count votes, consider feedback and pick our winners. • 15th October. Winners Declared. The final decision by judges. Votes and community feedback counts towards judging but do not have final say. # Resources If you need help please post in this thread, or email [[email protected]](mailto:[email protected]) with ‘Infographic Contest’ in the subject line. Also please let us know if you are, or you know, a good GUI developer because we'd love to hear from them. Ask them to DM ca333#0118 or SHossain#8093 on Discord. # Entries and submissions for the infographic contest. You can click here to see them all in a scrollable thread on Twitter. # 25/09/18 - First Round of Feedback Infographics should use graphical design elements to visually represent the Komodo Architecture Story found here: https://komodoplatform.com/komodo-platform-a-brief-overview/ included in our ‘required reading’. There’s also a bullet point aid: https://medium.com/@benohanlon/bullet-point-aid-to-help-you-the-history-of-komodos-architecture-dced35b29965 you may find useful. • We want to stress that the infographic ought to focus on the Architecture story. In the first round we've found many have focused on the five pillars which is a part of it but not the focus. • Copy should be short and concise and not dominate the infographic. The idea is to simplify the story and not to copy and paste directly from the story. • Colour Palette - avoid heavy usage of the old KMD green and yellow-orange. Would prefer usage of the interim KMD colour palette. • Recommended fonts: Montseratt, Roboto, Open Sans, Helvetica, or Arial. • Graphical - Imagery should complement the associated copy. Diagrams are encouraged in place of simple icons to explain more complex technology concepts. • Interim KMD colour palette Interim KMD Colour Palette If you’ve not been included in the first round it’s because the submission hadn’t been made when the team reviewed. Don’t worry though because we’re organising hangouts and further feedback to help. • #001 Infographic Link // Reddit Post Link by thesudio. There’s a lot of good points made, however, these would work better if there is a clear narrative and flow to the information being presented. Otherwise, it can be overwhelming and confusing to the reader. The #1 objective is to visually depict the architecture story and how KMD is redefining blockchain platform architecture. • #002 Infographic Link // Reddit Post Link by thesudio. We like that there is a clear structure and clear messaging aligned to each of the 5 pillars. However, the infographic should be focused on telling the architecture story vs the pillars. • #003 Infographic Link // Reddit Post Link by VolsenVols. Love how you’ve incorporated our existing graphic design elements into the infographic. This is heading in the right direction and the level of copy and content are well balanced. It would be nice to align this closer to the architecture story and to expand on the different layers of our technology using the same style. • #004 Infographic Link // Reddit Post Link by dexter_laabo. Needs to tell the architecture story. This looks more like it took information from our current website. “Anonymous” is not a key aspect of our technology that we’re focusing on. • #005 Infographic Link // Reddit Post Link by savandra. The visuals are strong but the narrative could be stronger. It would be nice to align this closer to the architecture story and to expand on the different layers of our technology using the same style. • #006 Infographic Link // Reddit Post Link by VolsenVols. Team prefers the other submission style in entry #003. • #007 Infographic Link // Reddit Post Link by cryptol1. Doesn’t depict the architecture narrative. Inaccurately describes cross-chain tech as “proprietary”. Simplification has the wrong messaging associated, should be white-label focused. This is considered more of a graphics versus an infographic. Needs to be more comprehensive. • #008 Infographic Link // Reddit Post Link by pacosenda. We like the unique design style and approach taken. Doesn’t follow the architecture narrative. Should be expanded out as it is a bit short on content with no clear flow or narrative. • #009 Infographic Link // Reddit Post Link by jeanetteLine. Great level of detail and thought on the layout and content. Doesn’t, however, cover the architecture story. Would be preferred if the design direction reflects interim colour and style vs. legacy KMD. The roadmap should be avoided. Looks like they borrowed more from the website than the guidelines. • #010 Infographic Link // Reddit Post Link by Meyse. Very creative way to explain and layout the content. This could be expanded out more to encompass the entire architecture story. Cross-chain verifications/smart contracts, blockchain bridging need to be incorporated in. • #011 Infographic Link // Reddit Post Link by Brenny431. Follows the 5 pillars versus the architecture story. Would prefer stronger visuals and design elements. • #012 Infographic Link // Reddit Post Link by ProofDraw. Design elements are good but need to follow architecture story versus 5 pillars. • #013 Infographic Link // Reddit Post Link by sayonara_girl. Needs to follow the architecture story. • #014 Infographic Link // Reddit Post Link by Limiter02. Good thought has gone into the copy, however, there’s way too much of it. Would prefer stronger visuals and utilizing a more visual storytelling approach. Doesn’t follow the architecture story. Remove the lizard. • #015 Infographic Link // Reddit Post Link by piptothemoon. Great thought into visually representing key points. Needs to be expanded out to incorporate the architecture story, but this is heading in the right direction from a visual storytelling POV. • #016 Infographic Link // Reddit Post Link by thecryptofoundation. Love the timeline approach, and mostly followed the guidelines and architecture story. Also, like the incorporation of accomplishments at the end. Would like to get the stock imagery used to reflect our interim colour palette. Not all visuals match what is being represented in the copy. • #017 Infographic Link // Reddit Post Link by jsteneros. As discussed in the Zoom call, this graphic is really solid but a little heavy on the copy. Would be good to see more visualizations of the info. This graphic hits on some of the important messages (e.g. Komodo is built differently from other blockchain platforms and solves many of the issues that first-gen platforms are struggling with) but it would be great if there was more information about Komodo’s architecture and how Komodo is different from other platforms. • #018 Infographic Link // Reddit Post Link by gravigocrypto. This one was also discussed in the Zoom call. Outstanding visuals and overall design. The info follows the architecture story well but could be stronger if the 3 layers of Komodo’s architecture were tied together into one, coherent visual. It’s a challenging task but that’s part of the contest : ) • #019 Infographic Link // Reddit Post Link by PacoSenda. This is a really creative infographic, which is great! However, we’d really like to see the visuals a bit more in line with fonts and color palette described above in the “First Round of Feedback” section. Also, as with the feedback for many of the infographic submissions, sticking to the Komodo architecture story would be best. • #020 Infographic Link // Reddit Post Link by emmanmalaman. The visuals are pretty cool but this one misses most of our core messaging. It would be much stronger if it followed the architecture story and touched on the info provided in this post. There’s definitely potential here but it needs some work. • #021 Infographic Link // Reddit Post Link by immimidada. The colors and visuals here are spot-on. It’s also really great that it sets up the problem and then presents the Komodo solution. However, the problem and solution aren’t defined exactly the way we’d like. Check out the architecture narrative to learn more, and try to follow that story a bit more closely. • #022 Infographic Link // Reddit Post Link by mohitgfx3. This one is a bit heavy on the KMD logos. We’re really hoping to see a visualization of Komodo’s infrastructure architecture. As with the feedback for many of the infographics, it would be best to re-read Komodo’s architecture story and try to stick to that as much as possible. Using images from the current website is also not a great approach, as we’re preparing to launch a new site in the coming months. • #023 Infographic Link // Reddit Post Link by u/sayonara_girl. Some of the visuals are cool! It’s missing the narrative we’re looking for. In general, less copy and more visual storytelling would improve this graphic a lot. We’d like to see a smooth, linear flow of information. Take another look at the architecture story and try to follow that narrative. • #024 Infographic Link // Reddit Post Link by brunopugens. This one follows the narrative well! But it’s a little heavy on the copy. It would be much stronger if the architecture was displayed visually, rather than explained with text. Also, the design is cool but it’s difficult to read b/c the perspective of the text is skewed. It’s a really cool idea but might be better to put the text flat for the sake of readability and clarity. # We hosted a round of live feedback sessions via Zoom. The recording is here: https://soundcloud.com/blockchainists/zoom-call-first-round-of-feedback-for-komodos-infographic-contest#t=3:50 # Timeline The first block in the KMD blockchain was mined just under two years ago, on September 13, 2016 to 9:04 PM. Since then, Komodo has demonstrated a commitment to innovation and established a history of execution. • February 21, 2016 — The vision for Komodo Platform is born with jl777’s Declaration of Independence. • September 13, 2016 — The first block in the KMD chain is mined. • October 15, 2016 — Komodo’s initial coin offering (ICO) is launched. • November 20, 2016 — Komodo’s ICO comes to a close with a total of 2,639 BTC raised. • January 2017 — The Komodo Mainnet is launched, complete with independent assetchains and delayed Proof of Work security. • January 31, 2017 — The KMD coins purchased in the ICO are issued. • March 2017 — Komodo’s development team develops one of the first atomic swap protocols. • July 2017 — Thousands of atomic swaps are made in a public, observable setting. • August 2017 — Private, zero-knowledge trades made possible with Jumblr, Komodo’s native shuffler. • October 2017 — Komodo develops a way to make atomic swaps in SPV Mode (“Lite Mode”), thus eliminating the need for traders to download entire blockchains to do atomic swaps. • November 2017 — First GUI for Komodo’s atomic-swap-powered decentralized exchange (DEX) is released, making atomic swap trading more accessible than ever before. • January 2018 — The mobile version of Agama wallet is released. • February 2018 — A public stress test allows 13,900 atomic swaps in a 48 hour period. • March 2018Komodo bridges the gap between Bitcoin-protocol-based coins and Ethereum-based ERC-20 tokens, providing support for 95% of coins and tokens in existence. • March 2018 — Komodo holds its second annual Notary Node Elections. • May 2018 — The world’s first decentralized ICO is held on Komodo Platform. • June 2018 — The alpha release of HyperDEX, a new GUI for Komodo’s decentralized exchange, is launched. • July 2018 — Komodo enters a partnership with Netcoins, making KMD coins available for purchase with fiat currencies at over 21,000 locations across three continents. • July 2018 — Komodo announces the 5 Pillars of Blockchain technology and begins introducing some Komodo 2.0 technology features, like Federated Multi-Chain Syncing and Cross-Chain Smart Contracts. • August 2018 — Komodo takes two big steps towards mass adoption, announces a collaboration with Ideas By Nature, an industry-leading blockchain agency, and releases a full briefing on the development on UTXO-based smart contracts. # Achievements • Cryptomiso.com is a website that ranks 866 different blockchain projects according to the Github commit history of that project’s most popular repo. Komodo is ranked #1 overall for Github commits over the last 12 months. • China's Ministry Research Initiative regularly ranks Komodo in the top 10. • Binance CEO highlights Komodo (see this Five Bullet Friday edition for more info). # If you would like to update your post, please edit and add to the post so people can see the different iterations. Entries and submissions for the infographic contest. You can click here to see them all in a scrollable thread on Twitter. submitted by benohanlon to komodoplatform [link] [comments] ##### The IPSE Design to Application-specific Blockchain # Background of Application-specific Blockchain In-depth consideration of the problems encountered in the development of DAPP, in fact, has very simple reasons to explain; that is, the cost of use is high, and the benefits cannot completely offset the required learning costs. Each DAPP is architected on a corresponding blockchain. Users need to select one of the blockchains first. We have never seen a situation where someone uses an app first needs to choose the internet; because for us, there is only one Internet, and the underlying operating system shields all network differences. For the development of Web 3.0 in the blockchain era, the most important thing is to get such an operating system first and screen the differences of various chains in front of users. Users don’t care what chain DAPP runs on, and they don’t have to worry about their Tokens being unusable under certain circumstances. This is the background of the application-specific blockchain. https://preview.redd.it/our107tkpqt41.png?width=468&format=png&auto=webp&s=147510b20fe30c88176981828032a6e04e23eb7a In fact, the application chain is relative to the Web 3.0 ecosystem. The highly anticipated project Polkadot is a cross-chain technology that connects all chains together. The Substrate framework created by its team can serve as such a blockchain operating system. Users do not need to care whether the interaction on the application-specific chain is universal. As long as the Polkadot ecosystem is connected, all operations of the application chain should be universal to the user. Even if the user holds Bitcoin, it can be completed in the application-specific blockchain. In the Web3.0 ecosystem, application-specific chains can not only seamlessly interoperate with chains built using Substrate, but also connect existing blockchains together, such as Bitcoin, Ethereum, and EOS, by building bridges. From the perspective of network effects, such connections will bring network traffic to the new application-specific blockchain. The cost of bringing users into the learning blockchain is greatly reduced, and a new wave of blockchain technology dividends will be ushered in. The main functions of the application-specific blockchain: 1. The interoperable transaction layer. As can be seen from the architecture diagram of Polkadot, parachains can achieve interoperability through the verification nodes in the relay chain, which includes basic operations such as transactions. 2. The basic user data of the application-specific blockchain (user account, permissions, token ledger). 3. The application bearer of the application-specific blockchain (smart contract, virtual machine, running platform). # The IPSE Design to Application-specific Blockchain After the emergence of Bitcoin, it provided enough distributed nodes and power barriers, but its congestion issues and high latency caused it to fail to achieve a commercial landing, while Ethereum had the function of Smart Contracts, but it also had congestion issues. The root cause is that the entire problem set is not considered from the perspective of layering at the beginning of the blockchain design. (1) Application data and transaction data do not need to be stacked on a blockchain. The IPSE puts most of the application data on the application-specific blockchain. (2) A variety of application data does not need to be mixed and coexist in a blockchain. All Smart Contracts are on a virtual machine in the main chain, and the same security is obtained at a reasonable cost. The IPSE will have multiple application-specific blockchains and efficient separation of multiple application data. (3) The node size of the application-specific blockchain is matched with its implementation business. The importance of the data is matched with the data chain security of the blockchain application-specific blockchain. The IPSE will not be completely decentralized but pays attention to making a reasonable match. (4) Application-specific operations do not require equal commission. If there is only one main chain like Ethereum, then its price estimate for all operations in smart contracts is homogeneous, and its price lacks hierarchical planning. IPSE will design different charges in different virtual machines, and the smart contract calculates the price in the layered design. (5) Trading operations do not require equal mining costs. Different transactions have different values. IPSE will use application-specific blockchain technology to put most of the transaction storage in the application-specific blockchain, while mining uses the main chain to jointly mine. This means the powerful consensus mechanism is used on the main chain to allow the application-specific blockchain to ride smoothly. For example, there are hundreds of nodes on the main chain to achieve a strong consensus, and only 10 nodes in the application-specific blockchain are responsible for storing application-specific blockchain data. The data volume stored by 10 nodes is 99% of the network. Anyway, verifying transactions and other behaviors on the mining node are very fast, just when the block being created, the data is pushed to the application-specific blockchain for preservation, and the 10 nodes of application-specific blockchain do not need to be mined, they are completely compliant with the 10,000 nodes on the main chain. (6) Is a unified computing virtual machine on the main chain is unnecessary or not? For different Smart Contracts, the difference in importance is self-evident, and the importance of the data that needs to be saved is the same. If a main chain is implemented vertically, there will be serious performance expansion problems like Ethereum, and that excessive amount of synchronization can also cause security problems. The IPSE application-specific blockchain can be relied upon for these two parts. The calculation of virtual machine splitting solves the problem of insufficient performance of the main chain, and the data storage split solves the scalability problem of data management. submitted by ipse_io to ipse [link] [comments] ##### To everyone rushing back into BTC from altcoins: What matters is that you learn why Bitcoin needs to be conservative in its development. Over the past year, the prevailing thought among many in the cryptocurrency communities is that bitcoin is not keeping up with other coins. That somehow bitcoin was being intentionally crippled, or that the developers did not know what they were doing. As we are seeing with the bitcoin dominance going up, that prevailing thought was wrong. The coins who were supposedly going to kill bitcoin have been all but abandoned in many cases. Many others are in the process of dying a slow death (which may take years to fully play out). To everyone who went heavy on these coins and sold all of their bitcoin, but are now coming back: Welcome back. We are glad to have you. But before you pretend like everything is great with bitcoin again, it's important to realize why you were wrong. But first let's go back a few years. In 2015, I was a staunch big blocker. I want to share a post made during this time that I initially downvoted. (The reason I know this is because after a certain number of months/years, reddit does not let you change whether you upvoted/downvoted something). I downvoted it because it went against my biases which had already been built up around the scaling decision, and later I came back to this post after being referred to it again. The 2015 version of me had only been in Bitcoin for 2 years, and was disillusioned with what I thought bitcoin was. And not what it actually was, or what its limitations were. The 2018 me now realizes why I was wrong, but back then I spent far too much time thinking I had it all figured out. The post that I downvoted, is as relevant today as it ever was: A trip to the moon requires a rocket with multiple stages or otherwise the rocket equation will eat your lunch... packing everyone in clown-car style into a trebuchet and hoping for success is right out. A lot of people on Reddit think of Bitcoin primarily as a competitor to card payment networks. I think this is more than a little odd-- Bitcoin is a digital currency. Visa and the US dollar are not usually considered competitors, Mastercard and gold coins are not usually considered competitors. Bitcoin isn't a front end for something that provides credit, etc. Never the less, some are mostly interested in Bitcoin for payments (not a new phenomenon)-- and are not so concerned about what are, in my view, Bitcoin's primary distinguishing values-- monetary sovereignty, censorship resistance, trust cost minimization, international accessibility/borderless operation, etc. (Or other areas we need to improve, like personal and commercial privacy) Instead some are very concerned about Bitcoin's competitive properties compared to legacy payment networks. ... And although consumer payments are only one small part of whole global space of money, ... money gains value from network effects, and so I would want all the "payments only" fans to love Bitcoin too, even if I didn't care about payments. But what does it mean to be seriously competitive in that space? The existing payments solutions have huge deployed infrastructure and merchant adoption-- lets ignore that. What about capacity? Combined the major card networks are now doing something on the other of 5000 transactions per second on a year round average; and likely something on the order of 120,000 transactions per second on peak days. The decentralized Bitcoin blockchain is globally shared broadcast medium-- probably the most insanely inefficient mode of communication ever devised by man. Yet, considering that, it has some impressive capacity. But relative to highly efficient non-decentralized networks, not so much. The issue is that in the basic Bitcoin system every node takes on the whole load of the system, that is how it achieves its monetary sovereignty, censorship resistance, trust cost minimization, etc. Adding nodes increases costs, but not capacity. Even the most reckless hopeful blocksize growth numbers don't come anywhere close to matching those TPS figures. And even if they did, card processing rates are rapidly increasing, especially as the developing world is brought into them-- a few more years of growth would have their traffic levels vastly beyond the Bitcoin figures again. No amount of spin, inaccurately comparing a global broadcast consensus system to loading a webpage changes any of this. So-- Does that mean that Bitcoin can't be a big winner as a payments technology? No. But to reach the kind of capacity required to serve the payments needs of the world we must work more intelligently. From its very beginning Bitcoin was design to incorporate layers in secure ways through its smart contracting capability (What, do you think that was just put there so people could wax-philosophic about meaningless "DAOs"?). In effect we will use the Bitcoin system as a highly accessible and perfectly trustworthy robotic judge and conduct most of our business outside of the court room-- but transact in such a way that if something goes wrong we have all the evidence and established agreements so we can be confident that the robotic court will make it right. (Geek sidebar: If this seems impossible, go read this old post on transaction cut-through) This is possible precisely because of the core properties of Bitcoin. A censorable or reversible base system is not very suitable to build powerful upper layer transaction processing on top of... and if the underlying asset isn't sound, there is little point in transacting with it at all. The science around Bitcoin is new and we don't know exactly where the breaking points are-- I hope we never discover them for sure-- we do know that at the current load levels the decentralization of the system has not improved as the users base has grown (and appear to have reduced substantially: even businesses are largely relying on third party processing for all their transactions; something we didn't expect early on). There are many ways of layering Bitcoin, with varying levels of security, ease of implementation, capacity, etc. Ranging from the strongest-- bidirectional payment channels (often discussed as the 'lightning' system), which provide nearly equal security and anti-censorship while also adding instantaneous payments and improved privacy-- to the simplest, using centralized payment processors, which I believe are (in spite of my reflexive distaste for all things centralized) a perfectly reasonable thing to do for low value transactions, and can be highly cost efficient. Many of these approaches are competing with each other, and from that we gain a vibrant ecosystem with the strongest features. Growing by layers is the gold standard for technological innovation. It's how we build our understanding of mathematics and the physical sciences, it's how we build our communications protocols and networks... Not to mention payment networks. Thus far a multi-staged approach has been an integral part of the design of rockets which have, from time to time, brought mankind to the moon. Bitcoin does many unprecedented things, but this doesn't release it from physical reality or from the existence of engineering trade-offs. It is not acceptable, in the mad dash to fulfill a particular application set, to turn our backs on the fundamentals that make the Bitcoin currency valuable to begin with-- especially not when established forms in engineering already tell us the path to have our cake and eat it too-- harmoniously satisfying all the demands. Before and beyond the layers, there are other things being done to improve capacity-- e.g. Bitcoin Core's capacity plan from December (see also: the FAQ) proposes some new improvements and inventions to nearly double the system's capacity while offsetting many of the costs and risks, in a fully backwards compatible way. ... but, at least for those who are focused on payments, no amount of simple changes really makes a difference; not in the way layered engineering does. by nullc (Mr. Gregory Maxwell) submitted to the bitcoin subreddit If you're made it this far and want to read more, or perhaps from a different perspective, here is another article which influenced me more recently by Melik Manukyan Lightning Network enables Unicast Transactions in Bitcoin. Lightning is Bitcoin’s TCP/IP stack. It has recently come to my attention that there is a great deal of confusion revolving around the Lightning Network within the Bitcoin and Bitcoin Cash communities, and to an extent, the greater cryptocurrency ecosystem. I’d like to share with you my thoughts on Bitcoin, Blockchain, and Lightning from a strictly networking background. To better understand how blockchain and the lightning network work, we should take a step back from the rage-infused battlegrounds of Twitter and Reddit (no good comes from this 😛) and review the very network protocols and systems that power our Internet. I believe that there is a great wealth of knowledge to be gained in understanding how computer networks and the Internet work that can be applied to Bitcoin’s own scaling constraints. The three protocols I will be primarily focusing on in this article are Ethernet, IP, and TCP. By understanding how these protocols work, I feel that we will all be better equipped to answer the great ‘scaling’ question for Bitcoin and all blockchains alike. With that said, let’s get started. In computer networking, the two most common forms of data transmission today are broadcast and unicast. There are many other forms such as anycast and multicast, but we won’t touch up on them in this article. Let’s first start by defining and understanding these data transmission forms. Broadcast — a data transmission type where information is sent from one point on a network to all other points; one-to-all. Diagram: Broadcast Data Transmission https://cdn-images-1.medium.com/max/800/1*xbgXKepaeHZRqmHWsCb_qw.png Unicast — a data transmission type where information is sent from one point on a network to another point; one-to-one. Diagram: Unicast Data Transmission https://cdn-images-1.medium.com/max/800/1*i18TOm6hT_h7UQ8cnt8U_Q.png Based on our understanding of these types of data transmission forms, we very quickly discover that blockchain transactions resemble Broadcast-like forms of communication. When a transaction is made on the Bitcoin network, the transaction is communicated or broadcasted to all connected nodes on the network. In other words, for a transaction to exist or happen in Bitcoin, all nodes must receive and record this transaction. Transactions on blockchains work very similarly to how legacy, ethernet hubs handled data transmissions. A long time ago, we relied on ethernet hubs to transfer data between computers. Evidently, we discovered that they simply did not scale due to their limited nature. Old ethernet hubs strictly supported broadcast transmissions, data that would come in through one interface or port would need to be broadcasted and replicated out through all other interfaces or ports on the network. To help you visualize this, if you wanted to send me a 1MB image file over a network with 100 participants, that 1MB image file would, in turn, need to be replicated 99 times and broadcasted out to all other users on the network. In Bitcoin, we see very similar behavior, data (a transaction or block) that comes from one node is broadcasted and replicated to all other nodes on the network. Blockchains similarly to old, legacy ethernet hubs are simply poor mediums to perform data transmission and communicate over. It is simply unrealistic to me as a network engineer to even consider scaling a global payment network such as Bitcoin via Broadcast-based on-chain transactions. Even to this very day, us network engineers take great care and caution in spanning our Ethernet and LAN networks, let alone on a global level. To put it into perspective, if we were to redesign the Internet by strictly relying on broadcast data transmissions as exhibited in blockchains and ethernet hubs — we would have effectively put every single person, host, and device in the entire world on the same LAN segment or broadcast domain. The Internet would have been a giant, flat LAN network where all communication would need to be replicated and broadcasted to every single device. In you opening up to read this article, every other device on the Internet would have been forced to download this article. In other words, the internet would come to a screeching halt. In computer networks, the most frequent form of communication relies on unicast data transmissions, or point-to-point. Most of the communication on the internet is routed from one computer to another, we no longer need to rely on blind broadcast transmissions of data with the hopes that our recipient will receive it or see it. We are able to accurately send, route and deliver our messages to our receiving party(ies). We learned that the transfer of a 1MB image file in a broadcast network would require the file to be replicated and broadcasted to every participant on that network. Instead, in a network that supports unicast data transmissions, we are able to appropriately route that image file from source to destination in a clearcut manner. To me, the Lightning Network is the IP layer of Bitcoin. (I understand that these data transmission forms exist in both Ethernet and IP.) But, I do feel that these analogies help us to better understand these complex and largely abstract ideas: blockchain, lightning, channels, etc. Let’s take a moment and ignore all explanations and overly simplistic definitions of Lightning that are perpetuated from both sides of the debate for a moment. Instead, lets objectively take a close look at Lightning and determine what we know. What do we know about lightning? It allows us to lock our Bitcoin and form channels with others. What else do we know? We can bidirectionally send and receive transactions between the two points that constitute the channel. What else do we know? We can further route transactions to their correct destination. Based on these key understanding points, we are able to see that lightning enables unicast transactions in a system [Bitcoin] that previously only supported broadcast transactions. To me, Lightning nodes in Bitcoin are the equivalent of IP hosts — where we can finally conduct or route one-to-one or point-to-point transactions to their appropriate recipients. In traditional IP, we send and receive data packets; in Lightning, we send and receive Bitcoin. IP is what allowed us to scale our small and largely primitive networks of the past into the global giant that it is today, the Internet. In a similar manner, Lightning is what will allow us to scale our global Bitcoin network. Where Lightning Nodes can be seen as IP hosts, I view Lightning Channels as established TCP connections. On the Internet today, when we try to connect to a website for example, we open a TCP connection to a web server through which we can then download the website’s HTML source code from. Alternatively, when we download a torrent file, we are opening TCP connections to other computers on the Internet which we then use to facilitate the transfer of the torrent data. And in Lightning, we establish channels with our respective parties and are able to directly [point-to-point] send and receive data (transactions) similarly to TCP. Where Blockchain is similar to Ethernet, Lightning Nodes are our IPs and Lightning Channels our TCP connections. To conclude, I see many similarities to our pre-existing network technologies and protocols that power our computer network(s) and I feel that we are redesigning the Internet. From a technical point of view, I don’t believe that scaling Bitcoin on-chain will ever work and fear broadcast storm-like events in the future. I welcome our new unicast transaction methods enabled by the Lightning Network. Even more so, I am excited for the ‘web’ moment in Bitcoin. While everyone has their eyes fixed on blockchain technology, I look towards Lightning. Lightning is the TCP/IP stack of Bitcoin. Lightning is where we will transact on. Lightning is where everything will be built on. Lightning is what will power and enable our applications and additional protocols and layers. With this said, what is to become of the main Bitcoin blockchain? It will and should remain a decentralized, tamper-proof, immutable base or foundation layer which will provide us with cryptographic evidence of what is a Bitcoin. Some individuals and groups within our communities and ranks spread fear and warn us of false narratives of “lightning hubs”, but fail to grasp that their scaling approach of on-chain transactions only pushes us in the direction of an actual (ethernet) hub design. If Bitcoin loses decentralization on its base layer, then we will lose Bitcoin. The past 9 years of work will have only resulted in a large, centralized broadcast hub with only a few remaining with the ability to operate such a monstrosity. I wrote this article with hopes that it will help clear up the ongoing confusion about Bitcoin, Blockchain, and Lightning. It is designed to help better explain Blockchain and Lightning through analogies to concepts that we may be more familiar with. I also wrote this very quickly and it may contain typos. If you notice any typos, please bring it to my attention. submitted by hybridsole to Bitcoin [link] [comments] ##### 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 over800 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