Какво е Sharding? Тази концепция за мащабиране на Ethereum е обяснена

Какво е Sharding?

Тъй като дебатът за мащабиране в криптовалутите продължава, някои потенциални решения всъщност се разработват от доста време.

По-конкретно, в случая с Ethereum, където се поставя голям акцент върху децентрализацията и сигурността за сметка на мащабируемостта, прилагането на шардинг във връзка с прилагането на консенсус на Proof of Stake се разглежда като така необходимия механизъм, чрез който мрежата може да се мащабира до практически нива за приложения, като същевременно запазва децентрализацията и сигурността си.

Засенчването е сложна тема, особено когато се прилага към децентрализирана, равнопоставена мрежа, като Ethereum, където глобалното състояние на мрежата постоянно се актуализира.

И така, какво точно е шардингът и как може да помогне на блокчейн мрежите да се мащабират?

Засенчване и разпределен изчислителен фон

Sharding всъщност е много по-стар от блокчейн технологията и е внедрен в различни системи от оптимизации на бизнес бази данни до Глобалната база данни на Google Spanner.

  • По същество заличаването е особен метод за хоризонтално разделяне на данни в базата данни.
  • По-общо казано, базата данни е разбита на малки парченца, наречени „парчета“, които, когато се агрегират заедно, образуват оригиналната база данни.
  • В разпределени блокчейн мрежи мрежата се състои от поредица от възли, свързани във peer to peer формат, без централен орган.
  • Както е в случая с текущите блокчейн системи, всеки възел съхранява всички състояния на мрежата и обработва всички транзакции.
  • Въпреки че това осигурява високо ниво на сигурност чрез децентрализация, особено в Proof of Work системи като Bitcoin и Ethereum, това води до законни проблеми с мащабирането.

Разбиване на Ethereum

Използвайки Ethereum като пример, пълен възел в мрежата Ethereum съхранява цялото състояние на блокчейна, включително салда по сметки, съхранение и код на договора.

За съжаление, тъй като мрежата увеличава размера си с експоненциално темпо, консенсусът се увеличава само линейно. Това ограничение се дължи на комуникацията, необходима между възлите, необходима за постигане на консенсус.

Възлите в мрежата нямат специални привилегии и всеки възел в мрежата съхранява и обработва всяка транзакция. В резултат на това в мрежа с размерите на Ethereum проблеми като високи разходи за газ и по-дълги времена за потвърждение на транзакциите стават забележими проблеми, когато мрежата е напрегната. Мрежата е толкова бърза, колкото отделните възли, отколкото сумата от нейните части.

Sharding помага за облекчаване на тези проблеми, като предоставя интересно, но сложно решение. Концепцията включва групиране на подмножества възли в парчета, които от своя страна обработват транзакции, специфични за този парче. Позволява на системата да обработва паралелно много транзакции, като по този начин значително увеличава производителността.

По-прост начин да го кажем би бил да си представим разделянето на САЩ на щати.

Докато всеки щат (в този случай парче) е част от по-големите Съединени щати (мрежата Ethereum), те имат свои специфични правила, граници и подгрупи от популации. Те обаче споделят универсален език и култура като част от по-голямата си мрежа, която съставлява страната.

Или дори по-добре, със собствените думи на Виталик Бутерин:

 „Представете си, че Ethereum е разделен на хиляди острови. Всеки остров може да направи своето. Всеки от островите има свои уникални характеристики и всеки, принадлежащ на този остров, т.е.сметките, може да си взаимодейства помежду си И може свободно да се отдаде на всички негови характеристики. Ако искат да се свържат с други острови, ще трябва да използват някакъв протокол. “

Както можете да видите, концепцията за фрагментиране на мрежата на по-ефективни части позволява на мрежата да функционира като сбор от нейните части, вместо да бъде ограничена от скоростта на всеки отделен възел.

Как работи Sharding в Blockchains?

Ще продължим да използваме Ethereum като пример в това, тъй като това са най-известните и трудни опити за рязко ожесточаване на блокчейн арената, тъй като разработчиците на Ethereum прилагат това, което е известно като „държавно рязане“.

Текущото състояние на Ethereum blockchain е известно като „глобално състояние“ и е това, което всеки може да види, когато погледне blockchain в конкретен случай.

Трудната част при внедряването на шардинг в Ethereum е, че чрез изостряне на възлите в по-малки подмножества, тези подмножества трябва да могат да обработват конкретни набори от транзакции, като същевременно актуализират състоянието на мрежата, като същевременно гарантират, че тя е валидна.

Sharding в Ethereum се очаква да бъде реализирано в двуфазно разпространение, повече от вероятно след внедряването на Proof of Stake в мрежата. Първа фаза ще бъде слоят данни, състоящ се от консенсус относно това кои данни са в парчетата. Фаза втора е държавният слой. Всичко това е много течно, така че общата разбивка за това как може да работи е по-долу.

Ethereum разбива мрежата на конкретни парчета. На всеки парче се присвоява определена група транзакции, която се определя чрез групиране на конкретни акаунти (включително интелигентни договори) в парче. Всяка група транзакции има заглавка и тяло, които се състоят от следното.

Хедър

  • Идентификационният фрагмент на групата транзакции
  • Назначаване на валидатори чрез произволно вземане на проби (проверете транзакциите в парчето)
  • Корен на държавата (състояние на корена на меркла на парчето преди и след добавени транзакции)

Тяло

  • Всички транзакции, които принадлежат към групата транзакции, които са част от конкретния парче.

Транзакциите са специфични за всеки парче и се извършват между сметки, присъщи на този парче.

Когато транзакциите са проверени, състоянието на мрежата се променя и салдата на сметките, съхранението и т.н. се актуализират. За да може групата транзакции да се провери като валидна, коренът от предварително състояние на групата транзакции трябва да съвпада с корена на парчето в глобалното състояние. Ако те съвпадат, групата на транзакциите се валидира и глобалното състояние се актуализира чрез конкретния корен на състоянието на идентификатор на парче.

Вместо да съдържа само корен на състояние, всеки блок на блокчейн Ethereum сега съдържа както корен на състояние, така и корен на групата транзакции. Коренът на групата транзакции е основният корен на всички групи транзакции от конкретните парчета за този блок транзакции.

По същество има корен на merkle от всички различни парчета, които съдържат актуализираните и проверени групи транзакции. Този корен се съхранява в блокчейна заедно с актуализирания корен на държавата.

Използването на концепции за дърво на merkle в тази структура е жизненоважно за гарантиране на валидността на блокчейна. Разбирането на начина, по който дървото merkle и по-конкретно коренът merkle, може да ви помогне да разберете тези понятия много по-лесно.

Какво е Меркле дърво

Прочетете: Какво е дърво на Меркле ?

Консенсус в рамките на парче се постига чрез консенсус за доказателство за залог на произволно избрани възли, които се прилагат към парче за конкретен кръг на консенсус.

Това не само осигурява окончателност на консенсуса, който е необходим в рамките на парчетата, но също така осигурява конкретна защита на атака, на която в този случай би бил податлив блокчейн Proof of Work.

Хеширащата мощност, необходима за преодоляване на конкретен парче в мрежа с сензорно PoW, е драстично намалена и възможността за злонамерен актьор да поеме парче чрез изчислителна мощност е осъществима.

Чрез това лошият актьор може да атакува други парчета чрез комуникационния протокол, който е една от по-сложните и важни характеристики на архитектурата за шардинг. Изборът на случайни извадки от валидаторите в даден парче успява да задуши този тип атака, тъй като лош актьор няма да знае в кой парче са поставени, преди да са поставени в него.

Освен това, случайно вземане на проби ще се използва за избор на валидатори, които действително валидират, от този набор за произволно валидиране.

Комуникационният протокол е жизненоважен за архитектурата на шардинга, която функционира правилно в системата. Можете да мислите за комуникационния протокол като за универсален език, който е последователен сред щатите като част от по-големите Съединени щати.

Проектирането на този протокол обаче е много предизвикателно и трябва да се извърши, така че да се използва само когато е необходимо. Това става необходимо, когато определен възел изисква информация, която не се съхранява в собствения му парче и трябва да намери парчето с необходимата информация. Тази комуникация е известна като кръстосана комуникация.

Кръстосаната комуникация се постига чрез прилагане на концепцията за разписки за транзакции. Разписката за транзакция се съхранява в корен на merkle, който може лесно да бъде проверен, но това не е част от държавния корен.

Шардът, който получава транзакция от друг парче, проверява коренчето на merkle, за да се увери, че разписката не е изразходвана. По същество разписките се съхраняват в споделена памет, която може да бъде проверена от други парчета, но не и променена. Следователно, чрез разпределено съхранение на касовите бележки, парченцата могат да комуникират помежду си.

Sharding Преместване напред

Sharding в Ethereum се очаква да бъде осъществено след надстройката на Casper PoS. Наскоро там има някои разработки по отношение на Ethereum 2.0 които включват прилагане както на Casper, така и на шардинг.

Sharding е реализиран и в няколко други платформи, най-вече Zilliqa. Понастоящем Zilliqa не изпълнява рязкото състояние и вместо това се фокусира върху осигуряването на висока производителност на блокчейн, като използва транзакционно и изчислително рязане.

ZilliqaПрочетете нашето Ръководство за Zilliqa

Заключение

Sharding служи да предложи някои обещаващи решения за слона в стаята на блокчейн платформи в момента, мащабируемост.

Докато мълниеносната мрежа на Биткойн е във фаза на тестване и досега показва много обещаващ напредък, решението на Ethereum носи със себе си някои уникални предизвикателства, тъй като е фиксирано като световен компютър, който е завършен на Тюринг.

Sharding директно ще работи само на ниво протокол, така че за крайния потребител или разработчика на dapp може да не е задължително да научи повече за.

Независимо от това, опитът на Ethereum за рязане на състоянието за обширна, децентрализирана мрежа е впечатляващо начинание и ще бъде огромно постижение, ако бъде успешно приложено.