TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

Zënter zwou Wochen mécht de Runet Kaméidi iwwer Telegram an d'Situatioun mat senger sënnloser a barmhäerzeger Blockéierung vum Roskomnadzor. De Ricochet huet vill Leit beleidegt, awer all dës sinn Themen fir Posts op Geektimes. Ech war iwwerrascht vun soss eppes - ech hunn nach ëmmer keng eenzeg Analyse iwwer Habré vum TON Netzwierk gesinn, geplangt fir Verëffentlechung op Basis vum Telegram - Telegram Open Network. Ech wollt dësen Defizit kompenséieren, well do ass eppes ze studéieren - och trotz dem Mangel un offiziellen Aussoen doriwwer.

Loosst mech Iech drun erënneren datt et Rumeuren sinn datt Telegram e ganz grousst zougemaach ICO lancéiert huet, scho onheemlech Zomme Sue gesammelt. Et gëtt erwaart datt Gram seng eege Krypto-Währung dëst Joer lancéiert gëtt - an all Telegram Benotzer gëtt automatesch e Portemonnaie, wat u sech e wesentleche Virdeel iwwer aner Krypto-Währungen erstellt.

Leider, well et keng offiziell Aussoen ginn, kann ech nëmme weider ausgoen Dokument vun onbekannter Hierkonft, déi ech Iech direkt warnen. Natierlech kann et e ganz kompetente Fake ginn, awer et ass och méiglech datt dëst e richtege Whitepaper vum zukünftege System ass, geschriwwen vum Nikolai Durov (a geläscht, wahrscheinlech, vun engem vun den Investisseuren). Awer och wann et gefälscht ass, wäert keen eis verbidden et ze studéieren an ze diskutéieren, richteg?

Wat seet dëst Dokument? Ech wäert probéieren et a mengem eegene Wierder ze erzielen, no beim Text, awer op Russesch an e bësse méi mënschlech (kann den Nikolai mir verzeien mat senger Tendenz fir an d'formell Mathematik ze goen). Denkt drun datt och wann dëst echt ass, dëst eng Entworfbeschreiwung vum System ass a wäert ganz méiglecherweis bis zum Zäitpunkt vum ëffentleche Start änneren.

Mir léieren, datt nieft der cryptocurrency vill méi erwaart gëtt. Loosst eis et an Uerdnung huelen.

  • TON Blockchain. Dëst ass d'Basis vum ganze System. Wann Dir net wësst wat et ass blockéieren - Ech recommandéieren erauszefannen, well et wäert vill Blockchainen hei sinn. Nestéiert aneneen, quasi fragmentéiert a souguer "vertikal" Blockchainen bannent Blocken vun anere Blockchainen. Et ginn och e puer cool-klänglech Begrëffer wéi Direkt Hypercube Routing и Onendlech Sharding Paradigma, awer méi iwwer dat spéider. An, natierlech, Beweis-of-Stake a Smart Kontrakter.
  • TON P2P Netz. Peer-to-Peer Netzwierk op Basis vun deem de System gebaut gëtt. Si wäert éischt an dësem Deel vun der Geschicht diskutéiert ginn.
  • TON Stockage. Dateilagerung, déi, onofhängeg vun der Blockchain, op dem uewe genannte Peer-to-Peer-Netz gebaut gëtt. Kann mat Torrents verglach ginn.
  • TON Proxy. Dëst ass e Service deem säin Zweck ass d'Anonymitéit vun de Reseau Participanten ze erhéijen. All Paket kann net direkt geschéckt ginn, awer duerch Tëschestonnen mat zousätzlech Verschlësselung - wéi I2P oder TOR.
  • TON DHT. Verdeelt Hash Dësch fir arbiträr Wäerter ze späicheren. Et ass och uewen gebaut TON Network (awer gläichzäiteg gëtt et vun him benotzt) an hëlleft TON Stockage fannen "verdeelen" Wirbelen, an TON Proxy - Tëschenzäit Repeater. Awer et sollt bemierkt datt, am Géigesaz zu der Blockchain, dësen Hash-Table keng sécher Späichere ass - Dir kënnt net wichteg Informatioun dran späicheren.
  • TON Services. Plattform fir personaliséiert Servicer. Am Wesentlechen ass dëst en neien Internet uewen op alles uewen beschriwwen. Datenaustausch - iwwer TON Network/TON Proxy, an d'Logik ass an de Smart Kontrakter vun der TON Blockchain. An en Interface mat zimlech vertraute URLen.
  • TON DNS. Well mir iwwer vertraut URLen schwätzen, brauche mir och e Konverter vun hinnen an 256-Bit Adressen - Konten, Kontrakter, Servicer an Noden.
  • TON Payments. An dat ass wou d'Suen Thema an d'Spill kënnt. An et wäert net nëmmen sinn Gramm - wéi mat Ether, all "Tokens" wäert méiglech sinn; Gramm wäert just d'"Standard" Währung hei sinn.

Dëst ass den éischten Deel deen déi "gegrënnt" Schicht vum TON beschreift - säin Netzdeel, uewen op traditionelle Protokoller gebaut. Am nächsten Deel wäerte mir iwwer de "mëll" schwätzen - Blockchain, déi vum System hei ënnendrënner ënnerstëtzt gëtt. Also ass meng Uerdnung vun der Erzielung e bëssen anescht wéi déi am uewe genannten Dokument benotzt (wat direkt um abstrakten Niveau ufänkt).

Basis Konzepter

TL (Typ Sprooch). Et ass en abstrakt binärt Format fir arbiträr Datestrukturen. Et gëtt am Telegram Protokoll benotzt a gëtt aktiv am TON benotzt. Wann Dir wëllt mat et am Detail kenneléieren - hei ass seng Beschreiwung.

Hasch (mä awer och). Eng Funktioun déi eng irreversibel Transformatioun vun enger arbiträrer Datestruktur an eng eenzeg Zuel vun enger fixer Längt mécht. Während der Dokumentatioun schwätze mir iwwer d'Funktioun SHA-256.

Netzwierk Node (Knëff). En Node ass d'Software déi garantéiert datt de System funktionnéiert. Besonnesch gëtt ugeholl datt all Telegram Client Applikatioun en TON Node enthält. Op engem nidderegen Niveau hunn Noden IPv4 / IPv6 Adressen a kommunizéieren mam UDP Protokoll; op engem méi héijen Niveau hunn se abstrakt Adressen an ëmsetzen den ADNL Protokoll (iwwer abstrakt Adressen an ADNL - kuckt hei ënnen). Wann et ëm d'Tatsaach kënnt datt e puer Deeler vum System eppes maachen oder e puer Daten späicheren, ass et verstanen datt dëst duerch Netzwierkknoten gemaach gëtt.

Abstrakt Adress (oder einfach Adress, Adress). D'Adress vun engem Node gëtt vu sengem ëffentleche Schlëssel bestëmmt. Méi strikt ass et en 256-Bit Hash (SHA256) vun der Datestruktur déi den ëffentleche Schlëssel enthält (de spezifesche kryptographesche Algorithmus ass net spezifizéiert - elliptesch Kéiren an RSA-2048 ginn als Beispiller uginn). Fir datt een Node mat engem aneren kommunizéieren, muss et net nëmmen d'Adress vun deem wëssen, awer och dës Datestruktur. An Theorie kann ee kierperlechen Node all Zuel vun Adressen erstellen (entspriechend verschiddene Schlësselen).

Ausserdeem gëtt just esou e Link dacks benotzt: e "Prototyp" a Form vun enger TL Struktur (mat bal all Daten), an e 256-Bit Hash dovun, fir Adresséierung benotzt.

Blockchain (blockchain). Blockchain ass eng Datestruktur, Elementer (ze gesinn) déi an eng "Kette" bestallt ginn, an all spéider Block vun der Kette enthält den Hash vum fréiere. Op dës Manéier gëtt d'Integritéit erreecht - Ännerunge kënnen nëmme gemaach ginn andeems nei Blocks derbäi ginn.

Service (Service). Servicer bannent TON kënne vu verschiddenen Aarte sinn, ofhängeg ob se Blockchain benotzen oder net. Zum Beispill kann een (oder vill) Netzknäppchen bestëmmte RPC-Ufroe veraarbecht mat dem ADNL-Protokoll hei ënnendrënner beschriwwen, ouni Rekorder an der Blockchain ze kreéieren - wéi traditionell Webserver. Dorënner d'Méiglechkeet HTTP iwwer ADNL ëmzesetzen, wéi och den Iwwergank vum Messenger selwer op dëse Protokoll. Duerch Analogie mat TOR oder I2P wäert dëst et méi resistent géint verschidde Blockéierungen maachen.

Zur selwechter Zäit involvéiert eng Zuel vu Servicer souwuel Interaktioun mat der Blockchain an d'Veraarbechtung vun Ufroen dobaussen. Zum Beispill, fir TON Storage - Dateilagerung - ass et net ganz raisonnabel d'Dateien selwer op der Blockchain ze späicheren. Et enthält nëmmen Dateihashen (zesumme mat e puer Meta-Informatiounen iwwer si), a spezialiséiert Netzwierkknäpper wäerten als "Dateiserver" handelen, prett fir se an aner Wirbelen iwwer ADNL ze schécken.

Niwwel Service (Niwwel Service). Mir schwätzen iwwer e puer Servicer, déi Dezentraliséierung an oppe Participatioun un hinnen implizéieren. Zum Beispill, TON Proxy ass e Service dee vun all Participant ënnerstëtzt ka ginn, deen hiren Node als Tëschestatioun (Proxy) Forwarding Päckchen tëscht anere Wirbelen ubidden wëll. Op Wonsch kann hien e vun him festgeluechte Betrag bezuelen - mam TON Payments System fir Mikropayments (deen dann och en Niwweldéngscht ass).

ADNL: Abstrakt Datagram Network Layer

Um niddregsten Niveau gëtt d'Kommunikatioun tëscht Noden mam UDP-Protokoll duerchgefouert (obwuel aner Optiounen akzeptabel sinn).

Wéi uewen ernimmt, fir datt een Node e Paket an en aneren schéckt, muss et ee vu sengen ëffentleche Schlëssele kennen (an dofir d'Adress déi se definéiert). Et verschlësselt de Paket mat dësem Schlëssel a füügt d'256-Bit Destinatiounsadress un den Ufank vum Paket un - well een Node e puer vun dësen Adressen kann hunn, erlaabt dëst et ze bestëmmen wéi ee Schlëssel fir d'Entschlësselung ze benotzen.

TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

Ausserdeem, amplaz vun der Adress vum Empfänger, kann den Ufank vum Datepaket de sougenannte enthalen. identifier Kanal. An dësem Fall hänkt d'Veraarbechtung vum Paket scho vu spezifeschen Ofkommes tëscht Noden of - zum Beispill, Daten, déi op e bestëmmte Kanal geschéckt ginn, kënne fir en aneren Node geduecht sinn a musse weidergeleet ginn (dëst ass de Service TON Proxy). En anere spezielle Fall kann Interaktioun direkt tëscht Wirbelen sinn, awer mat Verschlësselung mat engem individuellen Schlësselpaar fir dëse Kanal (pre-generéiert mam Diffie-Hellman Protokoll).

Schlussendlech ass e spezielle Fall den "null" Kanal - wann en Node nach net d'ëffentlech Schlëssele vu sengen "Noperen" kennt, kann et hinnen Päck ouni Verschlësselung iwwerhaapt schécken. Dëst ass nëmme fir d'Initialiséierung geduecht - eemol d'Node Informatioun iwwer hir Schlësselen schécken, solle se fir weider Kommunikatioun benotzt ginn.

De Protokoll uewen beschriwwen (256 Bits vum Kanalidentifizéierer + Paketinhalt) gëtt ADNL genannt. D'Dokumentatioun ernimmt d'Méiglechkeet fir en Analog vun TCP op der Spëtzt oder säin eegene Add-on ze implementéieren - RLDP (Reliable Large Datagram Protocol), awer geet net an Detailer iwwer hir Ëmsetzung.

TON DHT: Verdeelt Hash Table

Wéi de Fall mat anere verdeelt Systemer, TON implizéiert d'Ëmsetzung vun DHT - verdeelt hash Dësch. Méi spezifesch ass den Dësch Kademlia-ähnlech. Wann Dir net mat dëser Aart vun Hash-Tabelle vertraut sidd, maach der keng Suergen, hei drënner wäert ech ongeféier beschreiwen wéi se funktionnéieren.

TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

An engem abstrakte Sënn mapt DHT 256-Bit Schlësselen op binär Wäerter vun arbiträrer Längt. An dësem Fall sinn d'Schlësselen an der Tabell Hashes aus enger bestëmmter TL Struktur (d'Strukturen selwer ginn och zesumme mam DHT gespäichert). Dëst ass ganz ähnlech wéi d'Bildung vun Node Adressen - a si kënne wierklech am DHT präsent sinn (zum Beispill, mat sou engem Schlëssel d'IP Adress vun engem Node entsprécht engem bestëmmten abstrakt Adress, wann hien et net verstoppt). Awer am allgemenge Fall, "Prototypen vu Schlësselen" (hir Beschreiwunge, Schlëssel Beschreiwunge) ass Metadaten, déi den "Besëtzer" vun enger Entrée an enger Hash-Tabelle uginn (dat ass den ëffentleche Schlëssel vun engem Node), d'Zort vum gespäicherten Wäert an d'Regele vun deenen dës Entrée duerno ka geännert ginn. Zum Beispill, kann eng Regel erlaben nëmmen de Besëtzer de Wäert ze änneren, oder verbidden de Wäert no ënnen änneren (fir géint Replay Attacken ze schützen).

Zousätzlech zu 256-Bit Schlësselen gëtt d'Konzept vun DHT Adressen agefouert. Den Ënnerscheed mat normale Hostadressen ass datt d'DHT Adress onbedéngt un eng IP Adress gebonnen ass. Wann e Node seng IP net verstoppt, kann et eng regulär Adress fir DHT benotzen. Awer méi dacks gëtt eng separat, "semi-permanent" Adress fir DHT Bedierfnesser erstallt.
TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker
D'Konzept vun der Distanz gëtt iwwer d'Schlësselen an DHT Adressen agefouert - an dësem entsprécht alles mat den Dëscher kademlia - d'Distanz tëscht de Schlësselen ass gläich dem XOR (bitwise exklusiv ODER) vun hinnen. Wéi an Kademlia Dëscher, muss de Wäert entspriechend engem bestëmmte Schlëssel gespäichert ginn s Noden déi déi kuerzst Distanz zu dësem Schlëssel hunn (s hei ass eng relativ kleng Zuel).

Fir en DHT Node mat anere sou Noden ze kommunizéieren, hält en an der Erënnerung DHT Routing Dësch - DHT an IP Adresse vun Noden mat deenen et virdru interagéiert huet, gruppéiert no Distanz zu hinnen. Et gi 256 esou Gruppen (si entspriechen dem bedeitendsten bëssen am Distanzwäert gesat - dat ass, Wirbelen op enger Distanz vun 0 bis 255 falen an eng Grupp, vun 256 bis 65535 - an déi nächst, etc.). Bannent all Grupp gëtt eng limitéiert Zuel vu "beschte" Node gespäichert (a punkto Ping un hinnen).

TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

All Node muss verschidde Operatiounen ënnerstëtzen: späichert e Wäert fir e Schlëssel, Node Sich и Sich no Wäerter. Sich no Noden involvéiert d'Emissioun, baséiert op engem bestëmmte Schlëssel, déi Noden am nootste vun der Routingtabelle; Wäerter nozekucken ass d'selwecht, ausser wann den Node de Wäert fir de Schlëssel kennt (da gëtt et just zréck). Deementspriechend, wann en Node e Wäert per Schlëssel am DHT wëll fannen, schéckt en Ufroen un eng kleng Unzuel vun Noden am nootsten un dësem Schlëssel aus senger Routing-Tabelle. Wann den erfuerderleche Wäert net ënnert hiren Äntwerten ass, awer et ginn aner Nodeadressen, da gëtt d'Ufro un hinnen widderholl.

TON DHT ka fir verschidden Zwecker benotzt ginn, zum Beispill fir eng torrent-ähnlech Dateilagerung ëmzesetzen (kuckt. TON Stockage); fir d'Adresse vun de Wirbelen ze bestëmmen déi verschidde Servicer ëmsetzen; Informatioun iwwer Kontbesëtzer am Blockchain ze späicheren. Awer déi wichtegst Applikatioun ass d'Entdeckung vun Noden duerch hir abstrakt Adressen. Fir dëst ze maachen, gëtt d'Adress als Schlëssel benotzt, deem säi Wäert muss fonnt ginn. Als Resultat vun der Ufro gëtt entweder den Node selwer fonnt (wann déi gesichte Adress seng semi-permanent DHT Adress war), oder de Wäert wäert d'IP Adress an den Hafen fir d'Verbindung sinn - oder eng aner Adress déi als eng Tëschestatioun Tunnel.

Overlay Netzwierker an TON

Den ADNL Protokoll uewen beschriwwen implizéiert d'Fäegkeet fir all Noden Informatiounen mateneen auszetauschen - obwuel net onbedéngt op optimal Manéier. Mir kënne soen datt dank ADNL all Noden eng global TON Grafik bilden (ideal verbonnen). Awer et ass zousätzlech méiglech Overlay Netzwierker ze kreéieren - Subgraphen an dëser Grafik.
TON: Telegram Open Network. Deel 1: Aféierung, Netzwierkschicht, ADNL, DHT, Overlay Netzwierker

An esou engem Netz gëtt d'Interaktioun nëmmen direkt duerchgefouert - duerch virgeformte Verbindungen tëscht Noden, déi um Netz deelhuelen (iwwer ADNL Kanäl uewen beschriwwen). D'Bildung vu sou Verbindungen tëscht Noperen, d'Sich no Noperen selwer, ass en automatesche Prozess dee probéiert d'Konnektivitéit vum Overlay-Netz ze erhalen an d'Verspéidungen am Austausch vun Daten an et ze minimiséieren.

Ausserdeem gëtt et e Wee fir séier grouss Sendungsupdates am Netz ze verdeelen - si ginn a Stécker gebrach, ergänzt mat Fehlerkorrekturcode, an all dës Stécker ginn vun engem Participant an en anert geschéckt. Sou muss de Participant net all Deeler komplett kréien, ier se weider am Netz schéckt.

Overlay Netzwierker kënnen ëffentlech oder privat sinn. Member vun engem ëffentlechen Netzwierk ze ginn ass net schwéier - Dir musst eng TL Struktur fannen déi et beschreift (et kann ëffentlech sinn oder zougänglech mat engem bestëmmte Schlëssel an DHT). Am Fall vun engem privaten Netzwierk muss dës Struktur am Viraus dem Node bekannt sinn.

Fir weidergeleet gëtt

Ech hu beschloss d'TON Iwwerpréiwung an e puer Artikelen opzedeelen. Dëst ass wou dësen Deel endet, an an der nächster Ech fuere weider fir d'Struktur vun der Blockchain ze berücksichtegen (méi präzis, Blockchainen) aus deem TON besteet.

Source: will.com

Setzt e Commentaire