Bitcoin ‘Forkológia’ II. – soft fork vs hard fork és a BITMAIN botrány

UASF, UAHF, BIP148, SegWit2X és hasonló kifejezések tengerével találkozhat az, aki megpróbálja beleásni magát abba, hogy mi is történik a bitcoin kapcsán a színfalak mögött. Elég csak ránézni az árfolyamra és látható, hogy valami nagyon nincs rendben. Komoly vihar kavarog a 40 milliárd dolláros biliben… Az alábbi cikkben arra vállalkozom, hogy kibogozzam mindezt.

Az alap probléma változatlan immáron 2015 óta, amikor is komolyabban felvetődtek aggályok a Bitcoin skálázhatóságával kapcsolatban. Jelenleg – jobb esetben – 7 tranzakciót képes másodpercenként hitelesíteni a bitcoin hálózata annak technológiai kötöttsége miatt. Ez a kötöttség pedig a block mérete (1Mb). Összehasonlításképpen a VISA pénzforgalmi hálózatán másodpercenként átlagosan 2000 tranzakció fut át, erre mondhatnánk, hogy volna itt hely a fejlődésnek. A blockméret növelése teljesen jogos felvetés lenne, azonban ezzel kapcsolatban már évek óta komoly vita áll fenn két önmagát ‘legfelsőbb karhatolomként’ aposztrofáló intézmény között, ezek: Bitcoin Core és Bitcoin Unlimited:

  • Előbbi (Bitcoin Core) a core fejlesztők csapata és a közösség által preferált társaság, akik szerint ésszel kell skálázni a bitcoin hálózatot, mivel a legtöbb felhasználó számára nem elérhető a már most is 80Gb-os blockchain túlzott skálázásából fakadó esetleges extrém tárterület növekedés biztosítása az egyes nodeokon. A gyakran emlegetett elv: A bitcoin blockchainnel el kell futnia egy raspberry pi-n is!
  • Utóbbi (Bitcoin unlimited) csapata elsődleges céljának a bitcoin üzleti hasznosításának minél szélesebb körű támogatását tartja és ennek oltárán a bitcoin blockchain dinamikus skálázását erőlteti.

Ahogy írtam is az első társaság mögött áll lényegében a teljes community, az utóbbi mögött pedig néhány nagyobb szereplő, többek között a mining power 11%-át bírtokló bitmain cégcsoport is. Az évek óta húzódó vitát az idén májusban meghírdetett Consensus rendezvényen aláírt un. NYA (New York Aggrement) zárta le, ahol a szereplők egységesen elfogadták a SegWit2X (alias BIP9) kezdeményezést, mely 2Mb-ban maximalizálja a blockméretet és engedélyezi a SegWit aktiválását, ami annyit jelent, hogy leválasztják a blockláncról a hitelesítési információkat így sokkal több tranzakció fér bele abba.

A helyezet az, hogy a csata eldőlt, a minerek beálltak a SegWit (BIP9) kezdeményzés mögé és június végére a minerek több mint 80%-a jelezte, hogy implementálta a SegWit-et ezzel minden előkészítésre került (volna), hogy augusztus 1-én elkezdődjön a SegWit2X alkalmazása. Ám június közepén megmakacsolta magát a fentebb már említett bitmain cségcsoport, akiknek a kezében van az AntPool bányásztársaság. A problémájuk mögött egy “BIP148” névre keresztelt bitcoin core fejlesztés állt, amely kötelező jelleggel létrehozna egy felhasználók által kezdeményezett soft-fork-ot (UASF), amely ezt követően invalidálna minden olyan blockot, ami nem SegWit2X-ben készül. Természetesen az enyhén sem kapzsi és nyilvánvalóan saját üzleti érdekeit szem előtt tartó bitmain egyből elővette a “nem fér össze a bitcoin szellemiségével” kártyát, hiszen szerinte a kikényszerített SegWit2X a decentralizált bitcoin centralizálására tett kísérlet első lépése és nem mellesleg a bitmain által hőn támogatott (taknyában vergődő) Bitcoin Unlimited koporsójának utolsó szege.

A bitmain egy roppant egyszerű ultimátumot hírdetett: nevezetesen, ha aktiválásra kerül a BIP148, akkor User (helyett: Miner) Activated Hard Forkot hoz létre. Értsd: a UASF (BIP148) aktiválását követően 12 órával (ez egyfajta extra ultimátum hatáidő) leágaztatja a bitcoin blockchaint egy fizikailag létrehozott külön forkba és onnantól minden létező bitcoin két független blockláncban fog élni, amelyeket onnantól semmilyen módon nem lehet majd egyesíteni. Nagyjából ugyanaz a szituáció következik be mint ami anno az Ethereum és az Ethereum Classic kapcsán történt. Hogy mi lenne ennek a hatása? Ne szaladjunk ennyire előre, nézzük mi VOLT a hatása egyátalán annak, hogy bejelentette ezt az ultimátumot a bitmain:

A helyzet ráadásul azóta sem javult sokat, az árfolyam egy stabil sávban oldalazgat és éppen most készül kitörni az alján, ha ez megtörténik, akkor onnantól tippelni sem merek, hogy mi fogja tudni megállítani:

A poén az egésszel kapcsolatban, hogy bár Jihan Wu (bitmain alapítója) és a teljes kínai bányász “szakszervezet” teljes elköteleződéssel támogatja a SegWit2X-et, azonban mégis nyílt háborút kívánnak folytatni a BIP148 miatt, mivel az “kiveszi a kezükből a szabad rendelkezés jogát”. Tehát azt a jogot, hogy pl. alkupozícióba kerüljenek a piaccal szemben…

Hogy mi fog történni, ha a nagyra becsült bitmain csapata beváltja a hard fork fenyegetését?

  • Létrejön két független blocklánc, hogy melyik lesz onnantól a ‘hivatalos’ bitcoin blocklánc azt az idő fogja eldönteni. Így létrejön két blocklánc, aminek a pillanatnyi értéke kb. nulla lesz.
  • A trading platformok (pl. kraken, poloniex, stb.) szinte azonnal be fogják szűntetni a bitcoin depo/withdraw funkciókat, hiszen fogalmuk sem lesz arról, hogy mit is lehet onnantól bitcoinnak nevezni. Leforkolják a saját meglévő blockláncaikat és létrehozzák a két független blockláncot, majd kényszerből vagy állást foglalnak egyik vagy másik oldal mellett, vagy elnevezik a két blockláncot két független néven (pl végére rakják, hogy UASF és UAHF, vagy ennél frappánsabban az UAHF-et átnevezik bitmaincoinnak, stb.)
  • A bitmain a saját blockláncán aktiválja a saját skálázódási algoritmusát, ami azonnal engedélyezi a max. 8Mb-os blockok alkalmazását, minimum 2Mb belépési szinttel. Ezt követően cirka egy éven belül felhízlalják a blockok méretét 16Mb-tal. Az, hogy ezek a blockok egyáltalán tartalmazni fognak-e tranzakciókat az attól függ, hogy mi lesz a sorsa a két blockláncnak. Ami viszont tény, 8Mb feletti blockméretnél a blocklánc havonta már akár több 10Gb mérettel is nőhet, ami miatt nagyon hamar olyan méretűre növekszik ami miatt otthoni felhasználók képtelenek lesznek saját nodeokat/pénztárcákat futtatni, helyette maradnak a cloud pénztárcák és trading platformok virtuális pénztárcái.
  • A bitmain féle hard-fork blockchain hivatalosan is megkaphatja (már ha létezni fog egyáltalán) a “business users only” flaget.

Ez nyílván egy eléggé brutális scenario. Mindeközben hosszabb-rövidebb időre olyan szinten sérülhet a bitcoinnal szembeni bizalom, ami miatt a szuperpénz egyszerűen nullára írhatja az értékét. Viszont fontos, hogy ez a scenario nem az én agyszüleményem, hanem nagyjából direktben fordítottam le Jihan Wu whitepaperjét a téma kapcsán.

commercial break...

A cikkemből talán ki lehet érezni, hogy én is állást foglaltam ebben a kérdésben, nem is célom pártatlannak tetszelegni, azonban van már annyi élettapasztalatom, hogy ne vakon osztogassak krediteket. Nem tudom kizárni, hogy úgy egyébként Jihannak, a bitmainnak és az egész UAHF-et támogató csapatnak van igaza, tény, hogy a SegWit2X csak rövid időre oldja meg, sőt igazából rövid időre sem a skálázási problémát. Tény az is,hogy ennek a kiszenvedése is több mint két évig tarott és az is tény, hogy a BIP148 egy olyan lépés a Bitcoin Core csapat részéről, ami felborítja valamilyen szinten a decentralizációt és kiveszi a minerek kezéből a szabad döntés jogát.

Én magam részéről abban reménykedem, hogy a redditen és twitteren folyamatosan ömlő szájkaraté során minden érintett fél kipanaszkodja magából a múlt összes problémáját és még a flag day (aug 1) előtt születik egy olyan megoldás, ami legyen akár az UASF (Segwit2x + BIP148), akár pedig a blocklánc teljes és KÖZÖS hard forkolása (UAHF), de a lényeg, hogy azt követően EGY darab bitcoin blocklánc marad csak. Ha így lesz, akkor ez az egész történet csak egy újabb kellemetlen story lesz a bitcoin múltjában.

Ha nem… Nos szerintem nem tartunk ott, hogy ezen kezdjünk el spekulálni. Alább linkelem Jihan Wu részletes blogpostját azoknak akik szeretnének erről részletesebben olvasni, vagy egyszerűen nem volt minden tiszta az okfejtésekben: https://blog.bitmain.com/en/uahf-contingency-plan-uasf-bip148/

Mondanám, hogy mostanában nem nagyon szeretnék a téma kapcsán újabb cikket írni, mert ennek a megírása is komoly lelki fájdalom volt… de attól tartok kénytelen leszek még tollat ragadni.

Bookmark the permalink.

13 Comments

  1. Remek cikkek!

    Ha van még leírnivaló, ne tartsd vissza. 🙂

  2. Igen, hajrá, nagyon jó ezeket a fejtágítókat olvasni, köszi!

  3. “We do not believe that decentralization means a 1MB block size limit or a responsibility to constrain the block size so that a Raspberry Pi can run a full node while the fee per Bitcoin transaction is higher than the daily income in most developing countries.”

    Nem vagyok egy nagy bitcoinos de azért ezzel egyet tudok érteni. Olcsóbb TX ár az csak jó lehet.

    • Ebben teljesen igazad van. Viszont ha a skálázás elég egy bizonyos szintent (pl 8Mb+), akkor olyan szinten elérhetetlenné válik a blockchain legtöbbünk számára, ami nagyfokú kitettséget fog jelenteni NÉHÁNY nagy játékos irányába. Ettől a fajta oligopóliumtól akarja megvédeni az egyszerű felhasználókat a Bitcoin Core csapata. Ennek persze valóban az az ára, hogy relatív magasabbak maradnak a TX fee-k. Cserébe bármikor megteheted, hogy akár a saját otthoni konzervdobozodon futtass saját nodeot.

      • Őszíntén megmondva szerintem ez elkerülhetetlen. Jelenleg is csak elodázzák a problémát. De megértem a másik oldalt is.

        • Azt csak a jövő fogja tudni eldönteni, hogy miként fog ebből kijönni a bitcoin. Személy szerint nem esküdnék meg továbbra sem arra, hog a bitcoin nem csak egy elcsökevényesedett vadhajtása annak amit ma blockchain alapú decentralizált jövőnek nevezünk. Legalább akkora esélyt adnék annak, hogy a bitcoin lesz mindörökkön a szent és sérthetetlen A-grade digitális pénz, ahogy annak is, hogy 1-2 éven belül eltűnik sűllyesztőben és helyébe olyan crypto pénzek lépnek, amelyek már eleve túlléptek a bitcoin technológiai határain.

  4. Szia!

    Tudnál mellékelni néhány linket, ahonnan ezzel kapcsolatban folyamatosan lehet tájékozódni légyszíves?

    • reddit.com/r/bitcoin
      reddit.com/r/btc
      twitteren keress rá a #SegWit2X és #USAF hashtagekre.

      Nagyjából ez lehet a ‘kezdőcsomag’. Persze ha nem zavar, hogy az irományok 90%-a csak arról szól, hogy egymást dobálja a nagyérdemű. De megfelelő mennyiségű idő ráfordításával ki lehet hámozni az értelmesebb dolgokat.

  5. Egyébként több kérdés abszolút nem tiszta, ha valaki tud ezekben segíteni megköszönném.
    Az első, hogy egyáltalán hogy tud valaki fejleszteni ezen az egészen, mármint magán a programján? Úgy értem, hogy tud akárki belenyúlni a program futásába és mondjuk a blokk méreten változtatni, amikor rengetegen node-on fut az egész és nem egy központi helyen. Saját véleményem szerint maga a kliens program ami blokkba foglalja a tranzakciókat miután sikeresen megold egy hash-puzzle-t tud létrehozni egy 2 MB-s blokkot, de mi van azokkal a blokkokkal amik már régen a lánchoz tartoznak és 1 MB-osak?
    A másik, hogy ha a tranzakciók hitelesítési információit leválasztják akkor hogyan fog felépülni a Merkel fa és egyébként maga a blokk header?

  6. Plusz ha nincs hitelesítve adott blokkig a chain akkor mi biztosítja, hogy ne keletkezzen tetszőleges elágazás kamu tranzakciókkal? Egyáltalán a hitelesítési információkon mit értenek pontosan, a hash-puzzle nonce-át?

    ” amely kötelező jelleggel létrehozna egy felhasználók által kezdeményezett soft-fork-ot (UASF), amely ezt követően invalidálna minden olyan blockot, ami nem SegWit2X-ben készül. ”

    Ezt végképp nem értem. Én úgy tudom, hogy maga az alap algoritmus validál. Abszolút nem tiszta, hogy ilyen szinten hogyan tudnak beleszólni az egész működésébe. Ha esetleg valaki segítene tisztázni ezeket a dolgokat annak hálás lennék nagyon. Egyébként bocs, ha faszságokat írtam.

    • Bőven túlkérdeztél a blog adta kereteken, de megpróbálom leírni a lényeget:
      – A blockchain szent és sérthetetlen. 1Mb-os blockok amik még lényegében a Stashi féle whitepaper alapján készülnek a mai napig (ami annyiból nem igaz, hogy azért bekerült jónéhány apróbb fejlesztés).
      – A blockokat a bányászok rakják össze. Minden bányász a saját szoftverét futtatja ami áll a core-ból és hozzá alkalmazva bizonyos mennyiségű patcheket. Ezek a patchek határozzák meg, hogy az adott bányász(társaság) milyen blockokat tud készíteni.
      – Amikor elkészül egy olyan fejlesztés mint a SegWit, akkor ennek kódját a testneteket tesztelik, amivel párhuzamosan felkérik a minereket, hogy az elkészülő blockok comment mezőjében küldjenek “szignált” arról, hogy felkészültek az adott patch (BIP) alkalmazására.
      – Akár soft-fork, akár hard-fork akkor készülhet a blockláncból, ha elégséges miner jelzi, hogy felkészült az adott fejlesztés alkalmazására. A lényeg az, hogy az adott módosítást lehetőleg az összes miner támogassa és alkalmazza.

      A bitcoin nodeok egy egymástól független peer-to-peer hálózatban létező ökoszisztéma részei, amelyek önálló szuverén döntésük alapján futtatják ugyanazt a szoftver verziót. Azonban ugyanígy szuverén döntése a hálózat (minerek) nagyobb részének, hogy meghozzon pl egy aktivációs limitet, aminek az elérésekor egyszerűen kizárják a hálózatból azokat a minereket akik nem támogatnak egy kezdeményezést. Ilyen döntés volt a NYA.
      Ugyancsak megvan azonban a hálózat bármely kisebb szereplőjének (akik elég hashing powerrel rendelkezik, hogy szerezzen akár csak egy blockot is), hogy hard-forkoltassa a hálózatot, ilyenkor leágaztatja blockchaint és saját merkel fát hoz onnantól létre ami onnantól SOHA nem fog tudni egyesülni a fő/mellék ággal.

      És akkor a SegWites kérdésedre: Egy-egy block jelenlegi méretéből kb 60% megy el az aláírások tárolására. Az aláírások azonban nem képezik részét a Blockchain Merkel fájának, hiszen ahhoz csak a TX-ek kellenek. A signatúrák csak ahhoz kellenek, hogy ellenőrizni tudd az egyes tranzakciók hitelességét. A SegWit lényege, hogy létrehozol egy soft forkot a blockláncból amiben ezt követően már CSAK a tx-eket tárolod és létrehozol egy másik segwit adatsort, amiben pedig tárolod a szignatúrákat. Így ha szükséges, bármikor bármelyik tranzakció hitelessége utólagosan is ellenőrizhető, ehhez nem kell a lezárt blockokban tárolni az összes aláírást külön-külön.

    • Akkor nekifognék újra a SegWit-nek, mert konkrétan rájöttem, hogy hülyeséget írtam.
      Szóval ahogy írtam is a SegWit után az 1Mb-os blockban csak TX-ek lesznek, azonban a signature-ök továbbra is részei lesznek a blocknak, mivel azokat a soft-fork során 4Mb-ra skálázzák. Ennek megfelelően az első Mb tartalmazza csak a TX-eket, hashekkel, merkel fa hitelesítéssel meg mindennel és extra payloadként tovább 3Mb áll rendelkezésre a signature-ök tárolására.
      Ezt az extra payloadot fogják tudni kezelni az új SegWit enabled nodeok, és ha régi node kliens kéri le a SegWit-es blockot akkor sincs krízis, mivel ő csak az első Mb-ot fogja megkapni ami önmagában tartalmaz mindent és valójában az önmagában a blockchain.
      Aszem így már érthető lesz mindenki számára az, hogy miként is néz ki a SegWit technikailag.

Szólj hozzá: