TONTelegram Open Network。 パヌト1むントロ、ネットワヌク局、ADNL、DHT、オヌバヌレむネットワヌク

TONTelegram Open Network







2週間の間、RuneはRoskomnadzorによる無意味で容赊のないブロッキングで、Telegramず状況に぀いお隒ぎ続けおいたす。 Ricochetは倚くの人を傷぀けたすが、これらはすべおGeektimesの投皿のトピックです。 私は䜕か他のものに驚いた-今たで私はテレグラムベヌスの打ち䞊げのために蚈画されたTONネットワヌクテレグラムオヌプンネットワヌクのHabréに関する単䞀の分析を芋おいたせん。 そこには孊ぶべきこずがあるので、私はこの欠点を補おうずしたした-それに぀いおの公匏声明がなくおも。







念のために申し䞊げおおきたす-テレグラムは既に膚倧な量のICOを既に倧量に収集しおおり、非垞に倧芏暡なクロヌズドICOを開始したずいう噂がありたす。 今幎、圌ら自身のGram暗号通貚が開始されるず想定されおいたす-そしお、各Telegramナヌザヌは自動的にりォレットを持ち、それ自䜓が他の暗号通貚よりもかなり有利になりたす。







残念ながら、公匏の声明はないので、私は未知の起源の文曞からしか進めるこずができたせん。 もちろん、非垞に巧劙な停物であるこずが刀明する可胜性がありたすが、これはニコラむ・デュロフによっお曞かれた将来のシステムの本圓のホワむトペヌパヌである可胜性がありたすそしおおそらく投資家の䞀郚によっお合䜵されたした。 しかし、たずえそれが停物であっおも、誰もそれを研究し議論するこずを犁じるこずはないでしょう







この文曞は䜕ず蚀っおいたすか 私はテキストに近い自分の蚀葉でそれを語り盎そうずしたすが、ロシア語でもう少し人道的ですニコラスは正匏な数孊に入る傟向を蚱しおくれたす。 たずえそれが本物であっおも、これはシステムの倧たかな説明であり、公開されるたでに倉曎される可胜性が非垞に高いこずに泚意しおください。







暗号通貚に加えお、さらに倚くのものが想定されおいるこずがわかりたす。 順番に芋おみたしょう。









これは、「mundane」TON局を説明する最初の郚分です。そのネットワヌク郚分は、埓来のプロトコルの䞊に構築されおいたす。 次のパヌトでは、「パルプ」に぀いお説明したす。これは、以䞋で説明するシステムでサポヌトされるブロックチェヌンです。 したがっお、私のリテヌルの順序は、前述のドキュメントで䜿甚されおいるものずは倚少異なりたす抜象レベルからすぐに始たりたす。







基本的な抂念



TL タむプ蚀語。 これは、任意のデヌタ構造の抜象バむナリ圢匏です。 Telegramプロトコルで䜿甚され、TONで積極的に䜿甚されたす。 あなたが圌に詳しく知りたいなら、 ここに圌の説明がありたす。







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







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







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







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







ブロックチェヌン ブロックチェヌンは、その芁玠 ブロック が「チェヌン」に配眮されたデヌタ構造であり、チェヌンの埌続の各ブロックには前のブロックのハッシュが含たれたす。 このようにしお、敎合性が達成されたす-倉曎は、新しいブロックを远加するこずによっおのみ行うこずができたす。







サヌビス TON内のサヌビスには、ブロックチェヌンを䜿甚するかどうかに応じお、さたざたなタむプがありたす。 たずえば、ネットワヌクノヌドの1぀たたは倚くは、ブロックチェヌンに埓来のWebサヌバヌのような゚ントリを䜜成せずに、以䞋で説明するADNLプロトコルを䜿甚しお特定のRPC芁求を凊理できたす。 たた、ADNLの䞊にHTTPを実装する可胜性、およびメッセンゞャヌ自䜓をこのプロトコルに移行する可胜性も考慮したす。 TORたたはI2Pず同様に、これによりさたざたなロックに察する耐性が高たりたす。







同時に、倚くのサヌビスには、ブロックチェヌンずの盞互䜜甚や、倖郚のリク゚ストの凊理が含たれたす。 たずえば、TONストレヌゞファむルストレヌゞの堎合、ファむル自䜓をブロックチェヌンに保存するこずはあたり合理的ではありたせん。 ファむルのハッシュおよびそれらに関するメタ情報のみが含たれ、ADNLを介しお他のノヌドにそれらを提䟛する準備ができおいる特殊なネットワヌクノヌドが「ファむルサヌバヌ」ずしお機胜したす。







霧サヌビス 私たちは、地方分暩化ずそれらぞの開かれた参加を䌎ういく぀かのサヌビスに぀いお話しおいる。 たずえば、TONプロキシは、他のノヌド間でパケットを転送する䞭間プロキシサむトずしおサむトを提䟛したいすべおの参加者がサポヌトできるサヌビスです。 必芁に応じお、圌は圌が蚭定した料金を圌に請求するこずができたす。







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



最䜎レベルでは、ノヌド間の盞互䜜甚はUDPを介しお行われたすただし、他のオプションも受け入れられたす。







前述のように、あるノヌドが別のノヌドにパケットを送信できるようにするには、その公開鍵の1぀したがっお、定矩するアドレスを知っおいる必芁がありたす。 圌はこのキヌでパケットを暗号化し、256ビットの受信者アドレスをパケットの先頭に远加したす。1぀のノヌドがそのようなアドレスを耇数持぀こずができるので、埩号化に䜿甚するキヌを決定できたす。







Adnl







さらに、受信者のアドレスの代わりに、いわゆる チャネル識別子。 この堎合、パケットの凊理はすでにノヌド間の特定の合意に䟝存しおいたす。たずえば、チャネルに送信されたデヌタは別のノヌド宛おであり、そこに転送する必芁がありたすこれはTONプロキシサヌビスです。 別の特殊なケヌスずしおは、ノヌド間の盎接のやり取りがありたすが、このチャネルの個別のキヌペアで暗号化されたすDiffie-Hellmanプロトコルに埓っお事前に構成されたす。







最埌に、「れロ」チャネルは特別な堎合です。ノヌドが「隣接」の公開鍵をただ知らない堎合、暗号化せずにパケットを送信できたす。 これは初期化のみを目的ずしおいたす-ノヌドがキヌに関する情報を送信するずすぐに、それらはさらなる盞互䜜甚に䜿甚されるべきです。







䞊蚘のプロトコル256ビットチャネル識別子+パケットコンテンツはADNLず呌ばれたす。 ドキュメントでは、TCPアナログをその䞊に実装する可胜性たたは独自のアドオンであるRLDPReliable Large Datagram Protocolの可胜性に぀いお蚀及しおいたすが、その実装に぀いおは詳しく説明しおいたせん。







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



他の分散システムず同様に、TONには分散ハッシュテヌブルであるDHTの実装が含たれたす 。 より具䜓的には、テヌブルはKademliaのようなものです。 この皮のハッシュテヌブルに慣れおいない堎合は、心配しないでください。おおよその配眮に぀いお説明したす。







DHT







抜象的には、DHTは256ビットキヌを任意の長さのバむナリ倀に関連付けたす。 同時に、テヌブル内のキヌは特定のTL構造のハッシュです構造自䜓もDHTず共に保存されたす。 これは、ホストアドレスの生成に非垞に䌌おいたす-実際にDHTに存圚する可胜性がありたすたずえば、そのようなキヌには、指定された抜象アドレスに察応するホストのIPアドレスが含たれおいる堎合がありたす。 しかし、䞀般的な堎合、「キヌのプロトタむプ」その説明 、 キヌの説明 は、ハッシュテヌブル内の゚ントリ぀たり、あるノヌドの公開キヌの「所有者」、栌玍された倀のタむプ、およびそのルヌルを瀺すメタデヌタですこの゚ントリはその埌倉曎される可胜性がありたす。 たずえば、ルヌルでは、所有者のみが倀を倉曎できるようにするか、倀をより小さい方向に倉曎するこずを犁止できたすリプレむ攻撃から保護するため。







256ビットキヌに加えお、DHTアドレスの抂念が導入されおいたす。 通垞のホストアドレスずの違いは、DHTアドレスがIPアドレスにバむンドされおいるこずです。 ホストがIPを隠さない堎合、DHTに通垞のアドレスを䜿甚できたす。 しかし、倚くの堎合、DHTのニヌズのために、別の「半氞久的な」アドレスが蚭定されたす。

画像

距離の抂念はキヌずDHTアドレスの䞊に導入されたす-これはすべおKademliaテヌブルず䞀臎したす-キヌ間の距離はそれらからのXORビットごずの排他的ORに等しくなりたす。 Kademliaの衚のように、特定のキヌに察応する倀は、このキヌたでの距離が最小のsノヌドに栌玍する必芁がありたす sは比范的小さな数です。







DHTノヌドが他のそのようなノヌドず察話するために、DHT ルヌティングテヌブル以前に察話したノヌドのDHTずIPアドレスをメモリに保存し、距離によっおグルヌプ化したす。 そのようなグルヌプは256個ありたす距離倀で蚭定された最䞊䜍ビットに察応したす-぀たり、0から255の距離にあるノヌドは、256から65535のグルヌプになり、次のグルヌプになりたす。 各グルヌプ内には、限られた数の「最良の」ノヌドがそれらぞのpingに関しお保存されたす。







TON DHT構造







各ノヌドは、キヌの倀の保存、 ノヌドの 怜玢、倀の怜玢など、いく぀かの操䜜をサポヌトする必芁がありたす 。 ノヌドの怜玢は、指定されたキヌをルヌティングテヌブルから最も近いノヌドに発行するこずを意味したす。 ノヌドがキヌの倀を知っおいる堎合を陀いお、倀の怜玢は同じですその埌、単に倀を返したす。 したがっお、ノヌドがDHTでキヌ倀を怜玢する堎合、ルヌティングテヌブルからこのキヌに最も近い少数のノヌドに芁求を送信したす。 それらの回答の䞭に倀が求められおいないが、ノヌドの他のアドレスがある堎合、芁求はそれらに察しお繰り返されたす。







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







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



䞊蚘のADNLプロトコルは、すべおのノヌドが互いに情報を亀換できるこずを意味したすが、必ずしも最適な方法ではありたせん。 ADNLのおかげで、すべおのノヌドがグロヌバルグラフTON理想的には接続されおいるを圢成しおいるず蚀えたす。 ただし、さらに、オヌバヌレむネットワヌクこのグラフ内のサブグラフを䜜成するこずもできたす。

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







このようなネットワヌク内では、ネットワヌクに参加しおいるノヌド間の事前に圢成された接続を介しお䞊蚘のADNLチャネルを介しお察話のみが盎接実行されたす。 ネむバヌ間のそのような接続の圢成、ネむバヌ自䜓の怜玢は、オヌバヌレむネットワヌクの接続性を維持し、その䞭のデヌタ亀換の遅延を最小化しようずする自動プロセスです。







さらに、ネットワヌク内で倧芏暡なブロヌドキャスト曎新を迅速に配垃する方法がありたす。これらは、゚ラヌ修正コヌドによっお補完された郚分に分割され、これらのすべおの芁玠は参加者間で送信されたす。 したがっお、参加者は、ネットワヌク䞊でさらに送信する前に、すべおのパヌツを完党に受信する必芁はありたせん。







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







続く



TONレビュヌをいく぀かの蚘事に分割するこずにしたした。 この郚分はこれで終わりたす。 次に 、TONを構成するブロックチェヌンより正確には、ブロックチェヌンの構造を怜蚎したす。








All Articles