Что такое dag файл в майнинге
Особенности DAG Ethereum — что это?
Если сравнивать с Bitcoin, добыча Ethereum нуждается в больших ресурсах оперативной памяти. При этом требования растут вместе с появлением новых данных о транзакциях в цепочке blockchain. Участники сети, которые используют для майнинга старые GPU, часто видят следующую ошибку — CUDA error 11.
Её появление свидетельствует о том, что объём DAG file Ethereum оказался больше запасов буфера памяти GPU, используемого для добычи виртуальной монеты. Иногда указанная выше надпись появляется при наличии проблем с оборудованием для майнинга. И если во втором случае достаточно перезагрузить компьютер, то в первой ситуации единственное решение — установить более мощную видеокарту. При выборе GPU важно понимать особенности DAG Ethereum — что это, каков его размер, и где он хранится.
Сущность
Криптовалютная сеть Эфириума примеряет алгоритм майнинга Ethash, а также протокол доказательства работы Proof-of-Work. До недавнего времени считалось, что такая комбинация делает майнинг ETH устойчивым к применению асиков. Но так было до недавнего времени, пока в 2018 году не появился Bitmain Antminer E3.
Несмотря на выпуск более мощного оборудования, технология вычислений осталась неизменной. В процессе расчета происходит подбор хэша для создания нового блока. В этом процессе как раз и применяется блок с информацией (Даг), который находится в памяти GPU в период функционирования оборудования для добычи виртуальных монет. Алгоритм работает так, что по факту получения 30 000 новых элементов блокчейн размер DAG файла Ethereum растет на 8 МБ. Это правило работает не только для криптовалюты Эфириум, но и для других виртуальных монет, функционирующих на Ethash.
С учетом сказанного можно утверждать, что ОЗУ GPU влияет на майнинг коинов ETH. Важно, чтобы размера видеопамяти хватало для хранения DAG file. С другой стороны, величина оперативной памяти не сказывается на хэшрейте (это нужно учесть при выборе графического процесса).
Распространенная проблема, которая может появиться в случае применения «слабого» оборудования — ошибка (о ней упоминалось выше). В наиболее сложных ситуациях майнер вовсе не запустится. Если говорить подробно, активность майнинга на Ethash во многом зависит от производительности оборудования, а точнее — производительности шины ОЗУ (частоты её работы).
Где хранится DAG файл Ethereum и как его удалить?
Не менее важный вопрос — где находится DAG файл Эфириум. В криптовалюте ETH генерацией файла Даг занимается программа для добычи коина, которая действует по строго определенным правилам. После пуска майнинга упомянутый file грузится в ОЗУ графических процессоров (GPU) фермы. При проверке размера DAG через программу GPU-Z (на этом остановимся ниже) пользователь видит реальные параметры работы видеокарты. Здесь же ему доступны сведения о загрузке ОЗУ, которые отражаются в графе Memory Usage.
Иногда при загрузке фермы пользователь может обнаружить неизвестную ошибку, сигнализирующую о наличии проблем с закачкой DAG файла. В такой ситуации происходит перезагрузка устройства, а сам процесс может повторяться несколько раз. Подобная проблема сама собой не исчезнет — ее необходимо «лечить».
Здесь возможно два варианта:
-
Снижение загрузки памяти с максимального 100 %-ного уровня до меньшей отметки (к примеру, 95 процентов). Для этого необходимо зайти в bat-файл и в первых строчках прописать интересующий показатель. По умолчанию система устанавливает цифру 100, а необходимо поставить 95. Если после применения такой методики ситуация становится лучше, приступаем к добыче виртуальной монеты.
C:/Users/Наименование_пользователя/AppData/Local/Ethash. После входа в эту папку можно увидеть интересующий файл, который может иметь такой вид full-R23-*. Перед деинсталляцией останавливаем работу программы, ждем около минуты, после чего очищаем указанную папку. После очередного пуска софта происходит генерация DAG файла Ethereum в том же размере. Стоит учесть, что на этот процесс уходит определенное время, поэтому придётся подождать.
Размер DAG файла Эфириум
Отдельного внимания заслуживает вопрос, касающийся величины Даг. Стоит учесть, что этот показатель не является фиксированным — он постоянно меняется. Как уже отмечалось, процесс происходит с цикличностью раз в 30 000 блоков. Он носит название «смена эпох». При каждой новой «эпохе» размер Даг файла Эфириум меняется (как правило, в большую сторону).
Знание размера DAG очень важно, ведь это влияет на возможность добычи виртуальных монет. Если величина Даг больше, чем объём ОЗУ видеокарты, последняя не способна выполнять свои функции. Для получения точного параметра можно использовать калькулятор на указанном выше сервисе или глянуть таблицу, в которой указаны сведения применительно к конкретной GPU.
Из-за нестабильности майнинга скорость изменения DAG измеряется не во времени, а в блоках. Для криптовалют с более медленным временем поиска, процесс изменения Даг файла не такой активный. Это означает, что видеокарту, которая не подходит для добычи ETH, можно использовать для других монет без необходимости апгрейда (она будет окупаться).
-
Так, с 27 апреля 2019 года начнется эпоха под номером 256. При этом размер рассматриваемого документа достигнет отметки в 2,99 Гб.
Альтернативный метод получения сведений о размере
Чтобы определить размер Даг файла можно использовать альтернативный метод — специальную утилиту GPU-Z. Для вычисления интересующего параметра, требуется сделать такие шаги:
- Качаем софт GPU-Z.
- Инсталлируем его на ПК и запускаем в процессе майнинга.
Особенности подбора видеокарты применительно к Даг файлу Эфириум
Чтобы быть уверенным в возможности применения той или иной видеокарты, необходимо знать размер DAG. Нюансы определения этого параметра рассмотрены выше. Чтобы GPU нормально справлялась со своими функциями, она должна использовать на 300–400 Мб больше мощности, чем Даг. Кроме того, общие параметры графического процессора должны быть актуальны для текущей эпохе. Если участник сети планирует майнить криптовалюту в течение продолжительного времени, рекомендуется покупать оборудование с небольшим запасом (чтобы используемое GPU не так быстро устаревало).
Если учитывать текущее время добычи элементов цепочки блокчейн (около 14,5 секунд), уже в 2019 году у майнеров появятся проблемы с графическими процессорами, имеющими память всего 3 Гб. Как отмечалось, это произойдет уже в апреле 2019 года. На данном этапе майнинг возможен на GPU с ОЗУ от 3 Гб и больше. В идеале использовать графические процессоры с объемом от 4 Гб и больше. В этом случае видеокарту можно применять, как минимум, до 2021 года. Чем лучшие параметры имеет GPU, тем быстрее можно окупить расходы. С другой стороны, первичные затраты на покупку необходимого оборудования также возрастают.
Но при выборе графического процессора нельзя зацикливаться только на размере DAG файла Эфириум. Окупаемость майнинга зависит и от ряда других факторов, к примеру, стоимости виртуальной монеты и сложности добычи. Несмотря на возможность применения видеокарт с ОЗУ 3 Гб на 19 сентября 2018 года скорость их окупаемости весьма низкая и может достигать нескольких лет.
Вот почему перед сбором фермы важно учесть скорость развития технологии. Сегодня видеокарты постепенно заменяются асиками, которые имеют лучшую производительность, более просты в применении и настройке, а также потребляют меньше электричества. Считается, что именно они являются одними из главных конкурентов графических процессоров.
Если на компьютере установлены более «скромные» GPU с ОЗУ меньше 3 GB, не стоит отчаиваться. С их помощью можно добывать другие виртуальные коины на Ethash, которые имеют более низкий размер DAG файла. К примеру, Musicoin можно майнить с помощью GTX 1050 на 2 GB еще до ноября 2018 года, но после этого эпоха сменится и придется покупать 3-гигабайтный графический процессор.
Что касается Ubiq, для добычи этой монеты до 9 декабря 2026 года можно применять 2-гигабайтные видеокарты. Иными словами, высокие требования к графическим процессорам, озвученные выше, касаются только майнинга Эфириума. Что касается более «молодых» коинов, для их добычи, как правило, требуется оборудование с меньшими параметрами.
Стоит учесть, что информация по Даг на экране компьютера (при работе софта для добычи ETH) не совсем корректна. Графический процессор дополнительно потребляет около 200 Мб ОЗУ. Это означает, что для нормальной работы нужно брать видеокарту с небольшим запасом, отталкивая от размера DAG файла. К примеру, на текущий момент размер последнего равен 2,65 Гб. Следовательно, применение 3-гигабайтных видеокарт возможно, но лучше использовать более емкие GPU.
Преимущества технологии DAG файлов при добыче Эфириум
Практика показывает, что использование технологии Даг применительно к алгоритму Ethash имеет ряд неоспоримых преимуществ:
-
Повышение скорости вычисления хэша и формирования новых элементов цепочки блокчейн.
Видео о Даг файле Эфириума:
Криптовалюта Ethereum занимает вторую строчку по BTC. Курс Эфира колеблется в пределах 1750-1800 долларов. Многие эксперты ждут, когда криптовалюта преодолеет порог в 2000 долларов, но пока этого не произошло. В последнее время количество пользователей, которые добывают Ethereum Classic (ETC) снизилось в значительной степени, хотя множество проектов по-прежнему работают на основе блокчейна Ethereum.
Майнинг монеты отличается тем, что требуется значительный объем оперативной памяти. Майнить ETC выгодно только в том случае, если видеокарты новые. Те пользователи, которые пользуются старыми видеокарточками , очень часто сталкиваются с такой ошибкой «CUDA error 11». Что это означает? Данная ошибка указывает на то, что размер даг-файла превысил объем буфера памяти программы, что занимается майнингом.
Даг-файл
Даг-файл Эфира – это блок данных. Местонахождение даг файла Ethereum – память видеокарты при работе майнеров. Алгоритм DAG спроектирован так, что после того, как находятся тридцать тысяч блоков, то размер DAG-файла повышается на восемь мегабайт. Все новые состояния получили название DAG-эпоха.
У каждой эпохи DAG-файла Ethereum свой срок существования. Стоит отметить, что предварительно даг-файл предназначался для того, чтобы обеспечить устойчивость перед ASIS-майнерами , и предотвратить централизацию хешрейта сети.
Все, кто занимаются майнингом в сети Ethereum, знают, что она использует алгоритм Ethash . На этом алгоритме добывают не только EТH, но и Ethereum Classic. Размер даг-файла Ethereum Classic сейчас составляет 2,68 гигабайта и сам он находится уже в 215 эпохе. Чтобы майнить Ethereum Classic, видеокарта должна иметь не менее 4 ГБ, так как 2 ГБ уже стали недостаточными.
Влияние количества памяти видеокарты на скорость майнинга
Видеопамять для майнинга ETC должна обладать размером, которого было бы достаточно для того, чтобы хранить даг-файл. Впрочем, размер ОЗУ не оказывает влияния на хешрейт.
Где расположен даг-файл
Когда программа майнинга запущена, файл загружается в ОЗУ видеокарт майнинговой фермы.
Подбор видеокарты
Чтобы майнинг был успешным, надо брать видеокарты, имеющие память как минимум с 4 ГБ. Хотя можно пользоваться и теми, у которых объем памяти составляет и меньший объем. Но в таком случае не стоит рассчитывать на то, что он будет прибыльным за короткий промежуток времени.
Технология DAG, какие ее преимущества
Она обладает несколькими преимуществами. Благодаря ей увеличилась скорость расчета блоков, повысилась надежность сети, майнинг стал более простым. Впрочем, несмотря на то, что в новостях Эфириума постоянно подчеркивается, что сеть работает отлично, все больше пользователей перестают майнить монету из-за чрезмерно высоких комиссий.
Пока никаких улучшений в работе сети нет, поэтому стоит ожидать, что число тех, кто предпочтет другие монеты Ethereum, еще больше возрастет в ближайшее время. Однако, руководство это не волнует, они по-прежнему считают, что их блокчейн самый выгодный.
Начиная с 16 Декабря 2020 года видеокарты с 4 ГБ видеопамяти не смогут нормально добывать Эфириум. Из этого положения есть три выхода: покупка новой видеокарты, использование модифицированного майнера или смена добываемой криптовалюты. Как продолжать майнить на видеокартах с 4Gb после разрастания размера файла? Об этом подробнее читайте в данной статье.
Почему майнинг на видеокартах с 4 Гб станет неприбыльной
При добыче криптовалют производятся сложные математические операции, результат которых записывается в единый реестр. Файл с копией реестра хранится у каждого майнера в памяти видеокарты.
Каждая видеокарта обладает ограниченным количеством видеопамяти, используемой для подгрузки текстур и моделей. При майнинге, память видеокарты хранит результаты математических операций во внутренней памяти.
После достижения предельного размера файла, например 4 Гб, он больше не может поместиться в памяти видеокарты, которая ограничена 4 Гигами DDR3, GDDR4 или GDDR5. Называется этот реестр «DAG-файл». Чтобы видеокарта могла продолжать добычу крипты без ошибок, ей необходимо наличие копии DAG-файла в памяти.
Что такое DAG-файл в майнинге
DAG-файл используется при запуске майнера и загружается напрямую в память видеокарты. Благодаря нему идёт процесс добычи криптовалюты: видеокарты подбирают решения для новых блоков, анонсируют их в блокчейн и получают награду за добытые блоки.
Даг-файл выполняет и функцию обеспечения безопасности — файл хранит в себе данные о валидных и невалидных блоках, которые не могут быть присоединены к блокчейну. По сути, файл это копия актуальных данных блокчейна, в разных его вариациях, хранимая на устройствах майнеров.
Рост размера DAG-файла составляет 8 мегабайт каждые 30 тысяч добытых блоков. Несложный подсчет показывает, что с ростом популярности добычи Эфириума и количества вовлеченных майнеров Даг файл должен расти пока не достигнет своего предельного размера.
Почему растет размер даг-файла Эфира при майнинге
Внутри Даг-файла хранится огромное количество данных, по сути, это локальная копия блокчейна Эфириума. Каждый майнер хранит или полную копию или частичную, в случае с Эфириумом хранится полная копия всех операций по блокам. Даг-файл необходим для обеспечения безопасности в случае, например, когда хакеры пытаются подделать блок или результаты вычислений.
Постоянный майнинг влияет на размер DAG-Файла, который растет в размере и по состоянию на Октябрь 2020 года достиг 3.91 Гб. Даг файл растет на 100 Мб в среднем каждые 2 месяца. Эпоха эфира на момент написания статьи — 356.
Даг-файл выполняет функцию защиты сети от хакерских атак 51% и подобных вмешательств в стабильную работу блокчейна. Чем больше майнеров и выше хешрейт, тем выше стабильность сети.
Сравнительная таблица роста Даг-файлов при майнинге на алгоритме Ethash
Сравнительная таблица роста Даг-файлов различных криптовалют показывает, что расчетная дата «окирпичивания» видеокарт с 4 Гб видеопамяти добывающих ETH — 22 Декабря, 2020 года. Усложняется и добыча других криптовалют, например карты с 3Gb видеопамяти не смогут майнить PIRL с 20 Ноября 2020, а ELLA станет недоступной с 8 Декабря.
Одним из самых выгодных вариантов для добычи Эфириума будут видеокарты с 8 Гб видеопамяти — её хватит вплоть до 2027 года. Покупка карты на 5 Гб позволит отсрочить проблему на 2 года, видеокарта на 6 Гб продержится чуть больше — 4 года.
Что делать владельцам RX 5хх или GTX 10хх карт c 4 Gb
В бочке дегтя должна быть ложка мёда: в Августе, из-за атаки 51% на блокчейн Эфириума, разработчики приняли решение снизить размер Даг-файла. Подробно разработчики сети Эфириума выразились на своем Ютуб-канале. Из официального реестра сценариев развития сети, на эпохе 390 будет изменен размер даг-файла Эфириума.
Принудительный хардфорк сети Эфириума
Каждой эпохе соответствует свой размер даг-файла, но интервал остается неизменным — 30 000 блоков до повышения размера на 8 Мб.
Основную вычислительную мощность сети Эфириума составляют 4 Гиговые видеокарты, обеспечивая создание новых блоков, валидацию существующих и охрану от хакерских атак. Увеличение даг-файла в размере выше 4 Гб может снизить стабильность работы блокчейна, вызвать проблемы с транзакциями и работой смарт-контрактов.
Разработчики решили растянуть интервал между эпохами с 30 000 до 60 000 блоков, что позволить снизить скорость роста размера даг-файла. Согласно предложению, принудительное дробление цепочки произойдет на эпохе 390, что позволить уменьшить даг-файл примерно до 2.7 Гб.
Рекомендация владельцам 4 Гб карт — пока не продавать, вполне вероятно, что скоро они снова будут релевантны.
Как продолжать майнить Эфир с видеокартой на 4 Gb
Разработчики майнерских клиентов знают, что Даг-файл разрастается и принимают меры для обеспечения работоспособности добывающих мощностей.
Создатели lolMiner разработали решение «Зомби-режим», который позволяет добывать криптовалюту даже на видеокартах с 4 Gb памяти. Благодаря зомби-режиму, видеокарты смогут продолжать майнинг.
Само название «Зомби-режим» вполне дословное — разработчик lolMiner Вилке Трайа объяснил его так «Видеокарты должны быть мертвы к определенной дате, но они продолжают майнить, пусть и с просадкой. Прямо как нежить».
В результате, добыча Эфириума будет продолжаться, пусть и с небольшой просадкой по производительности.
Чтобы подтвердить результаты разработки, Вилке поднял тестовую сеть Эфириума с эпохой 390 и запустил в ней видеокарту с 4 Гб видеопамяти — она продолжала выдавать хешрейт в 23 МН/s.
Согласно графику Вилке, критического падения производительности следует ожидать 8 Марта 2021 года, когда скорость добычи упадет до 6.83. Если выбирать между Линуксом и «Окнами», то разница в хешрейта после эпохи 382 будет различаться в два раза.
На графике — производительность RX 580, которая при норме в 30 МН/s постепенно падала до 6.8 в период с эпохи 375 по 400 внутри тестовой сети.
Этой скорости может хватить на 60 дней после прекращения добычи на видеокартах с 4 Гб, но вполне вероятно, что в сети Эфириума произойдет хардфорк на 390 эпохе с сокращением размера даг-файла.
Как включить «Зомби-режим» на майнерах?
При запуске, lolMiner автоматически включит зомби-режим, в случае, если карта не имеет необходимое количество памяти. Единственный контролируемый параметр для зомби-режима это «keepfree», обозначающий резервирование места внутри памяти видеокарты для её корректной работы. При запуске «Из коробки» резервируется 56 МБ для Windows и 5 для Linux.
Настройка майнингового клиента на добычу с 4 Gb
Настройки бат-файла для запуска майнера на Виндовс выглядят следующим образом:
Строчный параметр для Linux:
Эти настройки позволят запустить майнер lolMiner в режиме совместимости с ростом размера DAG-файла и продолжить добычу ETH. Что касается ETC, то прибыльность его добычи довольно высока и форк позволит добывать крипту даже на картах с 3 Гб.
Какие есть альтернативы майнингу Эфириума
Согласно калькулятору размера даг-файла для криптовалют на основе алгоритма Ethash, видеокартам с 3 Гб видеопамяти есть где развернуться. Хронологический предел их жизненного цикла наступит не раньше, чем в 2021 году.
В этой статье я расскажу вам о DAG (Directed Acyclic Graph, направленный ациклический граф) и его применении в распределённых реестрах, и мы сравним его с блокчейном.
DAG не является чем-то новым в мире криптовалют. Возможно вы слышали о нём как о решении проблем масштабируемости блокчейнов. Но сегодня мы будем говорить не о масштабируемости, а о том, что делает криптовалюты отличными от всего остального: децентрализация, отсутствие посредников и устойчивость к цензуре.
Также я покажу вам, что DAG на самом деле более устойчив к цензуре, и в нём отсутствуют посредники для доступа к реестру.
В привычных нам блокчейнах у пользователей нет прямого доступа к самому реестру. Когда вы хотите добавить транзакцию в реестр, вам приходится «просить» сделать это производителя блоков (блок-продюсера, он же «майнер»). Именно майнеры решают, какую транзакцию добавить в следующий блок, а какую — нет. Именно у майнеров есть эксклюзивный доступ к блокам и право решать, чью транзакцию принять для добавления в реестр.
Майнеры — это посредники, стоящие между вами и распределённым реестром.
На практике же, обычно небольшое количество пулов майнеров коллективно контролируют более половины вычислительных мощностей сети. Для биткоина это четыре пула, для Ethereum — два. В случае их сговора, они могут блокировать любые транзакции, какие захотят.
За последние несколько лет было предложено множество вариаций блокчейнов, различающихся в принципах выбора производителей блока. Но сами производители блоков никуда не уходят, они всё ещё «стоят на шлагбауме»: каждая транзакция должна пройти через производителя блоков, и если он не принимает её, то транзакции, по факту, не существует.
Это неизбежная проблема в случае с блокчейном. И если мы хотим её решить, мы должны радикально изменить дизайн и полностью избавиться от блоков и производителей блоков. И вместо того, чтобы выстраивать цепочку блоков, мы будем соединять сами транзакции, включая в каждую транзакцию хеши нескольких предыдущих. В результате мы получим структуру, известную в математике как направленный ациклический граф – DAG.
Теперь каждый имеет прямой доступ к реестру, без посредников. Когда вы хотите добавить транзакцию в реестр – вы просто добавляете её. Выбираете несколько родительских транзакций, добавляете свои данные, подписываете и посылаете вашу транзакцию пирам в сети. Готово. Нет никого, кто бы мог помешать вам сделать это, поэтому ваша транзакция уже в реестре.
Это самый децентрализованный, самый неуязвимый перед цензурой способ добавления транзакций в реестр без посредников. Потому что каждый желающий просто добавляет свои транзакции в реестр, не спрашивая разрешения ни у кого.
DAG можно считать третьей стадией эволюции реестров. Сначала были централизованные реестры, где одна сторона контролировала доступ к ним. Потом пришли блокчейны, в которых уже было несколько контролёров, которые записывали транзакции в реестр. И, наконец, в DAG вообще нет никаких контролёров, пользователи добавляют свои транзакции напрямую.
Теперь, когда у нас есть такая свобода, она не должна приводить к хаосу. Мы должны иметь согласие о состоянии реестра. И это согласие, или консенсус, обычно означает согласие о двух вещах:
- Что произошло?
- В каком порядке это произошло?
Если бы это был блокчейн, майнеры бы решали, что происходит. Всё, что майнер решает включить в блок – то и происходит. Всё, что он не включает в блок – не происходит.
В блокчейнах майнеры также решают вторую проблему консенсуса: порядок. Им разрешено упорядочивать транзакции внутри блока как угодно.
Как же определить порядок транзакций в DAG?
Только лишь потому, что граф у нас направленный, мы уже имеем некоторый порядок. Каждая транзакция ссылается на одну или несколько предыдущих, родительских. Родители, в свою очередь, ссылаются на своих родителей, и так далее. Родители, очевидно, появляются раньше дочерних транзакций. Если какая-либо из транзакций может быть достигнута переходами по ссылкам «родитель-ребёнок», мы точно знаем порядок между транзакциями в этой цепочке транзакций.
Но порядок между транзакциями не всегда можно определить только из формы графа. Например, когда две транзакции лежат на параллельных ветвях графа.
Чтобы разрешить неоднозначность в таких случаях, мы полагаемся на так называемых провайдеров порядка. Мы также называем их «свидетелями». Это обычные пользователи, задачей которых является постоянная отправка транзакций в сеть с соблюдением порядка, т.е. так, что каждая их предыдущая транзакция может быть достигнута переходами по ссылкам «родитель-ребёнок». Провайдеры порядка – доверенные пользователи, и вся сеть полагается на то, что они не будут нарушать данное правило. Для того чтобы рационально доверять им, мы требуем, чтобы каждый провайдер порядка был известным (неанонимным) человеком или организаций и имел что-то, что может потерять в случае, если нарушит правила, например, репутацию или бизнес, основанный на доверии.
Провайдеры порядка выбираются пользователями, и каждый пользователь включает список его доверенных провайдеров в каждую транзакцию, которую отправляет в сеть. Этот список состоит из 12 провайдеров. Это довольно маленькое число, чтобы человек мог проверить личности и репутацию каждого из них, и достаточное для того, чтобы сеть продолжала работать в случае неизбежных проблем с меньшинством провайдеров порядка.
Данный список провайдеров варьируется от пользователя к пользователю, но списки у соседних транзакций могут отличаться максимум на одного провайдера.
Теперь, когда у нас есть провайдеры порядка, мы можем выделить их транзакции в DAG и упорядочить все другие транзакции вокруг порядка, созданного ими. Возможность создания такого алгоритма есть (см. Obyte White Paper для технических деталей).
Но порядок во всей сети не может быть определён моментально, нам требуется время на то чтобы провайдеры порядка отправили достаточное количество своих транзакций, чтобы удостовериться в итоговом порядке прошлых транзакций.
И, поскольку порядок определяется только позициями транзакций провайдеров в DAG, все ноды сети рано или поздно получат все транзакции и придут к одинаковому заключению относительно порядка транзакций.
Итак, мы имеем согласие относительно того, что считаем случившемся: любая транзакция, попавшая в DAG, случилась. Также мы имеем согласие о порядке событий: это либо видно исходя из родственных связей транзакций, или же выводится из порядка транзакций, отправленных провайдерами порядка. Значит мы имеем консенсус.
Данный вариант консенсуса мы имеем в Obyte. Несмотря на то, что доступ в реестр Obyte полностью децентрализован, консенсус относительно порядка транзакций всё ещё централизован, т.к. 10 из 12 провайдеров контролируются создателем (Антон Чурюмов), и только два из них – независимые. Мы ищем кандидатов, желающих стать одним из независимых провайдеров порядка, чтобы помочь нам децентрализовать установление порядка в реестре.
Недавно появился третий независимый кандидат, желающий установить и поддерживать ноду провайдера порядка – Университет Никосии.
Теперь, как мы контролируем двойные траты (double-spends)?
По правилам, при обнаружении двух транзакций, тратящих одну и ту же монету, та транзакция, которая оказалась раньше в итоговом порядке всех транзакций, выигрывает. Вторая же инвалидируется алгоритмом консенсуса.
В случае, если имеется возможность установить порядок между двумя транзакциями, тратящими одну монету (по связям родитель-ребёнок), то все ноды сразу отклоняют такую попытку двойной траты.
В случае же, если порядок не виден из родительских связей между двумя такими транзакциями, они обе принимаются в реестр, и нам потребуется дождаться консенсуса и установления порядка между ними с помощью провайдеров порядка. Тогда выиграет более ранняя транзакция, а вторая станет невалидной.
Хоть вторая транзакция и становится невалидной, она всё равно остаётся в реестре, потому как уже имеет последующие транзакции, ссылающиеся на неё, которые ничего не нарушали и не знали, что в будущем эта транзакция станет невалидной. Иначе нам пришлось бы удалять родителя у хороших последующих транзакций, что нарушило бы главный принцип сети – любая правильная транзакция принимается в реестр.
Это очень важное правило, позволяющее всей системе быть устойчивой к попыткам цензуры.
Давайте представим, что все провайдеры порядка вступают в сговор в попытке «зацензурить» одну конкретную транзакцию. Они могут игнорировать её и никогда не выбирать «родителем» для своих транзакций, но этого недостаточно, эта транзакция всё ещё может быть включена опосредованно как родитель какой-нибудь другой транзакции, выпущенной любым пользователем сети, который не участвует в сговоре. С течением времени, такая транзакция будет получать всё больше и больше детей, внуков и правнуков от обычных пользователей, разрастаясь как снежный ком, и всем договорившимся провайдерам порядка придётся игнорировать и эти транзакции тоже. В конце концов, им придётся зацензурить всю сеть, что равносильно саботажу.
Таким образом, DAG остаётся цензуро-устойчивым, даже если имеет место сговор провайдеров порядка, тем самым превосходя блокчейн по устойчивости к цензуре, в котором мы ничего не можем сделать, если майнеры решат не включать какую-либо из транзакций. И это следует из главного свойства DAG: участие в реестре абсолютно независимо и без посредников, а транзакции необратимы.
Читайте также: