Как вывести chia с кошелька
Обзор криптовалюты Chia Network. Новый Биткоин?
Блокчейн Chia Network и его токен XCH, в этом году, наделали очень много шума в криптовалютной индустрии и несмотря на то, что проект разрабатывается уже несколько лет, широкому кругу пользователей он стал известен лишь сейчас. Сразу после запуска сети, весной 2021 года, цена монеты выросла почти до 2 000 долларов за один токен, но после снизилась и сейчас цена монеты в районе 100 долларов. В этом обзоре я расскажу, что такое Чиа и почему этот проект все ещё может войти в ТОП индустрии.
Chia Network – это блокчейн нового поколения, в основе которого лежит алгоритм консенсуса «Proof of Space and Time» использующий для работы сети свободное дисковое пространство. Chia предлагает новый взгляд на блокчейн, поскольку он реализует «первый новый алгоритм консенсуса Накамото с момента появления биткойна в 2008 году».
Официальный сайт компании – https://chia.net
Помимо нового подхода к распределению сети и маннингу, разработчики Чиа представили новый язык программирования – Chialisp, он должен облегчить разработку смарт-контрактов и составить серьёзную конкуренцию сети Ethereum.
До появления блокчейна Chia, все сети делились по типу майнинга на:
В первом случае PoW, майнерам, при помощи своего оборудования, приходилось производить вычисления решая задачу, после её решения блок закрывался, добавлялся в блокчейн, а майнер получал вознаграждение. Во втором варианте, PoS, майнерами являются валидаторы нод, для работы которых необходимы токены сети, которые предоставляют им – номинируют, пользователи владельцы токенов. После добавления блока, валидатор получает награду и делит ее между номинаторами предоставившими – застейкавшими, свои токены.
У обеих моделей есть свои минусы, в PoW это большое потребление электричества т.к сложность вычислений постоянно растет, а в PoS это слабая децентрализация сети т.к. часто большими объемами монет владеют фонды, разработчики и ранние инвесторы.
Сеть Чиа Нетворк пробует решить обе эти проблемы, для майнинга не надо обладать ни производительным оборудованием, ни большим объемом токенов.
Фактически, разработчики хотят вернуть майнинг от промышленных майнинговых пулов к пользователям на компьютеры, и судя по росту сети, они пока справляются с задачей.
Компания была зарегистрирована 1 августа 2017 года в штате Делавэр, США. Основателем стал Брэм Коэн, который разработал BitTorrent. С момента своего создания компания занималась на разработкой собственного блокчейна Chia Network и продвижением его использования.
Компания уже получила оценку в 500 миллионов долларов и планирует в ускоренном порядке провести подготовку для публичного размещения своих акций. Для этого ей необходимо полностью соответствовать всем требованиям Комиссии по ценным бумагам и биржам – S.E.C.
Chia планирует способствовать развитию сферы децентрализованных финансов DeFi, DeX, трансграничных платежей и новых кошельков для пользователей, чтобы ускорить разработку новых приложений для которых необходимы безопасные, распределенные, программируемые деньги.
Чтобы стать майнером Чиа, необходимо иметь компьютер и большой жесткий диск. При этом мощность самого компьютера важна только на подготовительном этапе, в момент «плотинга» или «засеявания» жесткого диска.
По шагам подготовка к майнингу выглядит так:
После этого можно приступать к майнингу.
Для настройки и майнинга разработчики рекомендуют использовать компьютер с такими минимальными характеристиками:
Для плотинга необходимы жесткие диски формат которых поддерживает большие файлы, подойдут: NTFS, APFS, exFAT, ext4. Не используйте диски формата FAT (FAT12, FAT16, или FAT32), их не получится «засеять» корректно.
Уже существует множество калькуляторов майнинга Чиа, на мой взгляд, самые удобные это xchscan.com и chiacalculator.com
Так как блокчейн Chia имеет открытый код (open source), почти сразу после запуска сети и торговли токеном XCH на централизованных биржах, начали появляется его Хард Форки (hard forks) т.е сети созданные на его основе.
Актуальный список форков Чиа можно посмотреть здесь – https://xchforks.com/. На сегодняшний день в списке уже 39 проектов и их количество продолжает расти.
Большинство новых проектов используют в своей сети плоты блокчейна Chia, поэтому майнерам нет необходимости создавать новые плоты под каждый форк.
Существует несколько кошельков которые поддерживают сеть Чиа, но я предпочитаю официальный кошелек от разработчиков проекта – «Light Wallet Beta», его можно скачать на официально сайте проекта, в разделе для скачиваний – https://chia.net/download/
Сейчас кошелек поддерживает следующие операционные системы:
Процесс установки, настройки и использования я опишу в отдельной статье.
На сегодняшний день монету XCH уже можно купить на некоторых централизованных биржах, например:
Актуальный список бирж поддерживающих токен Чиа, можно смотреть на CoinMarketCap или CoinGecko.
У проекта Чиа есть 21 миллион монет, эти монеты находится в собственности у компании, распределены по двум адресам и будут использованы для кредитования других проектов, финансирования перспективных и нужных экосистеме проектов, стимулирования фермеров и обеспечения безопасности сети.
Важно отметить, что все эти монеты не будут использованы до момента пока акции компании не начнут торговаться на бирже.
Цены на разные монеты могут сильно отличаться от их стоимости, которая сформирована затратами майнеров на оборудование и электричество. При текущей цене Чиа, примерно 100 долларов, срок окупаемости оборудования для майнинга более 7 лет, обычно этот срок 1-2 года, это дает основание предположить, что стоимость монеты сейчас недооценена. И вероятно, сейчас хорошее время для захода в позицию.
Сам проект выглядит очень перспективным, важно помнить, что большая часть функциональных возможностей, в первую очередь смарт-контракты, еще не реализована в полном объеме, а это значит, что в будущем мы можем увидеть множество проектов построенных в экосистеме Чиа. И возможно тогда эта монета станет новым Биткоином.
Понравился обзор – подписывайтесь на мой блог. Я разбираю интересные проекты, такие как Polkadot и Cosmos, рассматриваю кошельки для криптовалют, например Метамаск, ну и просто пишу как лучше купить биткоин и другую криптовалюту.
Майнинг криптовалюты Chia Coin (XCH)
Криптовалюта появилась в 2019 году и в 2020 году вызвала большой ажиотаж, связанный с новым способом ее добычи – при помощи HDD и SSD дисков. Разработчик этой криптовалюты Брэм Кэн, он же является разработчиком протокола BitTorrent. Способ добычи этой монеты требует намного меньше электроэнергии, чем майнинг обычных криптовалют, поэтому Chia считают «зеленым биткоином».
В мае 2021 года проект Chia Coin находится на бета-тестировании. Купить монеты пока что не представляется возможным, но на некоторых биржах продаются долговые расписки на Chia Coin.
Преимущества Chia Coin
Самым главным преимуществом новой монеты пользователи считают ее перспективность, какая была у большинства недавно появившихся монет. Но специалисты считают это преимущество, как и другие преимущества этой монеты, довольно туманным, т.к. неизвестно, что с ней будет после полноценного ее выхода на фондовые рынки. Тем более, что 19 миллионов монет из 21 принадлежат разработчикам. Плюсы Chia Coin:
Многие пользователи уже сделали фермы из жестких дисков, рассчитывая первыми получать прибыль от такого майнинга.
Как добывать Chia
Процесс генерации монет проходит в два этапа:
Эти два процесса могут проводиться на одном диске или же каждый из этих процессов может работать на отдельном диске. На SSD скорость операций выше.
Чтобы начать добывать монеты, необходимо проделать следующие действия:
Количество корзин – параметр из дополнительных опций, означает число частей плота, на которые он будет разделен во время создания временных файлов. Если есть свободная оперативная память, можно уменьшить количество корзин для более эффективного ее использования и повышения скорости создания плота. Функция «Исключить окончательную директорию» означает остановка фарминга после создания плота. Обычно она не требуется. «Количество потоков» — имеются ввиду потоки процессора, нужно учитывать объем оперативной памяти перед установкой этого значения.
Выигрыши бывают очень редко – один раз в 18 секунд выигрывает только один пользователь из всего числа майнеров по всему миру. Поэтому шанс выиграть невелик.
Майнинг на пуле
Если мощность фермы с дисками HDD или SSD небольшая, то в этом случае можно добывать валюту на пуле – объединении мощностей группы майнеров. Награда с пула зачисляется на кошелек каждого участника пула, ее величина зависит от мощности фермы участника. Принцип работы пула такой: майнеры объединяют мощности и вычисляют блок в блокчейне Chia, награда делится между всеми.
При майнинге в одиночку необходимо иметь мощную ферму, с которой возможно находить блоки с наградой, которая будет доставаться владельцу фермы. Тут нужны большие финансовые вложения, чтобы приобрести несколько жестких дисков по 8 терабайт каждый. Проще использовать крупный пул.
Выбор пула
Работающие пулы можно посмотреть на сайте miningpoolstats.stream/chia. Главный критерий выбора – общий хешрейт.
Необходимо выбрать пул, который занимает как можно больше процентов мощности сети (hpool.com) – он будет находить больше блоков и, соответственно, наиболее выгоден. Необходимо зарегистрироваться на пуле, перейдя на его сайт. Регистрация стандартная – после ввода данных на электронную почту придет письмо с подтверждением и необходимо перейти по подтверждающей ссылке.
После входа в свой аккаунт необходимо зайти в раздел Personal Center для добавления верификации от Google. Чтобы это сделать, необходимо установить на телефон соответствующее приложение.
Затем нужно установить верификацию по СМС, но этот пул не работает с номерами России и Украины, обойти это можно, заведя виртуальный номер на специальных сервисах. После установки верификации появится возможность вписать свой кошелек, на который будут зачислятся монеты Chia.
Затем необходимо в разделе Download Center скачать приложение – Chia-плоттер. Ссылка ведет на GitHub, где необходимо найти последнюю версию плоттера и выбрать для скачки файл, имя которого начинается на «chia-plotter-gui» для вашей операционной системы.
Скачанную программу нужно запустить, ее интерфейс на китайском языке, но это не проблема, т.к. у нее мало элементов. В самое верхнее поле ввода необходимо ввести мнемоническую фразу от кошелька (должно быть 24 слова) и нажать на кнопку Sign, которая запускает авторизацию кошелька в блокчейне. Далее можно сравнить номер своего кошелька и появившийся номер в программе после авторизации, если они совпадают, значит, все нормально.
В левой части окна программы находится вертикальное меню, в нем нужно выбрать раздел Pool, в нем подраздел open Pool и нажать на кнопку All, что в верхней части окна.
Отобразится список пулов, необходимо найти пул с названием CHIAECO и нажать на кнопку Open Pool, которая внизу блока с информацией. Состоится переход на страницу с этим пулом, где необходимо нажать на кнопку Go To Configuration – откроется раздел, где в поле для ввода необходимо скопировать сигнатуру, полученную при запуске программы плоттера.
При этом приложение попросит скопировать код из Гугл аутентификатора, после его ввода появится номер кошелька Chia под заголовком Binding Check, у него должен быть статус Successful. Это означает, что кошелек добавлен на пул.
Настройка плоттинга
Рассмотрим настройку плоттинга на примере ОС Windows. В этом случае необходимо настроить bat-файл, скачиваемый вместе с программой для создания плотов. На странице Github, откуда скачивали плоттер, нужно скачать файл, имя которого начинается на “chia-plotter”. В имени есть версия файла, она периодически обновляется.
Скачанный архив нужно извлечь (в нем программы, текстовые и bat-файлы) и открыть файл plotting.bat в текстовом редакторе. В нем находятся заранее прописанные команды и значение «0x12345», вместо него нужно поставить код из приложения с именем chia-plotting-guy – Farmer Public Key и Pool Public Key, которые появляются при добавлении кошелька на пул.
Далее нужно поменять значения у прописанных в файле команд:
После добавления всех команд изменения нужно сохранить и запустить файл, который запустит плоттинг.
Настройка майнера
Последним шагом будет настройка программы, которая и будет майнить монеты на плотах, которые будут находиться на накопителях. Майнер нужно скачать на сайте пула в разделе Download Center. Приложение называется «CHIA-miner». Ссылка для скачки ведет на Github, где нужно скачать самую последнюю версию приложения.
В скачанном архиве выбираем папку под ОС Windows и запускаем оттуда файл hpool-miner-chia-gui и добавляем в открывшуюся программу API Key, который можно взять в разделе pool-Configuration в личном кабинете пула и добавить его как показано на скриншотах.
Затем необходимо вписать папки с плотами:
После завершения плоттинга в окне приложения появятся данные о количестве плотов.
Просмотр статистики
Для отслеживания статистики майнинга на Hpool, нужно в личном кабинете пула выбрать подраздел Open Pool пункта Pool и там будет блок с информацией, нужно нажать на ссылку Pool Details для просмотра всей статистики.
Добавление кошелька
Для вывода заработанных монет, необходимо в личном кабинете перейти в раздел Security, там подраздел Address, в верхней части окна в списке выбираем нашу монету и нажимаем на Add Address и заносим адрес кошелька. Баланс можно посмотреть в разделе Assets.
Ферма для майнинга Chia
Для продуктивного майнинга нужно собрать хорошую ферму и правильно подобрать комплектующие под нее. Если ферма будет на SSD дисках, то желательно брать накопитель M.2 объемом 2 терабайта. Такие накопители быстрее, чем с DDR и скорость записи и чтения гораздо выше. Интерфейс у накопителей должен быть PCI 3.0 или 4.0.
Если в ферме будут использоваться HDD, то лучше поставить туда серверный диск объемом не меньше 10 терабайт и с интерфейсом Sata 3.
Минимальные требования для процессора — четырехядерный с частотой 1,5 ГГц, но в идеале лучше взять процессор с количеством ядер от 6 до 12 фирмы AMD, т.к. для формирования одного плота очень хорошо использовать 2 потока процессора. Число ядер и потоков должно зависеть от размера временной папки. Для этих целей хорошо подойдут процессоры линейки Ryzen.
Минимальные требования к размеру оперативной памяти – 4 гб, но этот объем хватит на создание одного плота, если необходимо более продуктивно майнить, то нужно соотносить количество памяти с количеством ядер процессора. Например, если временная папка имеет размер 2 терабайта, в этом случае в ней может быть одновременно 6 плотов, на каждый из них нужно 4 ГБ оперативной памяти, всего 24 ГБ под плоты и 2-4 ГБ под операционную систему. Получается 32 гигабайта.
Блок питания для такой мощной фермы лучше брать на 500W или побольше, с запасом. Перед выбором обратить внимание на количество портов SATA. Можно взять модульный блок питания, чтобы в случае необходимости докупить еще кабели.
Скорость интернета для майнинга некритична, для комфортной добычи монет хватит канала шириной 100 Мбит, главное, чтобы не было обрывов связи. Также необходимо помнить, что компьютер не должен уходить в спящий режим, иначе плоттинг будет обрываться.
Вывод
Криптовалюте Chia пророчат большие перспективы и потеснение биткоина с вершин рейтингов. Эти прогнозы небезосновательны, т.к. добыча этих монет менее затратная в плане электроэнергии – майнерам необходимо просто собрать ферму из накопителей, которые пока еще не поднялись в цене.
Chia Blockchain: инструкция по эксплуатации
Перевод официальной документации Chia Blockchain
Цель этого документа: объяснить версию 1.1 алгоритма консенсуса Chia
Целевая аудитория: техническая аудитория, знакомая с блокчейном, но не знакомая с Proofs of Space (PoS), Proofs of Time / Verifiable Delay Functions (VDF) и Chia.
Если вы новичок в Биткойне / блокчейне, сначала прочтите учебник: Биткойн и криптовалютные технологии.
Цель: Алгоритм Chia консенсус направлен на создание экологически чистой, безопасной и децентрализованной альтернативы Доказательству проделанной работы (PoW).
Алгоритм Доказательство выполнения работы (PoW) криптовалюты сжигает огромное количество электроэнергии. Кроме того, он имеет тенденцию становиться централизованным из-за концентрации производства и владения оборудованием, а также из-за концентрации дешевой энергии, что делает PoW недоступным для обычных пользователей и уязвимым для различных атак.
Концепция Proof of stake или PoS (доказательство владения) имеет множество форм, каждая из которых имеет свои плюсы и минусы. Некоторые общие недостатки: концентрированный контроль фондовыми биржами; концентрация делегации; использование контрольно-пропускных пунктов и субъективность (требование регулярно быть в сети); недоступность для обычных пользователей; различные риски; синхронизация часов, пропускная способность сети и другие предположения о безопасности.
Введение
Proofs of Space (Доказательство пространства)
Протокол Доказательства пространства — это протокол, в котором:
1. Верификатор может отправить вызов тестировщику, и
2. Тестировщик может продемонстрировать верефикатору, что тестировщик резервирует определенный объем дискового пространства в это конкретное время.
Протокол Доказательства пространства состоит из трех элементов: отслеживание, тестирование / фарминг и верификация.
Рисунок 1: первое, провайдер «плоты» или выделяет часть дискового пространства (1). Затем провайдер «фермы», отвечают на вызовы с Доказательство пространства (2,3,4). Верификатор проверяет, что Доказательство действительности для этого вызова.
На диаграмме выше, как только Prover инициализирует 100 ГиБ, они готовы принять вызов и создать доказательство. Одним из привлекательных свойств этой схемы является то, что она не интерактивна: для создания сюжета не требуется регистрации или подключения к Интернету. Ничто не попадает в блокчейн, пока не будет заработано вознаграждение, как в PoW.
Фарминг — это процесс, с помощью которого фармеру дается ряд задач, чтобы продемонстрировать, что он законно зарезервировал определенный объем хранилища. В ответ на каждый вызов фармер проверяет свои плоты, генерирует доказательства и отправляет все доказательства выигрыша в сеть для верификации.
Поскольку большая часть доказательств, генерируемых этим процессом, недостаточно хороша (объясним позже) для отправки в сеть для верификации, мы можем оптимизировать этот процесс, проверив только одну ветвь дерева, которая дает два значения x, в зависимости от задачи. Затем мы хешируем сгенерированные таким образом значения x в 256-битную строку, чтобы определить, хорош ли тест. Хеширование этих значений x дает нам строку качества, 256-битное случайное значение. Это сочетается со сложностью и размером плота для создания необходимых повторений. Если необходимые повторения меньше определенного числа (мы можем войти в блокчейн), мы ищем все PoSpace. Для поиска одной ветки требуется всего около 7 операций поиска и чтения на диске или около 70 мс на медленном жестком диске.
Другая оптимизация заключается в том, чтобы дисквалифицировать определенную часть (например, 511/512) плотов правомочности для каждого испытания. Это называется плот фильтром. Например, требуется, чтобы хеш задачи и плот ID начинались с 9 нулей. Это вредит всем одинаково (кроме пополнения атакующих) и, следовательно, справедливо. Это делает фарминг практически без ресурсов и требует очень небольшого количества операций чтения с диска каждые несколько минут. Пользователи Чиа успешно использовали несколько PiB хранилищ на одном Raspberry Pi. Мы предполагаем, что фармеры по-прежнему используют жесткие диски, потому что они дешевые и нет причин использовать SSD поскольку скорость не имеет отношение к фармингу. Однако, для более быстрого сканирования можно использовать диски SSD / RAM.
Плот ключ — это приватный ключ, который хранится в плот файле. Плот ID генерируется путем хеширования открытого плот ключа и открытого ключа пула. Создание блока с доказательством пространства требует подписи с обоих как плот ключа, так и ключа пула. Следовательно, пул нельзя изменить после создания плота. На практике плот ключ представляет собой совокупный открытый ключ 2/2 BLS между локальным ключом, хранящимся в плоте, и ключом, хранящимся в программном обеспечении фармера. По соображениям безопасности и эффективности, фармер может запустить централизованный сервер, используя эту схему ключей и подписей. Сервер может быть подключен ко многим харверстер машинам, на которых хранятся плоты. Для фарминга требуются ключ фармера и локальный ключ, но не пул ключ, так как пул подпись может быть кэширована и повторно использована для многих блоков.
Верификация: после того, как фармер успешно создал доказательство пространства, его можно проверить, выполнив некоторое хеширование и сравнив x-значения теста. Помните, что Доказательство представляет собой список из 64 значений x, где каждое значение x имеет длину k бит длину. Для k32 это 256 байт, поэтому он очень компактен. Проверка выполняется очень быстро, но недостаточно быстро, чтобы проверить ее надежность в Ethereum (что позволило бы передавать данные между цепочками без доверия), поскольку для этого требуются операции blake3 и chacha8.
Доказательства времени
Доказательство времени или Проверяемая функция задержки — это доказательство того, что последовательная функция выполнялась определенное количество раз.
Верифицируемая: это означает, что после завершения расчета (что требует времени) тестировщик может создать очень небольшой тест за очень короткое время, а верификатор может проверить этот тест без необходимости повторять весь расчет.
Задержка: это означает, что доказывающий фактически потратил фактическое количество времени (хотя мы точно не знаем, сколько времени), чтобы вычислить функцию.
Функция: это означает, что она детерминирована: вычисление VDF на входе x всегда дает один и тот же результат y.
Рисунок 3: Верификатор (блокчейн) отправляет запрос тестеру (лорду времени), и тестер вычисляет результат и доказательство.
Хотя следующие детали не очень важны для понимания алгоритма консенсуса, выбор VDF для использования важен, потому что, если злоумышленнику удастся получить гораздо более быструю машину, возможны атаки.
Вес блока – это сумма сложности этого блока плюс все предыдущие блоки, которые являются предками этого блока. Подленные полные узлы должны выбирать пик блокчейна, так чтобы пик был блоком с самым тяжелым весом, о котором они знают. Это важнейшее требование, идентичное правилу самой тяжелой цепочки Биткойна. Из-за этого правила злоумышленник с менее чем 50% пространства и без преимущества VDF будет иметь проблемы с заработком больше, чем его справедливая доля, поскольку он должен быть удачливым и создать больше блоков цепочки вознаграждений, чем подленная цепочка. Более того, фармеры только формят на вызовах, которые соответствуют самой тяжелой цепочке.
И скорость VDF, и общий объем пространства важны для веса, и их изменение может вызвать корректировку сложности. Если количество пространства увеличивается, будет создано более 32 блоков на слот, поэтому сложность должна быть увеличена. Если скорость сетевого VDF увеличивается, больше, чем 32 блоков создаются каждые 10 минут, и, следовательно, сложность (и итерации sub-слотов) должны быть увеличены.
Однако фармер с эксклюзивным доступом к немного более быстрому VDF не может легко получить больше вознаграждение, чем фермер с VDF с нормальной скоростью. Если злоумышленник пытается осиротить один из блоков в цепочке, наличие более быстрого VDF не поможет, поскольку в цепочке злоумышленника будет меньше блоков (и, следовательно, меньший вес). Фармеры должны подписать блок, на котором они строят, и они будут строить только на вершине цепочки с наибольшим весом.
Однако скорость VDF вступает в игру, когда атакующий хочет начать атаку с 51%. В этом случае атакующий фармер может использовать VDF, чтобы создать полностью альтернативную цепочку без подленных блоков и обогнать подленную цепочку.
Фольяж (Листва)
На приведенных выше диаграммах фармерам некуда указывать свое вознаграждение, так как все блоки канонические. Фармеры не имеют права голоса в том, как строится их блок, поскольку они должны использовать точное доказательство пространства, VDF и подписи, которые указаны. Чтобы включить в систему вознаграждения за фармерство, а также транзакции, мы должны ввести дополнительный компонент блоков, называемый листвой. До сих пор мы обсуждали компонент «ветка».
Ветка (Trunk): компонент блоков и цепочки блоков, который включает в себя VDF, доказательства наличия пространства, подписи PoS, запросы и предыдущие блоки ветки, и является полностью каноническим. Ветка никогда не относится к цепочке фольяж
Листва: компонент блоков и цепочки блоков, который включает в себя указание того, куда должно идти вознаграждение, какие транзакции должны быть включены и каков предыдущий блок листвы. Это зависит от фармера, и его можно разграничить, поэтому его нельзя использовать в качестве исходных данных для решения проблем.
Реорганизация: — это когда вид узла изменяется на пике, так что старое представление содержит блок, который не включен в новое представление (некоторые блоки меняются местами). Возможны реорганизации ветки и фольяжа, но на практике это случается редко.
На рисунке 11 ниже мы видим, что фольяж добавляется к блокам, чтобы образовалась дополнительная цепочка. Этот фольяж включает в себя хеш предыдущего фольяжа, хеш блока вознаграждения и подпись. Эти указатели фольяжа отделены от цепочки ветки и не являются каноническими. То есть фармеры теоретически могут реорганизовать фольяж, при которой фольяж заменяется, но используется та же самая ветка (свидетельство пространства и времени). Чтобы этого избежать, честные фармеры создают только один блок фольяжа на блок. Как только честный фармер добавил блок фольяжа, фальяж становится невозможно реорганизовать за пределы этой высоты с тем же PoSpace, так как этот фармер не будет повторно подписывать с тем же PoSpace.
Кроме того, такие блоки, как B3, которые идут параллельно другому блоку фольяжа (B2), не должны подписывать предыдущий блок фольяжа, поскольку у них не обязательно достаточно времени, чтобы увидеть его. Под «идущими параллельно» мы подразумеваем, что сигнальная точка второго блока находится перед точкой инфузии первого блока. Красные стрелки на схеме представляют собой указатель фольяжа, подписанный ключом графика для доказательства наличия пространства в этом блоке. Серые стрелки представляют собой хеш-указатель, который не подписан ключом графика (поэтому серая стрелка в B3 может быть заменена, если B2 изменяется или удерживается). Это предотвращает атаки, в которых B2 изменяет свой блок и вынуждает B3 реорганизоваться.
Рисунок 11: Блоки и блоки фольяжа. Блоки содержат транзакции и имеют красные указатели (указатели на последний блок). Обратите внимание, что начало вспомогательного слота также является указателем.
Хотя все блоки по-прежнему выбирают пазл хеши, куда направляется их вознаграждение, эти транзакции не включаются в цепочку блоков до следующего блока транзакции.
Для основной сети chia каждые 600 секунд будет происходить 32 блока, при среднем времени блока 18,75 секунды. Будет 64 указателя, поэтому минимальное время между блоками составляет 3 * 600/64 = 28,125 секунды. Таким образом, среднее время блокировки транзакции составляет 46,875 секунды.
Эпохи и регулировка сложности
Sub эпоха: Sub-эпоха N начинается когда sub-эпоха N-1 заканчивается (исключение для нулевой sub-эпохи), и заканчивается в конце первого слота в который с момента возникновения было включено 384 * (N+1) блоков.
Эпоха: Эпоха N начинается когда эпоха N-1 заканчивается (исключение 0я эпоха), и заканчивается в конце первого слота в который с момента возникновения было включено 4608 * (N + 1) блоков.
Сложность: константа, которая масштабирует количество итераций для данного доказательства пространства. Итерации рассчитываются как сложность / качество.
Каждые 4608 блоков активируется регулировка сложности. Это изменяет два параметра: параметр slot_iterations и параметр сложности.
Параметр sub_слот интеграций сбрасывается, поэтому для 300-секундного слота требуется много итераций, близких к слотам интеграции. Сброс выполняется с использованием значений из последней эпохи, чтобы точно приблизить количество итераций в секунду.
Обратите внимание, что мы берем итерации и время не точно в конце эпохи, а то что в последней точке инфузии блока в эпоху, причина просто в том, что у нас есть временные метки, доступные только тогда, когда блоки вливаются.
new difficulty = weight/sec * target secondstarget number of blocks
Это можно изменить, чтобы использовать только одноэтажное подразделение:
Итерации sub-слота настраиваются таким образом, что каждый слот длится около 600 секунд. Сложность настраивается таким образом, что каждая задача получает в среднем 32 блока с меньшим количеством итераций, чем слоты интеграции. Важно отметить, что количество итераций VDF на слот не имеет значения для веса. То есть, если бы было два идентичных мира, в которых скорости VDF были равны, а пространство было равным, но параметр итераций sub-слота был в 2 раза выше в одном мире, то блокчейн с более высокими итерациями sub-слота получил бы вдвое больше блоков включается в каждый слот, но каждый слот занимает в два раза больше времени, поэтому вес, добавляемый к цепочке в секунду, одинаков в обоих случаях. Другой способ взглянуть на это заключается в том, что увеличение итераций sub-слота увеличивает количество блоков на слот, но также увеличивает продолжительность работы слотов и, таким образом, не влияет на вес в секунду.
Sub-эпоха
Как описано ранее, цепочка испытаний полностью отделена и не относится ни к чему в цепочке вознаграждения. Если эти цепочки навсегда останутся отдельными, злоумышленник с более быстрым VDF сможет заглянуть в далекое будущее и предсказать проблемы. Злоумышленник может создать по одному блоку на слот с ограниченным пространством, создавая, таким образом, целую цепочку вызовов. Это позволило бы им создавать плоты и мгновенно создавать доказательства наличия пространства для этих плотов, которые они выиграют в будущем, а затем удалять плолы (атака на дальние расстояния). Таким образом, они могут заполнить свою цепочку вознаграждений и увеличить свой вес.
Решение состоит в том, чтобы периодически (каждые 384 блока, что составляет в среднем 2 часа) вливать конец слота цепочки вознаграждений в цепочку задач. Это означает, что злоумышленник может выполнить атаку с переназначением только на несколько часов в будущее. Само построение графика занимает несколько часов, но даже если злоумышленник может мгновенно перенастроить график, стоимость атаки перенастройки перевесит преимущества. Мы вливаем не текущий результат цепочки вознаграждений, а вывод цепочки вознаграждений в конце предыдущей sub эпохи (2 часа назад).
Стоимость создания плота включает в себя электричество для расчета всех таблиц, оперативную память, необходимую для создания этого плота, и фиксированные затраты на инфраструктуру (пространство, электричество, охлаждение и т. д.). Предполагая наихудший сценарий сверхбыстрого VDF и мгновенного построения плоттинга ASIC, преимущества будут эквивалентны преимуществам хранения этого слота на жестком диске в течение нескольких часов. Понятно, что эта атака не стоит этого, и что хранение плотов намного дешевле (анализ ниже).
Вышеупомянутое объясняет, почему интервал sub эпох должен быть относительно низким. Но почему мы не можем еще больше сократить его до менее 2 часов, для дальнейшего сдерживания повторных атак? Причина в том, что всякий раз, когда неканонические данные вводятся в цепочку запросов, возникает возможность для измельчения. Это означает, что злоумышленник может выбрать включение или исключение блоков, чтобы управлять тем, какой вызов будет через 2 часа в будущем. Если это время слишком короткое, они могут получить небольшое преимущество в пространстве, если будут делать это чаще.
Верификация легкого клиента
Для легких клиентов, которые хотят быстро синхронизироваться с цепочкой (например, мобильные кошельки), полный узел может создать небольшое доказательство, которое может убедить легкого клиента в том, что вес цепочки близок к некоторому значению. Это называется доказательством веса. Наивно, легкий клиент может загрузить каждый блок и все необходимые доказательства и проверить их, но с таким большим количеством блоков это потребует большой пропускной способности и CPU.
Более эффективный метод основан на протоколе, подобном Flyclient [4]. Узел (тестировщик) отправляет все сводки по sub эпоху из точки разветвления, которые включают сброс сложности, легкому клиенту. На каждые 384 блока приходится только один блок, так что это может достигать лишь нескольких МБ данных. Узел также детерминированно производит выборку нескольких sub эпох на основании запроса последнего блока. Subэпохи могут быть выбраны пропорционально сложности в течение этой sub эпохи. Для выбранной sub эпохи легкий клиент загружает один из блоков цепочки вызовов (которые составляют примерно 1/32 всех блоков) и вычисляет средние итерации инфузии всех блоков вызовов в этой sub эпохе. Основываясь на этом времени, легкий клиент может экстраполировать, сколько блоков содержит цепочка вознаграждений. Например, если все блоки вызова происходят с очень маленькими итерациями (близко к началу слота), вероятно, в этом слоте много блоков. И наоборот, если итерации близки к середине слота, вероятно, есть только один блок на слот. Это позволяет легкому клиенту загружать только 1/32 блоков в каждый слот, но при этом получать хорошую оценку общего веса.
Кроме того, для легкого клиента необходимо полностью загрузить несколько последних sub эпох. Это добавляет небольшой объем данных, но не позволяет атакующему создавать небольшие разветвления в конце цепочки. Основное различие между этим протоколом и flyclient заключается в том, что блоки не привязаны к использованию деревьев Меркла, а вместо этого легкий клиент загружает весь список хеша subэпох из генезиса, гарантируя, что запрашиваемые sub эпохи включены в цепочку. Еще одно отличие состоит в том, что загружаются целые разделы, а не отдельные блоки.
Необходимо провести дополнительный анализ того, сколько sub эпох должно быть загружено, и каковы границы того, что подразумевает доказательство веса.
Пулинг
Когда фармер выигрывает блок, они отправляют на рассмотрение подпись фармера и подпись пула. Комиссионные за транзакции вместе с вознаграждением за блок идут фармеру, а ⅞ вознаграждения за блок идут в пул. Причина предоставления части вознаграждения фармеру состоит в том, чтобы не стимулировать атаки, когда один пул атакует другой, «объединяя» их, но фактически не представляя доказательства победы. Это атака, которая может вывести из строя другой пул.
Это проще, потому что пулу не нужно ничего делать, кроме однократной публикации своей подписи на веб-сайте, сбора частичных данных и периодических выплат. Он более децентрализован, потому что блоки создаются фармерами, поэтому большие централизованные пулы мало контролируют сеть, и это увеличивает сопротивление цензуре транзакций.
Второй более сложный протокол пула позволит вам указать одноэлементный смарт-контракт, в котором будет храниться адрес пула. Затем плоты будут включать в себя хеш пазла смарт-контракта, позволяющий фармерам переключать пулы в любое время с задержкой. Недостатком этого протокола объединения является то, что для начала ведения фарминга требуется внутричейн-транзакция, и поэтому она не совсем лучше, чем первый протокол объединения.
Таймлорд алгоритм
Таймлорд отслеживает текущий пик, который включает в себя инфузионный блок на определенной высоте, и точки указателей, начиная с пика и далее. Таймлорд может получать новые блоки для наполнения, новые пики (блоки, которые уже наполнены) или новые точки указателей.
Как таймлорд решает, для каких задач нужно создавать доказательства времени, учитывая ограниченное количество доступных процессоров? В то время как ASIC, вероятно, будут развиваться в будущем, в настоящее время самые быстрые реализации VDF группы классов находятся на аппаратном обеспечении общего назначения, поскольку кажется, что VDF группы классов сложен для FPGA. Более того, даже после разработки ASIC важно, чтобы любой пользователь с CPU мог быть таймлордом, чтобы обеспечивать запасной вариант в случае, если таймлорд ASIC выйдет из строя или станет вредоносным и т.д.
В общем, таймлорды работают с самой тяжелой цепочкой. Они создают доказательства времени на указателях и транслируют их в сеть по мере их достижения. Они также вводят блоки так часто, как только могут. Когда таймлорд получает наполненный блок, который имеет больший вес, чем текущий пик, он немедленно переключается на него.
Таймлорды также запускают три цепочки VDF параллельно. Следовательно, для эффективного продвижения блокчейна необходимо как минимум 3 быстрых ядра CPU. Для создания доказательств с эффективной скоростью потребуются дополнительные ядра CPU, но они не должны быть такими быстрыми.
Если таймлорд получает вызов с меньшим весом, чем их текущий пик, он игнорирует его.
Если таймлорд получает точку вызова позже в текущей цепочке, безопаснее всего ее проигнорировать. Причина в том, что при переключении на точку, расположенную дальше в будущем, таймлорд может пропускать инфузию блоков и, таким образом, теряет допустимые блоки.
Если таймлорд получает блок для вливания, который запаздывает (мы уже достигли точки вызова, в которой блок должен был быть заполнен), мы игнорируем это, поскольку переключение на него позволит злоумышленникам удерживать блоки [TODO expand]. Поэтому основная операция таймлорда включает в себя сохранение кеша будущих блоков для внедрения, широковещательную передачу контрольных точек, когда они достигнуты, и вливание блоков, когда мы достигаем их контрольных точек.
Если таймлорд получает вызов с таким же весом, что и текущий пик, он выбирает незавершенный блок, который они видели первым (то есть блок, который еще не был наполнен), в отличие от выбора наполненного блока (пика), который они увидели первым. Это также препятствует задержки блоков.
Соответствующие атаки и контрмеры
Расширение многих цепочек
Если злоумышленник создает свою собственную частную цепочку, он может выбрать, какой блок будет включен в цепочку вызовов, и, следовательно, может попробовать множество различных вливаний, чтобы получить наилучшую возможную цепочку. Из-за того, что в среднем 32 блока с одним и тем же вызовом, злоумышленник может попробовать только около 32 различных комбинаций (какой блок включить в цепочку вызовов), и экспоненциальное разветвление попытки каждой из них даст небольшой прирост пространства для атакующего. (Имея 5 ПиБ, они могут притвориться, что у них 6 или 7 и т.д.). Это связано с тем, что альтернативные цепочки, которые проверяются, являются худшими и с меньшей вероятностью обгонят самую длинную. Это было проанализировано в [1].
Фактический объем пространства, необходимого для выполнения этой атаки (чтобы злоумышленник получил более тяжелую цепочку, чем остальная часть сети вместе взятых), составляет 46,3% из-за способности злоумышленника «пробовать» различные комбинации блоков, например, пропуская или не пропуская первый блок. Если было новое доказательство проблемы с пространством для каждого отдельного блока, злоумышленник может умножить свое пространство на коэффициент e = 2,718, где требуется только 27% для захвата сети. Установка количества блоков на 32 увеличивает необходимое пространство для атакующего до 46%.
Причина, по которой не следует увеличивать это значение больше 32, заключается в следующем: если мы увеличим количество блоков в 10-минутном слоте примерно до 200, то возможность для кого-то с немного более быстрым VDF отбросить других увеличится. Это потому, что время между блоками станет очень маленьким. С 32 блоками время между блоками составляет около 15-25 секунд, и для отбрасывания требуется гораздо более быстрый VDF.
Кроме того, Стэнфордская статья показывает, что увеличение количества блоков на вызов повышает безопасность очень медленно, поэтому небольшое увеличение этого числа не дает большой пользы.
Если злоумышленник будет управлять сложностью, он может изменить ее, чтобы получать меньше блоков вознаграждения на слот. Затем они могут либо включить, либо исключить каждый блок и экспоненциально расширять все цепочки одновременно, и они смогут умножить свое пространство на небольшой коэффициент [1]. Неясно, сильно ли выигрывает эта атака, так как атакующий должен изменить сложность, что требует некоторой потери веса. Однако, чтобы предотвратить эту атаку, необходимо создать не менее 16 блоков цепочки вознаграждений для включения блока вызова. Это увеличивает необходимое пространство для атакующего в худшем случае с 27% до 42%.
Более быстрый VDF и 46% пространства
46% атака становится хуже, если VDF атакующего работает быстрее. Предположим, VDF атакующего в 2 раза быстрее. Тогда их цепочка сможет создавать проблемы и блоки в 2 раза быстрее, чем остальная часть сети, что означает, что они могут создавать «более тяжелую» цепочку с тем же объемом пространства.
Это необходимое пространство уменьшится с 46% до примерно 30% от общего сетевого пространства. 0,46 / 0,54 = 2x / (1-х). х = 0,30. Если у злоумышленника нет доступа к самому быстрому VDF, он не сможет получить преимущество в пространстве.
Чиа прострастно / глобальное пространство на жестком диске
Есть опасения, что если в системе Chia недостаточно места по сравнению с доступным свободным пространством производителей жестких дисков или крупных компаний, то она будет уязвима для атак на 51%. Следовательно, чем больше места занимает система Chia, тем более безопасна сеть. Один из вероятных сценариев состоит в том, что требуется много места, что делает вознаграждение за ТБ довольно низким и недостаточно значительным, чтобы оправдать покупку дисков или удаление бизнес-данных. Кроме того, создание плота требует фиксированного количества времени и денег (по текущим расчетам в beta17, около 1 кВт/ч для k32 или около 10 центов, что составляет 1 доллар за терабайт).
100% атака
Если регулировка сложности запускалась каждые X слотов VDF, в отличие от каждых X блоков, это позволило бы совершить 100%-ную атаку, когда все фармеры вступают в сговор, чтобы постоянно уменьшать или увеличивать сложность. При нормальной работе на слот приходится 32 блока. При 100% атаке сложность регулируется таким образом, что сложность снижается на 2, так что на слот приходится 64 блока, а затем повышается на 4, так что в каждом слоте есть 16 блоков, чередующихся бесконечно. Это позволило бы фармерам зарабатывать в среднем 64 + 16/2 = 36 наград за блок за слот. Это причина для корректировки сложности в зависимости от количества блоков.
Атака с переносом на короткие дистанции
Плоттинг обычно занимает несколько часов (8 часов для k32 в beta 14 с одним ядром), но он очень распараллеливаемый, поэтому злоумышленники могут найти способы создать плоты после того, как вызов будет выпущен, а затем удалить плот, фактически имея возможность фармить, не сохраняя пространство постоянно. Скорее всего, для этого потребуется дорогостоящее специализированное оборудование с быстрой памятью, поскольку плот должен быть создан вовремя для инфузии (менее 30 секунд).
Плот фильтр очень полезен для уменьшения количества операций поиска на диске, которые должны выполнять фармеры. При фильтре участка 512, вместо 7 операций чтения с диска на участок каждые 9 секунд, фармерам нужно выполнять только 7 операций чтения за каждые 80 минут. Константа плот фильтра обеспечивает злоумышленнику множитель при повторном построении плота, поэтому ее нельзя устанавливать слишком высоко. При константе плот фильтра 512, 1/512 плотов действительны для каждой задачи. Затем злоумышленник может создавать только плоты, которые проходят фильтр, поэтому нет необходимости создавать другие 511/512. Установка его на 512 дает множитель 512х и т. д.
Более быстрый VDF (но не атака 51%)
Благодаря самому быстрому VDF в системе злоумышленник может более эффективно выполнить атаку 51%, то есть расширить свое пространство при фарминге в приватной цепочке. Если атакующий не достигает в общей сложности 51% пространства (с усилением VDF и расширением многих цепочек, как указано выше), полезность более быстрого VDF существенно снижается. Это связано с тем, что включение и исключение блоков не зависит от того, насколько быстро вы можете выполнить VDF, а вместо этого зависит от того, меньше ли оно, чем итераций sub-слота. Кроме того, злоумышленнику необходимо пространство для остальной части сети, чтобы продвигаться вперед, и, следовательно, он должен избавиться от проблем в сети.
В некоторых случаях, когда блоки расположены очень близко друг к другу, наличие более быстрого VDF может позволить злоумышленнику отбросить определенные блоки, хотя это не увеличивает вознаграждение в краткосрочной перспективе и несет риск подрыва сети в долгосрочной перспективе.
Эгоистичный фарминг
Атака с целью подкупа фармера
Интересной атакой, исследованной [10], является атака подкупа, которая использует предсказуемость избранных «лидеров» в каждом слоте. Авторы анализируют доказательство цепочки ставок и утверждают, что, когда участники заранее знают, что они собираются выиграть, существует потенциальная атака с подкупом. Если участники заранее знали, какие слоты выиграют, каждый пользователь может уведомить злоумышленника о том, что они готовы участвовать в атаке, а если они достигнут определенного порога, они могут полностью реорганизовать цепочку (или отбросить тех, кто не участвует, цензура транзакции и т. д.). Эта атака НЕ требует для участия большей части пространства в сети; только победители за этот короткий период времени. Более того, его невозможно обнаружить, так как злоумышленник может создать обычную цепочку.
Эта проблема отсутствует в этой версии алгоритма консенсуса Chia. Эта проблема решается за счет снижения предсказуемости: каждый фармер не знает наверняка, соответствует ли его доказательство наличия пространства всем критериям, пока не появится указатель. Поэтому злоумышленник должен подкупить большую часть пространства, чтобы осуществить эту атаку.
Реорганизация фальяж атаки с целью подкупа фармера
Поскольку блоки подписываются ключами PoSpace, фармер теоретически может подписывать несколько блоков с помощью одного и того же PoSpace на одинаковой высоте. Атака требует, чтобы злоумышленник подкупил фармеров определенной суммой средств, чтобы они подписали альтернативную цепочку. Если злоумышленник сможет убедить каждого фармера в N блоках подписать, он сможет отменить или изменить порядок любой транзакции в этих N блоках. Потенциально можно использовать доказательства мошенничества, но они не были выбраны, поскольку они допускают другие атаки и усложняют поведение.
Взамен этого решение заключается в том, чтобы просто ждать дольше. После 32 блоков
(приблизительно 10 минут) предположение о том, что по крайней мере один фермер
соблюдает протокол, а не двойное подписание, является разумным.
Если 54% не вступают в сговор (предположение о 46% устойчивости к атакам), вероятность отмены после 32 блоков составляет 1,8 * 10-13 = 0,00000000000018. Кроме того, эту атаку можно обнаружить, поэтому ее нелегко осуществить.
Каждый пользователь может выбрать свой собственный порог, для которого он принимает транзакцию / блок как окончательную. Например, в случаях, когда общее сетевое пространство внезапно падает, пользователи могут быть более осторожными и не считать транзакции окончательными, если существует еще одно разветвление, например, из-за разделения сети.
Освобождение блоков транзакций от комиссий за транзакции
Блоки транзакций отличаются от блоков без транзакций, поскольку они содержат комиссию за транзакцию. Они могут превосходить вознаграждение за блок. На момент написания (ноябрь 2020 г.) на пике хайпа мы видим 2 вознаграждения за блок eth с 8 комиссиями за блок. В Chia это будет более экстремальным, поскольку не каждый блок содержит транзакции. Это приводит к атакам, когда фармер, занявший 2-е место, игнорирует 1-е место в попытке выиграть блок транзакции. Если 2-й блок наступает менее чем через 30 секунд после 1-го, они не указывают предыдущий блок, и, таким образом, 2-е место не может отбросить 1-е. Третье место могло бы отбросить обоих, но по этой цепочке никто не пойдет, так как она короче.
Однако, если в течение 30 секунд после 1-го блока нет блоков, 2-й может отбросить 1-й, но им придется убедить следующий блок фармить в своей альтернативной цепочке. Более легкая атака была бы, если бы атакующий контролировал и 2-й, и 3-й, и в этом случае он мог бы игнорировать первую и при этом быть более продолжительным. Эти атаки-одиночки не позволяют злоумышленнику украсть вознаграждения, а позволяют злоумышленнику немного снизить сложность. Поскольку они носят весьма ситуационный характер и требуют большого пространства, попытка такой атаки, скорее всего, нанесет сети больше вреда, чем потенциальная выгода для атакующего.
Отбрасывание показателей
Согласно консенсусу Chia, два конкурирующих блока примерно в одно и то же время могут быть включены в цепочку блоков параллельно, не зная друг о друге. (Хотя блоком может быть максимум один). Поскольку все блоки транзакций также являются блоками, они оба включаются в цепочку, в результате чего получается цепочка с более высоким весом. Это означает, что процент отброшенных показателей в Chia будет практически нулевым если предположить низкую задержку сети. Если сетевая задержка превышает задержку инфузии (30-40 секунд), то отброшенный блок почти гарантирован, так что это скорее пошаговая функция. Это контрастирует с Nakamoto-PoW, в котором процент отбрасывания данных высок, если есть задержка в сети, и плавно уменьшается по мере улучшения состояния сети, но никогда не достигает нуля.
Безопасность
Безопасность аналогична другим консенсусным алгоритмам Накамото, таким как Биткойн. Гарантированной окончательности нет, но чем больше подтверждений у транзакции, тем она безопаснее. Для транзакции требуется определенное количество подтверждений, чтобы получатель предположил, что она не может быть изменена в соответствии















