Ano ang Ethereum Virtual Machine (EVM) at paano ito gumagana?

Ether (ETH), na siyang pangalawang pinakamalaking cryptocurrency sa mga tuntunin ng market capitalization, ay sikat sa mga namumuhunan ng cryptocurrency dahil sa katutubong ETH token nito. Gayunpaman, ang katutubong wika ng Solidity programming at Ethereum Virtual Machine (EVM) ay nakatulong sa pagpupugay na natatanggap nito mula sa komunidad ng developer. Sa katunayan, ang Ethereum blockchain patuloy na umaakit desentralisadong aplikasyon (DApp) mga developer dahil sa flexibility nito, ang malawak na hanay ng mga tool ng developer na available at ang malaking user base ng platform.

Bumubuo ng core ng arkitektura ng blockchain, ang EVM ay ang program na nagpapatupad ng application code nito o matalinong mga kontrata, gaya ng tawag sa kanila, na nagbibigay ng run-time na kapaligiran para sa kanila na tumatakbo sa ibabaw ng Ethereum network. Higit pa rito, ang EVM ay Turing-kumpleto at sa gayon ay maaaring magpatakbo ng anumang program na naka-code sa anumang programming language, sa gayon ay nagbibigay-daan sa mga developer na madaling lumikha ng mga custom na smart na kontrata at DApps para sa umuusbong Web3 espasyo. 

Bilang karagdagan sa mga mahahalagang pag-andar na ito, ang EVM ay may access sa lahat ng mga node sa network, pinangangasiwaan ang pagpapatupad ng mga matalinong kontrata at epektibong pinangangasiwaan ang lahat ng mga transaksyon sa Ethereum blockchain, na ginagawa itong isa sa pinakamakapangyarihang virtual machine na umiiral ngayon.

Ano ang Ethereum Virtual Machine (EVM) at paano ito gumagana?

Na-conceptualize noong 2013 ng programmer Vitalik Buterin, utang ng Ethereum network ang kamangha-manghang tagumpay nito bilang ang ginustong blockchain para sa mga developer ng DApp sa Ethereum Virtual Machine (EVM) na idinisenyo ni Gavin Wood sa panahon ng kanyang panunungkulan sa Ethereum. Nakasulat sa C++ at gamit ang LLVM Project compiler, ang EVM ay isang espesyal na makina ng estado na patuloy na gumagana at ang mga hindi nababagong operasyon ay tumutukoy sa estado ng bawat bloke sa Ethereum blockchain. 

Hindi lamang pinamamahalaan ng EVM kung ano ang magagawa o hindi magagawa ng mga node sa ipinamahagi na ledger na pinapanatili ng Ethereum blockchain ngunit tinutukoy din ang mga partikular na panuntunan ng pagbabago ng estado mula sa block patungo sa block. Ang huling functionality ang nagbibigay-daan sa smart contract functionality kung saan nakilala ang Ethereum.

Upang maunawaan kung ano ang ginagawa ng Ethereum Virtual Machine, kailangang tingnan ang bawat isa sa iba't ibang mga function na nagsisilbi nito sa pagtiyak ng maayos na operasyon ng Ethereum network. Para sa bawat input na natatanggap nito, ang EVM ay gumagawa ng isang output na deterministic sa kalikasan at sumusunod sa isang mathematical function sa pinakasimpleng kahulugan. 

Gumagana tulad ng isang stack machine na nagtutulak ng mga lumilipas na halaga papunta at mula sa isang pushdown stack, ang EVM ay may lalim na 1024 na mga item, na ang bawat isa sa kanila ay isang 256-bit na salita. Ito rin ay nagpapanatili ng pansamantalang memorya sa anyo ng isang byte array, na nagbabago sa pagitan ng dalawang transaksyon sa Ethereum blockchain. Ang mga smart contract code na pinagsama-sama ay isinasagawa ng EVM sa anyo ng isang koleksyon ng 140 standard opcodes, habang ang iba pang mga blockchain-specific na stack operation ay ipinapatupad din nito.

Mga Schematics ng Ethereum Virtual Machine

Kaya, ang EVM ay may machine state na likas na pabagu-bago sa panahon ng pagproseso ng anumang transaksyon at isang pandaigdigang estado o mundo na naglalaman ng impormasyon tungkol sa iba't ibang mga account na pinananatili sa Ethereum blockchain. Ang lahat ng mga aksyon ay pinamamahalaan ng EVM code, na sa kanyang sarili ay dumaan sa ilang mga pag-ulit mula nang ilunsad ang Ethereum network noong 2015, na humahantong sa pagkakaroon ng iba't ibang mga pagpapatupad ng EVM na kasalukuyang ginagamit.

Sa katunayan, ang EVM ay may pananagutan sa pagpapanatili ng isang antas ng abstraction sa pagitan ng libu-libong Ethereum node at ang executing code, na kumikilos bilang isang function na naghahatid ng mga pare-parehong resulta nang hindi nagbubunyag ng maraming detalye sa mga kliyente o node.

Ano ang layunin ng Ethereum Virtual Machine (EVM)?

Ang EVM ay mapagkakatiwalaang pinapagana ang lahat ng mga application na tumatakbo sa Ethereum network nang walang anumang pangunahing downtime na iniulat. Para sa mga developer, ang EVM ay nagsisilbing pangkalahatang programa na nagpapatakbo ng mas maliliit na executable program na kilala bilang mga smart contract sa Ethereum, habang binibigyan sila ng kalayaang isulat ang mga smart contract na ito sa sari-saring wika ng programming kabilang ang Solidity, Vyper, Python at Yul, bukod sa iba pa.

Dahil sa flexibility na inaalok ng EVM, ang Ethereum blockchain ay nagbunga ng libu-libong DApps sa desentralisadong pananalapi (DeFi) at nonfungible token (NFT) space. Ang bawat isa sa mga DApp na ito at ang mga matalinong kontrata kung saan sila ginawa ay na-convert sa bytecode na ipinapasok sa EVM at ipinamamahagi sa lahat ng mga node sa Ethereum network. Kapag ang isang matalinong kontrata ay na-deploy, ang EVM ay responsable para sa pakikipag-ugnayan sa lahat ng mga node at epekto ng mga pagbabago sa estado kapag ang isang pinagkasunduan ay nakamit.

Masasabing ang EVM ay ipinasok sa loob ng bawat Ethereum node upang magsagawa ng mga matalinong kontrata gamit ang bytecode sa halip na ang base programming language, kaya ihihiwalay ang pisikal na host computer mula sa machine code kung saan tumatakbo ang Ethereum.

Mga Benepisyo ng Ethereum Virtual Machine (EVM)

Dahil sa paraan ng pagpapatakbo ng EVM, ang mga developer ay maaaring magsagawa ng code nang hindi nababahala tungkol sa epekto nito sa natitirang bahagi ng network o ang posibilidad na ito ay naglalaro ng truant sa data o mga personal na file na naka-host sa alinman sa mga node na computer. 

Bukod pa rito, maaari silang magpatakbo ng mga kumplikadong smart contract sa iba't ibang computing environment na may distributed consensus. Tinitiyak nito na ang pagkabigo ng isang node ay walang anumang negatibong epekto sa pagpapatakbo ng DApp o smart contract, dahil nananatiling pareho ang EVM code sa lahat ng node. Higit pa rito, dahil pinapanatili ang data ng account sa isang pandaigdigang antas sa EVM, nakikita ng mga developer na perpekto ito para sa pagsusulat ng custom na smart contract code at paggawa ng mga natatanging DApp na maaaring ma-access ang pandaigdigang set ng data na ito at makagawa ng mga mapagkakatiwalaang output. 

Ang kabanalan ng kinalabasan ay kung bakit ang EVM, sa partikular, at ang Ethereum blockchain sa pangkalahatan ay angkop sa napapanatiling pagpapalawak ng DApps at smart contract Ethereum ecosystem. Idagdag dito ang library ng mga karaniwang code na magagamit ng mga developer na mapagpipilian, isang dumaraming bilang ng EVM-compatible layer-2 na mga blockchain at isang malaking bilang ng mga potensyal na kaso ng paggamit ng EVM na posible, at madaling makita kung bakit ang EVM ay ang gustong platform para sa Pag-unlad ng Web3.

Mga Kakulangan ng Ethereum Virtual Machine (EVM)

Sa kabila ng maraming mga pakinabang na inaalok ng EVM, may ilang mga downside na kailangang isaalang-alang ng mga developer at negosyante na nagtatayo sa Ethereum. Ang pinakamahalaga sa mga ito ay ang mataas na mga bayarin sa transaksyon o mga gastos sa gas na nauugnay sa pagpapatakbo ng isang matalinong kontrata sa Ethereum network. 

Binayaran sa ETH, ang mga bayarin na ito ay nag-iiba depende sa pagiging kumplikado ng kontrata at sa pagsisikip ng network sa oras ng pagpapatupad, kaya kinakailangan para sa mga developer at negosyante na presyo ng kanilang mga serbisyo nang naaayon. Bukod pa rito, dahil ang Solidity ay ang pinakagustong wika para sa coding sa EVM, ipinahihiwatig nito na ang mga developer ay kailangang magkaroon ng sapat na karanasan dito at magkaroon ng kaunting teknikal na kadalubhasaan upang lumikha ng mahusay na mga smart contract sa pamamagitan ng paggamit nito. 

Ang huli ay mahalaga dahil ang anumang karagdagang kinakailangan sa pag-compute ay hahantong sa mas mataas na mga gastos sa gas at sa huli ay mapapahamak sa tagumpay ng proyekto. Kung pipiliin ng mga developer na mag-code gamit ang ibang mga wika, kailangan nilang maging maingat sa paglutas ng anumang likas na pag-uulit sa code dahil magpapatuloy pa rin ang EVM sa pag-compile ng mga ito. Bagama't posible ang pag-upgrade ng mga smart contract sa mas huling yugto, ito ay may kasamang mga panganib sa seguridad na nauugnay sa paggawa ng intermediary smart contract na tumutukoy sa address ng orihinal na smart contract.

Ang kinabukasan ng mga EVM

Sa kabila ng mga rebolusyonaryong pagbabago na dulot ng EVM sa blockchain ecosystem, ang teknolohiyang ito para sa pagbabasa at pagpapatupad ng code ay pinagbubuti sa pamamagitan ng isang bilang ng mga proyekto ng blockchain. 

may cross-chain interoperability bilang ang pinakamahalagang aspeto para sa mga developer, maraming EVM-compatible blockchains ang nagpatibay, na karamihan ay nag-aalok ng mas mababang gas at mas mabilis na bilis ng transaksyon kaysa sa Ethereum protocol. Bilang resulta, ang mga blockchain na ito ay nagagawa na ngayong makipag-ugnayan sa mga gumagamit ng Ethereum nang walang putol at pinapadali ang paglilipat ng pondo sa kanilang sariling mga network gamit ang mga tulay ng blockchain.

Gayunpaman, sa matagumpay na pagkumpleto ng Ethereum protocol sa Merge noong Setyembre 2022, ang susunod na target ay lumipat mula sa EVM hanggang Ethereum WebAssembly (eWASM). Idinisenyo upang maging napaka modular at independiyente sa platform, ang eWASM ay itinuturing na susunod na game-changer para sa Ethereum protocol at maaaring mag-udyok sa iba pang mga blockchain na gamitin ang run-time na kapaligiran para sa mga smart contract din. Gayunpaman, kung papalitan ng mga eWASM ang EVM bilang pinakapinagkakatiwalaang mekanismo para sa mga matalinong kontrata ay isang tanong na oras lang ang makakasagot.