Taimauta koki: risinājums Lightning tīkla LSP mērogošanai

By Bitcoin Žurnāls - pirms 6 mēnešiem - Lasīšanas laiks: 6 minūtes

Taimauta koki: risinājums Lightning tīkla LSP mērogošanai

Viens no lielākajiem Lightning tīkla ierobežojumiem ir ierobežotais kanālu skaits, ko var atvērt vai aizvērt katrā blokā, ņemot vērā bloka lieluma ierobežojumu. Neatkarīgi no tā, cik daudz darījumu var notikt ārpus ķēdes, cik lēti, tas ir būtisks šķērslis, kas ierobežo to, cik cilvēku faktiski var izmantot Lightning Network. Pat Lightning Network baltajā grāmatā tika secināts, ka scenārijā, kurā visi pasaules iedzīvotāji, kuru skaits ir 7 miljardi, izmantoja Lightning, un tikai divi ķēdes darījumi gadā uz vienu cilvēku, Bitcoin lai Lightning darbotos, būtu nepieciešami 133 MB bloki. Tā nav kāda no kreisā lauka problēma vai neparedzama problēma, tas bija protokola dizaina ierobežojums, kas pilnībā saprotams no pirmās dienas.

Daļa no šīs problēmas risināšanas plāna vienmēr ir bijusi kanālu rūpnīcu ideja, t.i., tāda veida kanāls, kurā piedalījās vairāk nekā divi lietotāji. Tas vienmēr bija virziens, kas būtu jāiet, lai mērogotu Lightning un Bitcoin bez bloka izmēra palielināšanas, taču problēma ir tāda, ka ķēdes pēdu problēmas risināšana rada virkni citu problēmu. Pirmkārt, nekas būtiski nemainās prasībā ieviest starpstāvokli, ja darījuma partneris kļūst nereaģējošs. Tam ir ietekme uz pievienoto vērtību. Visa kanālu rūpnīcas būtība ir tāda, ka, piemēram, divdesmit cilvēki var koplietot vienu UTXO un pārkārtot likviditāti iekšā ar pārējiem divdesmit cilvēkiem, kā viņi vēlas. Tiklīdz kāds slēdz ķēdi, nesadarbojoties, tas sāk traucēt šī mērķa sasniegšanu.

Ja es aizveru savu kanālu kanālu rūpnīcā, es izvelku sev līdzi daudz cilvēku no rūpnīcas. Iedomājieties tādu rūpnīcu kā Merkles koks, kura augšpusē ir viens UTXO, kas sadalās uz pusēm ārpus ķēdes, un tie, kas sadalās uz pusēm utt., līdz mēs nonākam pie katra individuālajiem kanāliem. Kad es izņemu savu kanālu no rūpnīcas, visi, kas atrodas manā pusē katrā ķēdē esošajā sadalījumā, tagad ir nošķirti no visiem pārējiem rūpnīcā. Viņi vairs nevar reorganizēt savu likviditāti šajā grupas daļā, ja visi sadarbojas.

Vēl viena liela problēma ir tā, ka pat lai sāktu, sākumā visiem ir jābūt tiešsaistē, lai iepriekš parakstītu visus darījumus. Ja vēlaties divdesmit cilvēkus rūpnīcā, ikvienam ir jābūt tiešsaistē, lai to sāktu. Ja vēlaties tūkstoš cilvēku, tūkstošiem cilvēku ir jābūt tiešsaistē utt.

Tas padara kanālu rūpnīcas par lielu dizaina telpu, kurā ir daudz risināmu problēmu. Tāpēc mēs atrisinām esošo Lightning problēmu, bet izveidojam virkni jaunu. Man tas izklausās pēc inženierijas.

Taimauta koki

Džona Lova nesenais priekšlikums, Taimauta koki, mēģina piedāvāt risinājumu vienai galvenajai kanālu rūpnīcu problēmai. Es nesauktu taimautu koku par kanālu rūpnīcu, drīzāk par "protofabriku", taču tas piedāvā potenciālu risinājumu liela apjoma kanālu atvēršanas un aizvēršanas problēmai, neieviešot problēmu, kas saistīta ar nesadarbošanās slēgšanas problēmām, kas sabojā kanālu. rūpnīcas izmantošana citiem lietotājiem. Lai tas darbotos funkcionāli, ir nepieciešams CHECKTEMPLATEVERIFY (CTV) un apgaismojuma pakalpojumu sniedzējs (LSP).

Noildzes koks būtībā ir kanālu rūpnīca, ko garantē līgumi, bez iespējas mainīt to, kā likviditāte tiek reorganizēta ārpus ķēdes pēc tā izveidošanas, izmantojot īpašu izņēmuma klauzulu. LSP, mēs tos sauksim par Bobu, spēlē gadījuma lietotāju piesaisti plašākam Lightning tīklam. Bobs var paņemt viņa kontrolētās monētas un izveidot KTV koku, kas izveido vienu UTXO izvēršanu, lai atvērtu kanālus jebkuram sava LSP pakalpojuma lietotāju skaitam. KTV jaukā īpašība ir tā, ka tā ļauj to izdarīt, visiem vienlaikus neesot tiešsaistē. Bobs var vienkārši likt ikvienam parakstīt sākotnējo kanāla stāvokli pa vienam un noturēt tos, līdz visi ir iestatījuši kanālu, un vienkārši iztērēt līdzekļus KTV kokā, kad viņam ir iestatīti kanāli ar katru lietotāju.

Tas risina problēmu, ka visiem vienlaikus ir jābūt tiešsaistē, lai iestatītu "rūpnīcu" un sāktu lietot Lightning. KTV dēļ, kad Bobs iztērē monētas kokā, izveidojot ikviena zibens kanālus, viņam nav iespējas atkāpties un paņemt monētas (pagaidām). Tā kā pirmais UTXO KTV ir apstiprināts ķēdē, ikviens var uzskatīt savus kanālus par atvērtiem, un nepastāv risks, ka tie tiks iztērēti divreiz.

Tagad pēdējā daļa, kanālu aizvēršana. Lai gan, lai tos atvērtu, KTV dēļ ir nepieciešama tikai viena UTXO ķēde, to aizvēršanai ķēdē būtu jāatklāj viss KTV koks, lai ikviens varētu iesniegt savus kanāla statusus, vai ne? Nepareizi. Šī ir Timeout Trees daļa. Katrai noildzes koka filiālei ir skripta atzars, kurā Bobs var tīrīt visus līdzekļus pēc laika bloķēšanas.

Taimauta koka diagramma.

Tagad esmu pārliecināts, ka jūs domājat "ko!?" Tas ir patiesais ģēnijs, kā šis priekšlikums darbojas. Tā kā Bobs pēc laika bloķēšanas var slaucīt ķēdē esošos UTXO pats bez neviena cita, visiem šiem kanāliem ir derīguma termiņš, ja vien lietotāji faktiski neatklāj visu koku un apstiprina reālo kanālu finansējumu ķēdē. Tas ļauj Bobam darīt kaut ko glītu: kad tuvojas laika bloķēšana, viņš var atvērt pilnīgi jaunu noildzes koku ar visiem pašreizējā koka lietotājiem un likt viņiem pārvietot visus savus līdzekļus no koka, kuram beidzas derīguma termiņš, uz jauno. -ķēdi uz Lightning un pēc tam slaucīt vienu ķēdes UTXO no pēdējā koka.

Tas ļauj efektīvi aizvērt visus šos kanālus ķēdē. Vienīgā problēma, kas tagad ir palikusi, ir HTLC ieviešana ķēdē, ja otra puse pārtrauc sadarbību. Nu... šajā gadījumā tā nav īsti problēma, vai drīzāk tā ir jautājums par visu vai neko. Kanāli ir jāslēdz, lai ieviestu HTLC, ja kanāla otra puse pārstāj reaģēt maršrutēšanas laikā. Noildzes kokā katrs lietotājs ir Bobs. Tātad, ja Bobs, kamēr viņš ir godīgs, nereaģē uz neveiksmīga vai veiksmīga HTLC atjaunināšanu vienam lietotājam, viņš nereaģē arī nevienam citam lietotājam. Tādā gadījumā ikviens joprojām var slēgt savus kanālus ķēdē pirms taimauta un pārtraukt lietot Boba LSP.

Ietīšana Up

Lietotājiem joprojām būs jāmaksā maksa par mijiedarbību ķēdē, to nevar apiet, un viss noildzes koks, kas slēgtu ķēdi, nesadarbojoties, būtu liels un dārgs ķēdes nospiedums, taču tā galu galā ir problēma. jebkurai daudzpartiju kanālu sistēmai būs jārisina. Tomēr Timeout Trees ir pārliecinoši risinājumi sadarbības gadījumam, kad tiek atvērts un slēgts masveida daudzpusējs kanāls, nepazeminot sistēmas uzticības modeli līdz kaut kam aizbildinājumam.

Džons pat savā jaunākajā raksta versijā ir ierosinājis shēmu, kurā lietotāji varētu tikt sodīti par slēgšanu, kas nesadarbojas, lai segtu Boba izmaksas par sadrumstalotu koku UTXO slaucīšanu pēc taimauta. Potenciāli ir veidi, kā rīkoties otrādi, ja Boba neaktivitāte vai negodīgums ir iemesls tam, ka lietotājiem, nesadarbojoties, ir jāaizver sava koka daļa.

Tomēr dienas beigās šis ir ļoti konkrēts un konkrēts priekšlikums par kanālu rūpnīcas dizainu, kas faktiski mēģina risināt reālos lietošanas un ieviešanas jautājumus, nevis daļēji definētu un neskaidru koncepciju. Tas ir milzīgs progress saistībā ar Lightning ilgtermiņa mērogošanas ierobežojumu novēršanu. 

Oriģināls avots: Bitcoin žurnāls