TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

Artıq iki həftədir ki, Runet Telegram və onun Roskomnadzor tərəfindən mənasız və amansız bloklanması ilə bağlı vəziyyətlə bağlı səs-küy yaradır. Rikoşet bir çox insanı incitdi, lakin bütün bunlar Geektimes-da yazıların mövzularıdır. Məni başqa bir şey təəccübləndirdi - Telegram - Telegram Açıq Şəbəkəsi əsasında buraxılması planlaşdırılan TON şəbəkəsinin Habré-də hələ də bir analiz görməmişəm. Mən bu çatışmazlığı tamamlamaq istədim, çünki orada təhsil almaq üçün bir şey var - bu barədə rəsmi açıqlamaların olmamasına baxmayaraq.

Nəzərinizə çatdırım ki, Telegram-ın artıq inanılmaz miqdarda pul yığaraq çox geniş miqyaslı qapalı ICO-nu işə salması barədə şayiələr var. Bu il Gram-ın öz kriptovalyutasının istifadəyə veriləcəyi gözlənilir - və hər bir Telegram istifadəçisinin avtomatik olaraq pul kisəsi olacaq ki, bu da özlüyündə digər kriptovalyutalar üzərində əhəmiyyətli üstünlük yaradır.

Təəssüf ki, rəsmi açıqlamalar olmadığına görə, yalnız bundan irəli gedə bilərəm mənşəyi məlum olmayan sənəd, mən sizə dərhal xəbərdarlıq edirəm. Əlbəttə ki, bu, çox bacarıqlı bir saxta ola bilər, lakin bu, Nikolay Durov tərəfindən yazılmış (və yəqin ki, investorlardan biri tərəfindən sızdırılmış) gələcək sistemin əsl ağ kağızı olması da mümkündür. Ancaq saxta olsa belə, heç kim bizə bunu öyrənməyi və müzakirə etməyi qadağan etməyəcək, elə deyilmi?

Bu sənəd nə deyir? Mən bunu öz sözlərimlə, mətnə ​​yaxın, amma rusca və bir az da insancasına izah etməyə çalışacağam (Nikolay məni formal riyaziyyata girmək meyli ilə bağışlasın). Nəzərə alın ki, bu orijinal olsa belə, bu sistemin qaralama təsviridir və çox güman ki, ictimaiyyətə təqdim edilən zaman dəyişəcək.

Öyrəndik ki, kriptovalyuta ilə yanaşı, gözlənilən daha çox şey var. Gəlin onu sıra ilə götürək.

  • TON Blockchain. Bu, bütün sistemin əsasını təşkil edir. Əgər bunun nə olduğunu bilmirsinizsə blok — Mən öyrənməyi məsləhət görürəm, çünki burada çoxlu blokçeynlər olacaq. Digər blokçeynlərin blokları daxilində bir-birinin içində, faktiki olaraq parçalanmış və hətta “şaquli” blokçeynlər. kimi sərin səslənən terminlər də olacaq Ani Hypercube Routing и Sonsuz Parçalanma Paradiqması, lakin bu barədə daha sonra. Və, əlbəttə ki, proof-of-stake və ağıllı müqavilələr.
  • TON P2P Şəbəkəsi. Sistemin əsasında qurulacaq peer-to-peer şəbəkəsi. Hekayənin bu hissəsində ilk olaraq onun haqqında danışılacaq.
  • TON Saxlama. Blockchain-dən asılı olmayaraq yuxarıda qeyd olunan peer-to-peer şəbəkəsində qurulacaq fayl yaddaşı. Torrentlərlə müqayisə etmək olar.
  • TON Proksi. Bu, məqsədi şəbəkə iştirakçılarının anonimliyini artırmaq olan bir xidmətdir. İstənilən paket birbaşa deyil, əlavə şifrələmə ilə vasitəçi tunellər vasitəsilə - I2P və ya TOR kimi göndərilə bilər.
  • TON DHT. İxtiyari dəyərlərin saxlanması üçün paylanmış hash cədvəli. Üstündə də tikilir TON Şəbəkəsi (amma eyni zamanda onun tərəfindən istifadə olunur) və kömək edir TON Saxlama "paylayıcı" qovşaqları tapın və TON Proksi — ara təkrarlayıcılar. Ancaq qeyd etmək lazımdır ki, blokçeyndən fərqli olaraq, bu hash cədvəli təhlükəsiz saxlama yeri deyil - siz orada vacib məlumatları saxlaya bilməzsiniz.
  • TON Xidmətləri. Xüsusi xidmətlər üçün platforma. Əslində, bu, yuxarıda təsvir edilən hər şeyin üstündə yeni bir İnternetdir. Məlumat mübadiləsi - vasitəsilə TON Şəbəkəsi/TON Proksi, və məntiq ağıllı müqavilələrdədir TON Blockchain. Və kifayət qədər tanış URL-ləri olan bir interfeys.
  • TON DNS. Tanış URL-lərdən bəhs etdiyimiz üçün onlardan 256 bitlik ünvanlara - hesablar, müqavilələr, xidmətlər və qovşaqlara çevirici də lazımdır.
  • TON ödənişləri. Və burada pul məsələsi ortaya çıxır. Və yalnız olmayacaq qram — efirdə olduğu kimi, istənilən “token” mümkün olacaq; Qramlar burada sadəcə "defolt" valyuta olacaq.

Bu, TON-un "əsaslandırılmış" təbəqəsini - ənənəvi protokollar üzərində qurulmuş şəbəkə hissəsini təsvir edən birinci hissədir. Növbəti hissədə aşağıda təsvir edilən sistem tərəfindən dəstəklənəcək “yumşaq” – blokçeyn haqqında danışacağıq. Beləliklə, mənim təkrar izahat ardıcıllığım yuxarıda qeyd olunan sənəddə istifadə olunandan bir qədər fərqlidir (bu, dərhal mücərrəd səviyyədən başlayır).

Əsas anlayışlar

TL (Növ dili). Bu, ixtiyari məlumat strukturları üçün mücərrəd ikili formatdır. Telegram protokolunda istifadə olunur və TON-da aktiv şəkildə istifadə olunacaq. Onunla ətraflı tanış olmaq istəyirsinizsə - budur onun təsviri.

Hash (sükut). İxtiyari verilənlər strukturunun sabit uzunluqdakı tək ədədə dönməz çevrilməsini həyata keçirən funksiya. Sənədlər boyunca biz funksiya haqqında danışırıq SHA-256.

Şəbəkə qovşağı (node). Bir qovşaq sistemin işləməsini təmin edəcək proqram təminatıdır. Xüsusilə, hər bir Telegram müştəri tətbiqinin bir TON nodu ehtiva edəcəyi güman edilir. Aşağı səviyyədə qovşaqlar IPv4/IPv6 ünvanlarına malikdir və UDP protokolundan istifadə edərək əlaqə qurur; daha yüksək səviyyədə isə onlar var. mücərrəd ünvanlar və ADNL protokolunu həyata keçirin (mücərrəd ünvanlar və ADNL haqqında - aşağıya baxın). Sistemin bəzi hissələrinin bir şey etməsinə və ya bəzi məlumatları saxlamasına gəldikdə, bunun şəbəkə qovşaqları tərəfindən edildiyi başa düşülür.

Abstrakt ünvan (və ya sadəcə адрес, ünvan). Düyün ünvanı onun açıq açarı ilə müəyyən edilir. Daha dəqiq desək, bu, açıq açarı ehtiva edən məlumat strukturunun 256 bitlik hashıdır (SHA256). Bir qovşağın digəri ilə əlaqə qurması üçün o, təkcə onun ünvanını deyil, həm də bu məlumat strukturunu bilməlidir. Teorik olaraq, bir fiziki qovşaq istənilən sayda ünvan yarada bilər (müxtəlif açarlara uyğundur).

Bundan əlavə, tez-tez belə bir əlaqə istifadə olunur: TL strukturu şəklində "prototip" (demək olar ki, hər hansı bir məlumatı ehtiva edir) və ünvan üçün istifadə olunan 256 bitlik hash.

Bloccain (blockchain). Blokçeyn məlumat strukturudur, elementləri (blokları) "zəncir" şəklində sıralanır və zəncirin hər bir sonrakı bloku əvvəlkinin hashını ehtiva edir. Bu yolla, bütövlük əldə edilir - dəyişikliklər yalnız yeni bloklar əlavə etməklə edilə bilər.

Xidmət (xidmət). TON daxilində xidmətlər blokçeynindən istifadə edib etməməsindən asılı olaraq müxtəlif növ ola bilər. Məsələn, bir (və ya bir çox) şəbəkə qovşağı, ənənəvi veb serverlər kimi blokçeynində heç bir qeyd yaratmadan aşağıda təsvir edilən ADNL protokolundan istifadə edərək müəyyən RPC sorğularını emal edə bilər. O cümlədən HTTP-nin ADNL üzərindən həyata keçirilməsi imkanı, həmçinin messencerin özünün bu protokola keçidi. TOR və ya I2P ilə bənzətməklə, bu, onu müxtəlif bloklamalara daha davamlı edəcək.

Eyni zamanda, bir sıra xidmətlər həm blokçeynlə qarşılıqlı əlaqəni, həm də ondan kənar sorğuların işlənməsini əhatə edir. Məsələn, TON Storage üçün - fayl saxlama - faylların özlərini blokçeynində saxlamaq çox ağlabatan deyil. O, yalnız fayl hashlərindən ibarət olacaq (onlar haqqında bəzi meta-məlumatlarla birlikdə) və ixtisaslaşmış şəbəkə qovşaqları onları ADNL vasitəsilə digər qovşaqlara göndərməyə hazır olan “fayl serverləri” kimi çıxış edəcək.

Duman xidməti (duman xidməti). Söhbət mərkəzsizləşdirmə və onlarda açıq iştirak nəzərdə tutan bəzi xidmətlərdən gedir. Məsələn, TON Proxy öz qovşağını digər qovşaqlar arasında vasitəçi (proksi) yönləndirmə paketləri kimi təqdim etmək istəyən hər bir iştirakçı tərəfindən dəstəklənə bilən xidmətdir. İstəyirsə, bunun üçün onun təyin etdiyi rüsum tuta bilər - mikroödənişlər üçün TON Ödəniş sistemindən istifadə etməklə (bu da öz növbəsində duman xidmətidir).

ADNL: Abstract Datagram Network Layer

Ən aşağı səviyyədə qovşaqlar arasında əlaqə UDP protokolundan istifadə etməklə həyata keçiriləcək (baxmayaraq ki, digər variantlar məqbuldur).

Yuxarıda qeyd edildiyi kimi, bir qovşağın digərinə paket göndərməsi üçün o, özünün açıq açarlarından birini (və buna görə də müəyyən etdiyi ünvanı) bilməlidir. O, paketi bu açarla şifrləyir və 256 bitlik təyinat ünvanını paketin əvvəlinə əlavə edir - bir qovşaqda bu ünvanlardan bir neçəsi ola bilər, bu ona şifrəni açmaq üçün hansı açardan istifadə edəcəyini müəyyən etməyə imkan verəcək.

TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

Bundan əlavə, alıcının ünvanı əvəzinə, məlumat paketinin başlanğıcında sözdə olanlar ola bilər. identifikator kanal. Bu halda, paketin emalı artıq qovşaqlar arasında xüsusi razılaşmalardan asılıdır - məsələn, müəyyən bir kanala göndərilən məlumatlar başqa bir qovşaq üçün nəzərdə tutula bilər və ona ötürülməlidir (bu xidmətdir TON Proksi). Başqa bir xüsusi hal, birbaşa qovşaqlar arasında qarşılıqlı əlaqə ola bilər, lakin bu kanal üçün fərdi açar cütündən istifadə edərək şifrələmə ilə (Diffie-Hellman protokolundan istifadə edərək əvvəlcədən yaradılmışdır).

Nəhayət, xüsusi hal "null" kanaldır - əgər bir qovşaq hələ "qonşularının" açıq açarlarını bilmirsə, ümumiyyətlə şifrələmədən onlara paketlər göndərə bilər. Bu, yalnız başlanğıc üçün nəzərdə tutulmuşdur - qovşaqlar öz açarları haqqında məlumat göndərdikdən sonra, onlar sonrakı əlaqə üçün istifadə edilməlidir.

Yuxarıda təsvir olunan protokol (256 bit kanal identifikatoru + paket məzmunu) ADNL adlanır. Sənədlərdə onun üzərinə TCP analoqunun və ya öz əlavəsinin - RLDP (Reliable Large Datagram Protocol) tətbiqinin mümkünlüyü qeyd edilir, lakin onların həyata keçirilməsi haqqında təfərrüatlara varılmır.

TON DHT: Paylanmış Hash Cədvəli

Digər paylanmış sistemlərdə olduğu kimi, TON da DHT-nin həyata keçirilməsini nəzərdə tutur - paylanmış hash cədvəli. Daha dəqiq desək, cədvəl belədir Kademliya kimi. Bu cür hash cədvəli ilə tanış deyilsinizsə, narahat olmayın, aşağıda onların necə işlədiyini təxmini təsvir edəcəyəm.

TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

Mücərrəd mənada, DHT 256 bitlik açarları ixtiyari uzunluğun ikili dəyərlərinə uyğunlaşdırır. Bu halda, cədvəldəki açarlar müəyyən TL strukturundan hashlardır (strukturların özləri də DHT ilə birlikdə saxlanılır). Bu, qovşaq ünvanlarının formalaşmasına çox bənzəyir - və onlar həqiqətən DHT-də ola bilər (məsələn, belə bir açardan istifadə edərək, verilmiş bir qovşaqın IP ünvanı mücərrəd ünvan, gizlətməsə). Ancaq ümumi vəziyyətdə "açarların prototipləri" (onların təsvirlər, əsas təsvirlər) hash cədvəlindəki girişin “sahibini” (yəni bəzi qovşağın açıq açarını), saxlanılan dəyərin növünü və bu girişin sonradan dəyişdirilə biləcəyi qaydaları göstərən metadatadır. Məsələn, bir qayda yalnız sahibinə dəyəri dəyişməyə icazə verə bilər və ya dəyəri aşağıya doğru dəyişməyi qadağan edə bilər (təkrar hücumlardan qorunmaq üçün).

256 bitlik açarlara əlavə olaraq DHT ünvanları konsepsiyası təqdim edilir. Adi host ünvanlarından fərq ondan ibarətdir ki, DHT ünvanı mütləq bir IP ünvanına bağlıdır. Əgər node öz IP-ni gizlətmirsə, o, DHT üçün adi ünvandan istifadə edə bilər. Ancaq daha tez-tez DHT ehtiyacları üçün ayrıca, "yarı daimi" bir ünvan yaradılacaqdır.
TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr
Məsafə anlayışı düymələrin və DHT ünvanlarının üstündə təqdim olunur - burada hər şey cədvəllərlə üst-üstə düşür kademlia — düymələr arasındakı məsafə onların XOR-a (bit üzrə eksklüziv OR) bərabərdir. Kademlia cədvəllərində olduğu kimi, müəyyən bir açara uyğun gələn dəyər üzərində saxlanmalıdır s bu açara ən qısa məsafədə olan qovşaqlar (s burada nisbətən kiçik rəqəmdir).

Bir DHT qovşağının digər bu cür qovşaqlarla əlaqə saxlaması üçün yaddaşda saxlanılır DHT marşrutlaşdırma cədvəli — Əvvəllər qarşılıqlı əlaqədə olduğu qovşaqların DHT və IP ünvanları, onlara olan məsafəyə görə qruplaşdırılmışdır. 256 belə qrup var (onlar məsafə dəyərində müəyyən edilmiş ən əhəmiyyətli bitə uyğundur - yəni 0-dan 255-ə qədər olan qovşaqlar bir qrupa, 256-dan 65535-ə qədər - növbəti qrupa düşəcək və s.). Hər qrup daxilində məhdud sayda "ən yaxşı" qovşaqlar saxlanılır (onlara ping baxımından).

TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

Hər bir qovşaq bir neçə əməliyyatı dəstəkləməlidir: açar üçün dəyərin saxlanması, node axtarışı и dəyərləri axtarın. Düyünlərin axtarışı verilmiş açar əsasında marşrutlaşdırma cədvəlindən ona ən yaxın olan qovşaqların verilməsini nəzərdə tutur; qovşaq açarın dəyərini bildiyi hallar istisna olmaqla, dəyərlərə baxmaq eynidir (sonra onu qaytarır). Müvafiq olaraq, əgər qovşaq DHT-də açara görə dəyər tapmaq istəyirsə, o, marşrutlaşdırma cədvəlindən bu açara ən yaxın olan az sayda qovşaqlara sorğu göndərir. Əgər tələb olunan dəyər onların cavabları arasında deyilsə, lakin başqa qovşaq ünvanları varsa, sorğu onlara təkrarlanır.

TON DHT müxtəlif məqsədlər üçün istifadə oluna bilər, məsələn, torrentə bənzər fayl yaddaşını həyata keçirmək üçün (bax. TON Saxlama); müəyyən xidmətləri həyata keçirən qovşaqların ünvanlarını müəyyən etmək; blokçeynində hesab sahibləri haqqında məlumat saxlamaq üçün. Lakin ən vacib tətbiq qovşaqların mücərrəd ünvanlarına görə aşkarlanmasıdır. Bunun üçün ünvandan dəyərinin tapılması lazım olan açar kimi istifadə olunur. Sorğunun nəticəsi olaraq ya qovşağın özü tapılacaq (əgər axtarılan ünvan onun yarı daimi DHT ünvanı idisə), ya da dəyər IP ünvanı və əlaqə üçün port olacaq - ya da əlaqə kimi istifadə edilməli olan başqa bir ünvan. vasitəçi tunel.

TON-da üst-üstə düşən şəbəkələr

Yuxarıda təsvir edilən ADNL protokolu istənilən qovşaqların bir-biri ilə məlumat mübadiləsi aparmaq qabiliyyətini nəzərdə tutur - baxmayaraq ki, optimal üsullarla deyil. Deyə bilərik ki, ADNL sayəsində bütün qovşaqlar qlobal TON qrafiki əmələ gətirir (ideal olaraq bağlıdır). Lakin əlavə olaraq bu qrafik daxilində üst-üstə düşən şəbəkələr - alt qrafiklər yaratmaq mümkündür.
TON: Telegram Açıq Şəbəkə. 1-ci hissə: Giriş, şəbəkə səviyyəsi, ADNL, DHT, üst-üstə düşən şəbəkələr

Belə bir şəbəkə daxilində qarşılıqlı əlaqə yalnız birbaşa - şəbəkədə iştirak edən qovşaqlar arasında əvvəlcədən formalaşmış əlaqələr vasitəsilə (yuxarıda təsvir olunan ADNL kanalları vasitəsilə) həyata keçirilir. Qonşular arasında bu cür əlaqələrin qurulması, qonşuların özləri üçün axtarış, üst-üstə düşən şəbəkənin əlaqəsini qorumağa və içindəki məlumat mübadiləsində gecikmələri minimuma endirməyə çalışan avtomatik bir prosesdir.

Bundan əlavə, şəbəkə daxilində böyük yayım yeniləmələrini tez bir şəkildə yaymaq üçün bir yol var - onlar parçalara bölünür, səhvlərin düzəldilməsi kodu ilə tamamlanır və bütün bu parçalar bir iştirakçıdan digərinə göndərilir. Beləliklə, iştirakçı şəbəkə boyunca daha da göndərməzdən əvvəl bütün hissələri tam şəkildə əldə etməli deyil.

Overlay şəbəkələri ictimai və ya özəl ola bilər. İctimai şəbəkənin üzvü olmaq çətin deyil - onu təsvir edən TL strukturunu tapmaq lazımdır (o, ictimai ola bilər və ya DHT-də müəyyən bir açarla əldə edilə bilər). Şəxsi şəbəkə vəziyyətində, bu struktur əvvəlcədən node ilə tanış olmalıdır.

Davam etmək

TON icmalını bir neçə məqaləyə bölmək qərarına gəldim. Bu hissənin bitdiyi yer budur və sonrakı TON-un ibarət olacağı blokçeynin (daha doğrusu, blokçeynlər) strukturunu nəzərdən keçirməyə davam edirəm.

Mənbə: www.habr.com

Добавить комментарий