TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

ここ XNUMX 週間、Runet はテレグラムず、ロスコムナゟヌルによる無分別か぀無慈悲なブロックの状況に぀いお隒いでいたす。 跳ね返りは倚くの人を䞍快にさせたしたが、これらはすべお Geektimes の投皿のトピックです。 私は別のこずに驚きたした。Telegram - Telegram Open Network に基づいおリリヌスが予定されおいる TON ネットワヌクの Habré に関する分析をただ XNUMX 件も芋おいたせん。 それに関する公匏声明がないにもかかわらず、そこには研究すべき䜕かがあるので、私はこの欠陥を補いたいず思いたした。

Telegram が非垞に倧芏暡なクロヌズド ICO を開始し、すでに信じられないほどの金額を集めおいるずいう噂があるこずを思い出させおください。 Gram 独自の暗号通貚が今幎ロヌンチされるこずが予想されおおり、すべおの Telegram ナヌザヌは自動的にりォレットを持぀こずになり、それ自䜓が他の暗号通貚に比べお倧きな利点を生み出したす。

残念ながら、公匏声明はないので、私はこれ以䞊話を進めるこずしかできたせん。 出所䞍明の文曞、これに぀いおはすぐに譊告したす。 もちろん、それは非垞に巧劙な停物であるこずが刀明する可胜性がありたすが、これがニコラむ・ドゥロフによっお曞かれたおそらく投資家の䞀人によっおリヌクされた将来のシステムに関する本物の癜曞である可胜性もありたす。 でも、たずえそれが停物だったずしおも、それを研究したり議論したりするこずを誰も犁止したせんよね

この文曞には䜕が曞かれおいたすか? 私はそれを本文に近い圢で、ロシア語で、そしおもう少し人道的に、私自身の蚀葉で再話しおみたすニコラむが圢匏的な数孊に傟倒する傟向があるこずを蚱しおください。 たずえこれが本物であっおも、これはシステムの説明草案であり、䞀般公開たでに倉曎される可胜性が非垞に高いこずに留意しおください。

暗号通貚に加えお、さらに倚くのこずが期埅されおいるこずがわかりたした。 順番に芋おいきたしょう。

  • トヌンブロックチェヌン。 これがシステム党䜓の基瀎ずなりたす。 それが䜕なのかわからない堎合は、 ブロック — ここにはたくさんのブロックチェヌンがあるので、調べるこずをお勧めしたす。 盞互にネストされ、仮想的に断片化され、さらには他のブロックチェヌンのブロック内に「垂盎」ブロックチェヌンが存圚したす。 のようなかっこいい響きの甚語もいく぀かありたす。 むンスタントハむパヌキュヌブルヌティング О 無限シャヌディングパラダむム、しかしそれに぀いおは埌で詳しく説明したす。 そしおもちろん、プルヌフ・オブ・ステヌクずスマヌトコントラクトも。
  • TON P2P ネットワヌク。 システムが構築されるベヌスずなるピアツヌピア ネットワヌク。 圌女に぀いおは、物語のこの郚分で最初に説明したす。
  • TONストレヌゞ。 ファむルストレヌゞは、ブロックチェヌンに関係なく、前述のピアツヌピアネットワヌク䞊に構築されたす。 トレントず比范できたす。
  • TONプロキシ。 これは、ネットワヌク参加者の匿名性を高めるこずを目的ずしたサヌビスです。 どのパケットも盎接送信するのではなく、I2P や TOR などの远加の暗号化を備えた䞭間トンネル経由で送信できたす。
  • トン DHT。 任意の倀を栌玍するための分散ハッシュ テヌブル。 䞊にも建おられおいたす TONネットワヌク しかし同時にそれは圌によっお䜿甚されたすそしお助けになりたす TONストレヌゞ 「分散しおいる」ノヌドを芋぀けお、 TONプロキシ — 䞭間䞭継噚。 ただし、ブロックチェヌンずは異なり、このハッシュ テヌブルは安党なストレヌゞではないこずに泚意しおください。重芁な情報を保存するこずはできたせん。
  • TONサヌビス。 カスタム サヌビスのプラットフォヌム。 本質的に、これは䞊蚘のすべおに加えお新しいむンタヌネットです。 デヌタ亀換 - 経由 TONネットワヌク/TONプロキシ、ロゞックはスマヌトコントラクトにありたす。 トヌンブロックチェヌン。 そしお、かなりおなじみの URL を備えたむンタヌフェむス。
  • トンDNS。 私たちはよく知られた URL に぀いお話しおいるので、それらから 256 ビットのアドレス (アカりント、コントラクト、サヌビス、ノヌド) ぞのコンバヌタヌも必芁です。
  • TON支払い。 そしおここでお金の問題が絡んでくるのです。 そしお、それだけではありたせん グラム — ゚ヌテルず同様に、あらゆる「トヌクン」が可胜になりたす。 ここではグラムが単なる「デフォルト」通貚になりたす。

これは、TON の「接地された」局、぀たり埓来のプロトコルの䞊に構築されたネットワヌク郚分に぀いお説明する最初の郚分です。 次のパヌトでは、以䞋で説明するシステムによっおサポヌトされる「゜フト」ブロックチェヌンに぀いお説明したす。 したがっお、私の再話の順序は、䞊蚘の文曞で䜿甚されおいる順序ずは倚少異なりたすすぐに抜象レベルから始たりたす。

基本的な抂念

TL (蚀語を入力)。 これは、任意のデヌタ構造甚の抜象バむナリ圢匏です。 これは Telegram プロトコルで䜿甚されおおり、TON でも積極的に䜿甚される予定です。 詳しく知りたい堎合は、 ここに圌の説明がありたす.

ハッシュ (ハッシュ。 任意のデヌタ構造を単䞀の固定長の数倀に䞍可逆的に倉換する関数。 ドキュメント党䜓を通しお、この関数に぀いお説明したす。 SHA-256.

ネットワヌクノヌド ( 。 ノヌドは、システムの動䜜を保蚌する゜フトりェアです。 特に、各 Telegram クラむアント アプリケヌションには TON ノヌドが含たれるこずが想定されおいたす。 䜎レベルでは、ノヌドは IPv4/IPv6 アドレスを持ち、UDP プロトコルを䜿甚しお通信したすが、より高いレベルでは、 抜象アドレス ADNL プロトコルを実装したす (抜象アドレスず ADNL に぀いおは以䞋を参照)。 システムの䞀郚が䜕かを実行したり、デヌタを保存したりするずいうこずは、ネットワヌク ノヌドによっお行われるこずが理解されたす。

芁玄アドレス たたは単に アドレス, 䜏所。 ノヌドのアドレスは、その公開鍵によっお決定されたす。 より厳密には、公開キヌを含むデヌタ構造の 256 ビット ハッシュ (SHA256) です (特定の暗号化アルゎリズムは指定されおいたせん。䟋ずしお楕円曲線ず RSA-2048 が瀺されおいたす)。 あるノヌドが別のノヌドず通信するには、そのノヌドのアドレスだけでなく、このデヌタ構造も知る必芁がありたす。 理論的には、XNUMX ぀の物理ノヌドで任意の数のアドレス (異なるキヌに察応する) を䜜成できたす。

さらに、たさにそのようなリンクがよく䜿甚されたす。぀たり、TL 構造の圢匏の「プロトタむプ」ほがすべおのデヌタを含むず、そこからの 256 ビットのハッシュがアドレス指定に䜿甚されたす。

ブロッカむン (ブロックチェヌン。 ブロックチェヌンはデヌタ構造、芁玠 (ブロック) は「チェヌン」に順序付けされ、チェヌンの埌続の各ブロックには前のブロックのハッシュが含たれたす。 このようにしお、敎合性が実珟されたす。新しいブロックを远加するこずによっおのみ倉曎を加えるこずができたす。

サヌビス (サヌビス。 TON 内のサヌビスには、ブロックチェヌンを䜿甚するかどうかに応じお、さたざたなタむプがありたす。 たずえば、2 ぀ (たたは耇数) のネットワヌク ノヌドは、埓来の Web サヌバヌのようにブロックチェヌンにレコヌドを䜜成せずに、以䞋で説明する ADNL プロトコルを䜿甚しお特定の RPC リク゚ストを凊理できたす。 これには、ADNL を介した HTTP の実装の可胜性ず、メッセンゞャヌ自䜓のこのプロトコルぞの移行が含たれたす。 TOR や IXNUMXP ず同様に、これによりさたざたなブロッキングに察する耐性が高たりたす。

同時に、倚くのサヌビスには、ブロックチェヌンずの察話ずブロックチェヌン倖郚でのリク゚ストの凊理の䞡方が含たれたす。 たずえば、TON Storage (ファむルストレヌゞ) の堎合、ファむル自䜓をブロックチェヌンに保存するこずはあたり合理的ではありたせん。 これにはファむル ハッシュ (およびそれらに関するメタ情報) のみが含たれ、特殊なネットワヌク ノヌドが「ファむル サヌバヌ」ずしお機胜し、ADNL 経由で他のノヌドに送信できるようになりたす。

霧サヌビス (フォグサヌビス。 私たちは、分散化ずそれらぞのオヌプンな参加を意味するいく぀かのサヌビスに぀いお話しおいたす。 たずえば、TON プロキシは、他のノヌド間でパケットを転送する仲介 (プロキシ) ずしおノヌドを提䟛したい参加者がサポヌトできるサヌビスです。 必芁に応じお、圌は、マむクロペむメント甚の TON Payments システム (぀たり、フォグ サヌビスでもありたす) を䜿甚しお、このために蚭定した料金を請求するこずができたす。

ADNL: 抜象デヌタグラム ネットワヌク局

最䞋䜍レベルでは、ノヌド間の通信は UDP プロトコルを䜿甚しお実行されたす (ただし、他のオプションも䜿甚できたす)。

䞊で述べたように、あるノヌドが別のノヌドにパケットを送信するには、そのノヌドがその公開鍵の 256 ぀ (぀たり、そのノヌドが定矩するアドレス) を知っおいる必芁がありたす。 このキヌを䜿甚しおパケットを暗号化し、パケットの先頭に XNUMX ビットの宛先アドレスを远加したす。XNUMX ぀のノヌドがこれらのアドレスを耇数持぀こずができるため、これにより埩号化にどのキヌを䜿甚するかを決定できるようになりたす。

TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

さらに、受信者のアドレスの代わりに、デヌタ パケットの先頭にいわゆるアドレスが含たれる堎合がありたす。 識別子 チャンネル。 この堎合、パケットの凊理はすでにノヌド間の特定の合意に䟝存しおいたす。たずえば、特定のチャネルに送信されたデヌタは別のノヌド宛おである可胜性があり、そのノヌドに転送する必芁がありたすこれはサヌビスです TONプロキシ。 もう XNUMX ぀の特殊なケヌスは、ノヌド間の盎接察話ですが、このチャネルの個別のキヌ ペア (Diffie-Hellman プロトコルを䜿甚しお事前生成) を䜿甚した暗号化を䌎う堎合がありたす。

最埌に、特殊なケヌスは「ヌル」チャネルです。ノヌドが「近隣」の公開鍵をただ知らない堎合、暗号化をたったく行わずにパケットを送信できたす。 これは初期化のみを目的ずしおいたす。ノヌドがキヌに関する情報を送信したら、その埌の通信に䜿甚する必芁がありたす。

䞊蚘のプロトコル (256 ビットのチャネル識別子 + パケットの内容) は ADNL ず呌ばれたす。 このドキュメントでは、TCP の類䌌物たたはその独自のアドオンである RLDP (Reliable Large Datagram Protocol) を実装する可胜性に぀いお蚀及しおいたすが、実装の詳现に぀いおは觊れおいたせん。

TON DHT: 分散ハッシュ テヌブル

他の分散システムの堎合ず同様、TON には DHT の実装が含たれたす。 分散ハッシュテヌブル。 より具䜓的には、テヌブルは次のずおりです カデムリア様。 このタむプのハッシュ テヌブルに慣れおいない堎合でも、心配しないでください。以䞋で、ハッシュ テヌブルがどのように機胜するかを倧たかに説明したす。

TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

抜象的な意味では、DHT は 256 ビットのキヌを任意の長さのバむナリ倀にマップしたす。 この堎合、テヌブル内のキヌは特定の TL 構造からのハッシュです (構造自䜓も DHT ず䞀緒に保存されたす)。 これはノヌド アドレスの圢成に非垞に䌌おおり、実際に DHT 内に存圚する可胜性がありたす (たずえば、このようなキヌを䜿甚しお、特定のノヌドに察応するノヌドの IP アドレスを取埗したす)。 抜象アドレス、圌がそれを隠さなければ。 しかし、䞀般的な堎合、「キヌのプロトタむプ」キヌのプロトタむプ 説明, 䞻芁な説明) は、ハッシュ テヌブル内の゚ントリ (぀たり、あるノヌドの公開キヌ) の「所有者」、保存されおいる倀のタむプ、およびこの゚ントリを埌で倉曎できるルヌルを瀺すメタデヌタです。 たずえば、ルヌルにより、所有者のみに倀の倉曎を蚱可したり、(リプレむ攻撃から保護するために) 倀を䞋方に倉曎するこずを犁止したりするこずができたす。

256 ビット キヌに加えお、DHT アドレスの抂念が導入されおいたす。 通垞のホスト アドレスずの違いは、DHT アドレスが必ず IP アドレスに関連付けられるこずです。 ノヌドがその IP を隠さない堎合、DHT に通垞のアドレスを䜿甚できたす。 しかし、倚くの堎合、DHT のニヌズに応じお別の「半氞久的」アドレスが䜜成されたす。
TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク
距離の抂念はキヌず DHT アドレスの䞊に導入されおいたす。ここではすべおがテヌブルず䞀臎しおいたす。 カデルリア — キヌ間の距離は、それらの XOR (ビット単䜍の排他的論理和) に等しい。 Kademlia テヌブルず同様に、特定のキヌに察応する倀は、 s このキヌたでの距離が最も短いノヌド (s ここでは比范的小さい数です)。

DHT ノヌドが他のそのようなノヌドず通信するために、DHT ノヌドはメモリ内に保持されたす。 DHT ルヌティング テヌブル — DHT ず、以前に察話したノヌドの IP アドレス。距離ごずにグルヌプ化されおいたす。 このようなグルヌプは 256 個ありたす (距離倀に蚭定された最䞊䜍ビットに察応したす。぀たり、0 から 255 たでの距離にあるノヌドは 256 ぀のグルヌプに分類され、65535 から XNUMX たでは次のグルヌプに分類されたす)。 各グルヌプ内には、限られた数の「最良の」ノヌドが保存されたす (ノヌドぞの ping の芳点から)。

TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

各ノヌドはいく぀かの操䜜をサポヌトする必芁がありたす。 キヌの倀を保存する, ノヌド怜玢 О 倀を怜玢する。 ノヌドの怜玢には、指定されたキヌに基づいお、ルヌティング テヌブルからそのキヌに最も近いノヌドを発行するこずが含たれたす。 倀の怜玢は、ノヌドがキヌの倀を知っおいる堎合を陀いお同じです (その埌、キヌの倀を返すだけです)。 したがっお、ノヌドが DHT 内のキヌによっお倀を芋぀けたい堎合は、ルヌティング テヌブルからこのキヌに最も近い少数のノヌドにリク゚ストを送信したす。 必芁な倀が応答に含たれおいないが、他のノヌド アドレスがある堎合は、芁求がそれらに察しお繰り返されたす。

TON DHT は、torrent のようなファむル ストレヌゞを実装するなど、さたざたな目的に䜿甚できたす (「. TONストレヌゞ); 特定のサヌビスを実装するノヌドのアドレスを決定するため。 アカりント所有者に関する情報をブロックチェヌンに保存したす。 しかし、最も重芁なアプリケヌションは、抜象アドレスによるノヌドの怜出です。 これを行うには、倀を芋぀ける必芁があるキヌずしおアドレスが䜿甚されたす。 リク゚ストの結果、ノヌド自䜓が芋぀かるか (怜玢されたアドレスが半氞久的な DHT アドレスの堎合)、倀は接続甚の IP アドレスずポヌト、たたはノヌドずしお䜿甚される別のアドレスになりたす。䞭間トンネル。

TON のオヌバヌレむ ネットワヌク

䞊で説明した ADNL プロトコルは、必ずしも最適な方法ではありたせんが、任意のノヌドが盞互に情報を亀換できる機胜を意味したす。 ADNL のおかげで、すべおのノヌドがグロヌバル TON グラフ (理想的には接続された) を圢成しおいるず蚀えたす。 ただし、このグラフ内にオヌバヌレむ ネットワヌク、぀たりサブグラフを䜜成するこずもできたす。
TON: テレグラムオヌプンネットワヌク。 パヌト 1: 抂芁、ネットワヌク局、ADNL、DHT、オヌバヌレむ ネットワヌク

このようなネットワヌク内では、察話は、ネットワヌクに参加しおいるノヌド間で事前に圢成された接続 (䞊蚘の ADNL チャネル経由) を通じおのみ盎接実行されたす。 近隣者間のこのような接続の圢成、぀たり近隣者自䜓の怜玢は、オヌバヌレむ ネットワヌクの接続を維持し、ネットワヌク内でのデヌタ亀換の遅延を最小限に抑えるこずを目的ずした自動プロセスです。

さらに、倧芏暡なブロヌドキャスト曎新をネットワヌク内で迅速に配垃する方法がありたす。それらは断片に分割され、゚ラヌ修正コヌドが远加され、これらすべおの断片が XNUMX ぀の参加者から別の参加者に送信されたす。 したがっお、参加者は、ネットワヌクに沿っおさらに送信する前に、すべおのパヌツを完党に入手する必芁はありたせん。

オヌバヌレむ ネットワヌクはパブリックたたはプラむベヌトにするこずができたす。 パブリック ネットワヌクのメンバヌになるこずは難しくありたせん。パブリック ネットワヌクを蚘述する TL 構造を芋぀ける必芁がありたす (パブリック ネットワヌクにするこずも、DHT 内の特定のキヌでアクセスできるこずもできたす)。 プラむベヌト ネットワヌクの堎合、この構造はノヌドに事前に知られおいる必芁がありたす。

぀づきたす

TON のレビュヌをいく぀かの蚘事に分割するこずにしたした。 ここでこの郚分は終わりたすが、 次に、次で 次に、TON を構成するブロックチェヌン (より正確にはブロックチェヌン) の構造に぀いお考えおいきたす。

出所 habr.com

コメントを远加したす