Алгоритми майнінгу
Останні оновлення сторінки: 14 лютого 2026 р.
Майнінг Ethereum використовував алгоритм, відомий як Ethash. Фундаментальна ідея алгоритму полягає в тому, що майнер намагається знайти число, використовуючи обчислення грубої сили, щоб кінцевий хеш був меншим за порогове значення, визначене обчисленою складністю. Цей рівень складності можна динамічно регулювати, дозволяючи створювати блоки через регулярні проміжки часу.
Передумови
Щоб краще зрозуміти цю сторінку, ми радимо вам спочатку ознайомитися з консенсусом підтвердження роботи та майнінгом.
Dagger Hashimoto
Dagger Hashimoto був попереднім дослідницьким алгоритмом для майнінгу Ethereum, який замінено на Ethash. Це було об'єднання двох різних алгоритмів: Dagger і Hashimoto. Це була лише дослідницька реалізація, і її замінив Ethash до моменту запуску основної мережі Ethereum.
Daggeropens in a new tab передбачає створення спрямованого ациклічного графаopens in a new tab, випадкові фрагменти якого хешуються разом. Основний принцип полягає в тому, що кожен одноразовий код вимагає лише невеликої частини великого загального дерева даних. Повторне обчислення піддерева для кожного одноразового коду є непосильним для майнінгу – отже, потрібно зберігати дерево, – але це нормально для перевірки вартості одного одноразового номера. Dagger був розроблений як альтернатива існуючим алгоритмам, таким як Scrypt, які важко піддаються збереженню, але їх важко перевірити, коли їхня складність зростає до дійсно безпечного рівня. Однак Dagger був вразливий до апаратного забезпечення спільної пам’яті і відмовився від інших напрямків досліджень.
Hashimotoopens in a new tab — це алгоритм, який додає стійкість до ASIC, оскільки він обмежений операціями вводу-виводу (тобто зчитування з пам'яті є обмежувальним фактором у процесі майнінгу). Теорія полягає в тому, що оперативна пам’ять є більш доступною, ніж обчислення; Дослідження на мільярди доларів уже досліджували оптимізацію оперативної пам’яті для різних випадків використання, які часто включають шаблони майже випадкового доступу (звідси «пам’ять із довільним доступом»). В результаті існуюча оперативна пам’ять, ймовірно, буде досить близькою до оптимальної для оцінки алгоритму. Hashimoto використовує блокчейн як джерело даних, одночасно задовольняючи (1) і (3) вище.
Dagger-Hashimoto використовував виправлені версії алгоритмів Dagger і Hashimoto. Різниця між Dagger Hashimoto і Hashimoto полягає в тому, що замість того, щоб використовувати блокчейн як джерело даних, Dagger Hashimoto використовує спеціально згенерований набір даних, який оновлюється на основі даних блоку кожні N блоків. Набір даних генерується за допомогою алгоритму Dagger, що дозволяє ефективно обчислювати підмножину, специфічну для кожного одноразового коду для легкого алгоритму перевірки клієнта. Різниця між Dagger Hashimoto та Dagger полягає в тому, що, на відміну від оригінального Dagger, набір даних, що використовується для запиту до блока, є напівпостійним і оновлюється лише періодично (наприклад, раз на тиждень). Це означає, що частка зусиль для створення набору даних близька до нуля, тому аргументи Серджіо Лернера щодо прискорення спільної пам’яті стають незначними.
Докладніше про Dagger-Hashimoto.
Ethash
Ethash був алгоритмом майнінгу, який фактично використовувався в реальній мережі Ethereum за архітектурою proof-of-work, яка тепер не підтримується. Ethash став фактично новою назвою, даною конкретній версії Dagger-Hashimoto після того, як алгоритм був значно оновлений, водночас успадкувавши фундаментальні принципи свого попередника. У мережі Ethereum Mainnet використовувався лише Ethash, а Dagger Hashimoto був дослідницькою версією алгоритму майнінгу, яку замінили ще до початку майнінгу в Ethereum Mainnet.
Для подальшого читання
Знайшли ресурс, який допоміг з цією темою? Відредагуйте цю сторінку і додайте його!