Транзакція Blob (Blob Transaction)

Тип транзакції, представлений в EIP-4844 Ethereum, розроблений для зменшення комісій за транзакції шляхом окремого зберігання блоків даних від основних даних транзакції.

Транзакції Blob, представлені через Пропозицію щодо вдосконалення Ethereum (EIP) 4844 (також відому як Proto-Danksharding), являють собою значну архітектурну зміну, спрямовану на зниження комісій за транзакції, особливо для рішень масштабування рівня 2. На відміну від традиційних транзакцій Ethereum, які вбудовують дані безпосередньо в основні calldata транзакції, транзакції Blob використовують окрему, хоча й все ще в ланцюжку, структуру даних під назвою 'blobs'. Ці blobs розроблені так, щоб їх було дешевше публікувати, і вони підпадають під інші ліміти газу та механізми ціноутворення, ніж звичайні дані транзакцій. Основною мотивацією є зниження вартості доступності даних для ролапів (rollups). Ролапи пакують транзакції поза ланцюжком і публікують стиснутий підсумок або доказ до основного ланцюжка Ethereum (рівень 1). Вартість публікації цих даних на рівні 1 є основним вузьким місцем. EIP-4844 вводить новий тип транзакції, який дозволяє ролапам дешевше публікувати більші обсяги даних, розділяючи їх на ці blobs. Ці blobs не обробляються безпосередньо віртуальною машиною Ethereum (EVM), а натомість підтверджуються за допомогою схеми зобов'язань поліномів KZG (Kalai-Shen-Goldwasser). Це зобов'язання включається до заголовка блоку, забезпечуючи доступність даних без необхідності для кожного вузла завантажувати та зберігати повні дані blob на невизначений термін. Це розділення та спеціалізована обробка значно зменшують вартість газу, пов'язану з доступністю даних, роблячи ролапи більш економічно життєздатними та, таким чином, покращуючи загальну масштабованість Ethereum.

        graph LR
  Center["Транзакція Blob (Blob Transaction)"]:::main
  Rel_eip_4844["eip-4844"]:::related -.-> Center
  click Rel_eip_4844 "/terms/eip-4844"
  Rel_layer_2["layer-2"]:::related -.-> Center
  click Rel_layer_2 "/terms/layer-2"
  Rel_data_availability["data-availability"]:::related -.-> Center
  click Rel_data_availability "/terms/data-availability"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Перевірка знань

1 / 3

🧒 Простими словами

Уявіть, що ви надсилаєте великий пакет (вашу транзакцію), де раніше ви платили багато за те, щоб включити весь пакувальний папір всередині. Транзакції Blob дозволяють вам надсилати пакувальний папір окремо і набагато дешевше, що робить загальну вартість доставки значно меншою.

🤓 Expert Deep Dive

EIP-4844 фундаментально змінює стратегію доступності даних Ethereum, вводячи 'blobs' та зобов'язання KZG. Blobs — це безперервні шматки даних, прикріплені до блоку, з максимальною довжиною та окремим лімітом газу, відмінним від calldata. Важливо, що blobs не доступні безпосередньо для логіки контрактів EVM; їх основною метою є перевірка доступності даних. Зобов'язання щодо даних blob досягається за допомогою зобов'язань поліномів KZG, де дані blob представляють коефіцієнти полінома, а зобов'язання — точку на еліптичній кривій. Це дозволяє ефективно генерувати та перевіряти докази. Вузли повинні завантажувати дані blob протягом обмеженого періоду (наприклад, ~4096 блоків або ~27 годин) для цілей перевірки, після чого вони можуть їх видалити, зменшуючи роздуття стану. Вартість газу для публікації blobs значно нижча, ніж для calldata, розраховується на основі розміру blob та окремої 'ціни газу blob'. Цей механізм є попередником повного Danksharding, де простір blob буде розширено та розподілено між кількома шардами. Компроміси включають складність схеми зобов'язань KZG та вимогу тимчасового зберігання для вузлів, але основною перевагою є суттєве зниження витрат на публікацію даних для ролапів.

📚 Джерела