TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

Í tvær vikur hefur Runet verið að gera hávaða um Telegram og ástandið með tilgangslausri og miskunnarlausri lokun þess af Roskomnadzor. Ricochet móðgaði marga, en allt eru þetta efni fyrir færslur á Geektimes. Annað kom mér á óvart - ég hef enn ekki séð eina einustu greiningu á Habré á TON netinu sem fyrirhugað er að gefa út á grundvelli Telegram - Telegram Open Network. Ég vildi bæta fyrir þennan skort, því það er eitthvað að læra þar - jafnvel þrátt fyrir að opinberar yfirlýsingar um það skorti.

Leyfðu mér að minna þig á að það eru sögusagnir um að Telegram hafi hleypt af stokkunum mjög stórum lokaðri ICO, eftir að hafa þegar safnað ótrúlegum upphæðum af peningum. Búist er við að eigin dulritunargjaldmiðill Gram verði hleypt af stokkunum á þessu ári - og sérhver Telegram notandi mun sjálfkrafa hafa veski, sem í sjálfu sér skapar verulegan forskot á aðra dulritunargjaldmiðla.

Því miður, þar sem það eru engar opinberar yfirlýsingar, get ég aðeins haldið lengra frá skjal af óþekktum uppruna, sem ég vara þig strax við. Auðvitað getur það reynst mjög kunnátta fals, en það er líka mögulegt að þetta sé alvöru hvítbók um framtíðarkerfið, skrifað af Nikolai Durov (og lekið, líklega, af einum fjárfestanna). En jafnvel þótt það sé falsað mun enginn banna okkur að læra og ræða það, ekki satt?

Hvað segir þetta skjal? Ég mun reyna að endursegja það með mínum eigin orðum, nálægt textanum, en á rússnesku og aðeins mannlegri (má Nikolai fyrirgefa mér með tilhneigingu hans til að fara í formlega stærðfræði). Hafðu í huga að jafnvel þótt þetta sé ósvikið, þá er þetta drög að lýsingu á kerfinu og mun mjög líklega breytast þegar það verður opnað opinberlega.

Við komumst að því að til viðbótar við dulritunargjaldmiðil er margt fleira sem búist er við. Við skulum taka það í röð.

  • TON Blockchain. Þetta er grundvöllur alls kerfisins. Ef þú veist ekki hvað það er blokk — Ég mæli með að komast að því, því það verður mikið af blokkakeðjum hér. Hreiður inn í hvor aðra, nánast sundurleitar og jafnvel „lóðréttar“ blokkir innan blokka annarra blokka. Það verða líka nokkur hugtök sem hljóma flott eins og Augnablik Hypercube Routing и Infinite Sharding Paradigm, en meira um það síðar. Og auðvitað, sönnun á hlut og snjöllum samningum.
  • TON P2P net. Jafningjanet sem kerfið verður byggt upp á. Fyrst verður fjallað um hana í þessum hluta sögunnar.
  • TON Geymsla. Skráageymsla, sem, óháð blockchain, verður byggð á ofangreindu jafningjaneti. Má líkja við torrents.
  • TON umboð. Þetta er þjónusta sem hefur þann tilgang að auka nafnleynd þátttakenda netkerfisins. Hægt er að senda hvaða pakka sem er ekki beint, heldur í gegnum milligöngugöng með viðbótar dulkóðun - eins og I2P eða TOR.
  • TONN DHT. Dreifð kjötkássatafla til að geyma handahófskennd gildi. Það er líka byggt ofan á TON net (en á sama tíma er það notað af honum) og hjálpar TON Geymsla finna „dreifingar“ hnúta, og TON umboð — millihríðendur. En það skal tekið fram að ólíkt blockchain er þessi kjötkássatafla ekki örugg geymsla - þú getur ekki geymt mikilvægar upplýsingar í henni.
  • TON Þjónusta. Pall fyrir sérsniðna þjónustu. Í raun er þetta nýtt internet ofan á allt sem lýst er hér að ofan. Gagnaskipti - í gegnum TON net/TON umboð, og rökfræðin er í snjöllum samningum TON Blockchain. Og viðmót með nokkuð kunnuglegum vefslóðum.
  • TONN DNS. Þar sem við erum að tala um kunnuglegar vefslóðir þurfum við líka breyti úr þeim yfir í 256 bita vistföng - reikninga, samninga, þjónustu og hnúta.
  • Tonn greiðslur. Og hér kemur peningamálið við sögu. Og það verður ekki bara gramm — eins og með eter, þá verða öll „tákn“ möguleg; Gram verða bara „sjálfgefinn“ gjaldmiðillinn hér.

Þetta er fyrsti hlutinn sem lýsir „jarðbundnu“ lagi TON - nethluta þess, byggður ofan á hefðbundnar samskiptareglur. Í næsta hluta munum við tala um „mjúka“ - blockchain, sem verður studd af kerfinu sem lýst er hér að neðan. Þannig er uppröðun mín á endursögn nokkuð frábrugðin þeirri sem notuð er í ofangreindu skjali (sem byrjar strax á abstrakt stigi).

Grunnhugtök

TL (Sláðu inn Tungumál). Það er óhlutbundið tvíundarsnið fyrir handahófskenndar gagnabyggingar. Það er notað í Telegram samskiptareglunum og verður virkt notað í TON. Ef þú vilt kynna þér það í smáatriðum - hér er lýsing hans.

Hash (kjötkássa). Fall sem framkvæmir óafturkræfa umbreytingu á handahófskenndri gagnabyggingu í eina tölu með fastri lengd. Í skjölunum er talað um aðgerðina SHA-256.

Nethnútur (hnút). Hnútur er hugbúnaðurinn sem tryggir að kerfið virki. Sérstaklega er gert ráð fyrir að hvert Telegram biðlaraforrit muni innihalda TON hnút. Á lágu stigi hafa hnútar IPv4/IPv6 vistföng og hafa samskipti með UDP samskiptareglum; á hærra stigi hafa þeir abstrakt heimilisföng og innleiða ADNL-samskiptareglur (um ágripsföng og ADNL - sjá hér að neðan). Þegar það kemur að því að sumir hlutar kerfisins gera eitthvað eða geyma einhver gögn, þá er litið svo á að þetta sé gert með nethnútum.

Abstrakt heimilisfang (eða einfaldlega netfang, heimilisfang). Heimilisfang hnúts er ákvarðað af opinbera lykli hans. Nánar tiltekið er það 256 bita kjötkássa (SHA256) af gagnaskipulaginu sem inniheldur opinbera lykilinn (sérstakur dulritunaralgrímið er ekki tilgreint - sporöskjulaga ferlar og RSA-2048 eru gefin sem dæmi). Til þess að einn hnútur geti átt samskipti við annan þarf hann að vita ekki aðeins heimilisfang þess, heldur einnig þessa gagnauppbyggingu. Fræðilega séð getur einn líkamlegur hnút búið til hvaða fjölda heimilisfanga sem er (sem samsvarar mismunandi lyklum).

Ennfremur er einmitt slíkur hlekkur oft notaður: „frumgerð“ í formi TL uppbyggingu (sem inniheldur næstum öll gögn), og 256 bita kjötkássa úr því, notað til að takast á við.

Blockchain (blockchain). Blockchain er gagnabygging, þættir (blokkir) sem er raðað í „keðju“ og hver síðari blokk keðjunnar inniheldur kjötkássa fyrri. Þannig næst heilindi - aðeins er hægt að gera breytingar með því að bæta við nýjum kubbum.

Service (þjónusta). Þjónusta innan TON getur verið af ýmsum toga, eftir því hvort þeir nota blockchain eða ekki. Til dæmis getur einn (eða margir) nethnútar unnið úr ákveðnum RPC beiðnum með því að nota ADNL samskiptareglur sem lýst er hér að neðan, án þess að búa til neinar skrár í blockchain - eins og hefðbundnir vefþjónar. Þar á meðal möguleika á að innleiða HTTP yfir ADNL, sem og umskipti boðberans sjálfs yfir í þessa samskiptareglu. Á hliðstæðan hátt við TOR eða I2P mun þetta gera það ónæmari fyrir ýmsum hindrunum.

Á sama tíma felur fjöldi þjónustu í sér bæði samskipti við blockchain og vinnslu beiðna utan hennar. Til dæmis, fyrir TON Storage - skráageymslu - er ekki mjög sanngjarnt að geyma skrárnar sjálfar á blockchain. Það mun aðeins innihalda skráahass (ásamt smáupplýsingum um þá), og sérhæfðir nethnútar munu virka sem „skráaþjónar“, tilbúnir til að senda þá til annarra hnúta í gegnum ADNL.

Þokuþjónusta (þokuþjónustu). Við erum að tala um einhverja þjónustu sem felur í sér valddreifingu og opna þátttöku í henni. Til dæmis er TON Proxy þjónusta sem getur verið studd af hverjum þátttakanda sem vill útvega hnútinn sinn sem millilið (proxy) framsendi pakka á milli annarra hnúta. Ef þess er óskað getur hann rukkað gjald sem hann setur fyrir þetta - með því að nota TON-greiðslukerfið fyrir smágreiðslur (sem aftur á móti er líka þokuþjónusta).

ADNL: Abstract Datagram Network Layer

Á lægsta stigi munu samskipti milli hnúta fara fram með UDP samskiptareglum (þó aðrir valkostir séu ásættanlegir).

Eins og getið er hér að ofan, til þess að einn hnútur geti sent pakka til annars, verður hann að þekkja einn af almenningslyklum sínum (og þar með heimilisfangið sem hann skilgreinir). Það dulkóðar pakkann með þessum lykli og bætir 256 bita áfangastaðsfanginu við upphaf pakkans - þar sem einn hnútur getur haft nokkur af þessum vistföngum mun þetta gera honum kleift að ákvarða hvaða lykil á að nota til að afkóða.

TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

Að auki, í stað heimilisfangs viðtakanda, getur upphaf gagnapakkans innihaldið svokallaða. auðkenni rás. Í þessu tilviki er vinnsla pakkans þegar háð sérstökum samningum milli hnúta - til dæmis gætu gögn sem send eru á ákveðna rás verið ætluð fyrir annan hnút og verður að senda til hans (þetta er þjónustan TON umboð). Annað sérstakt tilfelli getur verið samskipti beint á milli hnúta, en með dulkóðun með því að nota einstakt lyklapar fyrir þessa rás (forframbúið með Diffie-Hellman samskiptareglum).

Að lokum, sérstakt tilfelli er „null“ rásin - ef hnútur þekkir ekki opinbera lykla „nágranna“ enn þá getur hann sent þeim pakka án dulkóðunar yfirleitt. Þetta er aðeins ætlað til frumstillingar - þegar hnútarnir hafa sent upplýsingar um lyklana sína ætti að nota þá til frekari samskipta.

Samskiptareglan sem lýst er hér að ofan (256 bita af rásaauðkenni + pakkainnihaldi) er kölluð ADNL. Í skjölunum er minnst á möguleikann á að innleiða hliðstæðu TCP ofan á það eða eigin viðbót - RLDP (Reliable Large Datagram Protocol), en ekki er farið nánar út í útfærslu þeirra.

TON DHT: Dreift kjötkássaborð

Eins og raunin er með önnur dreifð kerfi, felur TON í sér innleiðingu á DHT - dreift kjötkássatöflu. Nánar tiltekið er taflan Kademlia-líkur. Ef þú þekkir ekki þessa tegund af kjötkássatöflu, ekki hafa áhyggjur, hér að neðan mun ég lýsa í grófum dráttum hvernig þau virka.

TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

Í óhlutbundnum skilningi kortleggur DHT 256 bita lykla á tvöfalda gildi af handahófskenndri lengd. Í þessu tilviki eru lyklarnir í töflunni kjötkássa úr ákveðinni TL uppbyggingu (byggingin sjálf eru einnig geymd ásamt DHT). Þetta er mjög svipað og myndun hnúta vistföng - og þau geta örugglega verið til staðar í DHT (til dæmis með því að nota slíkan lykil IP tölu hnúts sem samsvarar tilteknu abstrakt heimilisfang, ef hann leynir því ekki). En í almennu tilvikinu, „frumgerðir af lyklum“ (þeirra lýsingar, lykillýsingar) eru lýsigögn sem gefa til kynna „eiganda“ færslu í kjötkássatöflu (þ.e. opinber lykill einhvers hnúts), tegund gildis sem geymt er og reglurnar sem hægt er að breyta þessari færslu eftir. Til dæmis getur regla leyft aðeins eigandanum að breyta gildinu, eða bannað að breyta gildinu niður á við (til að verjast endurspilunarárásum).

Auk 256 bita lykla er hugtakið DHT vistföng kynnt. Munurinn á venjulegum hýsilföngum er að DHT vistfangið er endilega bundið við IP tölu. Ef hnútur felur ekki IP-tölu sína getur hann notað venjulegt heimilisfang fyrir DHT. En oftar verður sérstakt, „hálfvaranlegt“ heimilisfang búið til fyrir DHT þarfir.
TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet
Hugmyndin um fjarlægð er kynnt fyrir ofan lykla og DHT vistföng - í þessu fellur allt saman við töflurnar kademlia — fjarlægðin á milli lyklanna er jöfn XOR (bitabundið OR) þeirra. Eins og í Kademlia töflum þarf að geyma gildið sem samsvarar ákveðnum lykli á s hnútar sem hafa stystu fjarlægð frá þessum lykli (s hér er tiltölulega lítill fjöldi).

Til þess að DHT hnútur geti átt samskipti við aðra slíka hnúta geymir hann í minni DHT leiðartafla — DHT og IP vistföng hnúta sem það hafði samskipti við áður, flokkað eftir fjarlægð til þeirra. Það eru 256 slíkir hópar (þeir samsvara markverðasta bitanum í fjarlægðargildinu - það er að hnútar í fjarlægð frá 0 til 255 falla í einn hóp, frá 256 til 65535 - í þann næsta osfrv.). Innan hvers hóps er takmarkaður fjöldi „bestu“ hnúta geymdir (hvað varðar ping til þeirra).

TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

Hver hnút verður að styðja nokkrar aðgerðir: geymir gildi fyrir lykil, hnútaleit и leita að gildum. Leit að hnútum felur í sér að gefa út, byggt á tilteknum lykli, þá hnúta sem eru næst honum úr leiðartöflunni; að fletta upp gildum er það sama, nema þegar hnúturinn veit gildið fyrir lykilinn (þá skilar hann því bara). Í samræmi við það, ef hnútur vill finna gildi eftir lykli í DHT, sendir hann fyrirspurnir til fárra hnúta næst þessum lykli úr leiðartöflunni. Ef tilskilið gildi er ekki meðal svara þeirra, en það eru önnur hnútsföng, þá er beiðnin endurtekin til þeirra.

TON DHT er hægt að nota í ýmsum tilgangi, til dæmis til að útfæra straumlíka skráageymslu (sjá. TON Geymsla); að ákvarða heimilisföng hnúta sem útfæra ákveðna þjónustu; til að geyma upplýsingar um eigendur reikninga á blockchain. En mikilvægasta forritið er uppgötvun hnúta með óhlutbundnum heimilisföngum þeirra. Til að gera þetta er heimilisfangið notað sem lykill sem þarf að finna gildi. Sem afleiðing af beiðninni mun annaðhvort hnúturinn sjálfur finnast (ef leitað var að því að vera hálfvaranlegt DHT vistfang þess), eða gildið verður IP tölu og tengi fyrir tengingu - eða annað heimilisfang sem ætti að nota sem milligöngugöng.

Yfirborðsnet í TON

ADNL-samskiptareglur sem lýst er hér að ofan felur í sér getu allra hnúta til að skiptast á upplýsingum sín á milli - þó ekki endilega á besta hátt. Við getum sagt að þökk sé ADNL mynda allir hnútar alþjóðlegt TON línurit (helst tengt). En það er að auki mögulegt að búa til yfirborðsnet - undirrit innan þessa línurits.
TON: Telegram Open Network. Hluti 1: Inngangur, netlag, ADNL, DHT, yfirborðsnet

Innan slíks nets fer víxlverkun aðeins fram beint - í gegnum fyrirfram mótaðar tengingar milli hnúta sem taka þátt í netinu (í gegnum ADNL rásir sem lýst er hér að ofan). Myndun slíkra tengsla milli nágranna, leitin að nágrönnum sjálfum, er sjálfvirkt ferli sem leitast við að viðhalda tengingu yfirlagsnetsins og lágmarka tafir á gagnaskiptum í því.

Að auki er leið til að dreifa stórum útsendingaruppfærslum á fljótlegan hátt innan netsins - þær eru brotnar í sundur, bætt við villuleiðréttingarkóða og allir þessir hlutir eru sendir frá einum þátttakanda til annars. Þannig þarf þátttakandinn ekki að ná sér í alla hluta áður en hann sendir þá áfram um netið.

Yfirborðsnet geta verið opinber eða einkarekin. Það er ekki erfitt að gerast meðlimur í almennu neti - þú þarft að finna TL uppbyggingu sem lýsir því (það getur verið opinbert eða aðgengilegt með ákveðnum lykli í DHT). Ef um einkanet er að ræða verður hnúturinn að vita um þessa uppbyggingu fyrirfram.

Til að halda áfram

Ég ákvað að skipta TON umsögninni í nokkrar greinar. Þetta er þar sem þessi hluti endar, og í því næsta Ég held áfram að huga að uppbyggingu blockchain (nánar tiltekið, blockchains) sem TON mun samanstanda af.

Heimild: www.habr.com

Bæta við athugasemd