Разрушаем миф о том, что Zcash имеет скрытую эмиссию
Все новости про Zcash в социальной сети «X» (бывший Twitter) | Интересные видео про Zcash на YouTube
Вообще мифов вокруг Zcash множество.
По-крайней мере, мне известно о существовании следующих мифов:
- Zcash имеет скрытую эмиссию;
- Zcash и все анонимные монеты скоро запретят (раскрывал этот аспект в своём первом блоге);
- Никто не использует экранированные транзакции Zcash (косвенно ответ был дан в этой статье).
Если знаете другой FUD (отталкивающая негативная информация, не подкреплённая фактами), то пишите в комментариях.
Итак. Миф о том что Zcash имеет скрытую эмиссию существует очень давно. Зародился он потому, что множество бирж, соревнуясь за звание самой крутого обмена, завышали заявленные объёмы торгов. В результате возникала ситуация из-за которой суточный объём торгов, указанный на популярном CoinMarketCap иногда кратно превышал известную эмиссию. Многие пользователи возмущались в таком духе: «Как такое возможно? Наверняка монет больше чем есть на самом деле, но их не видно!». На самом деле количество монет в экранированном пуле мы также можем проверить, но об этом позже.
Кстати, с этим CMC-сервисом постоянно возникают какие-то непонятки, которые также подкрепляют данный миф. Даже сейчас на сервисе отображается, что эмитировано 60% всех монет от максимального количества (12,576,287.50 ZEC):
Но это не так!
Перехожу на любимый проводник Blockchair в раздел Zcash который учитывает правильную сумму всех эмитированных монет путём прямого подсчёта по каждому блоку цепочки.
Правильное количество монет на блоке 1 378 678 соответствует указанным 11,538 тыс. Zcash.
Давайте это проверим самостоятельно:
Первый период:
В начале эмиссии Zcash в течение первых 20 000 блоков (включая нулевой генезис-блок) было добыто 125 000 ZEC вместо ожидаемых 250 000. Это было сделано для минимизации последствий ошибок при запуске сети, которых по факту не было
Второй период:
до обновления Blossom каждый новый блок создавались 12,5 монет.
Blossom был активирован на высоте блока 653 600
Считаем 653 600 — 20 000 = 633 600 и умножаем 12,5 = 7 920 000 Zcash
Третий период:
от активации Blossom до первого халвинга Zcash на высоте 1 046 400
весь этот период чеканились 6,25 монет на блок
считаем: 1 046 400 — 653 600 = 392 800 х 6,25 = 2 455 000
Для проверки числа монет на момент халвинга суммируем: 125 000 + 7 920 000 + 2 455 000 = 10,5 млн. монет, как и положено. Вы можете проверить любой блок из указанного периода, REWARD всегда будет правильный.
Четвёртый период:
от блока халвинга до искомого блока № 1 378 678 прошло 332 278 блоков с вознаграждением по 3,125 ZEC
и получается было добыто 1 038 368,75 монет
прибавляем к ним 10 500 000 и получаем 🥁 11 538 368,75
Ну вот даже Blockchair считает не совсем верно. Почему то меньше на 366 ZEC. Но меньше не больше :))
если найдёте ошибку в моих расчётах, пишите в комментариях.
однако..
CoinMarketCap завышает количество циркулирующих монет Zcash на целый миллион!
Как такое возможно?
Дело в том, что CoinMarketCap и многие другие сервисы, которые гордо называют себя проводниками, не берут данные напрямую из блокчейнов криптовалют, поскольку это бы сильно перегружало систему из-за большого количества запросов из всевозможных источников, вместо этого программисты время от времени синхронизируют цифры и исправляют формулы расчёта. Таким образом, если в алгоритме эмиссии произошли какие либо изменения, например, изменилось время блока, то формулу расчёта необходимо корректировать.
Calculating the total Zcash supply is not an easy task 🤓@CoinMarketCap reports extra 950k $ZEC,https://t.co/PbUt0VhsR0 is off by 950k as well,https://t.co/oMLs71VWI9 -1.1k,https://t.co/Y9kGLoODu8 -3.4M,@coingecko is using @Blockchair’s API and reports the correct value 😎 https://t.co/vjUNyrebKn
— Nikita Zhavoronkov (@nikzh) August 10, 2021
Откуда я это знаю? Просто такая ситуация уже была. 12-го декабря 2019 года было активировано обновление Zcash Blossom. Время блока было сокращено в два раза с 1,5 минуты до 75 секунд. Вместе с этим было скорректировано вознаграждение майнеров за найденные блоки с 12.5 ZEC до 6.25 ZEC за один блок в целях соответствия эмиссии необходимому темпу. Через некоторое время я обнаружил, что CoinMarketCap не внёс полноценные изменения в свой расчёт, добавив в формулу лишь сокращение времени блока. В результате чего, отображаемая расчётная эмиссия с этого моменты была двух-кратно завышена. Как только я это обнаружил, то сообщил об этом разработчикам.
В апреле 2020 года ошибка была исправлена:
@CoinMarketCap исправил ошибку в формуле расчёта эмитированного объёма #Zcash приводящую к задвоению дневной эмиссии после обновления #ZcashBlossom — https://t.co/iLS3tdp0Em
— ZcashRu 🦓🛡♥️ (@ruzcash) April 15, 2020
Как видите, это реальная ситуация. Текущее «задвоение» эмиссии Zcash на CMC, вы не поверите, но длится с самого халвинга (18 ноября 2020 года). Причём все кому надо давно в теме 🤷🏻♂️
10,822,212 ZEC на текущий момент. @CoinMarketCap показывает не правильно, поскольку прибавляет по прежнему 7200 монет в сутки, как и до халвинга, а текущая дневная эмиссия 3600 монет. https://t.co/QTd8lLg71v
— ZcashRu 🦓🛡♥️ (@ruzcash) February 23, 2021
Рассматриваемый миф многократно усилился после появления данной новости: «Разработчики Zcash сообщили об устранении критической уязвимости в 2018 году»:
«Уязвимость имела отношение исключительно к созданию несуществующих монет и никак не затрагивала приватность пользователей. До ее устранения атакующий мог создавать поддельные монеты Zcash, оставаясь при этом незамеченным… Уязвимость была полностью устранена, и никаких действий со стороны пользователей Zcash не требуется», — говорится в сообщении.
В данной статье также уточняется:
«Также разработчики отмечают, что обнаружение уязвимости требовало продвинутого уровня технических и криптографических знаний, которыми обладают немногие.
«Она существовала несколько лет, но не была выявлена многочисленными экспертами-криптографами, учеными, сторонними аудиторами и сторонними командами разработчиков, которые запускали новые проекты на базе Zcash».
После обнаружения уязвимости Electric Coin Company приняла «исключительные меры», чтобы минимизировать возможность ее эксплуатации, а также уведомила о ее существовании команды других криптовалют, использующих протокол zk-SNARKS, включая Horizen и Komodo.
В комментарии Fortune CEO Electric Coin Company Зуко Уилкокс добавил, что разработчики отказались от контакта с создателями Bitcoin Private, проекта, который пользуется весьма неоднозначной репутацией, из-за предположительного использования скрытого премайна.
«Мы не хотели раскрывать информацию прочим лицам до того момента, пока не будут защищены крупнейшие по капитализации криптовалюты», — сказал Уилкокс.»
Что ж, пусть и малейшая, но вероятность эксплуатации данного бага в любом случае существовала. И не только в Zcash. Так почему же мы знаем наверняка, что количество существующих монет не превышает максимально расчётное значение, которое должно быть на текущий момент?
Мы знаем о том что скрытой эмиссии не существовало с гарантированной надёжностью.
У Zcash два типа монет: прозрачные и экранированные. С количеством прозрачных монет нет никаких проблем. Как и в любом другом прозрачном блокчейне алгоритм, встроенный в проводники имеет возможность просканировать каждый существующий прозрачный адрес и путём сложения определить их количество. Но как быть с экранированным пулом монет?
Экранированный турникет
Ещё до того, как было объявлено об обнаружении бага, разработчики серьёзно озадачились этим вопросом. И для тотальной инвентаризации существующих монет в экранированном пуле было решено при последующем обновлении сделать единый механизм — турникет, миновать который не существовало бы возможности.
Итак, старый экранированный пул «Sprout» потенциально мог содержать лишние монеты, которые могли быть созданы сверх-умными злоумышленниками при эксплуатации обнаруженного бага. Новый обновлённый пул с улучшенными характеристиками скорости транзакций «Sapling» на момент запуска не содержал ни одной монеты. Задача была в том, чтобы не дать проникнуть лишним монетам из старого пула в новый. И для этого был создан турникет. Подробное описание спецификации данного турникета здесь.
Первоначально турникет был встроен в единственный на тот момент существующий официальный кошелёк, поддерживающий экранированные адреса и транзакции:
ZecWallet 0.6.11 now supports native sprout -> sapling turnstile migration!
— Zecwallet (@zecwallet) May 24, 2019
Download: https://t.co/vgeyEKTyv3#zcash #ZEC pic.twitter.com/8Z9Vxe9xyL
Даже если бы существовал иной кошелёк с поддержкой таких транзакций, то при попытке перевести средства из старого экранированного пула в новый, ему всё-равно необходимо было бы использовать стандартные команды данного турникета. Иначе бы ноды не приняли эту транзакцию. Таковы законы криптографии. Вы не можете, например, отправить монеты из сети биткоина в сеть Zcash или в другую несовместимую сеть. Турникет по сути — это команды, встроенные в ноду, позволяющие совершать заранее определённые криптографические действия, при которых счётчик учитывает количество прошедших через него монет.
О необходимости провести монеты из старого пула в новый, кошелёк сообщал при запуске.
Когда количество монет, прошедших через турникет достигло примерно 85% от нормы, следующее обновление кошелька перестало поддерживать данный турникет, а выпущенное обязательное обновление для нод, сделало старые версии кошельков более не совместимыми с новыми нодами. Старые ноды перестали коннектиться с новыми. Таким образом, двери обмена были закрыты и остался лишь один замороченный способ перевести средства из старого пула в новый — с помощью инструмента миграции.
Благодаря всем этим хитростям сегодня мы достоверно знаем сколько монет могли попасть из старого пула в новый пул. И это значение не превысило максимально возможное. Наоборот, мы знаем, что на текущий момент в старом пуле находится примерно 29 тысяч забытых монет, которые хозяева по каким то причинам не вывели из старого экранированного пула. Скорее всего после следующего обновления они уже никогда не смогут это сделать. Судя по этому твитту, можно сделать вывод, что при каждом значительном обновлении разработчики будут использовать подобные турникеты:
The same issue might apply to any other shielded pool (due to different bugs) or in *any* strongly private ledger system.
— Nate ⓩ🛡 (@nate_zec) August 12, 2021
In Zcash, I believe the turnstile system is the best balance of privacy, convenience, & preserving a publicly auditable monetary supply despite risk of bugs.
Кстати в этой большой Twitter-ветке разработчики дали исчерпывающие ответы на все вопросы, которые могли возникнуть у сомневающихся пользователей. Вы также можете задавать вопросы инженерам команды.
Надеюсь и мне удалось дать вам необходимые ответы и доказать что скрытая эмиссия Zcash — это миф.
Arborist Call Bitcoin Halo NU5 NU7 Orchard PoS PoW z2z zcashd Zcon Zebra ZecWallet ZIP ZKP ZSA Гранты Доказательства с нулевым разглашением Дорожная карта Ключи просмотра Конференции Кошельки Кошельки для Zcash Метрики Нода Релизы аппаратные кошельки биржи и обмены биткоин будущее криптовалют внедрение интеграции интервью конфиденциальность майнинг новости Zcash обновление сети объяснения обёрнутые токены регулирование транзакции унифицированные адреса управление цена ZEC эмиссия
Метки: Мифы о Zcash, эмиссия
Все новости про Zcash в социальной сети «X» (бывший Twitter) | Интересные видео про Zcash на YouTube
Вы можете поддержать автора проекта pro.zcash:
(для отправки доната на данный адрес требуется
кошелёк с функционалом экранированных транзакций)