TON: Telegram Open Network. Apá 2: Blockchains, sharding

TON: Telegram Open Network. Apá 2: Blockchains, sharding

Ọrọ yii jẹ itesiwaju awọn nkan ti awọn nkan ninu eyiti Mo ṣe ayẹwo eto ti nẹtiwọọki ti o pin (aigbekele) nẹtiwọọki Open Network Telegram (TON), eyiti o ti mura silẹ fun itusilẹ ni ọdun yii. IN ti tẹlẹ apakan Mo ṣe apejuwe ipele ipilẹ rẹ julọ - ọna ti awọn apa ṣe nlo pẹlu ara wọn.

Ni ọran, jẹ ki n leti pe Emi ko ni nkankan lati ṣe pẹlu idagbasoke nẹtiwọọki yii ati pe gbogbo ohun elo ni a gba lati orisun ṣiṣi (botilẹjẹpe a ko rii daju) - iwe aṣẹ (atẹleyin tun wa iwe pẹlẹbẹ, ni ṣoki ti n ṣalaye awọn aaye akọkọ), eyiti o farahan ni opin ọdun to kọja. Iye alaye ti o wa ninu iwe yii, ni ero mi, tọkasi otitọ rẹ, botilẹjẹpe ko si ijẹrisi osise ti eyi.

Loni a yoo wo paati akọkọ ti TON - blockchain.

Awọn imọran ipilẹ

Iroyin (iroyin). A ṣeto ti data damo nipa a 256-bit nọmba iroyin_id (pupọ julọ eyi ni bọtini gbogbo eniyan ti oniwun akọọlẹ naa). Ninu ọran ipilẹ (wo isalẹ odo workchain), data yii n tọka si iwọntunwọnsi olumulo. "Gba" pato iroyin_id ẹnikẹni le, ṣugbọn awọn oniwe-iye le nikan wa ni yipada gẹgẹ bi awọn ofin.

Smart guide (smati-adehun). Ni pataki, o jẹ ọran pataki ti akọọlẹ kan, ni afikun pẹlu koodu adehun ijafafa ati ibi ipamọ ti awọn oniyipada rẹ. Ti o ba jẹ pe “apamọwọ” kan o le fi owo pamọ ati yọ owo kuro ni ibamu si awọn ofin ti o rọrun ati ti a ti pinnu tẹlẹ, lẹhinna ninu ọran ti adehun ọlọgbọn awọn ofin wọnyi ni a kọ ni irisi koodu rẹ (ni Turing-pipe kan. ede siseto).

Blockchain State (ipinle ti blockchain). Eto ti gbogbo awọn akọọlẹ / awọn iwe adehun ijafafa (ni ori abọ-inu, tabili hash, nibiti awọn bọtini jẹ awọn idamọ akọọlẹ ati awọn iye jẹ data ti o fipamọ sinu awọn akọọlẹ).

Ifiranṣẹ (ifiranṣẹ). Loke Mo lo ikosile naa “kirẹditi ati owo debiti” - eyi jẹ apẹẹrẹ kan pato ti ifiranṣẹ kan (“gbigbe N giramu lati iroyin iroyin_1 si iroyin iroyin_2"). O han ni, ipade nikan ti o ni bọtini ikọkọ ti akọọlẹ le fi iru ifiranṣẹ ranṣẹ iroyin_1 - ati ni anfani lati jẹrisi eyi pẹlu ibuwọlu kan. Abajade ti jiṣẹ iru awọn ifiranṣẹ bẹẹ si akọọlẹ deede jẹ ilosoke ninu iwọntunwọnsi rẹ, ati abajade ti adehun ọlọgbọn ni ipaniyan koodu rẹ (eyi ti yoo ṣe ilana gbigba ifiranṣẹ naa). Nitoribẹẹ, awọn ifiranṣẹ miiran tun ṣee ṣe (gbigbe kii ṣe awọn oye owo, ṣugbọn data lainidii laarin awọn adehun smati).

Idunadura (idunadura). Awọn o daju wipe a ifiranṣẹ ti wa ni a npe ni a idunadura. Awọn iṣowo ṣe iyipada ipo ti blockchain. O jẹ awọn iṣowo (awọn igbasilẹ ifijiṣẹ ifiranṣẹ) ti o ṣe awọn bulọọki ninu blockchain. Ni iyi yii, o le ronu ipo ti blockchain bi data afikun - gbogbo awọn bulọọki jẹ “awọn iyatọ” ti o nilo lati lo lẹsẹsẹ lati gba ipo data lọwọlọwọ. Awọn pato ti iṣakojọpọ “awọn iyatọ” wọnyi (ati mimu-pada sipo ni kikun lati ọdọ wọn) ni yoo jiroro ni nkan atẹle.

Blockchain ni TON: kini o jẹ ati kilode?

Gẹ́gẹ́ bí a ti sọ nínú àpilẹ̀kọ tó ṣáájú, blockchain jẹ eto data, awọn eroja (awọn bulọọki) eyiti a ti paṣẹ sinu “ẹwọn” kan, ati bulọọki ti o tẹle ti pq ni hash ti iṣaaju.. Awọn asọye beere ibeere naa: kilode ti a nilo iru eto data ni gbogbo nigba ti a ti ni DHT tẹlẹ - tabili hash ti o pin? O han ni, diẹ ninu awọn data le wa ni ipamọ ni DHT, ṣugbọn eyi dara nikan fun alaye “kókó” ju. Awọn iwọntunwọnsi Cryptocurrency ko le wa ni ipamọ ni DHT - nipataki nitori aini awọn sọwedowo lori iyege. Lootọ, gbogbo idiju ti eto blockchain dagba lati le ṣe idiwọ kikọlu pẹlu data ti o fipamọ sinu rẹ.

Sibẹsibẹ, blockchain ni TON n wo paapaa eka sii ju ninu ọpọlọpọ awọn ọna ṣiṣe pinpin miiran - ati fun awọn idi meji. Ohun akọkọ ni ifẹ lati dinku iwulo fun orita. Ni awọn owo nẹtiwoki ti aṣa, gbogbo awọn ayeraye ti ṣeto ni ipele ibẹrẹ ati igbiyanju eyikeyi lati yi wọn pada nitootọ si ifarahan ti “ọrun cryptocurrency yiyan.” Idi keji jẹ atilẹyin fun fifun pa (sharding, sharding) blockchain. Blockchain jẹ eto ti ko le di kere ju akoko lọ; ki o si maa kọọkan ipade lodidi fun awọn isẹ ti awọn nẹtiwọki wa ni agbara mu lati fi o patapata. Ni awọn eto ibile (centralized), sharding ti lo lati yanju iru awọn iṣoro: diẹ ninu awọn igbasilẹ ti o wa ninu ibi ipamọ data wa lori olupin kan, diẹ ninu miiran, ati bẹbẹ lọ. Ninu ọran ti awọn owo nẹtiwoki, iru iṣẹ ṣiṣe tun jẹ toje - ni pataki, nitori otitọ pe o nira lati ṣafikun sharding si eto nibiti a ko ti gbero ni akọkọ.

Bawo ni TON ṣe gbero lati yanju awọn iṣoro mejeeji ti o wa loke?

Blockchain akoonu. Workchains.

TON: Telegram Open Network. Apá 2: Blockchains, sharding

Ni akọkọ, jẹ ki a sọrọ nipa ohun ti a pinnu lati wa ni ipamọ ninu blockchain. Awọn ipinlẹ ti awọn akọọlẹ (“awọn apamọwọ” ninu ọran ipilẹ) ati awọn iwe adehun ọlọgbọn yoo wa ni ipamọ nibẹ (fun ayedero, a yoo ro pe eyi jẹ kanna bi awọn akọọlẹ). Ni pataki, eyi yoo jẹ tabili hash deede - awọn bọtini inu rẹ yoo jẹ idamo iroyin_id, ati awọn iye jẹ awọn ẹya data ti o ni awọn nkan bii:

  • iwontunwonsi;
  • koodu adehun smart (nikan fun awọn adehun smati);
  • Ibi ipamọ data adehun smart (fun awọn adehun ọlọgbọn nikan);
  • awọn iṣiro;
  • (aṣayan) bọtini ita gbangba fun awọn gbigbe lati akọọlẹ, nipasẹ aiyipada account_id;
  • isinyi ti awọn ifiranṣẹ ti njade (nibi wọn ti wa ni titẹ sii fun fifiranṣẹ si olugba);
  • atokọ ti awọn ifiranṣẹ tuntun ti a firanṣẹ si akọọlẹ yii.

Gẹgẹbi a ti sọ loke, awọn bulọọki funrara wọn ni awọn iṣowo - awọn ifiranṣẹ ti a firanṣẹ si ọpọlọpọ awọn akọọlẹ iroyin_id. Sibẹsibẹ, ni afikun si account_id, awọn ifiranṣẹ tun ni aaye 32-bit kan ninu workchain_id - ti a npe ni idamo workchain (workchain, blockchain ṣiṣẹ). Eyi n gba ọ laaye lati ni ọpọlọpọ awọn blockchains ominira lati ara wọn pẹlu awọn atunto oriṣiriṣi. Ni ọran yii, workchain_id = 0 ni a ka si ọran pataki kan, odo workchain — o jẹ awọn iwọntunwọnsi ninu rẹ ti yoo badọgba lati TON (Giramu) cryptocurrency. O ṣeese julọ, ni akọkọ, awọn iṣẹ ṣiṣe miiran kii yoo wa rara.

Shardchains. Ailopin Sharding Paradigm.

Ṣugbọn idagba ninu nọmba awọn blockchain ko duro nibẹ. Jẹ ká wo pẹlu sharding. Jẹ ki a fojuinu pe akọọlẹ kọọkan (account_id) ti pin blockchain tirẹ - o ni gbogbo awọn ifiranṣẹ ti o wa si rẹ - ati pe awọn ipinlẹ ti gbogbo iru blockchain ti wa ni ipamọ lori awọn apa ọtọtọ.

Dajudaju, eyi jẹ apanirun pupọ: o ṣeese, ni ọkọọkan awọn wọnyi shardchains (shardchain, shard blockchain) awọn iṣowo yoo de pupọ ṣọwọn, ati ọpọlọpọ awọn apa ti o lagbara yoo nilo (nwa niwaju, Mo ṣe akiyesi pe a ko sọrọ nipa awọn alabara nikan lori awọn foonu alagbeka - ṣugbọn nipa awọn olupin to ṣe pataki).

Nitorina, shardchains darapọ awọn akọọlẹ nipasẹ awọn ami-iṣaaju alakomeji ti awọn idamọ wọn: ti shardchain kan ba ni asọtẹlẹ ti 0110, lẹhinna yoo pẹlu awọn iṣowo ti gbogbo awọn iroyin_ids ti o bẹrẹ pẹlu awọn nọmba wọnyi. Eyi shard_prefix le ni ipari lati 0 si 60 die-die - ati ohun akọkọ ni pe o le yipada ni agbara.

TON: Telegram Open Network. Apá 2: Blockchains, sharding

Ni kete ti ọkan ninu awọn shardchains bẹrẹ lati gba awọn iṣowo lọpọlọpọ, awọn apa ti n ṣiṣẹ lori rẹ, ni ibamu si awọn ofin ti a ti pinnu tẹlẹ, “pipin” si awọn ọmọde meji - awọn ami-iṣaaju wọn yoo pẹ diẹ (ati fun ọkan ninu wọn eyi yoo jẹ diẹ. dogba si 0, ati fun miiran - 1). Fun apere, shard_prefix = 0110b yoo pin si 01100b ati 01101b. Ni titan, ti awọn shardchains “aládùúgbò” meji ba bẹrẹ sii ni irọrun to (fun igba diẹ), wọn yoo dapọ lẹẹkansi.

Nitorinaa, sharding ti ṣe “lati isalẹ si oke” - a ro pe akọọlẹ kọọkan ni shard tirẹ, ṣugbọn fun akoko yii wọn “fi papọ” nipasẹ awọn ami-iṣaaju. Eyi ni ohun ti o tumọ si Ailopin Sharding Paradigm (ailopin sharding paradig).

Lọtọ, Emi yoo fẹ lati fi rinlẹ pe awọn iṣẹ ṣiṣe wa nikan ni fere - ni otitọ, workchain_id o jẹ apakan ti idamo ti shardchain kan pato. Ni awọn ofin deede, shardchain kọọkan jẹ asọye nipasẹ awọn nọmba meji (workchain_id, shard_prefix).

Aṣiṣe atunse. Awọn blockchains inaro.

Ni aṣa, eyikeyi iṣowo lori blockchain ni a ka si “ti ṣeto sinu okuta.” Sibẹsibẹ, ninu ọran ti TON, o ṣee ṣe lati “tun-kọ itan” - ni ọran ẹnikan (eyiti a pe. apeja sorapo) yoo jẹri pe ọkan ninu awọn bulọọki ti fowo si ni aṣiṣe. Ni idi eyi, a ṣe afikun Àkọsílẹ atunṣe pataki si shardchain ti o baamu, ti o ni hash ti Àkọsílẹ ara rẹ ni atunṣe (ati kii ṣe idiwọ ti o kẹhin ni shardchain). Ni ero ti shardchain bi pq awọn bulọọki ti a gbe kalẹ ni ita, a le sọ pe bulọọki atunṣe ti wa ni asopọ si bulọọki aṣiṣe kii ṣe si apa ọtun, ṣugbọn lati oke - nitorinaa o gba pe o di apakan ti kekere “blockchain inaro” . Nitorinaa, a le sọ pe shardchains jẹ blockchains onisẹpo meji.

TON: Telegram Open Network. Apá 2: Blockchains, sharding

Ti, lẹhin bulọọki aṣiṣe, awọn iyipada ti o ṣe nipasẹ rẹ ni itọkasi nipasẹ awọn bulọọki ti o tẹle (ie, awọn iṣowo tuntun ti da lori awọn ti ko tọ), awọn atunṣe tun wa ni afikun si awọn bulọọki wọnyi “lori oke”. Ti awọn bulọọki naa ko ba kan alaye “ti o kan”, “awọn igbi atunṣe” wọnyi ko kan wọn. Fun apẹẹrẹ, ninu apejuwe loke, idunadura ti akọkọ Àkọsílẹ, jijẹ dọgbadọgba ti iroyin C, ti a mọ bi ti ko tọ - nitorina, awọn idunadura dindinku dọgbadọgba ti yi iroyin ni kẹta Àkọsílẹ yẹ ki o tun ti wa ni pawonre, ati ki o kan atunse Àkọsílẹ yẹ ki o wa ni ileri lori oke ti awọn Àkọsílẹ ara.

O yẹ ki o ṣe akiyesi pe botilẹjẹpe awọn bulọọki atunṣe ti wa ni afihan bi o ti wa “loke” awọn atilẹba, ni otitọ wọn yoo ṣafikun si opin blockchain ti o baamu (nibiti wọn yẹ ki o wa ni akoko-akoko). Ipo onisẹpo meji nikan fihan si aaye wo ni blockchain wọn yoo jẹ "isopọ" (nipasẹ hash ti atilẹba Àkọsílẹ ti o wa ninu wọn).

O le ṣe imọ-jinlẹ lọtọ nipa bi ipinnu lati “yi ohun ti o kọja” ṣe dara to. Yoo dabi pe ti a ba jẹwọ pe o ṣeeṣe ti idinaki ti ko tọ ti o han ninu shardchain, lẹhinna a ko le yago fun iṣeeṣe ti aṣiṣe atunse ti farahan. Nibi, niwọn bi Mo ti le sọ, iyatọ wa ni nọmba awọn apa ti o gbọdọ de ipohunpo lori awọn bulọọki tuntun - nọmba kekere ti eniyan yoo wa ti n ṣiṣẹ lori shardchain kọọkan. ”ẹgbẹ iṣẹ» awọn apa (eyiti o yi akopọ rẹ pada nigbagbogbo), ati iṣafihan awọn bulọọki atunṣe yoo nilo ifọkansi ti gbogbo eniyan awọn apa validator. Emi yoo sọrọ diẹ sii nipa awọn afọwọsi, awọn ẹgbẹ iṣẹ, ati awọn ipa ipade miiran ninu nkan ti nbọ.

Ọkan blockchain lati ṣe akoso gbogbo wọn

Alaye pupọ wa ti a ṣe akojọ loke nipa awọn oriṣiriṣi oriṣi ti blockchains, eyiti funrararẹ yẹ ki o tun wa ni ipamọ ni ibikan. Ni pato, a n sọrọ nipa alaye wọnyi:

  • nipa nọmba ati awọn atunto ti workchains;
  • nipa nọmba shardchains ati awọn asọtẹlẹ wọn;
  • nipa awọn apa wo ni o jẹ iduro lọwọlọwọ fun iru shardchains;
  • hashes ti awọn bulọọki ti o kẹhin ti a ṣafikun si gbogbo shardchains.

Bii o ti le gboju, gbogbo nkan wọnyi ni a gbasilẹ sinu ibi ipamọ blockchain miiran - masterchain (titunto si, titunto si blockchain). Nitori wiwa awọn hashes lati awọn bulọọki ti gbogbo shardchains ninu awọn bulọọki rẹ, o jẹ ki eto naa ni asopọ pupọ. Eyi tumọ si, laarin awọn ohun miiran, pe iran ti bulọọki tuntun ninu masterchain yoo waye lẹsẹkẹsẹ lẹhin iran ti awọn bulọọki ni shardchains - o nireti pe awọn bulọọki ninu shardchains yoo han ni akoko kanna ni gbogbo awọn aaya 5, ati bulọọki atẹle ninu masterchain - a keji lẹhin ti.

Ṣugbọn tani yoo jẹ iduro fun imuse gbogbo iṣẹ titanic yii - fun fifiranṣẹ awọn ifiranṣẹ, ṣiṣe awọn adehun ọlọgbọn, ṣiṣẹda awọn bulọọki ni shardchains ati masterchain, ati paapaa ṣayẹwo awọn bulọọki fun awọn aṣiṣe? Njẹ gbogbo eyi yoo ṣee ṣe ni ikoko nipasẹ awọn foonu ti awọn miliọnu awọn olumulo pẹlu alabara Telegram ti a fi sori wọn? Tabi, boya, ẹgbẹ Durov yoo kọ awọn ero ti isọdọtun ati awọn olupin wọn yoo ṣe ni ọna ti ogbologbo?

Ni otitọ, bẹni ọkan tabi idahun miiran ko tọ. Ṣugbọn awọn ala ti nkan yii n ṣiṣẹ ni iyara, nitorinaa a yoo sọrọ nipa awọn ipa pupọ ti awọn apa (o le ti ṣe akiyesi awọn mẹnuba diẹ ninu wọn), ati awọn oye ti iṣẹ wọn, ni apakan atẹle.

orisun: www.habr.com

Fi ọrọìwòye kun