TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

Wis rong minggu iki, Runet wis nggawe rame babagan Telegram lan kahanan kanthi pamblokiran sing ora ana gunane lan tanpa ampun dening Roskomnadzor. Ing ricochet gelo akeh wong, nanging kabeh iki topik kanggo kiriman ing Geektimes. Aku kaget karo liya - Aku isih durung ndeleng analisis siji ing Habré saka jaringan TON sing direncanakake diluncurake kanthi basis Telegram - Telegram Open Network. Aku pengin ngrampungake kekurangan iki, amarga ana sing kudu sinau ing kana - sanajan ora ana pernyataan resmi babagan iki.

Ayo kula ngelingake sampeyan yen ana desas-desus yen Telegram wis ngluncurake ICO tertutup skala gedhe banget, wis nglumpukake dhuwit sing luar biasa. Dikarepake yen mata uang kripto Gram dhewe bakal diluncurake ing taun iki - lan saben pangguna Telegram kanthi otomatis duwe dompet, sing nggawe keuntungan sing signifikan tinimbang mata uang kripto liyane.

Sayange, wiwit ora ana statements resmi, Aku mung bisa nerusake luwih saka dokumen asal ora dingerteni, sing langsung dakelingake. Mesthine, bisa uga dadi palsu sing apik banget, nanging bisa uga iki minangka whitepaper nyata sistem masa depan, sing ditulis dening Nikolai Durov (lan bocor, mbokmenawa, dening salah sawijining investor). Nanging sanajan palsu, ora ana sing nglarang kita sinau lan ngrembug, ta?

Apa sing diarani dokumen iki? Aku bakal nyoba nyritakake maneh ing tembungku dhewe, cedhak karo teks, nanging ing basa Rusia lan luwih manusiawi (muga-muga Nikolai ngapura aku kanthi cenderung menyang matematika formal). Elinga yen sanajan iki asli, iki minangka draf deskripsi sistem lan kemungkinan bakal diganti nalika diluncurake umum.

Kita sinau manawa saliyane cryptocurrency, ana luwih akeh sing dikarepake. Ayo dadi njupuk ing urutan.

  • TON Blockchain. Iki minangka basis saka kabeh sistem. Yen sampeyan ora ngerti apa iku pamblokiran - Aku nyaranake nemokake, amarga bakal ana akeh pamblokiran ing kene. Nested ing saben liyane, meh pecah-pecah lan malah "vertikal" pamblokiran ing blok blok liyane. Ana uga sawetara istilah sing kelangan kaya Routing Hypercube cepet и Paradigma Sharding Tanpa wates, nanging luwih ing mengko. Lan, mesthi, bukti-of-saham lan kontrak pinter.
  • Jaringan TON P2P. Jaringan peer-to-peer adhedhasar sistem sing bakal dibangun. Dheweke bakal dirembug dhisik ing bagean crita iki.
  • Panyimpenan TON. Panyimpenan file, sing, preduli saka pamblokiran, bakal dibangun ing jaringan peer-to-peer sing kasebut ing ndhuwur. Bisa dibandhingake karo torrents.
  • Proksi TON. Iki minangka layanan sing tujuane kanggo nambah anonimitas peserta jaringan. Sembarang paket bisa dikirim ora langsung, nanging liwat trowongan perantara karo enkripsi tambahan - kaya I2P utawa TOR.
  • TON DHT. Tabel hash sing disebarake kanggo nyimpen nilai sewenang-wenang. Iku uga dibangun ing ndhuwur Jaringan TON (nanging ing wektu sing padha digunakake dening dheweke) lan mbantu Panyimpenan TON golek "distribusi" kelenjar, lan Proksi TON - repeater penengah. Nanging kudu dicathet yen, ora kaya pamblokiran, tabel hash iki dudu panyimpenan sing aman - sampeyan ora bisa nyimpen informasi penting ing kono.
  • TON Layanan. Platform kanggo layanan khusus. Intine, iki minangka Internet anyar ing ndhuwur kabeh sing diterangake ing ndhuwur. Ijol-ijolan data - liwat Jaringan TON/Proksi TON, lan logika ana ing kontrak pinter saka TON Blockchain. Lan antarmuka karo URL sing cukup akrab.
  • TON DNS. Amarga kita ngomong babagan URL sing akrab, kita uga butuh konverter saka alamat kasebut dadi alamat 256-bit - akun, kontrak, layanan lan simpul.
  • TON Pembayaran. Lan iki ngendi masalah dhuwit teka menyang muter. Lan ora mung bakal gram - kaya karo eter, sembarang "token" bakal bisa; Gram mung minangka mata uang "standar" ing kene.

Iki minangka bagean pisanan sing nggambarake lapisan "grounded" TON - bagean jaringan, dibangun ing ndhuwur protokol tradisional. Ing bagean sabanjure kita bakal ngomong babagan "alus" - pamblokiran, sing bakal didhukung dening sistem sing diterangake ing ngisor iki. Mangkono, urutan crita maneh rada beda karo sing digunakake ing dokumen kasebut ing ndhuwur (sing diwiwiti langsung ing tingkat abstrak).

Konsep dhasar

TL (Jenis Basa). Iku format biner abstrak kanggo struktur data sewenang-wenang. Iki digunakake ing protokol Telegram lan bakal digunakake kanthi aktif ing TON. Yen sampeyan pengin kenalan karo rinci - punika katranganipun.

Hash (ngrembug). Fungsi sing nindakake transformasi sing ora bisa dibatalake saka struktur data sing sewenang-wenang dadi nomer siji kanthi dawa tetep. Saindhenging dokumentasi kita pirembagan bab fungsi SHA-256.

Node jaringan (Simpul). Node minangka piranti lunak sing bakal njamin operasi sistem. Utamane, dianggep saben aplikasi klien Telegram bakal kalebu simpul TON. Ing tingkat sing kurang, simpul duwe alamat IPv4/IPv6 lan komunikasi nggunakake protokol UDP; ing tingkat sing luwih dhuwur, padha duwe. alamat abstrak lan ngleksanakake protokol ADNL (babagan alamat abstrak lan ADNL - deleng ing ngisor iki). Nalika nerangake kasunyatan sing sawetara bagéan saka sistem nindakake soko utawa nyimpen sawetara data, iku mangertos sing iki rampung dening kelenjar jaringan.

Alamat abstrak (utawa kanthi gampang alamat, alamat). Alamat simpul ditemtokake dening kunci umum. Luwih tegas, iki minangka hash 256-bit (SHA256) saka struktur data sing ngemot kunci umum (algoritma kriptografi spesifik ora ditemtokake - kurva eliptik lan RSA-2048 minangka conto). Supaya siji simpul bisa komunikasi karo liyane, sampeyan kudu ngerti ora mung alamat kasebut, nanging uga struktur data iki. Ing teori, siji simpul fisik bisa nggawe sawetara alamat (cocog karo tombol sing beda).

Salajengipun, mung pranala kasebut asring digunakake: "prototipe" ing wangun struktur TL (ngemot meh kabeh data), lan hash 256-bit saka iku, digunakake kanggo ngarahake.

Blockchain (blockchain). Blockchain minangka struktur data, unsur (pamblokiran) sing diurutake dadi "rantai", lan saben blok rantai sabanjure ngemot hash saka sing sadurunge. Kanthi cara iki, integritas digayuh - owah-owahan mung bisa ditindakake kanthi nambah blok anyar.

layanan (layanan). Layanan ing TON bisa macem-macem jinis, gumantung apa nggunakake blockchain utawa ora. Contone, siji (utawa akeh) simpul jaringan bisa ngolah panjalukan RPC tartamtu nggunakake protokol ADNL sing diterangake ing ngisor iki, tanpa nggawe cathetan ing pamblokiran - kaya server web tradisional. Kalebu kamungkinan ngleksanakake HTTP liwat ADNL, uga transisi utusan dhewe menyang protokol iki. Kanthi analogi karo TOR utawa I2P, iki bakal luwih tahan kanggo macem-macem pamblokiran.

Ing wektu sing padha, sawetara layanan melu interaksi karo pamblokiran lan panjaluk pangolahan ing njaba. Contone, kanggo TON Storage - panyimpenan file - ora cukup kanggo nyimpen file kasebut ing blockchain. Bakal ngemot mung file hash (bebarengan karo sawetara meta-informasi babagan wong-wong mau), lan simpul jaringan khusus bakal tumindak minangka "server file", siap dikirim menyang kelenjar liyane liwat ADNL.

Layanan kabut (layanan kabut). Kita ngomong babagan sawetara layanan sing nuduhake desentralisasi lan partisipasi mbukak. Contone, TON Proxy minangka layanan sing bisa didhukung dening peserta sing pengin nyedhiyakake node minangka perantara (proxy) paket penerusan antarane node liyane. Yen dikarepake, dheweke bisa ngisi ragad sing disetel kanggo iki - nggunakake sistem Pembayaran TON kanggo micropayments (sing uga minangka layanan kabut).

ADNL: Abstrak Datagram Network Layer

Ing tingkat paling ngisor, komunikasi antarane simpul bakal ditindakake kanthi nggunakake protokol UDP (sanajan opsi liyane bisa ditampa).

Kaya sing kasebut ing ndhuwur, supaya siji simpul bisa ngirim paket menyang liyane, kudu ngerti salah sawijining kunci umum (lan mulane alamat sing ditetepake). Iki ndhelik paket nganggo tombol iki lan nambah alamat tujuan 256-bit menyang wiwitan paket - amarga siji simpul bisa duwe sawetara alamat kasebut, iki bakal ngidini kanggo nemtokake kunci sing digunakake kanggo dekripsi.

TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

Kajaba iku, tinimbang alamat panampa, wiwitan paket data bisa ngemot sing diarani. pengenal saluran. Ing kasus iki, pangolahan paket wis gumantung ing persetujuan tartamtu antarane simpul - contone, data sing dikirim menyang saluran tartamtu bisa ditrapake kanggo simpul liyane lan kudu diterusake menyang (iki layanan Proksi TON). Kasus khusus liyane bisa uga interaksi langsung antarane simpul, nanging kanthi enkripsi nggunakake pasangan tombol individu kanggo saluran iki (wis digawe nggunakake protokol Diffie-Hellman).

Pungkasan, kasus khusus yaiku saluran "null" - yen simpul durung ngerti kunci umum "tanggane", bisa ngirim paket tanpa enkripsi. Iki mung dimaksudaké kanggo initialization - sawise simpul ngirim informasi bab tombol, padha kudu digunakake kanggo komunikasi luwih.

Protokol kasebut ing ndhuwur (256 bit identifier saluran + isi paket) diarani ADNL. Dokumentasi kasebut nyebataken kemungkinan ngleksanakake analog TCP ing ndhuwur utawa tambahan dhewe - RLDP (Reliable Large Datagram Protocol), nanging ora menehi katrangan babagan implementasine.

TON DHT: Tabel Hash sing disebarake

Kaya kasus karo sistem distribusi liyane, TON kalebu implementasi DHT - tabel hash sing disebarake. Luwih khusus, meja kasebut Kademlia-kaya. Yen sampeyan ora kenal karo jinis tabel hash iki, aja kuwatir, ing ngisor iki aku bakal nerangake babagan cara kerjane.

TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

Ing pangertèn abstrak, DHT peta tombol 256-bit menyang nilai binar dawa sembarang. Ing kasus iki, tombol ing tabel minangka hash saka struktur TL tartamtu (struktur kasebut uga disimpen bebarengan karo DHT). Iki meh padha karo pambentukan alamat simpul - lan bisa uga ana ing DHT (contone, nggunakake tombol kasebut alamat IP simpul sing cocog karo sing diwenehake. alamat abstrak, yen dheweke ora ndhelikake). Nanging ing kasus umum, "prototipe tombol" (sing katrangan, katrangan kunci) minangka metadata sing nuduhake "pemilik" entri ing tabel hash (yaiku, kunci umum saka sawetara simpul), jinis nilai sing disimpen, lan aturan sing bisa diganti entri iki. Contone, aturan bisa ngidini mung pemilik kanggo ngganti nilai, utawa nglarang ngganti nilai mudhun (kanggo nglindhungi saka serangan muter maneh).

Saliyane tombol 256-bit, konsep alamat DHT dikenalake. Bedane karo alamat host biasa yaiku alamat DHT kudu disambungake menyang alamat IP. Yen simpul ora ndhelikake IP, bisa nggunakake alamat biasa kanggo DHT. Nanging luwih kerep, alamat "semi-permanen" sing kapisah bakal digawe kanggo kabutuhan DHT.
TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay
Konsep jarak dikenalake ing ndhuwur tombol lan alamat DHT - kabeh iki cocog karo tabel kademlia - jarak antarane tombol padha karo XOR (bitwise eksklusif UTAWA) saka wong-wong mau. Kaya ing tabel Kademlia, nilai sing cocog karo kunci tartamtu kudu disimpen s simpul sing duwe jarak paling cedhak karo tombol iki (s iki jumlah sing relatif cilik).

Supaya simpul DHT bisa sesambungan karo simpul liyane, iku tetep ing memori Tabel routing DHT - Alamat DHT lan IP saka node sing wis sesambungan sadurunge, diklompokake miturut jarak. Ana 256 kelompok kasebut (padha cocog karo bit paling pinunjul ing nilai jarak - yaiku, simpul ing jarak saka 0 nganti 255 bakal dadi siji klompok, saka 256 nganti 65535 - ing sabanjure, lan liya-liyane). Ing saben klompok, nomer winates saka simpul "paling apik" disimpen (ing syarat-syarat ping kanggo wong-wong mau).

TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

Saben simpul kudu ndhukung sawetara operasi: nyimpen nilai kanggo tombol, telusuran simpul и nelusuri nilai. Nggoleki node kalebu nerbitake, adhedhasar kunci sing diwenehake, simpul sing paling cedhak saka tabel routing; nggoleki nilai sing padha, kajaba nalika simpul ngerti nilai kunci kasebut (banjur mung ngasilake). Patut, yen simpul pengin nemokake nilai kanthi tombol ing DHT, ngirim panjalukan menyang sawetara simpul sing paling cedhak karo tombol iki saka tabel routing. Yen nilai sing dibutuhake ora ana ing antarane tanggapane, nanging ana alamat simpul liyane, banjur panjaluk kasebut diulang maneh.

TON DHT bisa digunakake kanggo macem-macem tujuan, contone, kanggo ngleksanakake panyimpenan file kaya torrent (pirsani. Panyimpenan TON); kanggo nemtokake alamat simpul sing ngleksanakake layanan tartamtu; kanggo nyimpen informasi babagan pemilik akun ing pamblokiran. Nanging aplikasi sing paling penting yaiku panemuan simpul kanthi alamat abstrak. Kanggo nindakake iki, alamat kasebut digunakake minangka kunci sing kudu ditemokake. Minangka asil panyuwunan, simpul kasebut dhewe bakal ditemokake (yen alamat sing digoleki minangka alamat DHT semi-permanen), utawa nilai kasebut bakal dadi alamat IP lan port kanggo sambungan - utawa alamat liyane sing kudu digunakake minangka trowongan perantara.

Jaringan overlay ing TON

Protokol ADNL sing diterangake ing ndhuwur nuduhake kemampuan kanggo node apa wae kanggo ngganti informasi siji liyane - sanajan ora kudu kanthi cara sing optimal. Kita bisa ngomong yen thanks kanggo ADNL, kabeh simpul mbentuk grafik TON global (saenipun disambungake). Nanging bisa uga nggawe jaringan overlay - subgraf ing grafik iki.
TON: Telegram Open Network. Bagean 1: Pambuka, lapisan jaringan, ADNL, DHT, jaringan overlay

Ing jaringan kasebut, interaksi mung ditindakake kanthi langsung - liwat sambungan sing wis dibentuk ing antarane simpul sing melu jaringan (liwat saluran ADNL sing kasebut ing ndhuwur). Pembentukan sambungan kasebut ing antarane tangga-tanggane, nggoleki tetanggan dhewe, minangka proses otomatis sing ngupaya kanggo njaga konektivitas jaringan overlay lan nyilikake telat ing ijol-ijolan data ing kono.

Kajaba iku, ana cara kanggo nyebarake nganyari siaran gedhe kanthi cepet ing jaringan - dipecah dadi potongan, ditambah karo kode koreksi kesalahan, lan kabeh potongan kasebut dikirim saka siji peserta menyang liyane. Dadi, peserta ora kudu entuk kabeh bagean sadurunge ngirim luwih akeh ing jaringan.

Jaringan overlay bisa dadi umum utawa pribadi. Dadi anggota jaringan umum ora angel - sampeyan kudu nemokake struktur TL sing njlèntrèhaké (bisa umum utawa diakses dening tombol tartamtu ing DHT). Ing kasus jaringan pribadi, struktur iki kudu dingerteni sadurunge simpul.

Kanggo terus

Aku mutusake kanggo pamisah review TON dadi sawetara artikel. Iki ngendi bagean iki ends, lan ing sabanjure Aku nerusake kanggo nimbang struktur pamblokiran (luwih tepat, pamblokiran) sing TON bakal kalebu.

Source: www.habr.com

Add a comment