Шта је то ЦатВМ?

Тапроот Визардс је јуче објавио цртани филм под називом ЦатВМ. Нећу то називати белом књигом, то су прави академски документи за одрасле. У цртаном филму, испреплетеном међу апсурдним детињастим наративима, било је неколико вредних техничких увида у вези са различитим предлозима за скалирање у Битцоин екосистему. Наравно, на прави цртани начин, закопан између дивљег претеривања и улепшавања.

Крајњи циљ цртаног филма био је да предложи нови механизам за улазак и излазак из скалирања слојева изграђених на врху биткоина. Да бисмо одвојили тај стварни предлог од цртаног филма, мораћемо да раздвојимо два дела која су укључена.

Тхе Буилдинг Блоцкс

Ријндаелов први ОП_ЦАТ експеримент био је конструисање трезора, шеме која омогућава кориснику да креира посредну „спремну“ трансакцију за повлачење својих средстава из трезора. Ово покреће временско закључавање, током којег у било ком тренутку могу да пошаљу своја средства назад у трезор или безбедни новчаник за складиштење, а након истека времена корисник може слободно да повуче средства на одредиште које је изабрао када је започео процес повлачења. Ово су само два начина да се биткоин послат у скрипту трезора може потрошити.

Објашњавање потпуне механике како се то постиже је у суштини чланак за себе, тако да ћу урадити нешто што обично не радим и одбацити ово као „магију“. (Овде објаснио Андрев Поелстра) Оно што вам ова „магија“ омогућава да урадите, креирањем нестандардних Сцхнорр потписа и уз помоћ ОП_ЦАТ, јесте да изградите трансакцију против које је провера потписа на стеку скрипте. Ово вам омогућава да наметнете да одређени делови трансакције буду тачно онако како је дефинисано унапред. Такође вам омогућава да ставите излаз из претходне трансакције на стек у процесу изградње трансакције која је троши, што значи да можете упоредити излазе из трансакције потрошње са резултатима из претходне трансакције. Ово вам омогућава да гарантујете њиховим упоређивањем да се одређени делови излаза претходне трансакције поклапају са одређеним деловима нових излаза. На пример, сценарио, или износ. Тако да можете да „пренесете“ делове старих излаза у нове и то примените.

Још нешто што можете да урадите са ОП_ЦАТ-ом, коме није било потребно да Ријндаел петља и експериментише да би га доказао, јесте да проверите меркле гране дрвета. Пошто можете ЦАТ слагати ставке заједно, а Битцоин већ подржава хеширање података на стеку, можете полако да изградите корен меркле дрвета из чвора листа са унутрашњим чворовима. Хеширајте два дела заједно да бисте добили један хеш, хеширајте то са паром хеш, итд. На крају добијете роот хеш на стеку. Затим га можете упоредити са ОП_ЕКУАЛ са унапред дефинисаним основним хешом у скрипти за закључавање.

Једнострано повлачење

Ова два градивна блока су довољна да олакшају једнострани механизам повлачења из групног заједничког УТКСО. Меркле корен се може уградити у трансакцију помоћу ОП_РЕТУРН или другог механизма који се обавезује на листни чвор за сваког корисника. УТКСО скрипта може бити структурирана тако да сваки корисник са стањем може покушати да је повуче. Да би то урадили, они би обезбедили меркле филијалу обавезујући се на износ на који имају право, доказ ауторизације, као што је јавни кључ за проверу потписа, и конструисали би трансакцију на стеку како би проверили да ли су испуњени одговарајући услови.

Слично Ријндаеловом ОП_ЦАТ трезору, ова трансакција повлачења би функционисала као полазна тачка. Средства корисника би била ограничена временским закључавањем и не би могли да заврше повлачење док не истекне. У било ком тренутку пре него што временско закључавање истекне, било који други корисник може да направи доказ за превару како би зауставио повлачење и вратио средства у групну УТКСО скрипту. Они то могу да ураде због ОП_ЦАТ-ове способности да верификује меркле стабла. Ако је неко раније користио одређену меркле филијалу за повлачење средстава из УТКСО-а, онда је то негде укључено у блок. Конструисањем трансакције која садржи СПВ доказ те трансакције унутар стварног блока, који може да користи ОП_ЛЕССТХАНОРЕКУАЛ да потврди да заглавље блока испуњава неке минималне потешкоће, они могу доказати на стогу да је грана меркле коришћена раније. Ово омогућава да се спречи дупла повлачења.

Поред овога, пошто можете да користите трик „ЦАТ на стеку“ да бисте осигурали да одређени делови претходне трансакције морају бити укључени у следећу, можете гарантовати да ће се тренутни меркле роот пренети у следећу трансакцију након успешног повлачење. Такође можете да гарантујете да ће се промена од повлачења вратити у скрипту за дељење групе. Ово гарантује да након што један корисник повуче своја средства, промена УТКСО се закључава скриптом која дозвољава сваком преосталом кориснику да повуче, и тако даље. Сваки корисник може једнострано повући своја средства у било ком тренутку било којим редоследом, уз гаранцију да је остатак средстава и даље доступан осталим корисницима.

Тхе ВМ Парт

Читаоци би требало да буду упознати са основном идејом БитВМ-а. Можете узети произвољно израчунавање и разбити га на сваки од његових саставних делова и уградити их у велико стабло корена, претварајући то израчунавање у игру изазова/одговора напред-назад. Ово вам омогућава да закључате биткоин са компликованијим условима него што то директно подржава сама биткоин скрипта. Једини прави недостатак је потреба да се направи огромна количина унапред потписаних трансакција да би се ово олакшало.

Захтев за коришћење унапред потписаних трансакција је тако да у динамици изазов/одговор можете гарантовати да се новчићи потроше назад у велико стабло корена који га кодира осим ако се не постигне излазни услов на један или други начин. ОП_ЦАТ и могућност „преношења“ података из претходних трансакција омогућавају вам да то гарантујете без потребе за унапред потписаним трансакцијама.

Дакле, не само да ова шема дозвољава било ком кориснику да једнострано изађе сам, већ такође омогућава да се услови закључавања подржани од стране другог слоја који нису подржани у Битцоин скрипти заправо примењују у процесу повлачења. На пример, ако су неки новчићи били оптерећени паметним уговором који основни слој не разуме, а затим повучени из другог слоја, они компликованији услови би и даље могли да се правилно реше на основном слоју како се новчићи повлаче.

Нестали комад

Једна ствар коју ОП_ЦАТ не омогућава је ажурирање корена меркле дрвета који представља равнотежу корисника ван ланца који се може проверити. То може омогућити држави која је већ посвећена да олакша једнострано повлачење, али то је зато што је читав део стабла заправо стављен на ланац и верификован. Да ажурирате тај роот ван ланца по дефиницији значи да не стављате податке на ланац. Ово представља проблем. Не постоји начин са само ЦАТ-ом да се ефикасно верификује да су све промене у меркле стаблу правилно ауторизоване од стране релевантних корисника.

Неком(има) се мора веровати, а по природи ствари може да троши УТКСО како год и где год жели, да ефикасно замени стари корен државе новим да би представљао све промене ванланчане равнотеже. Нови операцијски код поред ОП_ЦАТ, као што је ОП_ЗКВЕРИФИ, би био потребан да се ово уради на начин без поверења.

Ипак, ово не би био смак света без ОП_ЗКВЕРИФИ. Ентитет који ажурира меркле роот за трансфере ван ланца може бити н-оф-н мултисиг, са 100% учесника који морају да се одјаве за било какве промене корена. Ово се своди на исти модел поверења као и клинови засновани на БитВМ-у, где све док постоји један поштен учесник, ничија средства не могу бити украдена. Међутим, то је велико побољшање у односу на постојеће БитВМ дизајне када је у питању процес повлачења.

У БитВМ везама, корисници немају једнострани механизам за повлачење. Пег оператерима се мора веровати да ће испунити корисничка повлачења, знајући да могу затражити поврат средстава која су потрошили чинећи то релативно без поверења од БитВМ веза. Иако су подстицаји за ово веома солидни, и даље је потребно да корисници у суштини добију дозволу од неког другог да изађу из система, они то не могу сами да ураде. Са ЦатВМ-ом, корисници могу једнострано да потраже своја средства, а од оператера се не захтева да исплаћује сопствену ликвидност за обраду повлачења.

Завршавајући

Све у свему, пројекат је недовршен у смислу изградње. Ово није нешто што бих назвао слојем 2 само по себи. То је срж једног, механизам и структура како су средства закључана у слоју 2, и процес како корисници могу повући своја средства. Дефинитивно има много флексибилности и корисности.

У најгорем случају, корисницима није потребна ничија дозвола да безбедно траже своја средства назад у ланцу. Такође омогућава флексибилнију програмибилност средстава, док и даље носи спровођење тих услова на основни слој у случају једностраног изласка у најгорем случају. Ако једног дана на крају добијемо нешто попут ОП_ЗКВЕРИФИ, напредовање стања ван ланца може постати процес без поверења.

Не очекујем никакве конкретне демо снимке у блиској будућности, али то је дефинитивно добра идеја по мом мишљењу и нешто вредно разматрања. Такође показује да чаробњаци раде мало више од пуког испумпавања глупих јпегова. 

Извор: хттпс://битцоинмагазине.цом/тецхницал/вхат-тхе-хецк-ис-цатвм