Munka igazolása
A munka igazolása ( angolul proof-of-work, POW, PoW ) a hálózati rendszerek védelmének elve a szolgáltatásokkal való visszaélésekkel (például DoS-támadásokkal vagy spam - levelezések megszervezésével ) szemben, amely egy meglehetősen hosszú munka elvégzésének szükségessége alapján történik. a kliens oldal (problémamegoldás keresése), melynek eredménye könnyen és gyorsan ellenőrizhető a szerver oldalon (lásd egyirányú funkció ). Az alkalmazott számítások fő jellemzője az időköltségek aszimmetriája - ezek jelentősek a megoldás megtalálásához és nagyon kicsik az ellenőrzéshez [1] . Az ilyen sémákat ügyfélrejtvénynek , számítási rejtvénynek vagy CPU - árazási függvénynek is nevezik .
Ezt a védekezési módot nem szabad összetéveszteni a captchákkal , amelyek az ember számára könnyű, de a számítógép számára nehéz vagy teljesen megoldhatatlan feladatokat kínálnak. A munka bizonyítása kezdetben arra irányul, hogy egy korábban ismert algoritmus segítségével valamilyen véges idő alatt megoldást találjunk, de viszonylag kis számú műveletre van szükség a kapott megoldás ellenőrzéséhez [1] . A POW-technológiák a kriptovaluta rendszerekben a legnagyobb elterjedtségben és fejlesztésben részesültek.
Történelem
A munkavégzés igazolására vonatkozó követelményt először a "Pricing via Processing or Combatting Junk Mail" [1] című cikk vetette fel 1993-ban. A szerzők a következő ötletet javasolták: a megosztott erőforrás eléréséhez a felhasználónak ki kell számítania valamilyen függvényt, ami nagyon összetett és erőforrás-igényes, de ésszerű időn belül megoldható. A függvény kiszámítása a kliens oldalon sokkal bonyolultabb, mint az eredmény ellenőrzése a szerver oldalon. Egy függvény egyik kötelező feltétele az amortizáció hiánya – ha több megoldás is születik, akkor azok számával arányosan időigényes lenne. A szerzők szerint az ilyen kiegészítő számítások nem akadályozzák több hétköznapi levél elküldését egy hétköznapi felhasználó számítógépéről, de az állandó számítások szükségessége igen erőforrásigényessé teszi a kéretlen levelek küldését. Független becslések szerint az ilyen rendszerek valójában jelentősen korlátozzák az egy számítógépről naponta elküldhető levelek számát [2] .
1997-ben Adam Back elindította a Hashcash projektet , amelynek célja a spamvédelem. A feladat a következőképpen fogalmazódott meg: „Keress olyan x értéket, amelyre az SHA(x) hash N kezdő nulla bitet tartalmazna.”
1999-ben megjelenik a munka bizonyítéka kifejezés - a "Proofs of Work and Bread Pudding Protocols" (szerzők - Markus Jacobsson és Ari Jewels) cikkben használták a Communications and Multimedia Security folyóiratban [3] .
2004. augusztus 16-án Hal Finney a cypherpunk fórumnak írt levelében az újrafelhasználható munkabizonyítvány ( RPOW , RPoW ) használatát javasolta az elektronikus valuta megszervezéséhez [4] .
Satoshi Nakamoto hamarosan javasolta a bitcoin kriptovalutát , ahol a munka igazolását a kettős költekezés nagymértékben bonyolítására használják . Azt javasolták, hogy egy információblokk hash-jét az SHA-256 függvény segítségével találják meg a paraméterek kiválasztásával úgy, hogy az eredmény adott számú magas bitje legyen nulla. Ezt követően más kriptovalutákban (például Litecoin ) az SHA-256 helyett a KDF -et kezdték használni , mint például a scrypt , a bcrypt , a PBKDF2 és mások [5] .
Példák az alkalmazható függvényekre
A munkaigazolási rendszerekben leggyakrabban használt funkciók listája:
- Részleges inverziós kivonat . A legismertebb alkalmazás a Hashcash rendszer [6] , amely részleges inverziós hash -t használ e-mailben történő küldéskor. Egy betű fejlécének kiszámításához körülbelül 252 hash-számításra van szükség, amelyeket minden új betűnél újra kell számítani. A kiszámított kód helyességének ellenőrzése ugyanakkor gyors - egyetlen SHA-1 számítást alkalmaznak egy előre elkészített címkével [7] [8] [9] .
- Merkle-fákon alapuló függvények [10] . Ennek a változatnak a leghíresebb példája a Bitcoin rendszerben található , ahol a többszintű hash-t használják a munka bizonyítékaként - az előző blokk hash-je a következő blokk elemévé válik. Így nincs mód a blokk megváltoztatására anélkül, hogy az összes következő blokkban ne változtassuk meg a hash-eket. Ugyanakkor a teljes lánc integritásának ellenőrzése az aktuális és az előző blokk hasheinek egyetlen kiszámítására korlátozódik. A hash-t csak akkor ismerjük el igaznak, ha a hash összeg bármely jellemzőjének értéke kielégíti a kiválasztott kritériumot, például bitcoinban - a hash összeg kezdő nulláinak száma nagyobb vagy egyenlő egy speciális paraméter értékével, meghatározza a pillanatnyilag szükséges bányászati nehézséget az új blokkok tervezett sebességű megjelenésének fenntartásához. Egy ilyen hash összeg kereséséhez többször újra kell számolni a nonce paraméter tetszőleges értékeinek felsorolásával [11] .
- Másodfokú maradék modulo egy nagy prímszám [12]
- Fiat protokoll aláírás - Shamira [12]
- A Diffie-Hellman protokollon alapuló funkció [13]
- Memória kötött funkció ( hu: Memory bound function ) [14]
- Kakukk kivonat [15]
Lehetséges biztonsági rések és támadások a hadifogoly-alapú információs rendszerek ellen
A szakértők továbbra is vitatják, hogy a POW-védelem kellően hatékony-e a DoS támadásokkal és a spamekkel szemben [16] [17] .
Támadás 51%
A Bitcoin , mint sok más kriptovaluta, potenciálisan „51%-os támadásnak” lehet kitéve: ha egy támadó a hálózat teljes számítási teljesítményének több mint felét irányítja, akkor lehetősége van csak a saját blokkjainak megerősítésére, miközben figyelmen kívül hagyja a többieket. . Ezzel nemcsak az összes kibocsátott kriptovalutát kaphatja meg egyszerre, hanem blokkolhatja az összes vagy kiválasztott tranzakciót, ami potenciálisan azokból a tranzakciókból származó kriptovaluta "eltűnéséhez" vezethet, amelyek nem fognak szerepelni a tranzakciókban. a blokklánc új verziója [11] .
Dupla költés
A kettős költés (dupla költés) ugyanazon vagyontárgyak ismételt átruházása. Ez a támadás több altípusra oszlik.
- Race támadás . _ _ A támadó végrehajtja az X tranzakciót, kifizeti az áru vásárlását, miközben ugyanazt a pénzt az Y tranzakcióval egyidejűleg másik számlájára utalja. Ha az eladó nem várta meg a tranzakció visszaigazolását és elszállította az árut, akkor nagy kockázatot vállalt , mivel 50% esély van arra, hogy az Y tranzakció bekerüljön a valódi láncba, és ez a valószínűség növekszik, ha a támadó szándékosan kiválasztja a hálózati csomópontokat az adott művelet végrehajtására [18] .
- Finney támadása a következő: a támadó megpróbál egy blokkot találni, amely tartalmazza az Y tranzakcióját. Ha azonban a blokkot megtalálta, a támadó elküldi az X tranzakciót, amely után megvásárolja az árut. Az eladó megvárja az X tranzakció megerősítését, és kiszállítja az árut. Ha ebben a pillanatban megjelenik egy Y tranzakciós blokk, akkor egy fork helyzet jön létre, amelyben a bányászoknak a két blokk egyikét kell választaniuk a blokklánc lánc folytatásához. Ha egy támadó kezében nagy mennyiségű számítási erőforrást koncentrál, jelentősen megnövelheti annak valószínűségét, hogy Y művelettel rendelkező blokkot választ. Így a megerősített tranzakció nem garantált, hogy érvényes [19] .
Önző bányászat
Az önző bányászat során a támadó célja a hálózat irányítása, annak ellenére, hogy 50%-nál kisebb teljes kapacitású számítási erőforrásokkal rendelkezik. Ezt az a tény éri el, hogy a támadó azt állítja, hogy az ő medencéje jövedelmezőbb a bányászat szempontjából, mint a többi medence, ami vonzza a külső bányászokat. A támadó úgy tesz közzé blokkokat, hogy más bányászok és készletek számítási erőforrásait elpazarolják. Az algoritmus hozzávetőleges menete a következő:
- A medence titokban mindenki elől bányászza ki privát láncát.
- Ha a pool új blokkot talál a privát láncához, akkor:
- Ha az eredeti lánc villás, akkor a támadó közzéteszi a blokkját, így a lánca meghosszabbodik és igazzá válik, a becsületes bányászok láncát pedig eldobják.
- Ha még nincs elágazás, akkor a medence továbbra is titokban bányászza saját magánláncát, növelve előnyét.
- Ha a nyilvános lánc blokkot talál a nyilvános lánc számára, akkor:
- Ha a nyilvános lánc megelőzi a titkos láncot, akkor a támadó csoportja eldobja a nem publikált blokkjait, és az új nyilvános blokkból kezdi a bányászatot.
- Ha a láncok egyenlőek, akkor a támadó készlete közzéteszi az összes blokkját, így a lánc résébe kerül.
- Ha a nyilvános lánc néhány (N) blokkkal a privát lánc mögött van, akkor a készlet még egy blokkot (N+1) tesz közzé, ami egy új őszinte blokkot izolál.
Szinte minden esetben a becsületes bányászok a vesztesek, és arra kényszerítik őket, hogy csatlakozzanak a bűnözői csoporthoz [20] .
A hadifogságon alapuló információs rendszerek kritikája
A hadifogoly-megközelítés ellenzői számos lehetséges biztonsági probléma mellett a következő hátrányokat is kiemelik:
- Annak valószínűsége, hogy a bányász sikeresen létrehozza a következő blokkot, egyenesen arányos a számítási teljesítménnyel, ami a berendezések mennyiségének és minőségének állandó növekedéséhez vezet minden hálózati tag számára. Így a POW algoritmusokkal végzett bányászat rendkívül nagy mennyiségű villamos energiát igényel. Ezért a POW megközelítés nem a legjobb megoldás az energiahatékonyság szempontjából [21] [22] .
- A hash függvények kiszámításának eredményeire magán a hálózaton kívül máshol nincs szükség. A technológia megjelenése óta a közösség olyan módszert próbált kitalálni, amellyel a hálózat összes számítási erőforrását valamilyen hasznos matematikai vagy ipari probléma megoldására irányíthatja, de ez nem valósult meg tiszta formájában [23] .
A hadifogoly hiányosságaitól való megszabadulásra tett kísérletek a POS ( angolul proof-of-stake , proof of stake) és számos hibrid opció
megjelenéséhez vezettek .
Példák hibrid technológiákra
Számos kriptovalutában találhatunk példákat a POS és a POW ötleteit ötvöző hibrid sémákra. Ezekben a blokklánc mindkét típusú blokkból áll, ami a tranzakciós előzmények átírását nehéz feladattá teszi, mivel a POW blokkok ellenőrzőpontként szolgálnak, tekintettel a teljes láncban folyó munka teljes összetettségére. Az ilyen algoritmusokban a POW-blokkok általában a valós munka mutatóiként szolgálnak, ami további garanciát jelent a kereskedők számára a tranzakciókkal végzett munka során. A POW-blokkokkal devizakibocsátást lehet végezni, a POS-blokkokat pedig a betétből származó potenciális bevételnek tekinthetjük [24] .
Tevékenység igazolása
Egy még nem implementált algoritmus prototípus, ami abból áll, hogy a birtokosok csak akkor lépnek be az általános folyamatba, ha a hadifogoly résztvevők némi munkát végeztek, ami 51%-kal csökkenti a támadás esélyét, mivel a többségi tulajdonos nem lesz képes rá. az új blokkok létrehozásának kizárólagos ellenőrzésére [25] .
Az algoritmus működése:
- A hadifogolybányász a megfelelő nehézségű hash-t keresi.
- A megtalált hash a hálózatba kerül, miközben nem blokk, hanem csak az első lépés, egyfajta sablon, ami a létrehozásához szükséges.
- A 256 pszeudo-véletlen bitből álló hash N számként értelmezhető, amelyek mindegyikéhez egy satoshi tartozik.
- Egy-egy kapcsolat jön létre minden satoshi és a jelenlegi tulajdonos nyilvános kulcsa között.
- Amint mind az N tulajdonos aláírja ezt a blokkot, a kimenet egy teljes értékű blokk lesz.
- Ha az egyik birtokos nem elérhető, vagy nem vesz részt a bányászatban, akkor a többi bányász folytatja a sablonok generálását a jelöltek különböző kombinációival.
- Egy ponton a szükséges blokkot a szükséges számú alkalommal aláírják. A blokkjutalmat a hadifogolybányász és az összes N birtokos között osztják szét.
Égési bizonyíték
A pénzt egy véletlenszámú hash címre küldik, garantáltan nem lehet elkölteni erről a címről, mivel a kulcsok felvételének valószínűsége nulla. Cserébe a bányász állandó lehetőséget kap, hogy megtaláljon egy PoB blokkot, és jutalmat kapjon érte. A bányászat ebben az esetben úgy van elrendezve, hogy a siker esélye az elégetett érmék számától függ. Hasonlóan, az égetés olyan, mint egy vissza nem térítendő POS letét vagy egy virtuális hardverbe történő befektetés a hadifogolybányászathoz. Gazdasági szempontból ez az algoritmus alkalmasabb a kriptovaluta fejlesztésének későbbi szakaszaira, amikor a pénzkínálat nagy része már létrejött [26] .
A kapacitás igazolása
A kapacitás igazolása (vagy a hely bizonyítéka ) algoritmus a következő: bányászathoz jelentős mennyiségű memóriát kell lefoglalni a számítógépen, ami után a nyilvános kulcsból és véletlen számokból nagyszámú nagy adatblokk jön létre . ismételt kivonattal . Minden adatblokkban az utolsó fejlécből kapunk egy indexet, ami után kiválasztunk egy kis darabot a blokkból ezzel az indexszel, egy darabot . Minél több memóriát foglalunk le, annál több darabot kapunk. Teljesülnie kell annak a feltételnek, hogy a darab és az utolsó fejléc hash-je kisebb legyen, mint a cél. Így a memória minden megabájtja a lottószelvény analógjaként szolgál, és növeli a bányászat sikerének esélyét [27] .
A kutatás igazolása
A kutatási bizonyítási algoritmust a GridCoin projekt fejlesztette ki , hogy a PoW hálózatok számítási teljesítményét tudományos problémák megoldására irányítsa a BOINC platformon . A kutatás igazolása egyszerre használja a munka bizonyítását a résztvevők díjazására az elvégzett számításokért, valamint a tét igazolását, hogy ösztönözze a projektben való hosszú távú részvételt [28] .
Energiahatékonyság
A hadifogoly-alapú rendszerek rendkívül erőforrás-igényesek.
- 2013-ban a bitcoin hálózatban a POW-ra fordított teljes számítási teljesítmény 256-szor haladta meg a világ 500 legerősebb szuperszámítógépét összesen [29] .
- 2017- ben átlagosan 163 kWh energiára volt szükség egy tranzakció végrehajtásához a Bitcoin rendszerben. Ennyi energiával egy kis földszintes házban élő háromfős család igényeit öt és fél napon keresztül teljes mértékben ki lehet elégíteni. A Bitcoin és Ethereum hálózatokban végzett kriptovaluta bányászat összesen több energiát vett igénybe, mint amennyit Szíria teljes lakossága elfogyasztott [21] [22] .
Lásd még
Jegyzetek
- ↑ 1. 2 . _ _ _ _ _ _
- ↑ A "Munkabizonyítvány" bizonyítottan nem működik Archiválva : 2017. január 20., a Wayback Machine , 2004 "Ha megpróbáljuk gazdaságtalanná tenni a spam küldését, akkor napi 1750 üzenetre kell korlátoznunk a feladókat"
- ↑ Proofs of Work és Bread Pudding Protocols archiválva 2017. július 26-án a Wayback Machine -nél (1999 )
- ↑ RPOW – A munka újrafelhasználható bizonyítékai archiválva 2017. október 5-én a Wayback Machine -nél (2004 )
- ↑ A kriptovaluták működésének bizonyítása: Rövid történelem. 1. rész archiválva 2017. szeptember 5-én a Wayback Machine -nél (2015 )
- ↑ Hashcash – A szolgáltatásmegtagadás elleni ellenintézkedés (2002 )
- ↑ Vissza, Adam HashCash . Letöltve: 2022. június 25. Az eredetiből archiválva : 2017. szeptember 29. (határozatlan) Népszerű munkaigazolási rendszer. Első bejelentés 1997 márciusában.
- ↑ Gabber, Eran; Jakobsson, Markus; Matias, Yossi; Mayer, Alain J. A kéretlen e-mailek visszaszorítása biztonságos osztályozással (neopr.) // Pénzügyi kriptográfia. - 1998. - S. 198-213 .
- ↑ Wang, Xiao-Feng; Reiter, Michael. Védekezés a szolgáltatásmegtagadási támadások ellen rejtvényaukciókkal // IEEE Symposium on Security and Privacy '03 : Journal. - 2003. - május.
- ↑ Coelho, Fabien Egy (majdnem) állandó erőfeszítést igénylő megoldás-ellenőrző munkaellenőrzési protokoll Merkle fák alapján . Cryptology ePrint Archívum, Jelentés . Letöltve 2017. október 29. Az eredetiből archiválva : 2016. augusztus 26.. (határozatlan)
- ↑ 1 2 Bitcoin: Egyenrangú elektronikus készpénzrendszer archiválva 2014. március 20-án a Wayback Machine -nél
- ↑ 1 2 Dwork, Cynthia; Naor, Moni Pricing via Processing, or, Combatting Junk Mail, Advances in Cryptology // CRYPTO'92: Lecture Notes in Computer Science No. 740: folyóirat. - Springer, 1993. - P. 139-147 .
- ↑ Waters, Brent; Juels, Ari; Halderman, John A.; Felten, Edward W.Új ügyfélrejtvény-outsourcing technikák a DoS-rezisztenciához (neopr.) // 11. ACM konferencia a számítógépes és kommunikációs biztonságról. – 2004.
- ↑ Dwork, Cynthia; Goldberg, András; Naor, MoniA levélszemét elleni küzdelem memóriához kötött funkcióiról (neopr.) // Advances in Cryptology: CRYPTO 2003. - Springer, 2003. - 2729. kötet . - S. 426-444 .
- ↑ Tromp, John. Kakukkciklus; a memóriához kötött gráfelméleti proof-of-work // Pénzügyi kriptográfia és adatbiztonság: BITCOIN 2015 : folyóirat. - Springer, 2015. - P. 49-62 .
- ↑ Laurie, Ben; Clayton, Richard. A munkavégzés igazolása nem működik (neopr.) // WEIS 04. - 2004. - május.
- ↑ Liu, Debin; Camp, L. Jean. A munka igazolása működhet (neopr.) // Ötödik Workshop on Economics of Information Security. - 2006. - június.
- ↑ Támadások a kriptovaluták világában archiválva : 2016. szeptember 19. a Wayback Machine -nél
- ↑ Hashrate-alapú kettős költés elemzése Archiválva : 2017. szeptember 4. a Wayback Machine -nél (2012 )
- ↑ Attacks in the World of Cryptocurrencies Archiválva : 2016. szeptember 19. a Wayback Machine -nél (2015 )
- ↑ 1 2 Bitcoin energiafogyasztási index archiválva 2022. január 25-én a Wayback Machine -nél
- ↑ 1 2 Ethereum energiafogyasztási index (béta) archiválva : 2017. október 11. a Wayback Machine -nél
- ↑ A kriptovaluták működésének bizonyítása: Rövid történelem. 2. rész archiválva : 2016. március 14. a Wayback Machine -nél
- ↑ Alternatívák a munka igazolására, 2. rész Archiválva : 2016. március 4., a Wayback Machine -nél (2015 )
- ↑ Tevékenység igazolása: A Bitcoin munkabizonyítványának kiterjesztése Proof of Stake segítségével Archiválva : 2017. október 17. a Wayback Machine -nél
- ↑ Egyenrangú kriptovaluta égési bizonyítvánnyal "Bányászat erőteljes hardver nélkül" archiválva 2017. október 10-én a Wayback Machine -nél (2014 )
- ↑ Proofs of Space: When Space is of the Essence Archiválva : 2017. november 5. a Wayback Machine -nél
- ↑ Kutatás igazolása - Gridcoin . wiki.gridcoin.us. Letöltve: 2018. szeptember 4. Az eredetiből archiválva : 2018. szeptember 4..
- ↑ A Bitcoin globális számítási teljesítménye most 256-szor gyorsabb, mint az 500 legjobb szuperszámítógép együttesen! Archiválva : 2017. június 8. a Wayback Machine -nél (2013 )