The post Porovnání mechanismů konsensu: Který je pro váš blockchain vhodný? objevil se jako první na Coinpedia Fintech News
Blockchain rozšířil a diverzifikoval svůj rozsah na další úroveň, přičemž tyto pokroky se výběr správného mechanismu konsenzu stal jedním z nejdůležitějších rozhodnutí. Mechanismy konsenzu jsou jádrem blockchainu, protože určují nejen bezpečnost, ale mají také dopad na škálovatelnost, rychlost transakcí, spotřebovanou energii a důvěru uživatelů.
Proč Innovate Beyond PoW a PoS?
Tradiční mechanismy konsenzu, jako je Proof of Work (PoW) a Proof of Stake (PoS), mají své nevýhody: PoW spotřebovává obrovské množství energie, zatímco PoS může někdy vést k centralizaci, kdy síť řídí několik mocných zúčastněných stran. Proto se objevují nové modely konsenzu, které nabízejí více přizpůsobená řešení. Tyto pokročilé modely jsou navrženy pro specifické potřeby, jako je zrychlení privátních sítí, zpracování velkých objemů transakcí nebo spoléhání se na důvěryhodné validátory, které zajistí hladký chod.
Doklad o autoritě
Proof-of-Authority je mechanismus konsensu založený na reputaci, kde blokování ověřují validátoři (schválené účty).
Co však dělá validátor důvěryhodným a jak udržují síť zabezpečenou?
Validátoři se spoléhají na software, který zvládá těžké zvedání sdružování transakcí do bloků, takže nemusí neustále monitorovat své obrazovky. Je však důležité, aby své počítače – neboli „autoritní uzly“ – zabezpečili a chránili, aby byla zajištěna integrita sítě.
Validátoři potřebují odhalit svou identitu veřejnosti, což vytváří odpovědnost a důvěru v rámci účastníků v síti. Tato transparentnost se perfektně hodí k povoleným blockchainům, kde mají validátoři často svou pověst.
Stručně řečeno, Proof of Authority je jako dát skupině důvěryhodných lidí odpovědnost za ověřování transakcí. Namísto používání energeticky náročných hádanek jsou tyto důvěryhodné autority známé svou dobrou pověstí, takže všichni věří, že udělají správnou věc. Díky tomu je proces rychlejší a efektivnější, ale záleží na důvěře v tyto orgány.
Zde je základní příklad mechanismu konsenzu PoA:
import hashlibimport timeclass Validator:def __init__(self, name, private_key):self.name = nameself.private_key = private_key def sign_block(self, data):return hashlib.sha256((self.private_key + data).encode()). hexdigest()class PoABlockchain:def __init__(self, validators):self.chain = []self.validators = validatorsdef add_block(self, data, validator):if validator in self.validators:signed_block = {'data': data, 'validator': validator.name, 'signature': validator.sign_block(data), 'timestamp': time.time() } self. chain.append(signed_block) print(f”Blok podepsaný {validator.name}: {signed_block}”) else:print(“Validátor není autorizován!”)# Inicializovat validatorsvalidator1 = Validator(“Validator1”, “key1”)validator2 = Validator(“Validator2”, “key2”)validators = [validator1, validator2]# Add blockpoa_chain = PoABlockchain(validators)poa_chain.add_block(“Transakční data 1”, validator1)poa_chain.add_block(“Transaction Data)”data validator2)
Proof-Of-History
Proof of History (PoH) je metoda konsensu, kterou vyvinula společnost Solana a jejím cílem je zvýšit škálovatelnost a rychlost blockchainu. Má jedinečný způsob, jak toho dosáhnout, nepotřebuje uzly, aby se neustále domlouvaly na každé transakci, PoH vytváří ověřitelné „hodiny“ hašovaných událostí. Představte si to jako digitální hodiny, kde každé zaškrtnutí označuje místo události v řadě – každý je může snadno sledovat a ověřit. Tento přístup umožňuje síti přeskakovat neustálé kontroly mezi uzly, čímž se zvyšuje rychlost transakcí a celkově je blockchain rychlejší a efektivnější.
Důkaz historie je jako vytváření časové osy událostí, která dokazuje, kdy se něco stalo. Namísto řešení složitých problémů pouze zajišťuje, že každou transakci lze porovnat se záznamem, aby bylo možné prokázat, kdy k ní došlo. Díky tomu je systém rychlejší, protože nemusíte stále vše kontrolovat a znovu kontrolovat.
import hashlibimport timeclass ProofOfHistory:def __init__(self, initial_seed=”počáteční”):self.seed = initial_seedself.history = []class ProofOfHistory:def __init__(self, initial_seed=”initial”):self.seed = initial_seedself.history []def generation_proof(self):proof = hashlib.sha256(self.seed.encode()).hexdigest()self.history.append(proof)# Aktualizovat seed pro další proofself.seed = proofreturn proof# Simulovat PoH sekvencepoh = ProofOfHistory()for i v rozsahu( 5):proof = poh.generate_proof()print(f”PoH Hash {i + 1}: {proof}”)time.sleep(1) # Simulace času, který ubíhá mezi důkazy
Delegovaný doklad o sázce
DPoS je zvláštní případ PoS, ale na rozdíl od Proof-of-Stake zde existuje zastupitelská demokracie pro sázky a ověřování tokenů a transakcí.
V systému DPoS držitelé tokenů přímo neověřují transakce. Místo toho používají své vsazené tokeny k hlasování pro malou skupinu zástupců nebo „delegátů“, kteří budou zodpovědní za vytváření bloků a ověřování transakcí. Delegáti s nejvyšším počtem hlasů se stávají producenty bloků.
Systémy DPoS umožňují průběžné hlasování, což znamená, že držitelé tokenů mohou pravidelně hlasovat nebo měnit své vybrané delegáty na základě výkonu.
Delegovaný Proof of Stake je jako hlasovat pro skupinu lidí, kteří se zabývají ověřováním transakcí. Vlastníte nějaké tokeny a s těmito tokeny můžete hlasovat pro důvěryhodné zástupce, kteří se budou starat o ověřování transakcí. Díky tomu je systém rychlejší, protože práci dělá jen několik důvěryhodných lidí.
V tomto příkladu držitelé tokenu (Alice, Bob a Carol) hlasují pro delegáty na základě jejich vkladů. Dva nejlepší delegáti jsou vybráni a mají právo vytvářet bloky.
from collections import defaultdict# Vzorová třída pro DPoS blockchain systemclass DPoSBlockchain:def __init__(self):self.token_holders = defaultdict(int) # Ukládá držitele tokenu a jejich sázky self.delegates = {} # Ukládá zvolené delegátyself.votes = defaultdict( int) # Ukládá hlasy pro delegáty def add_token_holder(self, držitel, sázka):“””Přidat držitele tokenu a jeho vklad.”””self.token_holders[držitel] = sázka def vote_for_delegate(self, držitel, delegát):“””Držitelé tokenu hlasují pro svého zvoleného delegáta.”””pokud držitel není v self.token_holders:raise ValueError(“Držitel tokenu není zaregistrován.”)self.votes[delegate] += self.token_holders[držitel] # Hlasovací síla založená na stakedef elect_delegates(self, num_delegates):“””Zvolte nejlepší delegáty na základě hlasů.”””sorted_delegates = sorted(self.votes.items(), key=lambda x: x[1], reverse=True)self. delegáti = {delegát: hlasy pro delegáta, hlasy v sort_delegates[:num_delegates]}print(f”Zvolení delegáti: {self.delegates}”)def production_block(self):“””Simulovat produkci bloků zvolenými delegáty.”””pro delegáta v self.delegates:print(f”Blok produkoval {delegate} s {self.delegates[delegate ]} hlasů”)# Příklad použitíblockchain = DPoSBlockchain()blockchain.add_token_holder(“Alice”, 100)blockchain.add_token_holder(“Bob”, 150)blockchain.add_token_holder(“Carol”, 200)blockchain.vote_for_delegate(“Alice”, “Delegate1”)blockchain.vote_for_delegate(“Bob”, “Delegate2”)blockchain.vote_for_delegate(“Carol”, “Delegate1”)# Vyberte 2 nejlepší delegátyblockchain.elect_delegates(2)blockchain.produce_block()
Praktická byzantská odolnost proti chybám
PBFT (Practical Byzantine Fault Tolerance) je konsensuální algoritmus, který toleruje byzantské selhání, a proto dokáže zpracovat uzel, který selže nebo se chová zlomyslně.
Byzantské selhání je tam, kde komponenty distribuovaného systému jednají škodolibě kvůli nějakým chybám nebo chybám a špatně sdělují konfliktní informace v celé síti.
Byzantine Fault Tolerance (BFT) je zásadní v blockchainu a distribuovaných systémech, protože poskytuje rámec pro zachování integrity systému navzdory potenciálně nespolehlivým nebo zlomyslným účastníkům.
Praktická byzantská odolnost proti chybám je skvělý způsob, jak říci, že systém může stále fungovat, i když se někteří lidé (nebo počítače) snaží věci pokazit. Zajišťuje, že pokud většina účastníků souhlasí, může systém správně fungovat, i když někteří jednají nepoctivě nebo jsou rozbití. Je to jako skupina lidí, kteří se snaží učinit rozhodnutí. I když pár lidí lže nebo se neúčastní, pokud většina skupiny souhlasí, rozhodnutí je důvěra
Mechanismus:
Před začátkem tolerance existuje předpoklad PBFT, kde z n uzlů je f uzlů považováno za škodlivé, a to f < n/3.
PBFT dosahuje konsensu prostřednictvím třífázového komunikačního procesu mezi uzly: Předpřípravný proces→Přípravná fáze→Fáze potvrzení.
class PBFTNode:def __init__(self, name):self.name = nameself.messages = []def send_message(self, message, nodes):for node in nodes:if node.name != self.name:node.receive_message( message, self.name)def přijmi_zprávu(self, message, sender):self.messages.append((odesílatel, message))print(f”{self.name} přijatá zpráva od {odesílatele}: {message}”)# Inicializovat nodesnode_A = PBFTNode(“Node_A”)node_B = PBFTNode(“Node_B”)node_C = PBFTNode(“Node_C”) # Simulovat předávání zpráv nodes = [node_A, node_B, node_C]node_A.send_message(“Zablokovat návrh”, nodes)node_B.send_message(“Zablokovat návrh”, nodes)node_C.send_message(“Zablokovat návrh”, uzly)
Hybridní konsensuální modely
Hybridní konsenzuální modely integrují funkce více konsenzuálních mechanismů, jako je PoW + PoS nebo PoA + PoS, a spojují tak bezpečnost, škálovatelnost a decentralizaci.
Hybridní konsenzuální modely kombinují nejlepší vlastnosti různých systémů, aby byl proces bezpečnější, rychlejší a flexibilnější. Blockchain může například používat jeden systém pro ověřování transakcí a jiný pro zajištění bezpečnosti. Kombinací těchto přístupů může systém zpracovat více transakcí a bude těžší jej prolomit.
Existuje mnoho možných kombinací hybridního konsensu a zde jsou některé hlavní:
Proof of Work + Proof of Stake (PoW + PoS): Často se používá k zabezpečení základní vrstvy pomocí PoW při použití PoS k ověřování transakcí, jako v Decred a Kadena. Toto nastavení poskytuje jak bezpečnost PoW, tak efektivitu PoS.
Proof of Stake + Byzantine Fault Tolerance (PoS + BFT): PoS validátory zpracovávají sázky, zatímco BFT zaručuje konečnost transakce. Cosmos a Algorand používají variace tohoto přístupu k zajištění konsenzu i s nespolehlivými nebo škodlivými uzly.
Proof of Authority + praktická byzantská odolnost proti chybám (PoA + PBFT): Tento model kombinuje konsenzus PoA založený na validátoru s tolerancí PBFT vůči chybám a útokům. Hyperledger Fabric a VeChain využívají tento model a umožňují vysokorychlostní a povolené blockchain nastavení.
import hashlibimport randomclass HybridBlockchain:def __init__(self, validators):self.chain = []self.validators = validatorsdef proof_of_work(self, data, obtížnost=”000″):nonce = 0while True:hash_result = hashlib.sha256((data) +str(nonce)).encode()).hexdigest()if hash_result.startswith(obtížnost):return nonce, hash_resultnonce += 1def add_block(self, data):nonce, hash_result = self.proof_of_work(data)validator = random .choice(self.validators)block = {'data': data,'nonce': nonce,'hash': hash_result,'validator': validator,'status': 'Approved' if validator in self.validators else 'Rejected ' }self.chain.append(block)print(f”Blok přidán validátorem {validator}: {block}”)# Inicializovat validátoryvalidators = [“Validator1”, “Validator2”, “Validator3”]# Přidat bloky s hybridním PoW + PoShybrid_chain = HybridBlockchain(validators)hybrid_chain.add_block(“Transakční data 1”)hybrid_chain.add_block(“Transakční data 2”)
Vyberte si nejvhodnější mechanismus konsensu pro vaši aplikaci:
Mechanismus konsensu Klíčová funkce Případ použití Škálovatelnost a zabezpečení Důvěryhodné validátory s předdefinovanými identitami. Soukromé/blockchainové sítě konsorcií. High & High Proof of History (PoH) Časové razítko k prokázání pořadí událostí. Vysoká propustnost, např. Solana blockchain. Velmi vysoký a střední Delegovaný důkaz o sázce (DPoS) Hlasování pro důvěryhodné delegáty k ověření bloků. Veřejný blockchain s potřebami škálovatelnosti. Vysoká a střední praktická byzantská odolnost proti chybám (PBFT) Odolnost vůči chybným uzlům pomocí kvora. Povolené blockchainy se spolehlivostí. Medium & Very High Hybridní konsenzuální modely Kombinuje funkce z více konsenzuálních typů. Různé, v závislosti na konkrétních potřebách. Velmi vysoká a vysoká
Závěr
Pochopením těchto inovativních mechanismů konsenzu mohou vývojáři zlepšit výkon, zabezpečení a důvěru svých projektů. Díky praktickým příkladům kódování vám tato příručka umožňuje experimentovat s modely PoA, PoH, DPoS, PBFT a hybridními modely, abyste našli to správné řešení pro vaši blockchainovou síť. Chcete-li prohloubit své znalosti, prozkoumejte pokročilé zdroje, jako je Cosmos SDK, Tendermint a Hyperledger Fabric.
Hodně štěstí při kódování a nepřestávejte se učit!!