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

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

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

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

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

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

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

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

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

2 ответов

31 просмотр

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

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

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

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

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
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
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта