Mi az a Segregated Witness (SegWit)?

Szerző: Kraken Learn team
11 min.
2024. november 26.

Kezdő útmutató a Bitcoin SegWit-hez 💭

A Segregated Witness (SegWit) a Bitcoin forráskódjának frissítése volt, amelyet 2017. augusztus 1-jén hajtottak végre.

Annak ellenére, hogy sokan a Bitcoin blokklánc fejlesztésének tekintették, a SegWit erős ellenállásba ütközött, ami megosztotta a közösséget. 

A probléma középpontjában a bányászok jövedelmezősége és a hálózati fejlesztők azon érdeke állt, hogy a Bitcoint olcsóbbá és gyorsabbá tegyék.

A feszültség szakadást okozott a közösségen belül, ami a hálózat első felhasználó által aktivált soft forkjához és egy ellenséges szétváláshoz vezetett. A megosztottság új Bitcoin-forkolt projektek sorát hozta létre, köztük a Bitcoin Cash-t.

A mai napig a SegWit a Bitcoin történetének egyik legvitatottabb eseménye. Ugyanakkor a protokoll hosszú távú életképessége szempontjából az egyik legfontosabb frissítésnek is bizonyult. 

Évente sokan a Bitcoin közösségben augusztus 1-jét „Bitcoin függetlenségi napként” ünneplik. Ez az esemény azt az alkalmat jelöli, amikor az emberek akarata győzött a bevett bitcoin bányászati ​​vállalatok centralizált érdekei ellen.

Nézzük meg ezeket az eseményeket, ahogy történtek, és fejtsük fel a SegWit mögötti történelmet.

BTC icon
68 076.00
-0,37%
24 ó
btc

Bitcoin a SegWit előtt ⏮️

A SegWit aktiválása előtt a Bitcoin blokkkapacitása sok éven át változatlan maradt. A blokkkapacitás az adott blokkban rögzíthető tranzakciók maximális számát jelenti.

Amikor a Bitcoin 2009-ben elindult, alkotója(i), Satoshi Nakamoto nem állítottak be paramétereket arra vonatkozóan, hogy mekkora lehet a bitcoin blokkok mérete.

Azonban 2010-ben Nakamoto titokban hozzáadott egy 1 megabájtos (MB) blokkméret-korlátot a többi Bitcoin közreműködő jóváhagyása nélkül.

Sokan úgy vélték, Nakamoto azért vezette be a korlátot, hogy megakadályozza a jövőbeli elosztott szolgáltatásmegtagadási (DDoS) támadásokat, amelyek hatással lehetnek a hálózatra.

Ez a blokkkapacitásra vonatkozó rögzített korlát nem kívánt hatással volt a Bitcoin skálázhatósági potenciáljának korlátozására több szempontból is.

Alacsony átviteli sebesség és lassú tranzakciós idők

Csak korlátozott számú tranzakció fér el a viszonylag kicsi, 1 MB-os blokkba, amelyet a Bitcoin most elfogadott. Ez a kis kapacitás azt jelentette, hogy a Bitcoin hálózat másodpercenként csak körülbelül 2–3 bitcoin (BTC) tranzakciót tudott feldolgozni – ami messze elmarad a hagyományos digitális fizetési hálózatoktól, amelyek másodpercenként több tízezer tranzakciót is képesek feldolgozni.

Ezenkívül ahhoz, hogy egy tranzakcióblokk érvényesnek minősüljön a bitcoin bányászati folyamat részeként, hat megerősítést kell kapnia. Más szóval, hat új blokkot kell hozzáadni a blokklánchoz a szóban forgó blokk után, mielőtt az véglegesítésre kerül. Tíz perces átlagos blokkidővel ez azt jelenti, hogy a bitcoin blokk megerősítések körülbelül egy órát vesznek igénybe.

Abban az időben, amikor csak néhány „Cypherpunk” kriptográfus volt tisztában a bitcoinnal, ez nem feltétlenül volt hatalmas probléma. De ha a Bitcoin hálózat globális „peer-to-peer elektronikus készpénzrendszerré” akart válni, ahogy Satoshi elképzelte a Bitcoin fehér könyvében, akkor változásokra volt szükség.

Magas díjak

A Bitcoin alacsony átviteli sebessége, amelyet a kis blokkkapacitás korlátozott, azt jelentette, hogy a díjak is viszonylag sokkal magasabbak voltak, mint ma.

Íme egy egyszerű módja a probléma megértésének. Képzelje el, hogy egy színházi előadás után a tömegben áll. Mindenki a színházból egyszerre akar taxival hazamenni. Ha sok taxi van a közelben, mindenkinek könnyű lesz hazajutnia. De ha csak néhány taxi van, az emberek megpróbálhatnak magasabb árat fizetni a taxisoknak, hogy ösztönözzék a sofőrt, hogy először őket vigye haza. A kereslettől függően a taxik ára jelentősen megemelkedhet a normál díjhoz képest.

A Bitcoin díjai ugyanazon kereslet-kínálati elvek alapján működnek. Ha sokan szeretnék, hogy tranzakcióikat egyszerre dolgozzák fel, egyesek dönthetnek úgy, hogy több díjat fizetnek, hogy a bányászok hamarabb feldolgozzák a tranzakciójukat. A Bitcoin hálózat nagy kihasználtságú időszakaiban a torlódás versenyt eredményezhet a felhasználók között, ami a tranzakciós díjak meredek emelkedését okozhatja.

Tranzakciós malleabilitás

A Bitcoin blokkok működésének egy másik sajátos árnyalata a tranzakciós malleabilitás volt. A SegWit előtt az emberek megváltoztathatták egy tranzakció azonosítóját, mielőtt az elegendő megerősítést kapott volna a blokkláncon.

Egy adott tranzakcióval kapcsolatos információk hash-függvényen való átfuttatásával tranzakcióazonosító jön létre. A hash-függvényekről többet megtudhat a Hogyan használnak a kriptovaluták kriptográfiát? című cikkünkből.

De az egyszerűség kedvéért ezeket a tranzakcióazonosítókat digitális ujjlenyomatoknak tekintheti, amelyek a blokkláncon lévő tranzakciók azonosítására és hivatkozására szolgálnak.

A tranzakcióazonosító megváltoztatása teljesen új hash-t hoz létre, ami néha összezavarhatja a blokklánc kliens szoftverét. Minden csomópont kliens szoftvert futtat a blokklánccal való interakcióhoz és fontos szerepek, például az adatellenőrzés elvégzéséhez.

Ez a malleabilitási hiba a Bitcoin kódjában megnyitotta az utat a rosszindulatú támadások előtt. A tranzakciós malleabilitási támadások egyik leghírhedtebb példája a 2014-es Mt. Gox tőzsdei hack volt – amely a történelem legnagyobb bitcoin hackjeként ismert.

Szakértők jelentése szerint egy hacker, vagy hackerek csoportja leürítette az Mt. Gox tőzsde bitcoin tárcáját. Ezt részben úgy tették, hogy megváltoztatták a kifizetéseik tranzakcióazonosítóját. 

A tranzakciós malleabilitási támadás azt a látszatot keltette, mintha a kifizetéseket nem erősítették volna meg a blokkláncon, holott valójában megerősítették.

Ez a sebezhetőség, más támadási vektorokkal párosulva, lehetővé tette a hacker(ek) számára, hogy több mint 840 000 BTC-t szívjanak le a tőzsdéről.

Milyen fejlesztéseket hozott a SegWit? ⚙️

Pieter Wuille, a Bitcoin egyik közreműködője először 2015-ben mutatta be a SegWit frissítést egy Bitcoin Hong Kong eseményen.

Megoldása három szempontból is innovatív volt. A SegWit javította a Bitcoin skálázhatóságát, megszüntette a malleabilitást, és lehetővé tette a csomópontok számára az új tranzakciós struktúra elfogadását. A legjobb az egészben, hogy ezt a hálózat hard forkja nélkül is meg lehetett valósítani.

Külön digitális aláírás és tranzakciós információk

Wuille javaslata növelte a Bitcoin blokkkapacitását azáltal, hogy a „witness” adatokat „szegregálta” egy blokkból, és áthelyezte a coinbase tranzakcióba. A coinbase tranzakciók az első tranzakciók minden új Bitcoin blokkban. A coinbase tranzakció felelős az újonnan vert kriptovaluta forgalomba hozataláért, mint jutalom a bitcoin bányászati folyamatért.

Azok a bányászok, akik sikeresen megnyerik a Bitcoin kriptográfia alapú proof-of-work versenyét, ezeket az újonnan vert tokeneket „blokkjutalmaként” kapják.

A witness adatok, más néven ScriptSig vagy Unlocking Script, digitális aláírás és nyilvános kulcs információkat tartalmaznak, amelyek szükségesek az átutalt bitcoin feloldásához. A SegWit frissítés egy külön „witness mezőt” vezetett be a tranzakció ScriptSig részéhez.

A digitális aláírási információk tranzakciós beviteli mezőtől való külön feldolgozásával több hely maradt a tranzakciók számára minden blokkban.

Több tranzakció blokkonként magasabb tranzakciós átviteli képességeket jelent. Így másodpercenként 2-3 tranzakció helyett a Bitcoin másodpercenként 7-10 SegWit tranzakciót képes feldolgozni. A megnövekedett kapacitás alacsonyabb díjakat is jelent, mivel a Bitcoin blokklánc nagyobb tranzakciós volument képes kezelni.

A szétválasztás ellenére fontos megjegyezni, hogy a csomópontok továbbra is feldolgozzák mind a tranzakciós adatokat, mind a witness adatokat a láncon. Nincs oldallánc vagy Layer 2 protokoll használatban.

Blokksúly

A SegWit előtt a bányászok a bitcoin blokkokat méret (bájt) alapján mérték. Ez a rendszer jól működött, amikor a blokkok witness és tranzakciós adatokat is tartalmaztak, de problémákba ütközött, amikor ezeket szétválasztották.

Ennek leküzdésére a frissítés bevezetett egy blokksúly nevű metrikát a blokkok méretének kezelésére.

Ezzel a koncepcióval minden 1 megabájtos blokk 4 000 000 súlyegységből (WU) áll. Minden tranzakció súlyt kap a következő képlet alapján:

Alap tranzakcióméret bájtban (witness adatok nélkül) * 3 + Teljes tranzakcióméret bájtban.

A witness mező adatainak eltávolításával a számításból a SegWit tranzakciók sokkal kisebb súlyúak. Másrészt egy nem SegWit tranzakció továbbra is tartalmaz witness adatokat. Ez azt jelenti, hogy a nem SegWit tranzakciók mindig 4-szer többet nyomnak, mint a SegWit tranzakciók.

Ez a koncepció elméletileg 1 MB-ról 4 MB-ra növeli a bitcoin blokk méretét, ha egy blokk szinte teljes egészében witness adatokból áll. Ez azonban a gyakorlatban nem lehetséges.

A súlyozott rendszer fő előnye, hogy ösztönzi a bányászokat, hogy főként SegWit tranzakciókat tartalmazó blokkokat dolgozzanak fel. Feltételezve, hogy a SegWit tranzakciók ugyanazokat a díjakat viselik, mint a hagyományos blokkok, egy bányász sokkal több SegWit tranzakciót tud feldolgozni blokkonként. Minél több tranzakciót dolgoznak fel blokkonként, annál több díjat keresnek.

Win-win helyzet mindkét fél számára. Vagy legalábbis azt gondolná az ember.

Nincs több tranzakciós malleabilitási probléma

A SegWit struktúra szerint a hash-elt tranzakcióazonosító csak a tranzakciós információkat tartalmazza, nem pedig a witness mező adatait.

Ez a változás eltávolítja a bitcoin tranzakció módosítható komponensét, amely korábban lehetővé tette a malleabilitási támadásokat.

Ennek eredményeként lehetővé váltak a másodlagos skálázási megoldások, mint például a Bitcoin Lightning Network.

 

Miért volt ellentmondásos a SegWit? 🤔

Sokan a fejlesztői közösségben úgy érezték, hogy a SegWit nem ment elég messzire a Bitcoin skálázhatósági problémáinak kezelésében.

A SegWit aktiválása elleni fő érvek a következők:

  • A Bitcoin megnövekedett, másodpercenkénti 7-10 tranzakciós átviteli sebessége még mindig messze nem elég magas egy decentralizált, globális fizetési rendszerhez.
  • A díjak viszonylag magasak maradnának, ami pénzügyileg kivitelezhetetlenné tenné az olyan dolgokat, mint a mikrotranzakciók.
  • A bányászok továbbra is feldolgozhatják a hagyományos tranzakciós blokkokat, ami azt jelenti, hogy a malleabilitás továbbra is fenyegetést jelent.
  • Később kiderült, hogy a SegWit semlegesítené a Bitmain ASICBOOST mechanizmusát; egy kihasználást, amelyet a bányászati ​​rig hatékonyságának jelentős növelésére használtak.

Körülbelül egy évvel Wuille javaslata után ő és más Bitcoin Core fejlesztők, köztük Eric Lombrozo, elkészítették a kódot, hogy az élőben megjelenjen a közelgő Bitcoin Core 0.13.1 frissítésben. Az egyetlen hátralévő lépés a SegWit aktiválásához az volt, hogy a bányászok elkezdjék feldolgozni az új SegWit blokkokat. 

A megvalósítás megerősítéséhez az összes bitcoin bányász több mint 95%-ának támogatnia kellett volna a SegWit-et az indítás első két hetében – ami jelentős akadályt jelentett az akkori körülmények között.

Felhasználó által aktivált soft fork

Mondanom sem kell, hogy a nagy bányászati ​​vállalatok, mint például a Bitmain, továbbra is elégedetlenek voltak a javasolt változtatásokkal, és megtagadták a SegWit aktiválásának támogatását.

2017 elején egy „Shaolinfry” nevű álnéven szereplő fejlesztő felvetette annak lehetőségét, hogy a Bitcoin csomópontok soft forkot kényszerítsenek ki egy online bitcoin-dev posztban

Felhasználó által aktivált soft forkot még soha nem próbáltak ki a Bitcoin hálózaton, de ez lehetővé tette volna a fejlesztők számára, hogy a SegWit-et a bányászok körülbelül 51%-os támogatásával keresztülvigyék. Azok, akik megtagadták az új blokkok támogatását, kockáztatták, hogy blokkjaikat a csomópontok elutasítják. A megoldás nem volt kockázatmentes. Ha a SegWit nem kapott volna elegendő támogatást a bányászoktól, az elkerülhetetlenül láncszakadáshoz vezetett volna.

Azok, akik ellenezték a SegWit-et, ehelyett egy másik SegWit 2X hard fork frissítést javasoltak. Egy olyat, amely implementálná a SegWit-et és 2 MB-ra növelné a Bitcoin blokkméretét.

Az előbbi frissítéssel ellentétben a SegWit 2X nem lett volna visszafelé kompatibilis a Bitcoin kliens korábbi verzióival. Ezek a változások azt jelentették, hogy a csomópontoknak frissíteniük kellett volna szoftverüket, hogy továbbra is működhessenek a hálózaton.

SegWit és a New York-i megállapodás 🗽

Az iparág vezető vállalatai találkoztak a Consensus 2017-en, és közösen aláírtak egy memorandumot, amelyet „New York-i Megállapodásnak” neveztek. Ez a dokumentum tartalmazta a SegWit nyári bevezetésének terveit és a Bitcoin blokkméretének novemberig 2 MB-ra történő növelését.

November előtt Shaolinfry két Bitcoin Improvement Proposal-t (BIP) dolgozott ki; a BIP148-at és a BIP149-et. Az előbbi egy kemény és gyors megoldást képviselt; jelezze a SegWit blokkok támogatását, különben a csomópontok elutasítják a blokkjait. Az utóbbi hosszabb időt biztosított a bányászoknak a bekapcsolódásra, a következő év júliusára tűzve ki az aktiválási határidőt.

Ahogy közeledett a dátum, James Hillard, a Bitmain Warranty mérnöke új BIP-et javasolt; a BIP91-et. Megoldása arra törekedett, hogy a SegWit 2X és a BIP148 is kompatibilis legyen egymással. Miért kockáztatnánk láncszakadást két versengő SegWit frissítés miatt, ha mindkettőt kompatibilissé tehetjük?

Augusztus 1-jén elegendő bányászati ​​támogatás szilárdította meg a SegWit aktiválását. A New York-i Megállapodás második szakasza azonban nem kapott ugyanilyen támogatást.

A Bitcoin blokkméretének 2 MB-ra történő növelésének kudarca a Bitcoin Cash (BCH) létrejöttéhez vezetett – egy új, a Bitcoin blokkláncból elágazó projekthez.

365.36
-1,38%
24 ó
bch

A Bitcoin függetlenségi napjának jelentősége

A SegWit bevezetése és a közösség döntése a blokkméret-növelés elutasításáról mérföldkőnek számító pillanatot jelentett a szélesebb Bitcoin közösség számára.

A SegWit megmutatta a konszenzus fontosságát a Bitcoin blokklánc változásai tekintetében, valamint a bitcoin által kínált hatalom decentralizációjának mértékét.

Egyetlen személy sem volt képes átvenni a hálózat irányítását és keresztülvinni a javaslatát.

Ehelyett a közösség vitatkozott, iterált, és folytatta a konszenzus elérésének hosszú folyamatát kollektív csoportként – nem egyetlen személy irányítása alatt.

Kezdje el a Bitcoin vásárlását

Most, hogy mindent megtudott a SegWit-ről, készen áll arra, hogy folytassa kripto utazását és bitcoint vásároljon?

Tekintse meg a Kraken Learn Center útmutatóját a Hogyan vásároljunk Bitcoint (BTC) című cikkünkhöz, és regisztráljon egy fiókot a Kraken-nél még ma.