Bitcoin Magazine
The Core Issue: Cluster Mempool, Problemele Sunt Mai Ușoare în Bucăți
Cluster Mempool1 este o reproiectare completă a modului în care mempool-ul gestionează organizarea și sortarea tranzacțiilor, conceptualizată și implementată de Suhas Daftuar și Pieter Wuille. Designul urmărește să simplifice arhitectura generală, să alinieze mai bine logica de sortare a tranzacțiilor cu stimulentele minerilor și să îmbunătățească securitatea pentru protocoalele de nivel doi. A fost integrat în Bitcoin Core în PR #336292 pe 25 noiembrie 2025.
Mempool-ul este un set uriaș de tranzacții în așteptare pe care nodul tău trebuie să le urmărească din mai multe motive: estimarea comisioanelor, validarea înlocuirii tranzacțiilor și construcția blocurilor dacă ești miner.
Acestea sunt multe obiective diferite pentru o singură funcție a nodului tău. Bitcoin Core până la versiunea 30.0 organizează mempool-ul în două moduri diferite pentru a ajuta la aceste funcții, ambele din punctul de vedere relativ al oricărei tranzacții date: rata de comision combinată privind înainte a tranzacției și copiii săi (rata de comision a descendenților), și rata de comision combinată privind înapoi a tranzacției și părinții săi (rata de comision a strămoșilor).
Acestea sunt folosite pentru a decide care tranzacții să fie eliminate din mempool-ul tău când este plin și care să fie incluse mai întâi când construiești un nou șablon de bloc.
Când un miner decide dacă să includă o tranzacție în blocul său, nodul său analizează acea tranzacție și orice strămoși care trebuie confirmați mai întâi pentru ca aceasta să fie validă într-un bloc, și calculează rata medie de comision pe byte pentru toate împreună, considerând comisioanele individuale plătite ca un întreg. Dacă acel grup de tranzacții se încadrează în limita dimensiunii blocului în timp ce depășește altele în comisioane, este inclus în blocul următor. Acest lucru se face pentru fiecare tranzacție.
Când nodul tău decide care tranzacții să elimine din mempool-ul său când este plin, analizează fiecare tranzacție și orice copii pe care îi are, eliminând tranzacția și toți copiii săi dacă mempool-ul este deja plin cu tranzacții (și descendenții lor) care plătesc o rată de comision mai mare.
Privește exemplul grafic de mai sus al tranzacțiilor, ratele de comision sunt afișate astfel în paranteze (rata de comision a strămoșilor, rata de comision a descendenților). Un miner care analizează tranzacția E ar include-o probabil în blocul următor, o tranzacție mică care plătește un comision foarte mare cu un singur strămoș mic. Cu toate acestea, dacă mempool-ul unui nod se umple, ar analiza tranzacția A cu doi copii masivi care plătesc un comision relativ scăzut și probabil o va elimina sau nu o va accepta și păstra dacă tocmai a fost primită.
Aceste două clasamente, sau ordini, sunt complet în conflict una cu cealaltă. Mempool-ul ar trebui să propage în mod fiabil ceea ce vor mina minerii, iar utilizatorii ar trebui să aibă încredere că mempool-ul lor local prezice cu exactitate ceea ce vor mina minerii.
Funcționarea mempool-ului în acest mod este importantă pentru:
Comportamentul actual al mempool-ului nu se aliniază complet cu realitatea stimulentelor de minerit, ceea ce creează puncte oarbe care pot fi problematice pentru securitatea nivelului doi prin crearea incertitudinii cu privire la posibilitatea ca o tranzacție să ajungă la un miner, precum și presiune pentru canale de difuzare non-publice către mineri, potențial înrăutățind prima problemă.
Acest lucru este deosebit de problematic când vine vorba de înlocuirea tranzacțiilor neconfirmate, fie pur și simplu pentru a stimula minerii să includă o înlocuire mai devreme, fie ca parte a unui protocol de nivel doi care este aplicat on-chain.
Înlocuirea conform comportamentului existent devine imprevizibilă în funcție de forma și dimensiunea rețelei de tranzacții în care se află a ta. Într-o situație simplă de creștere a comisionului, aceasta poate eșua să propage și să înlocuiască o tranzacție, chiar și atunci când mineritul înlocuirii ar fi mai bun pentru un miner.
În contextul protocoalelor de nivel doi, logica actuală permite participanților să obțină potențial eliminarea tranzacțiilor strămoșe necesare din mempool sau să facă imposibil pentru un alt participant să trimită o tranzacție copil necesară în mempool conform regulilor actuale din cauza tranzacțiilor copil create de participantul rău intenționat sau a eliminării tranzacțiilor strămoșe necesare.
Toate aceste probleme sunt rezultatul acestor clasamente de includere și eliminare inconsecvente și al nealinierilor de stimulente pe care le creează. Existența unui singur clasament global ar rezolva aceste probleme, dar reordonarea globală a întregului mempool pentru fiecare tranzacție nouă este impractică.
Tranzacțiile care depind una de alta sunt un graf sau o serie direcționată de "căi". Când o tranzacție cheltuiește ieșiri create de alta în trecut, este legată de acea tranzacție trecută. Când cheltuiește în plus ieșiri create de o a doua tranzacție trecută, leagă ambele tranzacții istorice împreună.
Când sunt neconfirmate, lanțuri de tranzacții ca acestea trebuie să aibă tranzacțiile anterioare confirmate mai întâi pentru ca cele ulterioare să fie valide. La urma urmei, nu poți cheltui ieșiri care nu au fost încă create.
Acesta este un concept important pentru înțelegerea mempool-ului, este ordonat explicit direcțional.
Totul este doar un graf.
În cluster mempool, conceptul de cluster este un grup de tranzacții neconfirmate care sunt direct legate una de alta, adică cheltuind ieșiri create de altele din cluster sau invers. Aceasta devine o unitate fundamentală a noii arhitecturi de mempool. Analiza și ordonarea întregului mempool este o sarcină impractică, dar analiza și ordonarea clusterelor este una mult mai ușor de gestionat.
Fiecare cluster este împărțit în bucăți, seturi mici de tranzacții din cluster, care sunt apoi sortate în ordine de la cea mai mare rată de comision pe byte la cea mai mică, respectând dependențele direcționale. Deci, de exemplu, să zicem că de la cea mai mare la cea mai mică rată de comision bucățile din clusterul (A) sunt: [A,D], [B,E], [C,F], [G, J] și ultima [I, H].
Acest lucru permite pre-sortarea tuturor acestor bucăți și clustere și sortarea mai eficientă a întregului mempool în proces.
Minerii pot acum să ia pur și simplu bucățile cu cea mai mare rată de comision din fiecare cluster și să le pună în șablonul lor, dacă mai este loc pot coborî la următoarele bucăți cu cea mai mare rată de comision, continuând până când blocul este aproximativ plin și trebuie doar să determine ultimele câteva tranzacții care se pot încadra. Aceasta este aproximativ metoda optimă de construcție a șablonului de bloc presupunând accesul la toate tranzacțiile disponibile.
Când mempool-urile nodurilor se umplu, pot să ia pur și simplu bucățile cu cea mai mică rată de comision din fiecare cluster și să înceapă să le elimine din mempool-ul lor până când nu depășește limita configurată. Dacă nu a fost suficient, trec la următoarele bucăți cu cea mai mică rată de comision și așa mai departe, până când se încadrează în limitele mempool-ului. Făcut în acest mod elimină cazurile ciudate extreme care nu sunt aliniate cu stimulentele de minerit.
Logica de înlocuire este de asemenea drastic simplificată. Compară clusterul (A) cu clusterul (B) unde tranzacția K a înlocuit G, I, J și H. Singurul criteriu care trebuie îndeplinit este că noua bucată [K] trebuie să aibă o rată de comision a bucății mai mare decât [G, J] și [I, H], [K] trebuie să plătească mai mult în comisioane totale decât [G, J, I, H], iar K nu poate depăși o limită superioară a numărului de tranzacții pe care le înlocuiește.
Într-o paradigmă de cluster toate aceste utilizări diferite sunt aliniate una cu alta.
Această nouă arhitectură ne permite să simplificăm limitele grupului de tranzacții, eliminând limitările anterioare privind câți strămoși neconfirmați poate avea o tranzacție în mempool și înlocuindu-le cu o limită globală de cluster de 64 de tranzacții și 101 kvB per cluster.
Această limită este necesară pentru a menține costul computațional al pre-sortării clusterelor și bucăților lor suficient de scăzut pentru a fi practic pentru noduri să efectueze în mod constant.
Aceasta este adevărata perspectivă cheie a cluster mempool. Menținând bucățile și clusterele relativ mici, faci simultan construcția unui șablon de bloc optimal ieftină, simplifici logica de înlocuire a tranzacțiilor (creșterea comisionului) și prin urmare îmbunătățești securitatea nivelului doi și corectezi logica de eliminare, toate deodată.
Nu mai există calcul scump și lent în timp real pentru construcția șablonului sau comportament imprevizibil în creșterea comisionului. Prin corectarea nealinierii stimulentelor în modul în care mempool-ul gestiona organizarea tranzacțiilor în situații diferite, mempool-ul funcționează mai bine pentru toată lumea.
Cluster mempool este un proiect care a fost în lucru de ani de zile și va avea un impact material asupra asigurării că șabloanele de blocuri profitabile sunt deschise pentru toți minerii, că protocoalele de nivel doi au comportamente de mempool solide și previzibile pe care să se construiască și că Bitcoin poate continua să funcționeze ca un sistem monetar descentralizat.
Pentru cei interesați să aprofundeze în detaliile modului în care cluster mempool este implementat și funcționează sub capotă, iată două fire Delving Bitcoin pe care le puteți citi:
Prezentare Generală a Implementării de Nivel Înalt (Cu Rațiunea Designului): https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393
Cum Funcționează Diagramele de Rată de Comision Cluster Mempool: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553
Obține-ți exemplarul tău din The Core Issue astăzi!
Nu rata șansa de a deține The Core Issue — cu articole scrise de mulți Dezvoltatori Core care explică proiectele la care lucrează ei înșiși!
Această piesă este Scrisoarea Editorului prezentată în cea mai recentă ediție Print a Bitcoin Magazine, The Core Issue. O împărtășim aici ca o privire timpurie asupra ideilor explorate în întreaga ediție.
[1] https://github.com/bitcoin/bitcoin/issues/27677
[2] https://github.com/bitcoin/bitcoin/pull/33629
Această postare The Core Issue: Cluster Mempool, Problems Are Easier In Chunks a apărut pentru prima dată pe Bitcoin Magazine și este scrisă de Shinobi.