Villám hálózat minden technikai részletet

Villám hálózat minden technikai részletet

Talán a Lightning Network a Bitcoin számára a leginkább várt technológiai újdonság. Feltételezzük, hogy ez a fizetési rendszer, amelynek elgondolását egy évvel ezelőtt terjesztették elő, lehetővé teszi, hogy hatalmas számú tranzakciót végezzenek majdnem ingyen a bitcoyne-blokádon kívül, és ez számára nem kell feláldozni a biztonságot.

A fogalom megfelelő megértéséhez folyamatosan meg kell vizsgálnia az összes beépített elemet. Először is derítsük ki, mely elemek játszanak szerepet egy kétirányú fizetési csatorna létrehozásában - ami a Lightning Network első fontos eleme.

1. elem: Nem megerősített tranzakciók

Az első megközelítésben azt mondhatjuk, hogy a Lightning Network a szokásos bitcoin-tranzakciókon alapul, csak ezeket a tranzakciókat nem továbbítják a bit hálózatba (legalábbis azonnal). Ehelyett helyi felhasználói csomópontokon tárolódnak, de bármikor elküldhetők a hálózathoz.

Villám hálózat minden technikai részletet

A fekete egy megerősített tranzakciót jelöl. Kék tranzakciót küldhet a hálózatra az Alice, de csak akkor, ha az előző tranzakciót megerősítette. A vörös tranzakciót Bob küldheti a hálózatra - ugyanolyan feltételekkel: ha az előző tranzakciót megerősítették. Ebben a példában Alice bármikor jel és adás a hálózatnak a nyugtázott tranzakciós küldött Bob Bitcoin 2, és csak azután, hogy Bob lesz, hogy aláírja a tranzakciót, amely elküldi a Bitcoin 1 Carol.

2. elem: kettős hulladék védelmi mechanizmus

Villám hálózat minden technikai részletet

Ebben a példában az Alice-nak ki kell választania azt a tranzakciót, amelyet aláírni és elküldeni a hálózathoz. Nem tudja megerősíteni mindkét tranzakciót.

3. elem: több aláírás

Villám hálózat minden technikai részletet

4. elem: Ideiglenes zárak

A Villámhálózat negyedik eleme átmeneti zárak. Lehetővé teszik a bitcoinok blokkolását a kimenetben, hogy azok csak egy idő után tölthetők le (a következő bemenet bekapcsolása).

Az ideiglenes zárolások két típusból állnak: abszolút, vagy CheckLockTimeVerify (CLTV) és relatív, vagy CheckSequenceVerify (CSV). A CLTV zárolása a jövőben bizonyos (többé-kevésbé) konkrét pillanatra zárul: a tényleges időig vagy egy adott blokkig. CSV-ben relatív időt használnak. Amint a CSV kimenet a blokkban van rögzítve, bizonyos számú blokkot kell létrehozni, mielőtt ezek a bitmonok elkölthetők.

Villám hálózat minden technikai részletet

A Villámhálózatban a CSV-zárat (amelyet az óra órákban jelez) gyakran késésként használják.

5. elem: hasisok és titkok

A kriptográfiai primitívek maguk a bitcoin alapblokkjai közé tartoznak, de másokat használnak a villámhálózatban.

Röviden, az "érték" vagy a "titok" egy hosszú egyedi számsorozat, amelyet szinte lehetetlen kitalálni még a nagyon erős számítógépeken is. Ez a titok "hashed" - konvertálható egy másik számsorba, vagy "hash" -ra. A trükk az, hogy bárki, aki ismeri a jelentést, könnyen megkaphatja a hashát, de a fordított lehetetlen: a hasítás egyirányú művelet.

Ez a trükk használható a Bitcoinban is - újra, hogy blokkolja a bitcoinokat. Például beilleszthet egy hashot egy tranzakció kimenetébe azzal a követelménnyel, hogy bárki, aki el akarja tölteni, meg kell adnia a megfelelő hash értéket a bevitelben.

Villám hálózat minden technikai részletet

Ebben a cikkben a titkot színkulcsként ábrázolják, és a megfelelő hash azonos színű zár.

Az első feladat: kétirányú fizetési csatornák

A fizetési csatornák elgondolását a Villámhálózat előtt vitatták meg. Természetesen a hagyományos fizetési csatornák hasznosak, de korlátozottak: egyirányúak. A Lightning Network legfontosabb jellemzője a kétirányú fizetési csatornák "bizalom nélkül".

Kétirányú fizetési csatorna létrehozásához a feleknek először meg kell állapodniuk a nyitó ügyletről. Ez a tranzakció határozza meg a betétek összegét, amelyeket mindkét félnek meg kell fizetnie.

Tegyük fel, hogy Alice Boba-t egy bitkoinnak akarja elküldeni. Alice és Bob fognak fizetni egymást gyakran, ezért úgy döntenek, hogy nyit egy kétirányú csatorna kifizetések (talán Bitcoin - ez túl sok a fizetési csatorna, mert ez jobban megfelel a mikro, de nem lehetetlen).

Emellett Alice és Bob létrehoznak egy titkot (egy sor számot), és megkapják a hashját.

Alice aláírja a tranzakció elkötelezettségét, de nem fordítja le a hálózatot! Ehelyett Bob elküldi.

Bob jelzi a tranzakció iránti elkötelezettségét, és elküldi Alice-nak.

A titkok és kötelezettségek cseréje után Alice és Bob aláírják és elküldik a bit-net hálózatba egy nyitó tranzakciót, amelyet a szekrényben rögzítenek. Ezt követően a csatorna nyitottnak tekinthető.

Villám hálózat minden technikai részletet

A valóságban azonban egyik oldal sem jelez vagy továbbítja a tranzakciót a hálózathoz, és ez a legfontosabb a fizetési csatornában.

Nem sokkal később, Bob vissza akar térni Alice 1 bitokoyn-hoz. Frissíteniük kell a csatorna állapotát, és erre két dolog van.

Ezután Alice és Bob megosztják titkaikat az első forgatókönyvből.

Ezt követően Alice és Bob aláírhatják és elküldhetik a hálózathoz a vett tranzakciós kötelezettségeket. Bárki, aki ezt megteszi, képes lesz saját 5 bitokonovját 1000 blokkon át a második oldalon azonnal elérni.

De mi megakadályozza, hogy Bob küldjön egy régi tranzakciós kötelezettséget a hálózathoz? Úgy tűnik, ebben az esetben 6 bitkoy-t kell kapnia ...

Természetesen ez megakadályozza az első titkát, amelyet éppen Alice-nek adott. Bob már nem használhatja a régi commit tranzakciót, mert Alice ismeri az első titkát. Ha Bob aláírta és elküldte a régi kötelezettséget a hálózathoz, akkor azonnal 4 bitet küldene Alice-nak, és ő maga is el tudná szerezni a 6 bitcoinját csak 1000 blokkban. Időközben Alice maga is el tudta szerezni a hat bitkoyont, mert ismeri Bob titkát! Nos, hiszen Bob ismeri az Alice titkát, az ellenkező irányban működik: ha Alice megpróbálja elküldeni a régi elkötelezettségét a hálózathoz, Bob el tudja venni a Bitcoinokat a csatornából.

Ez azt jelenti, hogy Alice és Bob gazdaságilag érdekli a szabályokat követni, és csak tranzakciókat fordítani a csatorna aktuális állapotára a hálózathoz.

Villám hálózat minden technikai részletet

A kétirányú fizetési csatornának ezt a rendszerét ki kell bővíteni, hogy a kifizetések a hálózaton keresztül történjenek.

Tegyük fel, hogy most Alice 1 bitkoyn Carol-t akar küldeni. Ehhez Alice és Carol létrehozni fizetési csatornát közöttük, de kiderül, hogy van egy csatorna között Bob és Carol, így Alice is fizethet Carol Bob: akkor küldjön 1 Bitcoin Bob, Bob és Carol fizetni.

Azonban, Alice megbízik Bob és Carol - attól tart, hogy ha ez ment 1 Bitcoin Bob soha nem fog fizetni Carol vagy fizet, de Carol azt mondta, hogy nem kapott pénzt, és Alice nem tudja, hogy ezek közül melyik mond igazat .

Így Alice készen áll arra, hogy Bob 1 bitcoint csak akkor tudja fizetni, ha biztos abban, hogy ő viszont fizetni fogja a Carol 1 bitokoyn-t. Ez egyszerű kriptográfiai protokollnak köszönhető.

Amikor Alice Carol-nak küld 1 bitcoint, megkéri Carol-t, hogy hozzon létre egy értéket (egy véletlenszerű sorszámot), és mondja el neki a hashját. Arra is kéri Carolt, hogy értesítse Bobot, hogy megkapja ezt az értéket 1 bitcoinért. Ezután Alice azt mondja Bobnak, hogy elküldi neki 1 bitcoint, ha megadja neki azt az értéket, amely megfelel a Carol-tól kapott hashnak. Bob elfogadja Carol ajánlatát, és elküldi az 1 bitokoyn-ot, és ennek kap értéket. Ezt követően Bob tájékoztatja Alice-t. Alice tudja, hogy Bob megvásárolta ezt az értéket a Carol-tól 1 bitcoinért, és kompenzálja neki a költségeit.

Villám hálózat minden technikai részletet

Ebben az egyszerűsített forgatókönyvben Bob közvetítője még mindig megbíznia kell Alice-ban és Carol-ban. Meg kell bizonyosodni arról, hogy Carol megmondani neki a kívánt értéket cserébe 1 Bitcoin, és azt is meg kell arról, hogy Alice tényleg küldjön neki 1 bitcoin, amint azt mondta neki a kívánt értéket.

Az értékcsökkenési bitkynov becsületességét az értékeken keresztül biztosítani kell az egész hálózaton. Pontosabban, ha Bob elküldi 1 bitcoint Carolnak, akkor garantálnia kell, hogy 1 bitcoint kap Alice-től. Ehhez a hasítással és az ideiglenes blokkolással (HTLC) kapcsolatos szerződéseket használják.

A hasmenéssel és ideiglenes blokkolással kapcsolatos szerződések

Ez azt jelenti, hogy Bobnak két hete van egy tranzakció létrehozása aláírással és értékkel, amely blokkolt bitcoyne-t küld neki. Ez garantálja a tranzakció tisztességességét: Bob kérheti Alice bitmixjét, csak a tranzakcióban megkövetelt értéket, amely Alice-nak (és az egész bit-netnek) ismertté válik. És ha Bob nem biztosítja a megfelelő értéket időben, Alice visszahozza a bitcoyne-t. Ez egyszerű.

Villám hálózat minden technikai részletet

De valójában HTLC-szerződésekre van szükség hálózat szinten.

Mint korábban említettük, a HTLC nem csak Alice és Bob, hanem Bob és Carol is. Ha Carol Bobok 1 bitokoyint igényel, cserébe a kívánt értéket fogja cserélni - ez lesz rögzítve a blokádban. Nos, ha ez a tranzakció befejeződött, Bob garantálja, hogy 1 bitikon van az Alice-tól: erre elegendő hozzáadni a Carol által a HTLC-ben kihirdetett értéket, amelyet az Alicevel kötött. Két csatorna van csatlakoztatva.

Fontos megjegyezni, hogy Bobnak értéket kell szereznie a Carol-tól, mielőtt Alice megkapja a lehetőséget a bitcoyne visszaszerzésére, különben értékes marad, de pénz nélkül. Így a Bob és a Carol közötti HTLC-nek korábban meg kell szűnnie. HTLC mint Aliz és Bob közötti (például, 10 nap és 2 hét között, ugyanezen okból, a szükségességét, hogy blokkoló HTLC CheckLockTimeVerify (CLTV) helyett CheckSequenceVerify (CSV)).

Villám hálózat minden technikai részletet

Ahhoz, hogy a villámhálózat hasznos legyen, csak egyetlen feladatot kell megoldani: mindezt a mondaton kívül kell elvégezni.

Most pedig Alice, Bob és Carol hozzá kell adni a HTLC-t a csatornahoz, így Bob, aki egy értéket vett a Carol-tól 1 bitokon számára, biztosan kompenzálhatja költségeit, miután megkapta az Alice bitcoint.

Ezt már tudjuk, de most a változás. Ezúttal a tranzakció-kötelezettség Alice és Bob tartalmaz egy új üzletet egy Bitcoin (más szóval, a mérlegek vannak elosztva képest 4-5-1 4 Bitcoin Alice, Bob és 5-1 új kiadás).

Ez az új kimenet megfelel a HTLC szerződésnek, és háromféle módon feloldhatja azt.

Először is, ez a kilépés (Alice és Bob elkötelezettségében) feloldja a bitcoint, ha a későbbi tranzakció Bob aláírását és értékét tartalmazza. Így, függetlenül attól, hogy ki írja és küldi a hálózathoz egy tranzakció-elkötelezettséget, - Alice vagy Bob - a kibontás csak Bob, jelezve a kívánt értéket. Van azonban egy kis különbség a két kötelezettség között: ha Bob úgy dönt, hogy lezárja a csatornát, CSV-zárat fog használni, és 1000 blokkot kell várnia. Ha a csatorna lezárja Alice-t, akkor azonnal 1 bitkoyn kap).

Ennek az az oka, hogy Bobnak 1000 blokkot kell várnia, ugyanaz, mint korábban: lehetővé teszi, hogy Alice vegyen be egy bitcoint, ha Bob megpróbálja aláírni és elküldeni a régi csatornaállapotot a hálózathoz. Ez az új kijárat feloldásának második módja: Alice "lopni" pénzt, ha rámutat (a legújabb) Bob titka. De ha megpróbálja becsapni és elküldi a csatorna elavult állapotát a hálózathoz, Bob egy bitcoint kaphat Alice titkát használva (nem is kell egy értéket megadnia).

Végül minden HTLC-ben mindkét elkövetési tranzakció tartalmazza a megszokott CLTV-zárat (amely esetünkben pénzt ad vissza Alice-nak). Ha Bob nem adja meg a kívánt értéket egy meghatározott időtartamra (például azért, mert nem kapta meg Carol-tól), a Bitcoin visszakerül Alice-be.

Mi van a pillanatban?

Alice és Bob tranzakciós elkötelezettséggel rendelkeznek. Ha Alice elküldi a blokk iránti elkötelezettségét, akkor azonnal 5 bitetovábbit küld Bobnek. 1000 blokkot is várhat, és 4 bitet vehet fel. Ráadásul Bobnak 2 hete van az értéke és az 1 bitcoin a HTLC kimenetről (ha nem adja meg az értéket 2 hét alatt, akkor az Alice képes lesz visszatéríteni ezt a bitcoint magának).

Bob bármikor küldhet vonatkozó kötelezettségét blokcheyn és azonnal küldje 4 Bitcoin Alice, és ő tud várni 1000 blokk, és vegye fel az 5. bitcoin (amellett, ahogy imént említett, eltelhet 1 Bitcoin származó HTLC-kimenet, a szükséges érték).

És persze, ha Alice vagy Bob megpróbálja becsapni és elküldeni a csatorna elavult állapotát a hálózathoz, akkor a becsületes oldal képes lesz arra, hogy a csatorna összes bitcoins-ját megkapja.

Villám hálózat minden technikai részletet

Tehát most Bobnak garantálnia kell, hogy képes lesz a bitcoinért cserébe értéket cserélni (ha persze van). Ehhez csak akkor kell aláírnia és elküldenie a hálózathoz az Alice-tól kapott tranzakció-elkötelezettséget, hogy az értéket hozzáadja a későbbi tranzakcióhoz, és küldje el a hálózathoz.

Alice tudja ezt, és Bob nem tudja ellopni a bitkoynját - még akkor sem, ha valahogy megtanulja a jelentést.

Így Alice és Bob megállapodhatnak a fizetési mérlegen kívül a csatornán kívül. Bob egyszerűen átadhatja az értéket Alice-nak, és az Alice frissíti a csatorna állapotát a HTLC szerződés és a timeout nélkül. Így fognak tenni, ha érdekelnek a csatorna karbantartása, mert könnyebb, mint a csatorna állapotának rögzítése a blokkszobában.

Villám hálózat minden technikai részletet

Most meg kell értenünk a villámhálózat valós erejét:

Majdnem mindaz, amit ebben a cikkben tárgyaltunk, soha nem fog blokádba kerülni.

Ha Alice és Bob közös megegyezéssel békésen szeretnék lezárni a csatornát, akkor csak olyan tranzakciót hozhatnak létre, amely mindent felülbírál. mi történt a nyitó tranzakció után. Más szóval, ha példánkban Alice a csatorna lezárását akarja létrehozni, akkor létrehozhat egy tranzakciót, amely 4 bitet fizet neki és 6-ot Bobnak, és kérje Bobot, hogy írja alá ezt a tranzakciót. Bobnak nincs oka elutasítani Alice-t, így szinte biztosan találkozik vele. A tranzakció aláírása és elküldése után a csatorna lezárul.

Így csak a nyitó és záró tranzakciók kerülnek továbbításra a bit-net hálózatba, még akkor is, ha Alice és Bob millió egymillió kifizetéseket tettek közöttük! Amennyire megszabadul az elzáródás, képzeld el.

Villám hálózat minden technikai részletet

Aaron van Wirdum