Modular Yap覺lar Deep Dive 凶: Execution Layer & Fuel

Modular Yap覺lar Deep Dive 凶: Execution Layer & Fuel

Modular Stack 羹zerine serinin ikinci yaz覺s覺! Modular Execution Layer ve Fuel & FuelVM hakk覺nda derine indik!

7 min read

Balamadan,

Yaz覺, okurun Modular ve Monolitik yap覺lar hakk覺nda belli bir miktar 繹n bilgiye sahip olduu varsay覺larak haz覺rlanm覺t覺r ve bu nedenle, yaz覺ya balamadan 繹nce akl覺n覺zda oluabilecek soru iaretlerini gidermesi ad覺na, Zero to Hero - Modular Yap覺lara Muhta癟 M覺y覺z? bal覺kl覺 bu serinin ilk yaz覺s覺n覺 okuman覺z覺 繹neririm. Yaz覺 3 ana b繹l羹mden olumaktad覺r. 襤lk b繹l羹m monolitik ve modular execution kar覺lat覺rmas覺ndan bahsediyoruz, ikinci b繹l羹mde rollup ve modular execution layer fark覺na g繹z at覺yoruz, kapan覺覺 ise Fuel ve kendi sanal makineleri olan FuelVM ile yap覺yoruz. Ben arat覺r覺rken 癟ok ey 繹rendim, umar覺m size de bu bilgileri aktarabilirim! Geri d繹n羹lerinizi bekliyorum, keyifli okumalar! 戊


nce Monolitik Zincirler & Execution!

Serinin ilk yaz覺s覺nda olduu gibi, bu yaz覺ya da balarken 繹ncelikle monolitik zincirlerde ger癟ekleen Execution覺 anlay覺p sonras覺nda Modular Execution Layer (MEL) (yaz覺n覺n devam覺nda MEL eklinde k覺salt覺larak kullan覺lm覺t覺r) ile olan ilikisine bakman覺n daha sal覺kl覺 olaca覺n覺 d羹羹n羹yorum. O zaman laf覺 癟ok uzatmadan balayal覺m戊

Ge癟tiimiz y覺llarda 癟覺kan bir癟ok blokzincir teknolojisine bakt覺覺m覺z zaman monolitik yap覺lardan kurtulamam覺lard覺r. K覺sa bir 繹zet ge癟mek amac覺yla bu yap覺lara bakacak olursak, ana katmak (base layer) olarak Consensus Layer覺n i癟erisinde Data Availability, Settlement ve Execution birlikte bulunmaktad覺r. ounlukla ise Settlement ve Execution birbirlerine bal覺 ekildedirler. Buradaki problem ise monolitik yap覺lar覺n b羹t羹n ii ana katmanda ger癟ekletirmesi ve dolayl覺 olarak 羹zerine d羹en i y羹k羹 nedeniyle, blokzincir yap覺s覺n覺n sahip olduu potansiyeli limitlemesidir.

zel olarak Execution Layera bakacak olursak, MELleri monolitik muadillerinden ay覺ran 2 temel unsur olduunu g繹rmekteyiz.

  • MEL, hesaplama(computation, execution) ve dorulama(verification) proseslerini birbirinden ay覺r覺rken, monolitik zincirlerde hesaplama ve dorulama g繹revleri birlikte bulunmaktad覺r. Bu nedenle monolitik zincirler g羹venlikten taviz vermemek i癟in g羹venirlii ikinci plana atarken, MEL 繹l癟eklenebilirken g羹venlikten taviz vermez.

  • MEL, hesaplama s羹reci i癟in 繹zel olarak optimize edilebilirken, monolitik zincirler h覺z ve 癟eitlilik konusunda 癟ok daha verimsiz kalmaktad覺rlar. [1]

Yukar覺daki bu iki temel unsuru anlamak i癟in 繹ncelikle computation ve verification nedir buna bakmam覺z gerekiyor. Gene k覺sa bir tan覺mlama yaparsak, computation ve verification monolitik zincirlerin g羹venliinden (security) ve d羹r羹stl羹羹nden (integrity) emin oluyor diyebiliriz.

Computation s羹reci boyunca, ada kullan覺c覺lar ilem yapt覺k癟a bu ilemler validat繹rler taraf覺ndan al覺n覺r ve blokzincirin kurallar覺na g繹re ge癟erlilii dorulan覺r. Bu kontrolden ge癟en ilemler zincir 羹zerindeki yeni bir bloa eklenir.

Verification, monolitik zincirlerde hem bloklar覺n hem de ilemlerin doruluunu kontrol etme s羹recine verilen isimdir. Adaki her validat繹r bulunduu blokzincirin bir kopyas覺na sahiptir. Yeni ilemlerin ve bloklar覺n ge癟erliliini kendi blokzincir kopyalar覺na g繹re kar覺lat覺rarak dorularlar, ge癟erlilii kabul edilen bloklar覺 kendi kopyalar覺na eklerler, eer bir ilem veya blok ge癟ersiz olarak kabul edilirse a taraf覺ndan reddedilir.

Monolitik zincirlerde, t羹m validat繹rler ilemlerin hem hesaplamas覺n覺 hem de dorulamas覺n覺 yapar. Bazen kullan覺c覺lar ya da uygulamalar b羹t羹n bir zincirdeki ilemleri dorulamak istemezler ve sadece zincir 羹zerindeki dorulanm覺 ilemlere ulamak isteyebilirler. Bunu yaparken full-node 癟al覺t覺rmak yerine light-node 癟al覺t覺rarak full nodelar覺n dorulad覺覺 dataya ulaabilirler yani tamamen full-nodelara bal覺d覺rlar. Bu duruma bilinen ad覺yla Honest Majority Assumption (ounluun D羹r羹st Varsay覺m覺) denir ve bu durum b羹t羹n monolitik zincirleri 51% ata覺 ile kar覺 kar覺ya b覺rakmaktad覺r.

Az覺nl覺覺n Sesi Modular Execution Layer 仁

Yukar覺da bahsettiimiz monolitik zincirlerin bu durumundan bizi kurtarmak ad覺na yard覺m 癟覺l覺覺m覺za modular yap覺lar yetiiyor! Bunu nas覺l yapt覺覺na asl覺nda yukar覺da ilk madde de bahsettik, computation ve verification proseslerini monolitik yap覺lar覺n aksine birbirinden ay覺rarak. Execution (computation) prosesi ana katmandan ayr覺ld覺覺ndan dolay覺 zincirin 繹l癟eklenebilirlii artarken ayn覺 zamanda merkeziyetsizlikten de 繹d羹n verilmiyor.

Baka bir deyile, modular zincirlerde execution layer ilemin, ilenme s羹recinden ve durum ge癟ilerinin (state transition) uygulanmas覺ndan sorumludur. Fuel覺n tan覺mlamas覺na g繹re MEL, modular zincir yap覺lar覺 i癟in 繹zel olarak tasarlanm覺 onaylanabilir sistemlerdir. Yani fraud proof ya da validity proof ile anlama salanarak dataya ulaabilmelidirler.

Ayr覺ca MELde hesaplaman覺n dorulama prosesinden ayr覺lmas覺ndan dolay覺, dorulama ilemi merkeziyetsiz olduu s羹rece hesaplaman覺n merkeziyetsizliinin bir 繹nemi kalmamaktad覺r. 襤ki ilem birbirinden ayr覺 olduundan dolay覺 blok boyutu ne kadar artarsa arts覺n (zincirin forklanmas覺 繹rnek olarak verilebilir) dorulama ayr覺 bir ilem olduu s羹rece ge癟ersiz olan bloklar覺n zincire eklenmesi engellemi olur. [1]

Giri k覺sm覺nda bahsettiimiz iki maddeden ilkine birlikte bakabildik, 癟ok uzamamas覺 ad覺na ikinci madde ile alakal覺 fuel-labs覺n kendi yaz覺s覺n覺n linkini b覺rak覺yorum. Gayet a癟覺klay覺c覺 ve 繹retici, ben okurken bir癟ok ey 繹rendim siz de devam覺na oradan bakabilirsiniz. Ayn覺 zamanda ilk madde ile alakal覺 yaz覺ya da kaynaklar k覺sm覺ndan ulaabilirsiniz.


Rolluplara Bakmadan Ge癟mek Olmaz

Modular stack 羹zerinde execution layerdan bahsederken rolluplara bakmadan ge癟mek olmazd覺. Serinin ilk yaz覺s覺nda bir 繹n bilgi olarak rolluplar覺n execution layer 羹zerinde 繹zellemi birer t羹r olduunu s繹ylemitik. Bu s繹ylemi biraz daha a癟al覺m istedim, hadi balayal覺m.

u soruyla balayal覺m o zaman, rolluplar birer blokzincir midir? Evet birer blokzincirdir fakat kendi datas覺na sahip baka bir monolitik zincire (bkz. Ethereum) bal覺d覺rlar ve bal覺 olduklar覺 bu zincir 羹zerindeki ilemleri off-chain olarak executelay覺p bunlar覺 toplu bir ekilde tek bir ilem olarak geri monolitik zincire g繹nderirler. Peki bunun nas覺l bir avantaj覺 var diye sorarsan覺z, ana zincir 羹zerindeki ilemler off-chain olarak executeland覺覺 i癟in zincirdeki rekabet azal覺r. Peki bunun nas覺l bir dezavantaj覺 var diye soracak olursan覺z, ana monolitik zincire olan ba覺ml覺l覺k. Tabi bir blokzincire rollup diyebilmek i癟in bu yeterli deildir, ayn覺 zamanda zincirin kendi proof (fraud proofs, validity proofs) ve permissionless mekanizmalar覺 da olmas覺 gerekmektedir. Rolluplar覺n 癟覺k覺 ama癟lar覺 ise her zamanki gibi bal覺 olduklar覺 monolitik zincir 羹zerindeki 繹l癟eklenebilirlik sorununu 癟繹zmektir. [3]

Modular Execution Layer = Rollup + ??

Rolluplar覺 birazda olsa anlad覺ktan sonra art覺k s覺ra MELin rolluplardan farklar覺 neler bunlara bakman覺n zaman覺 geldi. Daha 繹nce de s繹ylediimiz gibi rolluplar asl覺nda execution layer 羹zerine 繹zellemi yap覺lard覺r. Fuel ve Celestia Co-Founder覺 John Adler abimizin de dedii gibi Rolluplar USB-3 ise MELler Thunderbolt-3 dir (Evet adam kaynaklardaki podcastte tam olarak bu benzetmeyi yapt覺 :D) USB-3 kablosuyla bir癟ok iimizi yapabiliriz fakat Thunderbolt-3 ile hem USB-3nin yapt覺覺 b羹t羹n ilemleri yaparken hem de fazladan bir癟ok 繹zellikte kazanm覺 oluruz. Bu 繹zelliklerden 2 tanesi,

The Powerpuff GIF - The Powerpuff Girls GIFs

  • MEL ile birlikte, kullan覺c覺lar full-node 癟al覺t覺rmak zorunda kalmadan light-node lar覺n覺 off-chain olarak 癟al覺t覺rabilecek ve ayn覺 zamanda full-nodea gerek kalmadan zinciri onaylayabilir. Bu sayede ise yap覺ya olan g羹ven gereksinimi (trust minimization of the structure ) olduk癟a azal覺r, yani bir dier deyile yap覺 daha g羹venilir hale gelir.

  • MEL herhangi bir monolitik L1 zincirine bal覺 deillerdir, olduk癟a esnek ekilde kullan覺labilirler. [2]

    Modular Execution Layerlar覺n zengin kullan覺m ekillerine 繹rnek, kaynak: fuel

zetlersek, MEL rolluplar覺n b羹t羹n temel 繹zelliklerini kendi 羹zerinde ta覺rken ayn覺 zamanda trust minimizate sistemlerdir ve rolluplar gibi iki y繹nl羹 bir k繹pr羹 g繹revi g繹rmektense, herhangi baka bir ana aa ihtiya癟lar覺 yoktur.


Sahnede Fuel

Yukar覺da bahsettiim iki maddeyi Fuel 羹zerinden anlatman覺n daha mant覺kl覺 olaca覺n覺 d羹羹n羹yorum. K覺saca Fuel nedir diye 繹zetlemek gerekirse bir癟ok yerde de g繹rebileceiniz gibi kendi tan覺mlamalar覺yla Fuel is building the fastest execution layer for the modular blockchain stack.*,* yani abiler diyor ki benden h覺zl覺s覺 mezarda ve sadece bunu demekle kalm覺yorlar ve ger癟ekletiriyorlar. Daha 繹nemli olan k覺sm覺ysa dediklerini ger癟ekletirirken herhangi bir g羹venlik tavizi vermiyor olmalar覺. Peki bu nas覺l m羹mk羹n olur?

Mcqueen GIF - Mcqueen GIFs

  • Parallel Transaction Execution: Zincirdeki ilemlerin birden 癟ok 癟ekirdekte ayn覺 anda doruland覺覺 bir modeldir.

  • FuelVM (Daha detayl覺 olarak bir sonraki bal覺kta bakaca覺z o y羹zden imdilik pas ge癟iyorum.)

  • Sway: Sway = Rust + Solidity eklinde bir denklem kurulabilir. Sway, Rust覺n compile-time analizlerini ve g羹venliini al覺p ayn覺 zamanda syntaxini kullan覺rken, Soliditynin ak覺ll覺 s繹zleme yazma konusundaki ergonomosine ve g羹venli yap覺s覺na sahiptir. [2]

FuelVM = EVM ++

Bal覺ktanda anla覺laca覺 gibi Fuel Virtual Machine aka FuelVM kendine 癟覺k覺 noktas覺 olarak Ethereum Virtual Machine aka EVMi 繹rnek alm覺t覺r. Fuel 羹zerinde gelitirme yapmay覺 d羹羹nen bir gelitiriciyseniz 繹ncelikle EVMi tam anlam覺yla 繹renmi olmak iinizi epey bir kolaylat覺racakt覺r 癟羹nk羹 FuelVM asl覺nda EVMin daha yenilik癟i ve daha optimize olan bir hali gibi d羹羹n羹lebilir. Dizayn olarak bak覺ld覺覺nda birka癟 n羹ans fark覺 olsa da olduk癟a benzer durumdalard覺r. Peki bu FuelVMin 繹zel yan覺 ne diye soruyorsan覺z madde madde inceleyelim bakal覺m,

  • FuelVM, yerel bir haf覺za yerine global olarak payla覺lan bir haf覺za mimarisine sahiptir. Buradaki ama癟 her ak覺ll覺 s繹zlemenin kendi ayr覺 memory space, call data ve return datas覺na sahip olmas覺 yerine bunu global bir yap覺dan s繹zlemelere 癟a覺rtmakt覺r. Bu sayede ise datan覺n ak覺ll覺 s繹zlemeler aras覺nda gezerken oluturduu maliyet azalt覺lm覺t覺r.

  • FuelVM fraud-proof olarak ina edilmitir. Bu sayede Fuel light-clientlar覺n覺n bir trusted-partye ihtiyac覺 kalmaz, full-nodea g繹re daha az kaynak kullan覺r ve g羹n羹m羹zdeki light-clientlara oranla 癟ok daha g羹venli bir yap覺ya sahip olur. EVM fraud proofs 羹zerine ina edilmek i癟in fazla karma覺k bir makinad覺r, bu nedenle genellikle ikinci bir katmana ihtiya癟 duyar.

    trust minimized light clientlar覺n full node ve g羹n羹m羹zdeki light clientlar ile farklar覺, kaynak: fuel

  • FuelVM 羹zerinde birden fazla yerel varl覺k kullan覺labilmektedir, 繹te yandan mainnette ise tek yerel varl覺k Etherdir. FuelVMin bu esnek yap覺s覺 sayesinde Fuel 羹zerindeki herhangi bir kontrat UTXO tabanl覺 herhangi bir yerli varl覺覺 kullanabilir.

  • FuelVM 256-bit yerine 64-bit kelimeleri kullan覺r. Bu sayede gelitiricilerin ak覺ll覺 s繹zleme taraf覺nda BigNumber hatalar覺ndan kurtulmas覺 salanm覺t覺r. [2]

Son S繹zler

Modular stack sayesinde blokzincir 羹zerindeki tek d羹zelikten kurtulmak ve 癟ok daha esnek hareket etmek hedeflenmektedir. zelikle MELlerin herhangi bir monolitik L1 zincire bal覺 kalmak zorunda olmamas覺 bunun en g羹zel 繹rnei olarak verilebilir. Bu sayede ise modular stack, EVMin yetersiz kald覺覺 durumlarda kendi 癟繹z羹mlerini 羹retebilir. Fuel ise bu d羹zenin MEL taraf覺ndaki en b羹y羹k oyuncusu konumundad覺r. EVMin 繹tesine giderek gelitirdikleri kendi sanal makineleri ve dilleri sayesinde Fuel, hem verimli hem de 繹l癟eklenebilir executionlar salarken ayn覺 zamanda 羹st羹n gelitirici deneyimi ve maximum g羹venlikten de vazge癟memitir. T羹m bu nedenlerden 繹t羹r羹 bitirii u c羹mle ile yap覺yoruz,

Modularism, not Maximalism!


Kaynaklar 對

  1. https://fuel-labs.ghost.io/the-case-for-modular-execution-part-1/

  2. https://fuellabs.github.io/fuel-docs/master/index.html

  3. Bankless Podcast w/ John Adler


    Yazara ulamak i癟in: https://twitter.com/Roq411

Did you find this article valuable?

Support Buildchain by becoming a sponsor. Any amount is appreciated!