209 похожих чатов

Для #wiki @invariance смотри, есть такая фундаментальная проблема Computer Science, называется

проблема останова.
Она состоит в том, что для произвольной программы невозможно заранее сказать, сколько она будет выполняться, и остановится ли вообще или уйдёт в бесконечный цикл.
Поэтому, если разрешить просто выполнять произвольный код смарт-контрактов на блокчейне, то блокчейн неизбежно встанет колом, как только кому-нибудь придёт в голову бесконечный цикл в качестве смарт-контракта указать.

Как решить эту проблему? В Биткоине — ограничили операции, которые можно делать самрт-контрактам. Это называется не тьюринг-полный язык программирования. Он без циклов и по-моему даже без ветвлений, и в итоге кроме мультисига там ничего не получается сделать на нём в нынешнем виде.

Основное новшество Эфира было — "мы позволим вам выполнять произвольные программы на Тьюринг-полном языке программирования, а для избегания бесконечных циклов будем использовать механику газа."
Каждая операция EVM, как каждый километр пробегаемый машиной — потребляет фиксированное количество газа/бензина. Но сколько по факту этого бензина твоя машина сожрёт, никому толком заранее не ясно в общем случае, поэтому ты аливаешь какой-то "полный бак с запасом", и запас тебе потом возвращают. Если бак закончился, а машина никуда не приехала — ты всё равно потратил полный бак (а состояние маршрута/блокчейна — откатилось на начало "на эвакуаторе").

Вопрос: "почему ёмкость бака измеряется в литрах, а не в рублях?"
Ответ: Потому что желающих заправить полный бак сегодня и завтра — разное количество. Соответственно, стоимость литра бензина меняется; а значит и стоимость (в рублях) поездки из Москвы в Находку сегодня и через неделю может быть разная. Хотя в литрах там один и тот же маршрут по идее.

То же самое и с транзакциями в Эфириуме. Желающих выполнять транзакции на блокчейне — больше чем блокчейн успевает переварить. Соответственно, надо как-то отдавать приоритет тем, ком нужнее (и кто поэтому выставил цену побольше).

Теперь представим что у нас есть одна большая транзакция по 300 рублей, и много маленьких по 100.
Вопрос — сколько и каких надо взять в блок?
Ответ — неизвестно, зависит от того, насколько "маленькие" меньше "большой". Если вместо одной большой можно взять пять маленьких, то большую вообще не имеет смысл брать, пока маленькие не кончатся. Если только две маленьких за одну большую — то большая идёт первым номером.
Но мы не можем сравнивать "размеры" транзакций, не выполняя их все! А выполнять их всех чтобы только сравнить какую в блок взять (и потом по новой ещё один раз выполнять, уже "начисто") — никакой выполнялки не хватит.

Поэтому в Эфириуме используется модель с gasPrice+totalGas вместо постоянного Fee. В этой модели приоритет отдаётся тем контрактам, у которых gasPrice (за литр/километр/одну операцию) — выше.
И тогда майнеры точно знают, какой из контрактов им надо брать, чтобы максимизировать выгоду (потому что все всё равно не влезут).

2 ответов

27 просмотров

Теперь можно смело новичкам кидать, сохранить бы где-нибудь

благодарствую, стало чутка понятнее!👍

Похожие вопросы

Обсуждают сегодня

Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
How about the project bro Likes the community not that active ?
🅿️abby_FX
19
How are we going bro about the Raids ??
🅿️abby_FX
13
Keep saying it, it’s Trump or WW3. Iran will be emboldened if Harris wins by cheating. Israel will have to take the initiative against Iran. How has BTC faired everytime the...
Adz | Ferrum Network Product & Service Consultant @ Ferrum Network
1
------------------------------------------------------------------------------ 📢 MAJOR ANNOUNCEMENT: HSUITE ECOSYSTEM UPDATE 📢 @everyone Dear HbarSuite Community, After month...
Big Stones
3
isnt that how its called? lol
Hobbyist
34
Ok I will use this example…there has been a crazy amount of meme coins launched on solana and more recently on xrp ledger, many of these memes have found their way on to diffe...
Stevo Payne
7
Hey guys, I am a first time Staker, I'm on Chrome browser on Hex dot com, I'm using rabby wallet with my ledger nano X, but when I click the STAKE button it doesn't prompt my ...
Slug
8
VIP-391 Multichain Governance - Permissions on Ethereum, Arbitrum one and opBNB Summary If passed, following the Community proposal “Venus Upgrade - Omnichain Money Markets”...
Venus Announcements
6
Does anyone in here have a contact with EOS Labs that we could ask what they've been doing with their funding?
Bytecode360 Katoshi [1337 f4rm3r]
13
Карта сайта