Skip to content

Bitconch Whitepaper

Mikel edited this page Jan 8, 2019 · 17 revisions

A Newly Distributed Web Protocol Based on an Innovative Proof of Reputation (PoR) Consensus Algorithm

An introduction to the Bitconch project

Synopsis

Bitconch is a 100,000+ TPS high-speed public chain and compatible with Ethereum Smart Contracts. On October 3, 2018, the MVP test results were released to the world. In the distributed node public network environment of five different countries, the peak speed reached up to 120,000 TPS, which is the fastest blockchain under the same operating conditions at present.

In terms of performance, Bitconch proposed an innovative PoR (Proof of Reputation) consensus algorithm, which uses bitconch reputation (Bit-R) value to select the integrity node to effectively anti-centralization, and improves the consensus efficiency through PBFT. The innovative BLAZE technology promotes parallel processing efficiency, and achieves multi-node collaboration through sharding technology. It is the fastest basic public chain under the same conditions known worldwide.

In terms of security, the POR consensus algorithm and the Bit-R reputation system make the system have good fault tolerance, anti double-spending attack and anti sybil attack. In order to effectively combat centralization and prevent a few nodes from cooperating with each other, the Bitconch will allow more high-level users to participate and gain system benefits by expanding candidate pools, increasing the cost of doing evil, and unifying the reputation.

Bit-R reputation system is another important innovation of Bitconch. It represents the credibility, contribution and activity of users in the blockchain world. It consists of three dimensions: user behavior, time (coin age) and computing power contribution. Bit-R can provide developers with accurate user behavior images while satisfying user privacy protection. At the same time, it also provides executive standards for developers to launch lightning networks (high-frequency offline transactions). Bit-R reputation is important in user incentives, node incentives, community governance, and ecological sustainability.

In addition to the various development tools based on the Bit-R reputation value described above, the Bitconch is also compatible with Ethereum's Solidity, Golang and other multi-language smart contracts.

In terms of ecological construction, Bitconch built a traffic interaction platform through economic models. Developers and community leaders with a large number of customers will become trusted nodes of consensus and receive system rewards by contributing traffic. Developers without initial traffic can get more user trial opportunities with great products, because users have the motivation and enthusiasm to try various DAPP applications in order to increase social activity. Therefore, Bitconch is centered on Bit-R credit incentives, forming a synergy between developers, communities, and users, enabling Bitconch Ecology to achieve sustainable development in the future.

Chapter 1 - Background and industry pain points

The battle of the public chain

The public chain can be roughly divided into two categories: big-quantity low-frequency trading and high-frequency small-micro trading. The technical requirements for scalability, security, and decentralization are different, and the application scenarios for services can be different. The matching economic models and business models are different, especially in node consensus, traffic incentives, and community governance. etc. The development of the high-frequency small-micro-transaction public chain is the most difficult, but the scope of application is also the most extensive. The Application scenario and the underlying technical requirements are shown in Figure 1. [image]

Basis of the public chain - high performance

The public chain serves as the underlying infrastructure for various DApp applications. Only by building a high-speed, stable basic public chain can the side chain and smart contracts of various landing applications be available to the underlying operating system, which is the soil and cornerstone for the killer application.  Speed is the basis of the public chain, especially when the tens of millions of applications run, high throughput, high concurrency, stability, and security are important factors in determining the user experience. At present, the speed of most mainstream public chains is between tens to thousands of TPS (Transaction per second), and it is difficult to meet the technical requirements for speed and concurrency of large-scale applications. E.g: Ethereum: 15~20 TPS

  • Cardano: ≈ 300 TPS
  • IOTA: ≈ 800 TPS
  • NEO: 1,000 TPS
  • EOS: ≈ 3,900 TPS

Looking at some centralized applications, the transaction speed should meet at least tens of thousands of TPS. E.g:

  • Visa/MasterCard: 24,000 TPS
  • Facebook Facebook: 52,000 TPS
  • Stock market: 100,000 TPS
  • Alipay: 250,000 TPS

Pain points in the public chain - ecology and users

At present, the lack of killer applications in the blockchain field has become one of the main factors limiting the development of blockchain. Global users are expected to be around 20 million. The most active application in the existing DApp on Ethereum is Etheremon. Take the data of October 17, 2018 as an example. The number of active people in 24 hours is only 496. To increase future users requires a killer application as a medium to gradually complete the user's education and transformation. Why should a developer with built-in traffic run his own killer application on this public chain? This problem has become a great challenge for all public chains. In the open source world of blockchain, replication and plagiarism are normalized. The first-mover advantage of technology will be quickly used by other projects as the open source of the project is used, and even on the shoulders of the predecessors to optimize and surpass. To become the mainstream public chain of the world's first echelon, not only does the underlying technology require core competitiveness in performance, but also economic models and business models that support sustainable ecological construction, attract and reward developers with their own users. Participate in ecological construction and breed more killer applications. Whether the rapid integration of users and the generation of killer applications is the key to the success of a public chain. The essence of commercial competition is users competition. Under the premise of low technical barriers, whether the economic model can help the value of running the certificate, whether the business model can attract developers and incentive users, and community governance effectiveness.

Chapter 2: Innovative POR consensus Agreement

The Bitconch has released the MVP test report [1] to the world on October 3, 2018. At five distributed nodes (New York, Amsterdam, Frankfurt, Singapore, Beijing), the peak speed exceeds 120,000 TPS. It is the fastest known block chain under the same operating conditions. The purpose of this MVP test is to prove and demonstrate that the innovative PoR consensus algorithm proposed by Bitconch can be successfully implemented, and can achieve the high performance target of 100,000 TPS. MVP is an important milestone in the development of the Bitconch technology. This MVP demonstrates the synergistic effect of the two core algorithms PBFT and BLAZE in the PoR consensus. Sharding technology will be implemented step by step in future versions, which will further increase system performance. The high performance of the Bitconchchain benefits from the breakthrough innovative PoR consensus protocol developed by the Bitconchteam, which consists of four parts:

  • Innovative Bit-R reputation quantification system: used to select the integrity node and effectively resist centralization
  • Byzantine fault-tolerant process based on PBFT: improving consensus efficiency
  • Innovative BLAZE technology: improve parallel processing efficiency
  • SHARDING data fragmentation technology: achieve multi-node collaboration

2.1 Bit-R reputation quantitative system

The core of the blockchain technology is the consensus algorithm. The essence of the consensus algorithm is that in the distributed network, under the condition that each node does not trust each other, the Nash equilibrium game field is formed by the evidence of scarce resources, winning the trust of all parties. Quickly agree on each node and complete tasks synchronously.

PoW, Proof of Work, the time and power of the miner is certified; PoS, Proof of Stake, the proof is the equity, calculated by the amount of money held or the age of the currency. The consensus is to be able to prove a scarce resource and thus be trusted to participate in consensus, contribute computing power, and receive rewards. The Bitconch proposes to achieve consensus by means of proof of reputation.

Transaction data model and social graph establishment

The Bit-R reputation system proposed by Bitconch is a reputation and reputation quantification system based on the DAG transaction data model and the Social Graph social graph model of the directed acyclic graph.

Figures 3(a) and (b) show the interaction between the transaction data structure and the social graph. Fifteen users generated 14 transactions from Tx0, Tx1 to Tx13, and built a social relationship as shown in (b). As the number of transactions Tx increases, there will be more and more edges between the nodes in the social graph, and the social network tends to mature. [image, image]

As shown in Figures 4(a) and (b), when new transactions Tx14 and Tx15 are generated, where Tx14 indicates that user N1 transfers m BUSs to N4, Tx15 indicates that N5 transfers n BUSs to N1, if m>n, the credit contribution of N1, Tx14 is greater than the weight of Tx15. In addition to the impact of the transaction amount on the credit contribution, the higher the reputation value of the users N14 and N15 itself, the greater the credit contribution weight of the transaction. As transactions continue to increase, the links between the various nodes in the social graph continue to increase, providing more social data to increase reputation values.

{image, image}

Reputation Model and Mathematical Abstraction

Mathematical modeling of the three dimensions of user socialization, currency holding time, and computing power contribution, depicting the user's behavioral habits and activity in the blockchain world, and the credibility of participating as a node in consensus and accounting ledger and degree of power contribution are shown in Figure 5. In the blockchain network, the Bitconch builds the reputation Bit-R from three dimensions: social activity D, time activity T, and contribution activity C. The formulas are as follows: {equation}

Where ω _n is the weight, within a certain time t, D(α , t) is the social activity of the node, T(β , t) is the time activity of each node, and C(γ , t) is the contribution activity. In order to allow users to have continuous activity, and to allow later comers to participate in the system more equitably and avoid the Matthew effect brought by the first mover advantage (FMA), we stipulate that Bit-R will decay over time. As shown in formula (2). {image}

Social activity D: See formula (3). It is determined by a number of factors such as the number of friends in the social network, the frequency of interaction with friends (ie, popularity), the reputation value of the friend, and the size of the transaction. As shown in Figure 5, Tom has only a few friends with low-frequency one-way communication. There are many friends in Jack, and there are frequent interactions with friends. Some friends are high-reputation users, and they are trusted nodes with some friends. They are suitable for high-frequency offline transactions of “transaction channel”. Then Jack's D value is much higher than Tom's D value. The possibility of witch attacks has been fully examined in the mathematical abstraction of social activity, as described in Section 2.6.

Time activity T: See equation (4). This indicator is mainly determined by the age of the user holding the BUS. We believe that the long-term holder of the certificate is more credible than the non-holder, and the motive is less. But unlike the Stake benefits in the PoS Consensus, wealth is not the only criterion for measuring whether a node is trustworthy. As shown, the logarithmic formula of T(β,t) provides a broad chance for the majority of middle class users to obtain high credibility.  Contribution activity C: See formula (5). This indicator describes the contribution C(γ,t) of the node user to the system, indicating how much the node contributes to the system when the time is t, and N is the value of the system Account Nonce, which is used to record the frequency contributed by the user to the system ( Share documents and participate in accounting). The system will check the status of the file as scheduled.

2.2 PBFT practicality Byzantine fault tolerance

Practical Byzantine fault tolerance process consists of two parts:

(1) Defining a list of trusted nodes

(2) A Byzantine fault-tolerant process based on PBFT

Definition and selection of integrity nodes

Define Transaction Validator. In the blockchain network, the number of users is N. Each user has a Bit-R reputation value. According to the reputation value of each node, the node with the highest 5% of the highest reputation value is selected. "Candidates Pool", labeled as ,, is equivalent to "excellent citizens" in the node community.

The candidate list is based on a quarterly election system and is updated quarterly. Due to the uncertainty of the number of campaign nodes, in order to ensure effective decentralization and system efficiency, the upper limit of the candidate node pool is 500 and the lower limit is 30.

which is:

When N>10000, L =500

When N<600, L =30

30≤ L ≤500

In the node of the integrity node list L, the system randomly selects M nodes from the candidate list L to participate in the verification consensus in turn, and verifies the new transaction in the network through the Byzantine fault-tolerant process. Successfully verified transactions are recorded in the system's distributed ledger, while increasing the reputation value of the corresponding node. The Byzantine fault-tolerant process can still provide security and activity guarantees for the system when a limited evil node exists. The reputation score of the node that does evil will be reduced or deducted, and the consensus and billing equity will be cancelled.

Since the difference in Bit-R reputation scores mainly comes from social activity rather than time activity, the integrity node may mainly come from commercial developers or community organizations in the Bitconch ecosystem, and is the main contributor to the flow in the ecology.

Byzantine Fault Tolerance Process

After obtaining L, the reputation proves the correctness of the transaction and updates the ledger through a PBFT-based Byzantine fault-tolerant process. In order to clearly explain the process, we make the following definitions:

There are two types of nodes in the system: non-faulty nodes and faulty nodes.

  1. Non-faulty node: A node that is functioning properly in the system, adheres to the rules and has no errors.
  2. Fault node: The node with the error, including timeout, data corruption, and malicious behavior (Byzantine error).

We make the following rules:

  1. The node verifies the transaction and only outputs two states: 0 for verification success and 1 for verification failure.
  2. All integrity nodes will make the decision in a limited time
  3. All integrity nodes will make the same decision

POR divides the consensus into several terms. Each term will select the candidate pool (Candidate Pool) from the nodes with the highest reputation value of 5%. Each term will contain several rounds, and each round will process several transactions. Data, so L(k) can be defined as a list of good faith nodes for the kth cycle. It contains M nodes, which are selected from the highest value of five percent of all nodes.

A consensus process:

  • Using a distributed random number generation algorithm, one node in L(K-1) generates a random string

  • Str(k) is broadcast in all nodes in M, and the last round ends.

  • According to the Str(k),a leader node is randomly selected from L(k), and the corresponding voting node (Voting Node).

  • The Leader node is responsible for the broadcast of the transaction. The voting node verifies the transaction and votes.

  • The Leader node is responsible for synchronizing the period and the number of rounds between nodes through hash functions.

  • There are several unverified transactions Tx0.

  • There are several new transactions in this round that generate Tx1.

  • The unverified transaction Tx0 and the newly generated Tx1 are aggregated to the Leader node and combined into a transaction list Tx to be verified.

Tx will broadcast in the L(k) , and the voting node from L(k) will verify the transaction and vote. If the transaction gets enough votes, the transaction will be confirmed and updated to the ledger.

The nodes in L(k) are divided into Leader nodes and Voter nodes. If the evil node in L(k) is less than m/3, that is, the number of votes is >2m/3, the round is defined as success. The contribution activity of the L(k) node increases, and the transaction activity of the corresponding node increases.

2.3 Innovative BLAZE Parallel Architecture

In order to further improve the system parallel processing efficiency and improve the computing speed, the Bitconch team first proposed BLAZE (Bitconch Ledger Access Zero-delay Extension) Bitconch zero-delay account book access technology, referred to as BLAZE parallel processing technology.

BLAZE's architectural design is inspired by the Classic RISC pipeline, as shown in Figures 6 and 7. In the five steps of fetching data Fetch, decoding Decode, hashing Hash, state changing State, and writing data Write in blockchain verification, each pipeline stage processes one instruction at a time during operation. Each of these stages includes a set of initial instructions that operate on the output of the incoming transaction. (image, Image)

Finality Time (final state determination time)

The final state determination time is the time required to confirm the final state of the data on the blockchain. Increasing the speed of the blockchain is to reduce the final state determination time. The POR algorithm defines the integrity node through Reputation, which reduces the number of nodes that confirm the final state, thus reducing the determination time. But to achieve sub-second speed, you also need to quickly verify a large number of transaction blocks (local), while quickly broadcasting (network) between nodes in the network. For transaction verification, signature verification is the most time-consuming part (bottleneck), and there are many other parts such as network drivers and data-dependent management that consume time (bottlenecks). We need to define an architecture that allows all hardware to have the least latency, so Bitconch draws on the classic streamlined instruction set pipeline design in CPU design, combining multicore processing (CPU and GPU) with a five-step pipeline. Verify the massive increase in trading speed.

2.4 SHARDING data fragmentation technology

POR supports increased throughput through sharding. The sharding technology borrows from the partitioning technology in the classic database. When the data throughput is large, the reading and writing of a database takes a long time, so the data can be stored in different tables of different databases. Provides the ability to access data at high speed. In POR, we select N nodes from the high reputation node as the Sharding node. The sharding node is synchronized with the leader node. Each sharding node is packaged to process the data of its own concern, and the leader node of the upper layer will once again The transaction packaged by each Sharding node is confirmed.

First, in all the accounting nodes, define a set of sharding nodes and leader nodes. Here we use the distributed random number generation algorithm to select the Sharding node and the Leader node. The Sharding node is responsible for offloading the Tx to the Leader node. The system clock, the Sharding node and the Leader node are synchronized, and the correctness of the transaction can be verified synchronously. The system clock acts as an information channel here to ensure the Leader node and the Sharding node. Consistency between. Each Sharding node sends a transaction to itself, plus a Sharding ID. The Leader node and the voting node can verify the transaction by verifying the Sharding ID.

2.5 System architecture diagram and other related technologies

BVM Virtual Machine and Compatible with Ethereum Smart Contract

Bitconch enriches the Bitconch ecosystem by providing a variety of tools to enable developers to build their own distributed applications. The Bitconch provides a solidity-based programming language BO and a corresponding virtual machine (BVM), as shown in the figure below. On the Bitconch, developers translate business logic into smart contracts through programming languages, and smart contracts will be compiled into bytecodes that machines can run through virtual machines.

BVM has 3 major advantages over EVM:

  1. Using BVM makes it easier to develop powerful smart contracts.

Compared to Ethereum's 65 opcodes, Bitconch will provide more optional opcodes and standard libraries for developers to develop more high-quality DApps, extending the functionality of more social and landing applications. Because there are usually a lot of tokens in smart contracts, once an error occurs, it will cause huge losses to both developers and users, so BVM will provide smart tools to detect transaction order, time stamp, accident handling and reentrant vulnerab ilit y (Reentrancy) Vulnerability) and other common bugs. To increase development speed and make it easier for developers to write smart contracts, BVM will be a register-based virtual machine.

  1. BVM provides an interface to enable smart contracts to communicate with the outside world.

Relative to the sandbox environment of EVM and external world isolation (unable to use the permissions of the network, files or other processes), BVM establishes transmission channels through digital signatures to solve the communication problems between smart contracts and the outside world.

  1. Support multi-language development

In order to allow more developers to join the Bitconch community, BVM will support Python, Java, C++ and other development languages in the future.

Clone this wiki locally