Blockchain Technology Assignment

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

NAMES: UWIZEYIMANA Isaie

Reg:23RP00980

Blockchain Technology Assignment

Types of Consensus Algorithms in Blockchain

Let’s understand Three consensus algorithms in blockchain, one by one.

1.Proof of Burn (PoB)

Definition: Proof of Burn is a consensus mechanism where participants destroy (or "burn") some
of their cryptocurrency tokens to mine or validate blocks on a blockchain.

This is a consensus mechanism used in some blockchain networks to validate transactions and add
new blocks to the blockchain. Instead of using computational power or storage space like other
consensus mechanisms, PoB requires participants to burn, or destroy, cryptocurrency tokens to
prove their commitment to the network.

To participate in a PoB system, a user must send a certain amount of cryptocurrency to an address
where it will be permanently destroyed. This act of destroying cryptocurrency is known as
burning. Once the cryptocurrency is burned, the user is given the right to add new blocks to the
blockchain and receive rewards for doing so.

How it works:

Burn: Participants send their cryptocurrency to a verifiably unspendable address, effectively


removing those tokens from circulation.

Mining: Participants who have burned tokens are eligible to create blocks or validate
transactions. The more tokens burned, the higher the chance of being chosen.

Rewards: Participants who successfully mine or validate transactions are rewarded in newly
minted tokens or transaction fees.
Example: Mutoni wants to mine on a PoB blockchain. She burns 10 tokens by sending them to
an unspendable address. Now she has a chance to mine or validate transactions proportional to
the amount she burned.

2.Proof of Authority (PoA)

Definition: Proof of Authority is a consensus mechanism where a limited number of approved


participants (authorities) are responsible for validating transactions and creating new blocks.

In a PoA network, a group of validators is designated as authoritative and responsible for


validating transactions and adding new blocks to the chain. Validators are typically selected based
on their reputation and expertise, and they are incentivized to act honestly because their reputation
is on the line.

How it works:

Authorities: A set of pre-approved nodes (individuals or entities) are granted the authority to
validate transactions and create blocks.

Validation: Transactions are validated by these authorities rather than through a competition like
in Proof of Work.

Block Creation: Authorities take turns creating new blocks in a round-robin fashion or through
some deterministic algorithm.

Security: Authorities are typically known and reputable entities, ensuring the security and
integrity of the network.

Example: In a PoA network, a consortium of banks might be the authorities. They take turns
adding blocks to the blockchain and validating transactions.

Practical Byzantine Fault Tolerance (PBFT)

Definition: PBFT is a consensus algorithm designed to achieve consensus in a distributed system


even in the presence of malicious actors or faults.

Practical Byzantine Fault Tolerance is a consensus algorithm introduced in the late 90s by
Barbara Liskov and Miguel Castro. pBFT was designed to work efficiently in asynchronous
(no upper bound on when the response to the request will be received) systems. It is optimized
for low overhead time. Its goal was to solve many problems associated with already available
Byzantine Fault Tolerance solutions. Application areas include distributed computing and
blockchain.

How it works:

Leader Selection: A leader node is chosen among the network participants for a specific round.

Proposal: The leader proposes a new block or a set of transactions.

Voting: Other nodes in the network validate the proposal and vote on its validity.

Commitment: Once a sufficient number of nodes agree on the proposal, the block is committed
to the blockchain.

Finality: Transactions are considered finalized once enough nodes have confirmed their validity.

Example: In a PBFT-based blockchain network, each node takes turns being the leader and
proposing new blocks. The other nodes validate the proposal and agree on its validity through a
voting process, ensuring consensus.

Simulation:

Imagine you have a group of friends (representing nodes) sitting around a table. Each friend has
a different way of reaching consensus:

Proof of Burn: Friends who want to speak must burn some money. The more money they burn,
the higher the chance they'll get to speak. Once they speak, their statement is considered valid.
Proof of Authority: There are only a few friends (authorities) who can speak, and others trust
them implicitly. These friends take turns speaking, and everyone believes what they say.

Practical Byzantine Fault Tolerance: Friends follow a protocol where they take turns being the
leader. The leader suggests a statement, and everyone checks it. If a majority agrees, the
statement is accepted.

Practical Byzantine Fault Tolerance is a consensus algorithm introduced in the late 90s by
Barbara Liskov and Miguel Castro. pBFT was designed to work efficiently in asynchronous(no
upper bound on when the response to the request will be received) systems. It is optimized for
low overhead time. Its goal was to solve many problems associated with already available
Byzantine Fault Tolerance solutions. Application areas include distributed computing and
blockchain.

Steps for Simulating POA using go-ethereum tool(Software).

1. Setup a custom PoA testnet blockchain with go-ethereum.

In order to setup our testnet blockchain we need to:

• Download and install Geth into Blockchain-Tools folder.


Launching go-ethereum

Next, we use puppeth, to name our network and generate the initial genesis block. The following
steps will accomplish this:

We name the network (in this case we named it dragancoin).


./puppet
When you install Geth with helper tools, it comes with a handy tool called Puppeth, which you
can use to maintain and install various helper tools for managing and deploying your private
blockchain. Puppeth can also be installed independently if you have Go installed, with the
following command:
go get github.com/ethereum/go-ethereum/cmd/puppeth

2.Send a test transaction.

3.Verify that test transaction was recorded in our blockchain and registered in
our MyCrypto account.

Proof of burn

Proof of burn is one of the several consensus mechanism algorithms implemented by


a blockchain network to ensure that all participating nodes come to an agreement about the true
and valid state of the blockchain network.

It is a method used by cryptocurrencies to validate the data stored on their blockchains.

Proof of burn is the third attempt at creating a system to deter fraudulent activity on a blockchain,
while also improving the functioning of the blockchain as a tool for transactions.

This algorithm is implemented to avoid the possibility of any cryptocurrency coin double-
spending.

Example of Proof of Burn

Slimcoin, a virtual currency network that uses POB, allows a miner to burn coins that not only
gives them the right to compete for the next block but also gives them the chance to receive blocks
during a longer time period, for at least a year.

Essentially, Slimcoin’s POB implementation combines three algorithms: POW, POS, and the core
POB concept. The process of burning coins utilizes POW; the more coins one burns the more
chances one has to mine, thus ensuring POS; and the whole ecosystem follows the POB concept.

Simulation of Proof of Burn using Slimcoin

Steps for using Slimcoin

1. Download slimcoin-qt
2. Run slimcoin-qt
Slimcoin-qt simulation screenshots we have made from our computer

Slimcoin over view


Adding addresses in Slimcoin

The list of all added addresses


Note: https://chainz.cryptoid.info/slm/wallet.dws?75675.htm

Sending Coins in Slimcoin Wallet


Burning Coins in Slimcoin Wallet
practical Byzantine Fault Tolerance(pBFT)

Practical Byzantine Fault Tolerance is a consensus algorithm introduced in


the late 90s by Barbara Liskov and Miguel Castro. pBFT was designed to
work efficiently in asynchronous(no upper bound on when the response to
the request will be received) systems. It is optimized for low overhead time.
Its goal was to solve many problems associated with already available
Byzantine Fault Tolerance solutions. Application areas include distributed
computing and blockchain.

practical Byzantine Fault Tolerance(pBFT) is


structured below:
Examples of practical Byzantine Fault
Tolerance(pBFT)
➢ Byzantine General Model
➢ Raft
➢ Paxos

In the case of the mechanism of Bitcoin, every node of the Bitcoin is individually connected with
multiple nodes, and every node verifies every incoming and outgoing transaction.

You might also like