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.
Tafsiri ya mashine kutoka English. Asili ndiyo rejea: Soma asili.
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.
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.

