TON: Telegram Open Network. Pati 2: Blockchains, sharding

TON: Telegram Open Network. Pati 2: Blockchains, sharding

Tèks sa a se yon kontinyasyon nan yon seri atik kote mwen egzamine estrikti rezo distribye Telegram Open Network (TON), ki ap prepare pou lage ane sa a. NAN pati anvan Mwen te dekri nivo ki pi fondamantal li yo - fason nœuds yo kominike youn ak lòt.

Jis nan ka, kite m 'fè ou sonje ke mwen pa gen anyen fè ak devlopman nan rezo sa a ak tout materyèl la te ranmase nan yon sous louvri (kwake pa verifye) - dokiman (Genyen tou yon akonpayman bwochi, yon ti tan dekri pwen prensipal yo), ki te parèt nan fen ane pase. Kantite enfòmasyon ki nan dokiman sa a, nan opinyon mwen, endike otantisite li yo, byenke pa gen okenn konfimasyon ofisyèl nan sa a.

Jodi a nou pral gade nan eleman prensipal la nan TON - blockchain la.

Konsèp debaz yo

Kont (kont). Yon seri done idantifye pa yon nimewo 256-bit ID Kont (pi souvan sa a se kle piblik pwopriyetè kont la). Nan ka debaz la (gade anba a zewo workchain), done sa yo refere a balans itilizatè a. "Okipe" espesifik ID Kont nenpòt moun kapab, men valè li yo ka chanje sèlman dapre sèten règ.

Kontra entelijan (smart-kontra). Nan sans, li se yon ka espesyal nan yon kont, complétée ak kòd kontra entelijan ak depo nan varyab li yo. Si nan ka a nan yon "bous" ou ka depoze ak retire lajan nan li dapre règleman relativman senp ak predetèmine, Lè sa a, nan ka a nan yon kontra entelijan règ sa yo ekri nan fòm lan nan kòd li yo (nan yon sèten Turing-konplè. langaj pwogramasyon).

Eta Blockchain (eta blockchain). Ansanm eta tout kont / kontra entelijan (nan yon sans abstrè, yon tablo hash, kote kle yo se idantifyan kont ak valè yo se done ki estoke nan kont yo).

Mesaj (mesaj). Pi wo a mwen te itilize ekspresyon "lajan kredi ak debi" - sa a se yon egzanp patikilye nan yon mesaj ("transfè N gram soti nan kont kont_1 kont kont_2"). Li evidan, se sèlman ne ki posede kle prive kont lan ka voye yon mesaj konsa kont_1 - ak kapab konfime sa a ak yon siyati. Rezilta a nan livrezon mesaj sa yo nan yon kont regilye se yon ogmantasyon nan balans li yo, ak rezilta a nan kontra a entelijan se ekzekisyon an nan kòd li yo (ki pral trete resi mesaj la). Natirèlman, lòt mesaj yo posib tou (transfere pa kantite lajan, men done abitrè ant kontra entelijan).

Tranzaksyon (tranzaksyon). Lefèt ke yon mesaj delivre yo rele yon tranzaksyon. Tranzaksyon yo chanje eta blockchain la. Se tranzaksyon (dosye livrezon mesaj) ki fè blòk yo nan blockchain la. Nan sans sa a, ou ka panse nan eta a nan blockchain la kòm yon baz done incrémentielle - tout blòk yo se "diferans" ki bezwen aplike sekans pou jwenn eta aktyèl la nan baz done a. Espesifik yo nan anbalaj sa yo "diferans" (ak restore eta a plen nan men yo) yo pral diskite nan pwochen atik la.

Blockchain nan TON: ki sa li ye ak poukisa?

Kòm mansyone nan atik anvan an, blockchain se yon estrikti done, eleman yo (blòk) yo bay lòd nan yon "chèn", epi chak blòk ki vin apre nan chèn nan gen yon hash nan yon sèl anvan an.. Kòmantè yo te poze kesyon an: poukisa nou bezwen yon estrikti done konsa lè nou deja gen yon DHT - yon tab distribiye hash? Li evidan, kèk done yo ka estoke nan DHT, men sa a se sèlman apwopriye pou enfòmasyon ki pa twò "sansib". Balans Cryptocurrency pa ka estoke nan DHT - prensipalman akòz mank de chèk sou entegrite. Aktyèlman, konpleksite a tout antye nan estrikti blòk la ap grandi nan lòd yo anpeche entèferans ak done yo ki estoke nan li.

Sepandan, blockchain nan TON sanble menm pi konplèks pase nan pifò lòt sistèm distribiye - ak pou de rezon. Premye a se dezi a minimize bezwen an pou fouchèt. Nan lajan kript tradisyonèl yo, tout paramèt yo mete nan premye etap la ak nenpòt tantativ chanje yo aktyèlman mennen nan aparisyon nan yon "linivè cryptocurrency altènatif." Dezyèm rezon an se sipò pou kraze (sharding, sharding) blockchain. Blockchain se yon estrikti ki pa ka vin pi piti sou tan; epi anjeneral chak ne responsab pou operasyon an nan rezo a fòse yo estoke li nèt. Nan sistèm tradisyonèl (santralize), yo itilize sharding pou rezoud pwoblèm sa yo: kèk nan dosye yo nan baz done a sitiye sou yon sèvè, kèk sou yon lòt, elatriye. Nan ka kriptografik lajan, fonksyonalite sa yo toujou byen ra - an patikilye, akòz lefèt ke li difisil pou ajoute sharding nan yon sistèm kote li pa t 'orijinèlman te planifye.

Ki jan TON fè plan pou rezoud tou de pwoblèm ki anwo yo?

Kontni Blockchain. Chèn travay.

TON: Telegram Open Network. Pati 2: Blockchains, sharding

Premye a tout, ann pale sou sa ki te planifye yo dwe estoke nan blockchain la. Eta yo nan kont ("bous" nan ka debaz la) ak kontra entelijan yo pral estoke la (pou senplisite, nou pral asime ke sa a se menm bagay ak kont). Nan sans, sa a pral yon tab hash regilye - kle yo nan li yo pral idantifyan ID Kont, ak valè yo se estrikti done ki genyen bagay sa yo tankou:

  • balans;
  • kòd kontra entelijan (sèlman pou kontra entelijan);
  • Depo done kontra entelijan (pou kontra entelijan sèlman);
  • estatistik;
  • (si ou vle) kle piblik pou transfè soti nan kont la, pa default account_id;
  • keu nan mesaj sortan (isit la yo antre pou voye bay moun k ap resevwa a);
  • yon lis dènye mesaj yo te delivre nan kont sa a.

Kòm mansyone pi wo a, blòk yo tèt yo konpoze de tranzaksyon - mesaj lage nan divès kont account_id. Sepandan, anplis account_id, mesaj yo genyen tou yon jaden 32-bit workchain_id - sa yo rele idantifyan workchain (chèn travay, k ap travay blockchain). Sa a pèmèt ou gen plizyè blockchain endepandan youn ak lòt ak konfigirasyon diferan. Nan ka sa a, workchain_id = 0 konsidere kòm yon ka espesyal, zewo workchain — se balans ki nan li ki pral koresponn ak TON (Gram) lajan kript la. Gen plis chans, nan premye, lòt workchains pa pral egziste ditou.

Shardchains. Paradigm Sharding Enfini.

Men, kwasans lan nan kantite blockchains pa sispann la. Ann fè fas ak sharding. Ann imajine ke chak kont (account_id) resevwa pwòp blockchain li - li gen tout mesaj ki vini nan li - ak eta yo nan tout blockchain sa yo estoke sou nœuds separe.

Natirèlman, sa a se anpil gaspiyaj: gen plis chans, nan chak nan sa yo shardchains (shardchain, shard blockchain) tranzaksyon yo pral rive trè raman, epi yo pral bezwen yon anpil nan nœuds pwisan (gade pi devan, mwen sonje ke nou pa jis pale sou kliyan sou telefòn mobil - men sou sèvè grav).

Se poutèt sa, shardchains konbine kont pa prefiks binè idantifyan yo: si yon shardchain gen yon prefiks 0110, Lè sa a, li pral gen ladan tranzaksyon nan tout account_ids ki kòmanse ak nimewo sa yo. Sa a shard_prefix ka gen yon longè soti nan 0 a 60 Bits - ak bagay prensipal la se ke li ka chanje dinamik.

TON: Telegram Open Network. Pati 2: Blockchains, sharding

Le pli vit ke youn nan shardchains yo kòmanse resevwa twòp tranzaksyon, nœuds yo k ap travay sou li, dapre règ predetèmine, "fann" li an de pitit fi - prefiks yo pral yon ti jan pi long (e pou youn nan yo ti jan sa a pral dwe egal a 0, ak pou lòt la - 1). Pa egzanp, shard_prefix = 0110b pral divize an 01100b ak 01101b. Nan vire, si de "vwazen" shardchains kòmanse santi yo alèz ase (pou kèk tan), yo pral rantre ankò.

Kidonk, sharding fèt "soti anba a moute" - nou sipoze ke chak kont gen pwòp shard, men pou le moman yo "kole ansanm" pa prefiks. Sa a se sa li vle di Paradigm Sharding Enfini (paradigm sharding enfini).

Separeman, mwen ta renmen mete aksan sou ke workchains egziste sèlman nòmalman - an reyalite, workchain_id li se yon pati nan idantifyan an nan yon shardchain espesifik. An tèm fòmèl, chak shardchain defini pa yon pè nimewo (workchain_id, shard_prefix).

Koreksyon erè. Blockchains vètikal.

Tradisyonèlman, nenpòt tranzaksyon sou yon blockchain konsidere kòm "mete nan wòch." Sepandan, nan ka TON, li posib pou "ekri istwa" - nan ka yon moun (sa yo rele. ne pechè) ap pwouve ke youn nan blòk yo te siyen mal. Nan ka sa a, yo ajoute yon blòk koreksyon espesyal nan shardchain korespondan an, ki gen hash nan blòk la li menm yo te korije (epi yo pa dènye blòk la nan shardchain la). Panse a shardchain a kòm yon chèn nan blòk mete deyò orizontal, nou ka di ke blòk korektif la tache ak blòk la inègza pa adwat la, men soti nan pi wo a - kidonk li konsidere ke li vin yon pati nan yon ti "blòk vètikal" . Kidonk, nou ka di ke shardchains yo blockchains ki genyen de dimansyon.

TON: Telegram Open Network. Pati 2: Blockchains, sharding

Si, apre yon blòk inègza, chanjman sa yo te fè yo te referans pa blòk ki vin apre yo (sa vle di, nouvo tranzaksyon yo te fè ki baze sou sa ki pa valab), sa yo korektif yo ajoute tou nan blòk sa yo "an tèt". Si blòk yo pa te afekte enfòmasyon ki "afekte", "vag korektif" sa yo pa aplike pou yo. Pou egzanp, nan ilistrasyon ki anwo a, tranzaksyon an nan premye blòk la, ogmante balans lan nan kont C, te rekonèt kòm kòrèk - Se poutèt sa, tranzaksyon an diminye balans lan nan kont sa a nan twazyèm blòk la ta dwe tou anile, ak yon blòk korektif. ta dwe komèt sou tèt blòk la tèt li.

Li ta dwe remake ke byenke blòk korektif yo reprezante kòm yo sitiye "anwo" sa yo orijinal yo, an reyalite yo pral ajoute nan fen blòk korespondan an (kote yo ta dwe kwonolojik). Kote ki genyen de dimansyon sèlman montre nan ki pwen nan blockchain la yo pral "lye" (via hash nan blòk orijinal la ki sitiye nan yo).

Ou ka separeman filozofize sou ki jan bon desizyon an pou "chanje sot pase a". Li ta sanble ke si nou admèt posiblite pou yon blòk kòrèk parèt nan shardchain la, Lè sa a, nou pa ka evite posiblite pou yon blòk korektif inègza parèt. Isit la, jan mwen ka di, diferans lan se nan kantite nœuds ki dwe rive nan konsansis sou nouvo blòk - pral gen yon kantite relativman ti moun k ap travay sou chak shardchain."gwoup travay» nœuds (ki chanje konpozisyon li byen souvan), ak entwodiksyon blòk korektif yo pral mande konsantman tout moun. nœuds validateur. Mwen pral pale plis sou validateur, gwoup travay, ak lòt wòl ne nan pwochen atik la.

Yon sèl blockchain pou dirije yo tout

Gen yon anpil nan enfòmasyon ki nan lis pi wo a sou diferan kalite blockchains, ki li menm ta dwe tou estoke yon kote. An patikilye, nou ap pale sou enfòmasyon sa yo:

  • sou kantite ak konfigirasyon workchains;
  • sou kantite shardchains ak prefiks yo;
  • sou ki nœuds ki responsab kounye a pou ki shardchains;
  • hashes nan dènye blòk yo te ajoute nan tout shardchains.

Kòm ou ta ka devine, tout bagay sa yo anrejistre nan yon lòt depo blockchain - masterchain (masterchain, mèt blockchain). Akòz prezans hashes soti nan blòk yo nan tout shardchains nan blòk li yo, li fè sistèm nan trè konekte. Sa vle di, pami lòt bagay, ke jenerasyon an nan yon nouvo blòk nan masterchain a pral rive imedyatman apre jenerasyon an nan blòk nan shardchains - li espere ke blòk nan shardchains ap parèt prèske an menm tan apeprè chak 5 segonn, ak pwochen blòk la nan la. masterchain - yon dezyèm apre sa.

Men, ki moun ki pral responsab aplikasyon tout travay sa a titan - pou voye mesaj, egzekite kontra entelijan, fòme blòk nan shardchains ak masterchain a, e menm tcheke blòk pou erè? Èske tout bagay sa yo pral fè an kachèt pa telefòn yo nan dè milyon de itilizatè ki gen kliyan an Telegram enstale sou yo? Oswa, petèt, ekip la Durov pral abandone lide yo nan desantralizasyon ak sèvè yo pral fè li fason ki ansyen alamòd?

An reyalite, ni youn ni lòt repons pa kòrèk. Men, maj yo nan atik sa a yo byen vit kouri soti, kidonk nou pral pale sou wòl yo divès kalite nœuds (ou ka deja remake mansyone kèk nan yo), osi byen ke mekanik yo nan travay yo, nan pwochen pati a.

Sous: www.habr.com

Add nouvo kòmantè