What are permissioned and permissionless blockchains?

Blockchain is a decentralized digital ledger technology that records and verifies transactions across a network of computers. It creates a chain of blocks, each containing encrypted transactions. These blocks are linked in chronological order that form a secure and unchangeable ledger. Blockchain ensures transparency, security, and immutability by using consensus mechanisms and cryptographic hashing. It originated with cryptocurrencies but has expanded to applications like supply chain management, finance, healthcare, and more.

Blockchain technology has introduced two fundamental approaches to creating and maintaining decentralized digital ledgers: permissioned and permissionless blockchains. These approaches offer distinct features, use cases, and implications, catering to different needs within various industries.

Permissioned blockchains

Permissioned blockchains, also known as private blockchains, are a type of blockchain network where access and participation are restricted to a specific group of authorized participants. In contrast to public blockchains, which are open to anyone and allow anonymous participation, permissioned blockchains impose controls over who can join the network, validate transactions, and access the shared ledger. The key characteristics of permissioned blockchains are:

  • Access control: Participants are known entities with permission to join the network. This control allows for a certain level of trust and accountability.

  • Consensus mechanism: Permissioned blockchains often use more efficient consensus mechanisms, such as Practical Byzantine Fault Tolerance (PBFT) or Proof of Authority (PoA)PoA is a consensus mechanism using validator reputation/identity for fast transaction validation, contrasting energy-intensive methods like PoW., which prioritize speed and efficiency over decentralization.

  • Privacy: These blockchains can provide better privacy controls, as transactions and data visibility can be restricted among participants.

  • Use cases: Industries that require compliance with regulations, such as finance, healthcare, and supply chain, find permissioned blockchains suitable for creating secure, private, and trusted ecosystems.

  • Centralization: Permissioned blockchains are typically more centralized than permissionless blockchains due to their controlled participant base.

Permissionless blockchains

Permissionless blockchains, also known as public blockchains, are a type of blockchain network that allows anyone to participate, access, and contribute to the network without requiring explicit permission. These blockchains are open and decentralized which enables anyone to validate transactions, add new blocks to the chain, and participate in the network’s consensus mechanism. The key characteristics of permissionless blockchains are:

  • Access control: Any participant can join the network and validate transactions, ensuring decentralization and inclusivity.

  • Consensus mechanism: Permissionless blockchains often use decentralized consensus mechanisms like Proof of Work (PoW) It validates transactions by solving puzzles, demanding intense computation and energy.or Proof of Stake (PoS)It selects validators based on their cryptocurrency holdings, offering lower energy usage than PoW., ensuring security through decentralized verification processes.

  • Privacy: Privacy can be challenging due to the open nature of transactions, but permissionless blockchains attempt to balance transparency with privacy.

  • Use cases: Cryptocurrencies, decentralized finance (DeFi), and open digital ecosystems are common applications of permissionless blockchains that require global access and censorship resistance.

  • Decentralization: Permissionless blockchains emphasize decentralization, which makes them more resilient against attacks and failures.

Permissioned vs. Permissionless Blockchain

Characteristic

Permissioned

Permissionless

Access Control

Restricted to known participants

Open to anyone

Consensus Mechanism

Efficient consensus mechanisms, often sacrificing decentralization

Decentralized consensus mechanisms for security and resilience

Privacy

Better privacy controls due to controlled participants

Balancing transparency with privacy is challenging

Use Cases

Regulatory compliance, private collaborations

Global access, decentralized applications

Centralization/Decentralization

Less decentralized due to controlled participant base

Emphasis on decentralization for security

Code example

The following code simplifies many aspects of a real blockchain for demonstration purposes. In a real implementation, cryptographic hashing and more robust verification mechanisms would be used.

class Blockchain:
def __init__(self, permissioned):
self.chain = []
self.permissioned = permissioned
def create_genesis_block(self):
self.chain.append({"index": 0, "transactions": [], "previous_hash": "0"})
def add_block(self, transactions):
previous_block = self.chain[-1]
new_block = {"index": previous_block["index"] + 1,
"transactions": transactions,
"previous_hash": self.calculate_hash(previous_block)}
self.chain.append(new_block)
def calculate_hash(self, block):
# Simplified hash calculation for demonstration purposes
return str(block)
def verify_transaction(self, transaction):
if self.permissioned and "permission" not in transaction:
return False
return True
# Simulation of permissioned blockchain
permissioned_blockchain = Blockchain(permissioned=True)
permissioned_blockchain.create_genesis_block()
transactions = [
{"from": "Alice", "to": "Bob", "amount": 10, "permission": "granted"},
{"from": "Bob", "to": "Charlie", "amount": 5},
{"from": "Alice", "to": "Eve", "amount": 8},
]
print("\n------Permissioned Blockchain:------")
for tx in transactions:
if permissioned_blockchain.verify_transaction(tx):
permissioned_blockchain.add_block([tx])
print("Transaction added: {}".format(tx))
else:
print("Transaction failed: {}".format(tx))
for block in permissioned_blockchain.chain:
print(block)
# Simulation of permissionless blockchain
permissionless_blockchain = Blockchain(permissioned=False)
permissionless_blockchain.create_genesis_block()
permissionless_blockchain.add_block(["Transaction A", "Transaction B"])
print("\n------Permissionless Blockchain:------")
for block in permissionless_blockchain.chain:
print(block)

Code explanation

Lines 1–23: The Blockchain class is defined with several methods to create and manage blocks in the blockchain.

Lines 2–4: In the constructor __init__, an instance of the class is initialized with a parameter permissioned that determines whether the blockchain is permissioned (True) or permissionless (False).

Lines 6–7: The create_genesis_block method adds the initial block (genesis block) to the chain with an empty list of transactions and a "previous_hash" of 0.

Lines 9–14: The add_block method adds a new block to the chain. It takes a list of transactions as input, generates the new block's data, including the index, transactions, and the previous block's hash, and appends it to the chain.

Lines 16–18: The calculate_hash method, for demonstration purposes, returns a string representation of the block object. In a real blockchain, a cryptographic hash function would be used.

Lines 20–23: The verify_transaction method checks if a transaction is valid based on the permission requirements. For a permissioned blockchain (permissioned=True), a valid transaction must contain a “permission” field. Otherwise, it's considered invalid.

Lines 26–28: A permissioned blockchain instance, permissioned_blockchain, is created with permissioned=True. The genesis block is created for the permissioned blockchain using the create_genesis_block method.

Lines 30–34: A list of transactions is defined, including transactions with and without permissions.

Lines 37–42: Transactions are added to the permissioned blockchain using a loop. Before adding each transaction, the verify_transaction method is called to check if the transaction is valid based on permission requirements. Valid transactions are added to blocks using the add_block method.

In this case, the blockchain is permissioned, which means that transactions without a "permission" field will not be verified. The transactions are as follows:

  1. {"from": "Alice", "to": "Bob", "amount": 10, "permission": "granted"}: This transaction includes the required "permission" field, so it is successfully added to the blockchain.

  2. {"from": "Bob", "to": "Charlie", "amount": 5}: This transaction lacks the "permission" field, which causes it to fail verification and not be added to the blockchain.

  3. {"from": "Alice", "to": "Eve", "amount": 8}: Similar to the second transaction, this one lacks the "permission" field and is not added.

After the transactions are processed, the code prints the contents of the permissioned blockchain, showing the added block(s) and their transactions.

Lines 44–45: After adding transactions, the contents of the permissioned blockchain's blocks are printed.

Lines 47–55: A permissionless blockchain instance, permissionless_blockchain, is created with permissioned=False. The genesis block is created for the permissionless blockchain using the create_genesis_block method. Two example transactions (Transaction A and Transaction B) are added to the permissionless blockchain using the add_block method. Finally, the contents of the permissionless blockchain's blocks are printed.

Conclusion

In summary, permissioned and permissionless blockchains offer distinct models for achieving different goals in various industries. The choice between them depends on factors such as the level of control required, the need for privacy, the desire for global accessibility, and the balance between efficiency and decentralization. Understanding these differences is crucial for effectively utilizing blockchain technology to address specific business and technological challenges.

1

What does the term “decentralization” mean in the context of permissionless blockchains?

A)

Controlled access to the network

B)

Open participation and validation by anyone

C)

Exclusive access for consortium members

D)

Strict adherence to regulations

Question 1 of 30 attempted

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved