Bitcoin

Uchambuzi wa kina wa Lightning Network: Usanifu na utekelezaji

TL;DR: Laolu "Roasbeef" Osuntokun anafafanua namna chaneli za Lightning, mfumo wa revocation na HTLC zinavyofanya kazi, na jinsi LND ilivyoundwa. Anaeleza kuwa Pipelining na batching zinaifanya LND kufikisha miamala 1,000 kwa sekunde kwenye chaneli moja. Flare ni mfumo wa routing unaochanganya maarifa ya ndani na node za beacon, ili simu isihitaji kuwa na ramani nzima ya mtandao.

Na emin.de AI Desk

Soma kwa dakika 4

Tafsiri ya mashine kutoka English. Asili ndiyo rejea: Soma asili.

Inapatikana pia kwa Deutsch, English, Türkçe.

Hapa kuna muhtasari wa mazungumzo ya Laolu "Roasbeef" Osuntokun. Muda uliopo kwenye mabano unaonyesha sehemu husika ya mazungumzo hayo.

[00:00:26] Mazungumzo haya yanatoka nje ya dhana za kawaida za Lightning na kuingia kwenye uhalisia wa utendaji wake. Laolu anaelezea itifaki za makubaliano (commitment protocols), jinsi Lightning Network Daemon (LND) inavyojengwa, na mwelekeo wa usambazaji wa malipo (routing) kupitia kitu kinachoitwa Flare.

Channels, revocation na HTLCs

[00:01:27] Kila kitu kinaanzia na chaneli ya malipo (payment channel) inayofanya kazi pande zote mbili. Chaneli hii kimsingi ni akaunti ya amana ya multisig ya 2-of-2 kwenye blockchain ya Bitcoin. Watu wawili wanaweka pesa kwenye muamala huu wa kufadhili (funding transaction). Baada ya kuthibitishwa, wanaweza kufanya miamala mingi nje ya blockchain kadiri wanavyotaka. Wanabadilisha tu jinsi pesa inavyogawanywa kati yao, na main blockchain haioni mabadiliko hayo.

[00:01:51] Ili hii iwe salama, Lightning inahitaji suluhisho la malleability, kama SegWit. Bila hilo, mtu anaweza kubadilisha ID ya muamala wa kufadhili kabla haujathibitishwa. Hapo sasa, miamala ya ahadi (commitment transactions), zile zinazokuruhusu kurejesha pesa yako, hazitakuwa halali tena, na pesa inaweza kukwama milele.

[00:03:01] Miamala ya nje ya blockchain ni ahadi tu, kwa hiyo lazima kuwe na njia ya kumzuia mtu asichapishe hali ya zamani (old state) ambapo alikuwa na pesa nyingi zaidi. Lightning inafanya hivi kwa kutumia revocation. Kila wakati kuna hali mpya, ya zamani inafutwa kwa kutumia ufunguo wa siri. Ikiwa upande mmoja utajaribu kudanganya na kuchapisha hali ya zamani, upande mwaminifu unaweza kutumia siri hiyo na kuchukua pesa yote iliyopo kwenye chaneli hiyo kama adhabu.

[00:04:42] Ili kumlipa mtu ambaye huna naye chaneli ya moja kwa moja, mtandao unatumia Hash Time-Locked Contracts (HTLCs). Malipo yanafungwa kupitia mnyororo wa watu. Mpokeaji anaweza kudai pesa hiyo kwa kuonyesha siri, yaani preimage. Akishaionyesha kwa mtu aliyemtangulia, yule naye anaweza kuionyesha kwa aliyemtangulia, na kuendelea, mpaka malipo ya mtumaji wa kwanza yatakapokamilika.

Jinsi nodes zinavyozungumza na jinsi LND inavyokuwa ya haraka

[00:13:33] Kisha Laolu anaingia kwenye Lightning Commitment Protocol (LCP). Hiyo ndiyo lugha inayotumiwa na nodes kuzungumza, peer to peer. Inaruhusu kuongeza HTLCs, kuziondoa na kusaini hali mpya (states). Na ni asynchronous, kwa hiyo si lazima usubiri malipo moja yawe yameisha ndipo uanze lingine.

[00:14:14] Ili kupata kasi ya kweli, LND inafanya pipelining. Updates nyingi za malipo zinaweza kuingia kwenye chaneli kwa wakati mmoja. Nodes zinaweza kupanga updates hizi chini ya saini moja, jambo linalookoa nguvu ya processing na kuruhusu chaneli moja kushughulikia miamala mingi kwa sekunde.

[00:16:02] Inafanya kazi kama TCP kwenye internet. Lightning ina window inayozuia ni updates ngapi za state ambazo peer anaweza kuwa nazo angani bila jibu. Kwa hivyo node moja haiwezi kuijaza node nyingine na updates nyingi kuliko inavyoweza kuhimili. Hii ndiyo revocation window.

Ndani ya LND

[00:21:53] LND imeandikwa kwa lugha ya Go. Laolu alichagua Go kwa sababu inafanya vizuri sana kwenye concurrency, ikiwa na goroutines na channels, na hiyo inafaa sana unapokuwa na maombi ya malipo elfu kadhaa kwa wakati mmoja. Pia inakupa njia safi ya kufanya networking ngumu.

[00:25:24] Ndani yake, daemon imegawanywa katika sehemu kadhaa. RPC Server inachukua maombi kutoka kwa watumiaji kupitia gRPC au REST. Wallet Controller inashughulikia funguo za Bitcoin na miamala ya on-chain. Chain Notifier inafuatilia blockchain kwa ajili ya mambo kama kufungwa kwa chaneli. HTLC Switch ni kama router ndani ya node na inahamisha malipo kutoka chaneli moja kwenda nyingine. Na Breach Arbiter ndiyo sehemu ya usalama. Inachungulia kama kuna mtu anayejaribu kudanganya na inatuma miamala ya adhabu yenyewe.

[00:28:16] Halafu kuna demo ya moja kwa moja kati ya node iliyopo New York na nyingine San Francisco. Laolu anaonyesha kwamba inaweza kusukuma maelfu ya micropayments papo hapo. Katika [00:35:45] anasema kuwa implementation ya sasa inafika 1,000 transactions kwa sekunde (TPS) kwenye chaneli moja. Hiyo ni kasi kubwa kuliko blockchain ya Bitcoin iliyo chini yake.

Routing na Flare

[00:40:04] Ili kupata njia ya kufikia mpokeaji, nodes zinahitaji kujua topology ya mtandao. Nodes zinatuma saini za matangazo ili kuthibitisha kuwa zina chaneli halisi kwenye blockchain. Hiyo inazuia spam nodes zisijaze mtandao na taarifa bandia za routing.

[00:42:31] Mtandao unapokuwa mkubwa, hakuna kifaa kinachoweza kujua ramani nzima tena. Kwa hiyo Laolu anaelezea Flare, algorithm ya routing inayochanganya maarifa ya ndani, yaani nani yuko karibu nami, na beacons, ambazo ni nodes zinazojulikana zilizoko mbali zaidi. Kwa njia hiyo, node inaweza kupata njia kupitia mtandao mzima wa dunia bila kuhitaji kuhifadhi gigabytes za data za ramani.

image

Matangazo ya chaneli yaliyotiwa sahihi yanazuia spam, na Flare inachanganya node za karibu na beacon za mbali ili kutafuta njia bora ya malipo.

emin.de AI Desk · Kwa msingi

Muhtasari wa nyenzo za mtu wa tatu; angalia asili kwa chanzo.

Soma chapisho hili kama Markdown · GitHub · Kanuni