Jei kada nors turėjote sandorį su „Bitcoin“, galbūt patyrėte valandos (blogiausiu atveju – dienos) operacijų laiką. Tai tampa įprasta, kad Bitcoin turi 150 tūkst. + nepatvirtintų operacijų nevykdomi darbai esant dideliam sandorių kiekiui, ir kai mes tai susiejame su savo didžiuliais mokesčiais, įdomu, kaip jūs kada nors jį panaudosite sumokėti už tą 5 dalių valgį KFC.
Čia padės žaibų tinklas. Ši koncepcija yra Thaddeuso Dryjos ir Josepho Poono idėja, o duetas jai pateikė a Baltas popierius Jei nesate labai linkę skaityti ilgą popierinę kreidą, pilną technikos žargono, čia jums išdėstysime čia.
Kas yra žaibo tinklas?
Pagrindiniu lygmeniu žaibo tinklas yra metodas, skirtas Bitcoin vartotojams keistis valiutos verte ne Bitcoin blokų grandinėje. Tai atliekama naudojant kelis sudėtingus algoritmus, kurie sąveikauja su pagrindiniu „Bitcoin“ scenarijumi, ir tai leidžia, tiesa, žaibiškai mokėti už sandorio mokesčių dalį. Kaip tokia, ji buvo pristatyta kaip būtinas mastelio keitimo įrankis, kurio reikės Bitcoinui, jei jis ateityje norės būti perspektyvia mokėjimo galimybe. Ši praktika gali apimti kryžmines atomines apsikeitimo sandorius. Šie apsikeitimo sandoriai praktikoje yra vienodi, išskyrus tai, kad jie vyksta tarp dviejų skirtingų valiutų / blokų. Čia išsamiau apžvelgiame atominius apsikeitimo sandorius.
Dabar, kai apžvelgėme pernelyg paprastą paaiškinimą, atėjo laikas pateikti ilgesnį paaiškinimą.
Žaibo tinklas: kaip jis veikia
Dvišalio mokėjimo kanalo atidarymas
Norėdami pradėti naudoti žaibo tinklą, norėtumėte nustatyti mokėjimo kanalą. Mokėjimo kanalai yra operacijų būdas, kuriuo žaibo tinklas perduoda vertę. Norėdami jį sukurti, turite atidaryti šio kanalo operaciją tiesiai „blockchain“.
– Bet aš maniau, kad sakėte, kad visa tai vyksta ne grandinėje? Nesijaudinkite – vis tiek tai daro, bet pirmiausia turite pranešti „Bitcoin“ tinklui, kad atidarote sandorį. Kai tai padarysite, jūs ir kita šalis, su kuria sandoris sudarysite, išsaugosite savo kanale atliktų mainų balansą. Operacijos ir atnaujinti sąskaitų likučiai bus įrašyti į šią knygą kiekvieną kartą, kai bus pervedamos lėšos, o atlikę verslą kanale, jūs transliuosite galutinį rezultatą „blockchain“, kad uždarytumėte paskyrą..
Kelių parašų piniginės
“Taigi, jei mokėjimo kanalai vyksta ne grandinėje, kur ir kaip valdomos lėšos, kol jos bus įrašytos į blokų grandinę?” Koks išvaizdus klausimas. Norėdamos naudotis mokėjimo kanalu, abi šalys turi nusiųsti savo lėšas kelių parašų piniginės adresu.
Tarkime, Molly ir Steve’as padarė statymus dėl „Super Bowl“ rezultato. Kiekvienas iš jų laimi po 1 BTC ir nori įsitikinti, kad kitam laikosi sandorio pabaigos, todėl abi lėšas jie perveda į kelių parašų piniginę. Ši piniginė veikia kaip seifas indėliams, o privačių raktų operacijoms rinkinys veikia kaip deriniai, leidžiantys bet kuriai šaliai pasiekti lėšas. Lėšos liks užrakintos piniginėje, kol:
- tiek Molly, tiek Steve’as pasirašo užbaigiamą sandorį šiais privačiais raktais,
- viena šalis nusprendžia pati užbaigti sandorį, arba
- pasiekiamas terminas ir operacija pateikiama automatiškai. Kai tai atsitiks, lėšos bus perkeltos atgal į atskiras bet kurios šalies pinigines.
Kad sėkmingai sukurtumėte kelių parašų piniginę, Molly ir Steve’as sukuria vertę (iš esmės slaptą raktą operacijoms atrakinti), kurią paskui sukuria maišos ir siunčia vieni kitiems. Laikykitės šios informacijos – tai labai svarbu norint suprasti, kaip vėliau vyksta įsipareigojimų sandoriai.
Kai Molly ir Steve’as perves atitinkamas lėšas į kelių parašų piniginę, jie galės sukurti vadinamąjį atviras sandoris ir transliuoti jį į „blockchain“. Kai tai bus transliuota, bus sukurta serija įsipareigojimų sandoriai yra naudojami valdyti lėšas.
Vertės perdavimas vykdant įsipareigojimų sandorius
Pasirodo, Molly laimėjo lažybas, tačiau ji yra maloni, todėl sako, kad Steve jai skolinga tik už 0,5 BTC, o ne 1. Norėdami inicijuoti šio turto pervedimą, Molly ir Steve atnaujintų savo atitinkamus likučius mokėjimo kanale, pasirašydami įsipareigojimą. sandorį. Įsipareigojimo sandoriai paskirsto lėšas abiems dalyviams pagal jų abipusį susitarimą – iš esmės šios operacijos veikia kaip TĮĮ, kurios bus išmokėtos uždarius mokėjimo kanalą.
Pavyzdžiui, norėdama pasikeisti vertėmis, Molly pasirašo sandorį, kuris siunčia 1,5 BTC sau ir, 5 – nauju kelių parašų piniginės adresu. Tada ji pasirašo šį sandorį ir išsiunčia jo maišos Steve’ui. Savo ruožtu Steve’as pasirašo įsipareigojimų sandorį, kad atspindėtų Molly, kur jis siunčia .5 BTC sau ir 1,5 – kitai kelių parašų piniginei. Tada jis pasirašo tai ir išsiunčia šio sandorio maišos Mollyi.
Taigi, mes turime a) originalų 2 BTC, sėdintį mokėjimo kanalo kelių parašų piniginėje, b). 5 BTC, sėdinčius kelių parašų piniginėje, kurią reikia sumokėti Steve’ui, ir c) 1,5 BTC, sėdintį kelių parašų piniginė, kurią turi sumokėti Molly. Faktiškai, kai kuri nors šalis išsiųs atitinkamus operacijų maišos atvejus, atsiskaitymo kanalo kelių parašų balansas bus atnaujintas, nes abi šalys sutiks dėl pervedimo. Alta, valiutos buvo pakeistos nenaudojant „Bitcoin“ blokų grandinės.
Šių piniginių reikšmes galima atrakinti tik trimis sąlygomis:
- baigiasi tam tikras laikas,
- bet kuri šalis atrakina lėšas iš savo sukurtų kelių parašų piniginių su piniginės verte (raktu), arba
- abi šalys nusprendžia kartu pasirašyti sandorį.
Svarbu pažymėti, kad jei viena šalis nuspręs uždaryti kanalą ir pasirašyti operaciją viena, ji turės laukti iš anksto nustatyto laiko (diktuojamo pagal sutartį) laiko nuo sandorio pasirašymo. gauti jo (jos) lėšas. Tai gali atrodyti per daug, tačiau būtina užkirsti kelią sukčiavimui mokėjimo kanalais – šiek tiek daugiau apie tai.
Pasikartojantys mokėjimai / kanalo atnaujinimas
Ką daryti, jei Molly ir Steve’as nori nuolat atnaujinti kanalą arba atlikti daugiau nei vieną mainą?
Norėdami tai iliustruoti toliau, tarkime, Steve’as mokėjo Molly už pasikartojančią paslaugą, pavyzdžiui, už kirpimą. Steve’as į savo kelių parašų piniginę įneša 0,2 BTC, ir kiekvieną kartą, kai apgauna spynos, jis pasirašo Molly įsipareigojimo sandorį už 0,001 BTC ir išsiunčia jį nauju kelių parašų adresu. Norėdami tai padaryti, jis turėtų pakartoti veiksmus, kuriuos mes ką tik ėjome, be to, atidarydamas operaciją tinkle, kaip tai įvyko iki to laiko, kai pasirašoma pirmoji įsipareigojimo operacija.
Taigi, norint apdoroti pasikartojančius mokėjimus, kelių likučių sąskaitų likučiai turi būti atnaujinami kiekvieną kartą. Norėdami tai padaryti, kiekvieną kartą, kai Steve’as šukuosena, jis sumokėjo naują pinigų sumą į kelių parašų piniginę, kurią sukūrė mokėti Molly. Bet tai darydamas jis sukuria naują vertę ir naują maišos šiam naujam sandoriui. Molly daro tą patį ir, kai abi šalys keičiasi naujais maišais, jos taip pat įtraukia ankstesnes ankstesnio sandorio vertes (raktus).
Iš tikrųjų tai užtikrina, kad nė viena šalis negali apgauti kitos. Jei uždaręs mokėjimo kanalą, Steve’as bando apgauti Molly iš jos mokėjimų, transliuodamas seną operacijos sumą, jis turi problemų.
Pavyzdžiui, jei uždaręs kanalą, Steve’as skolingas Molly 1 BTC iš pradinio 2 BTC, kurį jis deponavo, bet jis pasirašo pradinį sandorį, kad gautų pradinę sumą, Molly gali jį paskambinti, nes ji turi visų ankstesnių operacijų vertes. . Be to, Steve’as turi laukti, kol jo sandoris bus įvykdytas pagal abiejų šalių sutartą laiką prieš vykdant verslą, o Molly’s yra greitas. Taigi, jei ji mato, kad už paslaugas buvo sumokėta 0 BTC, ji gali pasirašyti 2 BTC daugia parašo piniginėje, nes turi šios operacijos raktą ir galimybę atrakinti savo lėšas..
Taigi, jei viena šalis bando apgauti kitą, kitai šaliai priskiriamos visos kenkėjiškos šalies lėšos. Ši nuobauda yra skirta atgrasyti blogus veikėjus nuo piktnaudžiavimo mokėjimo kanalo bendru lėšų paskirstymu.
Be to, mazgų operatoriai ir kalnakasiai, pastebėję šį netinkamą žaidimą, gali veikti Molly vardu, jei ji nėra internete, kad pastebėtų sukčiavimą. Už atlygį šiems angelams sargams už paslaugas suteikiama premija (mokestis) sandorio valiuta.
Mokėjimo kanalo uždarymas
Kai Molly ir Steve’as yra pasirengę uždaryti savo sąskaitas, jie tiesiog pasirašo sandorį savo asmeniniais raktais, kad galutinis sąskaitos likutis būtų transliuojamas „blockchain“. Šiuo metu kalnakasiai patikrins, kaip įprasta, ir išsaugos viešojoje knygoje. Kaip ir atidarymo sandorio atveju, ši uždarymo operacija yra vienintelė sąveika, kurią bet kuri šalis turės su Bitcoin blokine grandine.
Arba dvi šalys taip pat galėtų nustatyti sutarties galiojimo laiką. Pavyzdžiui, naudodamiesi „nLockTime“ algoritmu, jie galėjo atidaryti mokėjimo kanalą 30 dienų, po kurio laiko kanalas bus uždarytas, o galutiniai likučiai bus transliuoti į blokų grandinę. Kiekvieną kartą, kai šalys nori atnaujinti savo likutį, galiojimo laikas sutrumpėja. Taigi, jei Molly ir Steve’as per sezoną atlikdavo statymus dėl kelių futbolo rungtynių, kiekvieną kartą, kai buvo sumokėta lažybos, „nLockTime“ sutartis turėtų naują sutrumpintą galiojimo laiką (pvz., Jei pirmasis įsipareigojimų sandoris būtų įvykdytas per 30 dienų antrasis sandoris sumokėtų per 29, tada trečiasis sumokėtų per 28 ir t. t.).
„NLockTime“ sutarčių tikslas yra paprastas: ji atnaujina sąskaitų likučius ir neleidžia vienai šaliai suklastoti sąskaitos išrašo. Kaip ir anksčiau, kiekvieną kartą, kai susitarta dėl įsipareigojimo sandorio, senasis sąskaitos likutis pakeičiamas nauju, o kiekviena dalyvaujanti šalis turi šio naujo balanso įrašus, taip pat seną operacijų vertę (raktą). Jei kuri nors šalis bandys apgauti kitą, sukčiaujanti šalis bus nubausta.
Daugiakanaliai mokėjimai ir sutrumpinto laiko sutartys
“Ką daryti, jei Molly ir Steve’as nori siųsti Bitcoin vienas kitam, bet jie neturi atidaryto mokėjimo kanalo?” Na, jie gali eiti per tarpininką. Šį vaikiną vadinsime Čaku – pasakyk Čakui labas.
Pasirodo, Molly ir Steve’as su Chucku atidarė mokėjimo kanalus, todėl užuot atidarę naują kanalą, jie nusprendžia mums savo atitinkamus dvikrypčius mokėjimo kanalus prekiauti per Chucką..
Dabar tai teoriškai yra patikima prekyba, todėl gudrybė palengvina keitimąsi saugiu būdu. Norėdami tai padaryti, „Lightning Network“ įgyvendina „Hash Time Locked Contracts“ (HTLC).
Tarkime, Molly nori duoti 0,5 BTC Steve’ui, nes ji tokia tikrai labai maloni – rimtai, koks persikas. Norėdami tai padaryti, Steve’as turi sukurti kriptografinių skaičių eilutę, vadinamą verte (iš esmės patvirtinimo kodu arba raktu). Tada jis sukuria šios vertės maišos, kurią reikia siųsti Mollyi. Norėdami supaprastinti šią rašytinę iliustraciją, reikšmę atvaizduosime V, o maišos – H.
Kai Molly gauna H, ji pasidalina ja su Chucku. Šiuo metu Molly atsiųs Chuckui 0,5 BTC tik tuo atveju, jei jis atskleis V. Norėdami gauti V, Chuckas mainais už V. Steve’ui atsiunčia 0,5 savo BTC. Turėdamas šį numerį, jis išsiunčia V Molly, kuri tada siunčia 0,5 BTC į Čaką. Ir jūs turite tai – Molly efektyviai pervedė 0,5 BTC Steve’ui.
Jei pasiklydote, štai kaip sumažėjo:
Steve’as sukuria V ir H → Steve’as siunčia H į Molly → → Molly siunčia H į Chucką → Chuckas siunčia BTC Steve’ui → Steve’as siunčia V į Chucką → Chuckas siunčia V į Chucką → Chuckas siunčia V į Molly → Molly siunčia BTC Chuckui
Taigi vertė (V) yra maišos (H) patvirtinimo kodas / raktas, kuris reiškia operacijos kvitą / užraktą.
“Tai viskas puiku ir netikru, bet iš kur Molly žino, kad Chucko jai siunčiama vertė yra teisėta, o kas Steve’ui neleidžia pabėgti su BTC Chucku?”
Vėlgi, geri klausimai. Kaip „nLockTime“ išlaiko visus sąžiningus dvikrypčiuose mokėjimų kanaluose, „Hash Time Locked Contracts“ suteikia šalims atsakomybę už šį modelį.
Naudojant HTLC, operuojami „Bitcoin“ fondai vėl užrakinami kelių parašų piniginėje ir juos galima atrakinti tik a) pateikus vertę (V) ir maišos (H) arba b) pasibaigus skirtojo laikotarpio sutarčiai..
Tiesą sakant, tai reiškia, kad kai Molly ir Chuckas susitaria, kad Molly sumokėtų Steve’ui, ji užrakina „Bitcoin“, kurią ji yra skolinga Chuckui, kelių parašų piniginėje, naudodama HTLC. Kai Chuckas sumoka Steve’ui ir gauna V, tada jis gali įvesti V ir H į HTLC, kad būtų kompensuota su sutartimi įsipareigojusia „Bitcoin Molly“. Arba, jei Chuckas nesugebės pasibaigti sandorio pabaigos ir sutartis pasibaigs, tarkime, po savaitės, tada Molly’s Bitcoin atlaisvinamas ir grįš į asmeninę piniginę..
Ta pati sąveika vyksta ir paties Chucko bei Steve’o mokėjimų kanale. Chuckas negali atsisakyti savo „Bitcoin“ Steve’ui, kol Steve’as neatskleidžia V. Kai Steve’as atskleidžia V į daugiasignę sutartį, Chuckas dabar turi V, o Steve’as gauna savo BTC.
Teoriškai šis procesas galėtų būti vykdomas keliais mokėjimo kanalais ir keliais asmenimis.
Apvyniojimas: kodėl svarbu žaibo tinklas
Tai komplikuota tema. Sintetinti šią informaciją į virškinamus gabalėlius buvo pakankamai sunku, todėl džiaugtis, kad taip ilgai laikėtės.
Dėl TL; DR santrauka: „Žaibo tinklas“ yra grandinės nepriklausanti sistema, leidžianti asmenims kelis kartus sukeisti valiutas, nesuderinant visų šių operacijų. Vietoj to, blokų grandinėje įrašomos tik dvi operacijos (ir atidarymas bei uždarymas), o visos kitos operacijos, kiek jų gali būti, yra apdorojamos per antrinį grandinės grandinių grandį..
Yra keli pagrindiniai šio modelio pranašumai:
Veiksmingos mikrotransakcijos: Žaibo tinklas yra skirtas mikrotransakcijoms. Užuot turėjęs mokėti per didelius mokesčius, kurie gali nusverti perduodamą vertę, „Apšvietimo tinklas“ leidžia vartotojams siųsti mažas valiutos sumas vienas kitam, nereikia tiesiogiai eiti per „Bitcoin“ tinklą. Jie vis tiek turi mokėti mokestį už mazgo veikimą, tačiau jis yra nedidelis, palyginti su įprastu „Bitcoin“ tinklo mokesčiu.
Mastelio ir delsos sprendimai: Einant kartu su ankstesniu punktu, „Lightning Network“ sumažins tinklo išpūtimą. Sumažinus grandinės sandorių skaičių, kalnakasiams tenka mažiau darbo, o tai savo ruožtu reiškia greitesnį sandorių laiką ir mažesnius mokesčius. Jei nereikia atlikti kiekvienos operacijos „blockchain“ viešojoje knygoje, tinklas veiktų daug sklandžiau. Be to, „Lightning Network“ operacijos būtų daug greitesnės nei grandinėje.
Jums tikriausiai įdomu, kaip bet kuris vidutinis vartotojas galėtų tinkamai pereiti prie mūsų ką tik nurodyto daugiapakopio proceso. Na, Dryja, Poonas ir kiti dirba su programomis / sąsajomis, kurios jums išsprendžia visus sudėtingus veiksmus – tereikia paspausti kelis mygtukus.
Šiuo metu „Lightning Networks“ yra kuriami „Bitcoin“, „Litecoin“ ir „Vertcoin“. Žaibo tinklas vis dar veikia testnet, šio leidinio paskelbimo metu dar nepatvirtinta pagrindinė grynoji paleidimo data.