Zero knowledger programming workshop with Hyperledger recording is available under the following link:
Practical notes on Enterprise software systems and the economics of software.
...by Daniel Szego
"On a long enough timeline we will all become Satoshi Nakamoto.."
|
|
Daniel Szego
|
Friday, April 26, 2024
Saturday, April 6, 2024
Nem feltáró bizonyítások (zero knowledge proof) és műszaki alkalmazásaik
A blockchain alkalmazások és infrastruktúra egyik fontos kutatás fejlesztés alatt álló területe a nem feltáró bizonyítások (zero knowledge proof). A nem feltáró bizonyítás egy kriptográfia eszköz mely segítségével kvázi “bebizonyítható”, hogy ismerünk egy tényt, de úgy hogy maga a tény elrejtve marad. Előreláthatóan számos helyen felhasználható lesz mind blockchain rendszerek skálázásnál, mind titkos tranzakciók megvalósításának, de számos nem blockchaines alkalmazásuk is lehet, mint például digitális fényképek eredetiségvizsgálata vagy tőzsdék likviditásának bizonyítása. Jelen cikkünkben a nem feltáró bizonyításokat és lehetséges alkalmazásaikat vizsgáljuk meg közelebbről.
Amennyiben nem feltáró bizonyításokról beszélünk, akkor valamiféle állítás létezésének vagy ismeretét bizontjuk, ez a bizonyítás azonban nem teljesen olyan mint egy klasszikus matematikai bizonyítás, mint például a Pitagorasz tétel bizonyítása. Nem feltáró bizonyításoknál általában egy olyan modellt használunk, amiben két szereplő van:
- Bizonyító (Prover): A bizonyitó feladata, hogy az ellenőrzőt meggyőzze arról, hogy valami igaz, általában úgy, hogy a “valamiről” nem szívárog ki semmiféle információ.
- Ellenőrző (Verifier): Az ellenőrző feladata meggyőződni arról, hogy a bizonyító ténylegesen tud valamit, azonban oly módon, hogy a “valamiről” nem tud meg semmit.
A nem feltáró bizonyítások erőteljesen feltételezik a két szereplő meglétét (bizonyító és ellenőrző) és maga a bizonyítás folyamata is többféle lehet:
- Interaktív (interactive) bizonyításoknál a bizonyító és az ellenörző szereplők között több körös üzenetváltás történik. Jellemzően az ellenőrző több véletlenszerű kérdést tesz fel több körön keresztül, amire a bizonyító válaszol. A kérdés-válasz körök végén az ellenőrző szerepkör meglesz győződve arról, hogy a bizonyító ténylegesen ismeri a bizonyítandó dolgot.
- Nem interaktív (non-interactive): Ebben az esetben csak egykörös interakció valósul meg a bizonyitó és az ellenörző között.
- Probabilisztikus (probabilistic) A bizonyitásoknál egy tény sosincs teljes mértékben bebizonyítva, hanem mindig csak egy bizonyos valószínűséggel. Például ha interaktív protokollokat használunk, jellemzően minden interakció után egyre biztosabb egy állítás, de ez soha nem lesz 100%-os biztonságú.
- Determinisztikus (deterministic): Egy bizonyítandó tény igazsága teljes mértékben, 100%-ban igaz.
A feladat megoldására két nem matematikai, nem számítástechnikai módszer is létezik, mindkét esetben feltételezzük, hogy kinyomtatjuk a fenti képet. Az első esetben veszünk egy fehér borítólapot, mely tízszer akkora mint a kinyomtatott lapunk. Majd a fehér borítólapon kivágunk egy kis lyukat, melyen Walso feje látszik és rátesszük az egészet a kinyomtatott képre. Így látható bárki számára (ellenőrző), hogy Waldo rajta van a képen, de mivel a borítólap többszörösen elfedi az eredeti képet a pontos hely nem derül ki. A másik lehetőség, hogy a kinyomtatott kép másik oldalát az ellenőrző (verifier) sűrűn aláírja, majd kivágjuk belőle Waldó képét. Mivel a kivágott rész túloldalán rajta van az aláírás így biztosak lehetünk benne, hogy a képről származik, de ennek pontos lokációja nem ismert.
Természetesen az előző példa eléggé intuitív és szemléletes volt, a gyakorlatban is haszhálható nem feltáró bizonyítások mögött elég mély matematikai apparátus van. A legtöbb nem feltáró bizonyítást az úgynevezett zkSNARK segítségével valósítják meg, ahol a rövidítés a kriptográfiai protokoll egyes szavait jelöli:
- S, succinct, tömör: itt alapvetően olyan bizonyításokat szeretnénk használni, amik rövidek és tömörek, mind a bizonyítás méretét tekintve, mind pedig az ellenőrzéshez szükséges idő tekintetében.
- N, non-interactive: főleg a nem interaktív bizonyításokat lehet jól használni.
- ARK, argument of knowledge: valamiféle bizonyítás, vagy legalábbis egy ellenőrző szereplő meggyőzése egy tényről.
- zk, zero knowledge, nem feltáró: ebben az esetben a bizonyítandó tényről nem derül ki információ. Fontos megjegyezni, hogy egy SNARK-nak akkor is van értelme, hogy nem rendelkezik a zk (zero knowledge) tulajdonságokkal. Ebben az esetben egy viszonylag komplex számításról korrekt végrehajtásáról lehet egy rövid matematikai bizonyítékot adni. Ez fontos lehet amennyiben a komplex számításhoz valamiféle erős számítógépre lenne szükségünk, de az eredményt ellenőrzését egy sokkal gyengébb-limitáltabb kapacitású gépen szeretnénk végrehajtani. Ez egy gyakori szituáció például ha off-chain számításokat egy okosszerződés segítségével szeretnénk ellenőrizni.
Felhasználás szempontjából a leginkább fejlődő és innovatív megoldásokat a különböző blockchain alkalmazásoknál és platformoknál látjuk. A blockchain rendszerek egyik nagy problémája hogy a tranzakciók nyilvánosak, mivel az egymástól független peerek úgy tudják őket validálni, ha látják a benne lévő információt. Ezen változtathatnak a nem feltáró bizonyítások, melyek segítségével úgy lehet egy tranzakció hitelességét bizonyítani, hogy maga a tranzakció nem látható. Egy másik szintén blockchainhez kötődő innovatív alkalmazás az úgynevezett zkRollup-ok. Mivel a legtöbb blockchain viszonylag kevés tranzakciót tud végrehajtani, azokat is elég lassan, ezért egy jogos ötlet lehet tranzakciókat blockchainen kívül (off-chain) végrehajtani. A problémát az jelenti, hogy aki a blockchain kívül végrehajtja a tranzakciókat abban meg kell bízni (counterparty risk) ami eléggé ellentétes a blockchain decentralizált, bizalom nélküli (trustless) koncepciójával. A megoldást az jelentheti, hogy az off-chain tranzakciók korrekt végrehajtásáról egy zkSNARK bizonyítás készül, melynek eredményét a blockchainen ellenőrizni lehet. Ezt a technológiát hívják zkRollup-nak.
Összefoglalva azt mondhatjuk, hogy a nem feltáró bizonyítás egy nagyon izgalmas kriptográfiai eszköz, melynek felhasználási lehetőségei mind a blockchain rendszerek, mind más területeken roppant izgalmasak lehetnek. Bár a terület még erősen kutatás + fejlesztés alatt áll, a felhasználási lehetőségeket legalább olyan széleskörűnek becslik mint a digitális aláírásét.
Monday, April 1, 2024
Rizikóanalízis kvantum kockázatok kiértékelésére
Az előző cikkünkben röviden összefoglaltuk a lehetésges problémákat és kockázatokat, melyeket a kvantumszámítógépek okozhatnak a pénzügyi infrastruktúrában. Jelen cikkünkben egy rizikó analízis keretrendszert javaslunk, melynek segítségével a kvantum rizikófaktorok szisztematikusan kiértékelhetőek. A módszer a következő főbb lépésekre épül :
1. Támadási modell: a rendszer támadási modelljének felmérése.
2. Hatásanalízis: egy lehetséges kvantum támadás hatásainak felmérése
3. Kvantum készültség: milyen messze van egy tényleges támadás lehetősége.
4. Megelőzési lehetőségek: létezik e és ha igen, akkor milyen készültségűek a megelőzési lehetőségek.
5. A teljes rizikó kiértékelése: az előző pontok összegzése.
A továbbiakban az egyes lépéseket vizsgáljuk meg részleteiben.
Támadási modell
A rizikóanalízis első lépéseként érdemes az analizálandó rendszer támadási lehetőségeit felmérni. A támadási modellek felmérésére többféle modell is létezik, de a legegyszerűbb esetben érdemes az infrastruktúránkban vagy alkalmazásunkban felhasznált kriptográfiai elemeket felmérni, mivel elsősorban ezekre jelenthetnek veszélyt a kvantumszámítógépek. Ilyen kriptogátfiai elemk például a:
- digitális aláírás
- titkosítás
- kulcscsere protokollok
- kriptográfiai hash függvények
- egyéb kutatás fejlesztés alatt álló kriptográfiai elemek, mint például nem feltáró bizonyítások, vagy secure multiparty computation
Hatásanalízis
Második lépésként érdemes megvizsgálni, hogy mit okozhat, milyen súlyos következményei lehetnek annak, ha egy konkrét kvantum támadás megvalósul az előzőekben felmért támadási pontok ellen.
Érdemes megjegyezni, hogy az egyes lehetséges kvantum támadásoknak nem ugyanolyan minőségű következménye lehet. Elképzelhető, hogy egyes esetekben a rendszerben tárolt adatok titkossága kompromittálódik, mint például egy titkosító ellen indított támadás esetén, de az is lehet, hogy a rendszerben tárol adatok integrítása sérül. Elképzelhetőek megszemélyesítéses támadások, mint például egy digitális aláírás feltörésénél, de a szolgáltatás minőséget korlátozó (denial of service) támadások is. A legegyszerűbb esetben a hatásokat egyszerűen három kategóriába soroljuk, alacsony, közepes és kritikus hatású kvantum támadási lehetőségek.
Kvantum készültség
A teljes rizikó kiértékelése
A pénzügyi infrastruktúra kvantum biztonsága és kockázatai
A kvantum számítógépek fejlődése szép lassan megállíthatatlannak tűnik. Habár a fejlődés lassú és fokozatos, és talán még nem érte el azt a szintet, hogy egyértelműen kvantum előnyről vagy kvantum fenyegetettségről beszéljünk, előreláthatóan egy évtizeden belül ez megvalósulhat. Jelen cikkünkben ennek a quantum rizikónak a pénzügyi infrastruktúrára gyakorolt lehetséges hatásait, illetve a lehetséges megelőzési lehetőségeket viszgáljuk.
A kvantumszámítógépek működése kvantum mechanikai elvekre épül. Amennyiben elég kis részecskékkel foglalkozunk, például fotonokkal vagy elektronokkal, akkor a Newtoni mechanika kevésbé használható, helyette az ilyen részecskék hullám-részecske kettősség kell figyelembe venni. Ennek elmélete meglehetősen komplex és helyenként még nem is teljesen kidolgozott, praktikusan ez azonban azt jelenti, hogy az elemi részecskéket bizonyos helyzetekben hullámként tudjuk legjobban leírni, míg más helyzetben inkább valamiféle fizikai testnek célszerű elképzelni. Azért, hogy az elméleti és fizikai komplexitást valamennyire egyszerűbb módon kezelhető legyen számítástechnikai szinten is, bevezettek egy új absztrakt fogalmat az úgynevezett qubit-et. A qubit abban különbözik egy normális bittől, hogy amíg egy normális bit csak 0 vagy 1 értéket tud felvenni, addig egy qubit egyszerre veszi fel az összes 0 és 1 közötti értéket. Ezt hívjuk szuperpozíciónak, lényegében az elemi részecske hullámtermészetét fejezi ki. Amennyiben egy szuperpozióban lévő részecskét, qubit-et megmérünk, akkor viszont “összeomlik” az állapota és 0 vagy 1 lesz.
A kvantumszámítógépek és qubitek segítségével többféleképpen építhetünk fel algoritmusokat. Az egyik legegyszerűbb esetben a qubitek között valamiféle speciális determinisztikus kapcsolat található meg, melyet összefonódásnak (entanglement) nevezünk. Segítségével a qubitek között áramkörökhöz hasonló kapcsolatok hozhatók létre, melyek segítségével komplexebb algoritmusokat és számításokat is megvalósíthatunk. A következő ábrán egy egyszerű kvantum áramkör látható.
A kvantum algoritmusok előnye abban jelentkezi, hogy nagyfokú módon párhuzamosan képes lefuttatni egyes feladatokat. A qubitek szuperpozíciójának következtében exponenciálisan több információt képes tárolni és jól konstruált algoritmusok esetén exponenciálisan gyorsabb, ez azonban egyenlőre nem mindenhol lehetséges. Amennyiben egyértelműen sokkal gyorsabb algoritmusokat valósíthatunk meg kvantum számítógépekkel mint klasszikus számítógépekkell, akkor beszélünk kvantum előnyről (quantum advantage).
Kvantum algoritmusokat előreláthatólag sokféle területen lehet használni, a főbb lehetséges alkalmazási irányok:
- Szimuláció és optimalizáció: a legígéretesebb iránya a kvantum algoritmusoknak a különböző komplex szimulációk és optimalizációk futtatása.
- Biológiai és molekuláris szimulációk futtatása, például gyógyszerek kutatásához.
- Pénzügyi és piaci szimulációk.
- Logisztikai rendszerek és ellátási láncok optimalizálása.
- Időjárás előrejelzés.
- Gépi tanulás és mesterséges intelligencia.
- Kriptográfia, quantum kriptográfiai algoritmusok, és klasszikus kriptográfiai algoritmusok feltörése.
A pénzügyi infrastruktúra quantum biztonsága és kockázatai szempontjából ez az utolsó kategória ami kritikusnak számít. A probléma különösképpen kritikus lehet a pénzügyi infrastruktúrával, mind a centralizáltnál, mind pedig a decentralizáltnál, mivel ezek a rendszerek meglehetősen kritikus alkamazásokat futtatnak. Ilyen alkalmazás például a különböző fizetési és elszámolási rendszerek, bankolás, ATM-ek, hitelkártya rendszerek és a tőzsdei infrastruktúra. A decentralizált pénzügyi világban pedig a kriptovaluták és a tokenizáció tekinthető meglehetősen kritikusnak.
A tudomány jelenlegi állása szerint két kvantum algoritmus tekinthető meglehetősen problematikusnak a pénzügyi infrastruktúra biztonsága szempontjából:
- Shor algoritmusa számos nehéznek (exponenciális) gondolt matematikai problémát képes hatékonyan (polinom időben) megoldani. Ilyen problémák például a prím faktorializálás, vagy az elliptikus görbén való hatványozás. Sajnos ezen problémák képezik az alapját a legtöbb napjainkban használ kulcs-csere protokollnak, nyilvános-titkos kulcsú titkosításnak és digitális aláírásnak, melyek lényegében a pénzügyi infrastruktúra alapját képezik. Mihelyt megfelelő méretű quantum számítógépeink lesznek, ezek a kriptogáfiai protokollokat fel lehet törni.
Természetesen jelenleg nem állnak rendelkezésre elég hatékony qunatumszmáítógépek, azonban a probléma sajnos nem elhanyagolható. Elképzelhető ugyanis egy úgynevezett tárold le most, titkosítsd vissza később (store now, decrypt later) támadási forma, ahol hackerek a pillanatnyilag titkosított és feltörhetetlen adathalmazt letárolják, majd ha a megfelelő méretű quantum számítógépek rendelkezésre állnak, akkor visszatitkosítják. Természetesen ez lehet, hogy 5-10-15 év múlva lesz, de ettől függetlenül elképzelhető, hogy így is kritikus adat szivárog ki.
- Grover algoritmusa: Segítségével egy nagyméretű tömb adott elemét tudjuk gyorsabban megtalálni mint klasszikus számítógépekkel. Használatával például kriptográfiai hash függvényeket (digitális ujjlenyomat képző függvényeket) vagy szimmetrikus titkosítást lehet gyorsabban feltörni. Ennek az algoritmusnak a jelentősége azonban csekélyebb mivel, bár gyorsabbak, de nem lényegesebben gyorsabbak (lineáris lépésszám helyett négyzetgyök). Így az esetek nagy részében a kriptográfiai algoritmusok minimális változtatásával, például nagyobb kulcsméret, a Grover algoritmus nem jelent valós kvantum veszélyt.
Természetesen felmerül a kérdés, hogy mit lehet tenni a kvantum veszély és rizikó csökkentésének vagy megszüntetésének érdekében. A két lehetséges megoldást a kvantum vagy kvantum rezisztens algoritmusok használata jelentheti:
- Kvantum rezisztens kriptográfiai algoritmusok (post kvantum kriptográfia): Olyan klasszikus számítógépeken futó kriptográfiai algoritmusok, melyekről pillanatnyilag úgy gondoljuk, hogy kvantumszámítógépekkel sem oldhatóak meg gyorsan. Az ilyen megoldások jellemzően valamilyen kvantum rezisztens nehéz matematikai problémára épülnek, mint például háló, kód vagy absztrakt algebrai elmélet. A konkrét kriptográfiai megoldások kidolgozása egy nehéz és hosszú folyamat, éppen ezért a NIST (National Institute of Standards and Technology) egy többfordulós éveken tartó szabványosítási folyamatot hirdetett ki a legjobb post kvantum kriptográfiai algoritmusok megtalálására.
- Kvantum kriptográfia: Kvantumszámítógépeken futó kriptogárfiai algoritmusok. Ennek az iránynak a nyilvánvaló nehézsége, hogy még nem állnak rendelkezésre megfelelő teljesítményű kvantumszámítógépek. Ennek ellenére léteznek már kvantummechanikai alapokon működő megoldások például kulcs generálásra vagy kulcs cserére (QKD - quantum key distribution).
Természetesen a legfontosabb kérdés, hogy mikor állnak rendelkezésre olyan kvantumszámítógépek, melyek tényleges rizikót jelentenek. Erre nehéz válaszolni, természetesen léteznek már kvantum hardwarerek 1000 qubit fölött is, ezek azonban nem elég nagyok ahhoz, hogy tényleges fenyegetést jelentenek a jelenlegi pénzügyi infrastruktúrában használt kriptográfiára. További nehézséget okoz az, hogy qubitek mennyire futnak stabilan vagy hiba nélkül. A legtöbb szakértő azonban egyetért abban, hogy egy évtizeden belül a kvantumszámítógépek tényleges fenyegetést jelenthetnek. Tekintve, hogy mind a kriptográfia a pénzügyi infrastruktúra viszonylag lassan változó területek, nem korai felkészülni ezen kockázatok kezelésére.