Jde o otevřenou sadu protokolů, tedy pravidel pro výměnu zpráv. Základní Mining Protocol přenáší těžební úkoly a výsledky; volitelné Template Distribution a Job Declaration umožňují pracovat s vlastní blokovou šablonou. Pouhé připojení přes V2 tuto možnost nezaručuje.
Eva má ASIC, zařízení specializované na bitcoinovou těžbu. Připojila ho k poolu, který koordinuje práci více těžařů a rozděluje jim odměny. Stroje hledají výsledek výpočtu, který umožní přidat do historie Bitcoinu nový blok, tedy skupinu transakcí. Potřebuje, aby její stroj dostával správné zadání a výsledky dorazily skutečně vybranému poolu. Později chce rozhodovat i o transakcích, které se pokusí zahrnout do bloku. Stratum V2 řeší komunikaci mezi těmito účastníky. Jeho Mining Protocol je základ; Template Distribution a Job Declaration jsou volitelné části pro předávání podkladů k bloku a dohodu o vlastním zadání. Proto dva pooly s označením V2 nemusí nabízet stejné možnosti. [1] [3]
Stratum V1 usnadnil spolupráci těžařů, jeho obvyklé nešifrované spojení však nechávalo zprávy čitelné po cestě. Transakce navíc zpravidla vybíral pool. V roce 2019 představili Jan Čapek a Pavel Moravec z Braiins návrh Stratum V2, na kterém spolupracoval také Matt Corallo a další vývojáři. Cílem byla chráněná a úspornější komunikace i větší samostatnost těžařů. Specifikace je veřejná a vývoj pokračuje v otevřeném projektu. Nejde o nová pravidla platnosti bitcoinových bloků ani o automatický příslib vyššího výdělku. [8] [6]
Na internetové cestě mezi Evou a poolem nesmí cizí prostředník nenápadně číst či přepisovat těžební zprávy. V2 proto používá šifrované spojení s kontrolou neporušenosti zpráv, označovanou AEAD. Úvodní kryptografická dohoda Noise je podle specifikace povinná pro vzdálené spojení; její použití v místní síti může být volitelné. Klient ověřuje server pomocí veřejného klíče autority poolu získaného důvěryhodnou cestou. Tento klíč slouží ke kontrole digitálního podpisu, kterým se server prokazuje. Tím se chrání přenos, nikoli všechno okolo: pool nadále vidí předané údaje a šifrování nedokazuje bezpečný firmware, správné účtování ani schopnost poolu vyplatit odměny. [2] [10]
Eva nemusí vždy měnit těžební zařízení. Translation Proxy je prostředník, který může od staršího stroje přijímat Stratum V1 a směrem k poolu používat V2. Zabezpečení tohoto druhého úseku ale nezmění původní komunikaci mezi ASICem a proxy; ta zůstává V1 a vyžaduje vlastní ochranu. Proxy může také společně obsluhovat více strojů a omezit opakované posílání stejných údajů. Samotný překlad protokolů ještě neznamená, že Eva vybírá transakce. K tomu potřebuje další funkce a spolupracující pool. [7] [8]
Aby Eva vybírala transakce, potřebuje nejdříve vědět, které jsou platné a na jaký blok má navazovat. Tyto podklady může získat z vlastního plného uzlu, který sám ověřuje pravidla Bitcoinu. Template Provider je software poskytující blokovou šablonu — rozpracovaný návrh budoucího bloku, nikoli hotový blok. Může využívat Bitcoin Core nebo jiný uzel s potřebnou podporou. Template Distribution předává aktualizace přímo, místo opakovaných dotazů getblocktemplate. Zprávy NewTemplate a SetNewPrevHash oznámí šablonu a návaznost na předchozí blok; RequestTransactionData si vyžádá údaje o transakcích a SubmitSolution vrací nalezené řešení. [5]
Evě pomáhá Job Declarator Client: program, který přijímá její šablony a domlouvá jejich použití s poolem podporujícím Job Declaration. V režimu Full-Template si přes AllocateMiningJobToken vyžádá identifikátor práce, zprávou DeclareMiningJob uvede transakce a případně odpoví na ProvideMissingTransactions. Potom pošle SetCustomMiningJob těžebnímu serveru. Režim Coinbase-only seznam transakcí předem nesděluje a DeclareMiningJob nepoužívá; pracuje s přiděleným identifikátorem a údaji o coinbase, zvláštní transakci s blokovou odměnou. Pool může návrh odmítnout, takže záleží i na náhradním připojení. Vlastní výběr transakcí může rozdělit rozhodování mezi více těžařů, ale nezbavuje pool povinnosti vyplatit odměny. [4]
Předchozí příklad lze pochopit bez názvů zpráv. Při nastavování nebo vývoji už ale záleží na přesném formátu. V2 předává údaje binárně, tedy v předem dohodnutém strojovém zápisu. Hlavička zprávy má 6 bajtů a pole extension_type, msg_type a msg_length určují rozšíření, druh zprávy a délku jejího obsahu. Po kryptografickém navázání spojení přijde jako první protokolová zpráva SetupConnection, která dohodne protokol, verzi a požadavky na funkce. Úspěch potvrzuje SetupConnection.Success. Označení V2 v nabídce služby tak nenahrazuje skutečnou dohodu mezi konkrétními programy. [1]
Kanál je oddělená těžební relace uvnitř spojení, nikoli další blockchain nebo platební kanál. Standard Channel přiděluje úkol pro hlavičku bloku, krátký souhrn jeho údajů. Extended Channel umožňuje prostředníkovi rozdělovat větší prostor možných pokusů pomocí extranonce, proměnlivé části coinbase transakce. Group Channel usnadňuje společné rozesílání zadání více kanálům. Zprávy OpenStandardMiningChannel a OpenExtendedMiningChannel otevírají příslušné relace. Praktický důvod je jednoduchý: pokud by dva stroje zkoušely totožné možnosti, spotřebovávaly by elektřinu na stejnou práci. [3]
Pool potřebuje průběžně měřit Evin příspěvek. Mining share je výsledek, který splní přidělenou hranici obtížnosti; většina shares nesplní přísnější síťovou hranici pro blok, některá ji ale splnit může. NewMiningJob nebo NewExtendedMiningJob předá zadání, SetNewPrevHash aktivuje návaznost na předchozí blok a SetTarget stanoví hranici pro kanál. Výsledky posílají SubmitSharesStandard či SubmitSharesExtended; nesou identifikátor úkolu, pořadové číslo a měněné údaje hlavičky. Přijatý výsledek ještě není výplatou do peněženky. Odměňování poolu a platnost bloku podle bitcoinových pravidel zůstávají samostatné věci. [3]
Nejdříve ověří podporu svého zařízení, programu a konkrétního poolu. Potom zjistí, který úsek spojení je chráněný, odkud pochází ověřovací klíč a zda chce jen bezpečnější přenos, nebo také samostatně vybírat transakce do bloku. Ve druhém případě potřebuje funkční Template Provider, Job Declarator Client a odpovídající podporu poolu. Sleduje zpoždění, odmítnuté i zastaralé shares, záznamy chyb a chování při výpadku. Návod musí odpovídat používané verzi. Stratum V2 může zlepšit organizaci těžby; nenahrazuje bezpečnou správu zařízení ani nemění pravidla, podle kterých plné uzly ověřují Bitcoin. [6] [7]
Pro nejúplnější obraz čtěte toto heslo společně s Bitcoin, Těžba, Mining Pool, Braiins, Braiins Pool, ASIC Miner. Opačným směrem na něj odkazují také ASIC Miner, Mining Pool, Nonce, Marek „Slush“ Palatinus.