Опубликован: 01.02.2018 | Доступ: свободный | Студентов: 1346 / 258 | Длительность: 17:50:00
Лекция 10:

Экосистемы криптовалют

< Лекция 9 || Лекция 10: 123 || Лекция 11 >

Взаимодействие биткоина и альткоина. Сайдчейн.

После запуска нового альткоина нужно привлечь пользователей. Варианты кардинально отличаются:

  • Традиционный. Все владельцы биткоина получают по единице валюты. Без рисков – если сеть падает, никто из пользователей не несет потерь. То есть в этом случае владелец биткоина может без опаски пользоваться альткоин-биржами, так как даже в случае их падения он не лишится своих средств, все сбережения в биткоинах останутся при нем.
  • Односторонняя привязка: альткоины за биткоины (Proof-of-burn). Обратный эффект – если альткоин рушится, пользователь теряет и альткоин, и биткоин)

Если пользователь решит воспользоваться этой схемой, то он обязательно должен будет учесть риски в случае краха альткоинов, в противном случае его ждут большие убытки.

Было бы гораздо лучше, если бы биткоин можно было сдать в залог на некоторый срок, а в это время заниматься майнингом альткоинов. Биткоины в этом случае были бы защищены, так как в случае обесценивания альткоина их можно было бы забрать обратно. Это называлось бы уже двусторонней привязкой, а биткоин стал бы резервной валютой. Для поддержки такой схемы нужны так называемые сайдчейны (side chains). Сайдчейны – это транзакции биткоина, которые поддерживают валидацию альткоина. Они позволили бы однозначно сказать, что альткоин уничтожен и можно вернуть биткоин. Но в настоящее время в силу технических характеристик биткионов, нельзя получить отчет по добыче альткоинов. Это требует расширения языка транзакций. Поэтому сейчас для того, чтобы забрать биткоин в схеме с двойной привязкой, необходимо проанализировать всю цепочку блоков и найти доказательство, что альткоин был уничтожен. То есть каждый нод биткоина должен хранить всю цепочку данных альткоина.

Решением этой проблемы может стать использование доказательств SPV. Основная идея в том, чтобы вместо проверки длинной действительной цепочки, проверять просто самую длинную цепочку. Для того, чтобы доказать действительность цепочки нужно проверить каждую транзакцию. Если же просто проверять самую длинную цепочку, без доказательства того, что она действительная, то достаточно проверять заголовки блоков.

Похожую схему используют мобильные клиенты, которые не могут являться полными нодами, так как не имеют достаточно ресурсов для проверки всей цепочки. Они проверяют только интересующую их транзакцию, что она включена в дерево Меркла какого-то блока, который был в прошлом. Это намного быстрее, так как они проверяют только заголовки блоков.

Поэтому для реализации двусторонней привязки необходимо реализовывать сценарий биткоина, способный делать SPV-доказательства об альткоине.

Как уже отмечалось ранее, у некоторых альткоинов формирование блоков происходит быстрее, чем у биткоина. В этом случае проверка SPV-доказательств может быть медленной. Например, потребуется n шагов для проверки PoW n блоков альткоина. Чтобы повысить эффективность spv-проверки, можно хранить блоки не просто в цепочке, а в структуре данных, поддерживающей более эффективный вид SPV-доказательства.

Проверка PoW

Рис. 10.8. Проверка PoW

Один из подходов к реализации основан на идее доказательства работы. Предположим, есть 4 блока 4-битной сложности. 4 бита – значит, каждый хэш этих блоков имеет, как минимум, 4 нулевых бита в начале. И если все 4 блока имеют столько же нулевых битов впереди, то в среднем половина этих блоков будет иметь уже как минимум 5 нулевых битов впереди. При этом в среднем один блок из четырех будет иметь и шестой нулевой бит впереди хэша. И так далее, в зависимости от числа блоков. В среднем потребуется 64 хэша, чтобы найти 4 блока с нулевыми битами в начале хэша. Почти то же число хэшей потребуется для поиска одного-единственного блока с шестью нулевыми битами. Идея в том, чтобы проверять блок с самой длинной нулевой цепочкой спереди вместо проверки всех четырех блоков.

Несмотря на одинаковое время, точность оценки значительно отличается. сли злоумышленник вычисляет 32 хэша, половину искомого числа, то вероятность нахождения четырех блоков равна 14%. То есть шанс на успех в поиске четырех блоков за остаток времени равен 14%. Разумеется, при поиске одного блока с длинной цепочкой нулей вероятность гораздо выше – 40%,. Итак, 40% вероятности успеха; фиксированное количество попыток, определенное биноминально. Все это говорит о том, что чем больше образцов доказательств работы используется, тем выше точность. Аргумент, очевидно, не в пользу быстрой проверки. Однако все зависит и от длины блокчейн, иногда бывает достаточно выполнить быструю проверку.

Список с пропусками

Рис. 10.9. Список с пропусками

Чтобы осуществить поддержку spv-доказательств такого рода, нужно составить что-то вроде списка с пропусками ( рис. 10.9). Допустим, что цель – проверка PoW только у четверти блоков. . Чтобы осуществить алгоритм, логичнее всего будет создать указатель и на предыдущий блок с четырьмя нулевыми битами, и на блок, имеющий шесть и более нулевых битов спереди. Реализация такого хранения не потребует больших затрат. Чтобы проверить SPV-доказательство, нужно будет проверить всего четверть блоков.

Итак, можно сделать вывод, что реализация сайдчейна позволит осуществлять двойную привязку. То есть резервировать одну криптовалюту во время майнинга другой. В резерве могут находится как альткоины, так и биткоины. Этот алгоритм необходим, чтобы защититься от рисков краха альткоина. Для поддержки алгоритма требуются модификации в скрипте биткоина. Альткоины же достаточно объединить с какой-либо другой валютой, работающей под тем же майнинг-паззлом.

В заключение остается еще раз отметить важность альткоина для экосистемы электронных валют. Альткоины и биткоины взаимодействуют друг с другом по-разному – порой это сотрудничество, а иногда и борьба. Взаимодействие происходит как технически – вспомним, например, тот же параллельный майнинг и транзакции с общим хэшем. Очевидно одно - спектр взаимодействия электронных бирж будет расти со временем.

Терминологический словарь

Криптовалюта (Cryptocurrency)– распределенная система безопасного обмена и передачи цифровых денежных знаков, основанной на средствах криптографии. Основное свойство – децентрализация.

Биткоины (BTC, bitcoins)- одноранговая цифровая денежная система, построенная на криптографических алгоритмах. Первая массовая криптовалюта.

Альткоины (ALT, Altcoins) - общее название всех криптовалют, предлагаемых в качестве альтернативы биткойну – неймкоин, альткоин, лайткоин…

Адрес (Address)- биткойн-адрес используется для отправки и получения транзакций. Он состоит из буквенно-цифровых символов, но также может быть представлен в виде сканируемого QR-кода. Биткойн-адрес также является публичным ключом, используемых держателями биткойнов для цифровой подписи транзакций.

Блок (block)- список проверенных транзакций, который добавляется к блокчейну в результате майнинга. Является базовым элементом структуры блокчейна. Состоит из двух частей - заголовка (Head) и полезной нагрузки (Payload)- собственно записи транзакций.

Блокчейн (block chain - цепочка блоков)- распределенный реестр, состоящий из цепочки блоков финансовых транзакций, в которой каждый последующий блок криптографически связан с предыдущим. В ключает в себя сети peer-to-peer (P2P), распределенное хранение данных и криптографию.

Кошелек (wallet) - программное приложение, позволяющее производить транзакцию с заданного адреса и просматривать его баланс.

Цифровая подпись (ЭЦП - электронная цифровая подпись) - код, который генерирует алгоритм шифрования с открытым ключом, прикрепляемый к транзакции для проверки неизменности её содержимого и идентификации отправителя. Используется для подтверждения транзакции владельцем биткоин-кошелька отправителя.

Ключ (key) - битовая строка, используемая криптографическим алгоритмом при шифровании и дешифровании сообщений, постановке и проверке цифровой подписи, а также идентификации.

Майнинг (mining), "добыча" - процесс в сети Биткоина и других криптовалют, в результате которого в блокчейн добавляется новый блок транзакций и происходит эмиссия монет.

Нода (node) - узел (сервер) сети Bitcoin.

Премайнинг (Pre-mining) - добыча криптовалюты создателем до того, как официально объявлено о её появлении. Позволяет осуществить эмиссию криптовалюты до её выхода на рынок. Зачастую используется в мошеннических криптовалютах, но не все премайнинговые монеты являются мошеническими.

Приватный (закрытый) ключ (private key) - кодовая строка, при помощи которой осуществляется доступ к кошельку или биткоин-адресу. Необходима для осуществления транзакций.

Публичный (открытый) ключ (public key) - парная соответствующему приватному ключу кодовая строка, к которой имеется открытый доступ. Используется с секретным приватным ключом для отправки транзакций. Публичный ключ соответствует биткоин-адресу.

Пул (Pool), Майнинг-пул (mining pool) - объединение майнеров, которые коллективно добывают блок, а затем делят полученное вознаграждение. Майнинг-пулы - способ увеличить доходность при росте сложности майнинга.

Сатоши Накамото (Satoshi Nakamoto) - анонимный создатель (или группа создателей) одноранговой электронной денежной системы Биткоин.

Транзакция (transaction) - перевод денег между двумя адресами.

Форк (Fork - вилка) - создание альтернативной успешной версии цепочки блоков. Форк успешен, если он становится самой длинной версией цепочки блоков с точки зрения сложности. В этом случае альтернативная ветка блокчейна отвергается и становится невалидной. Часто форком называют новую криптовалюту, которая построена на протоколе существующей. Например, лайткоин (LTC) является форком биткоина (BTC).

Автономные агенты (Autonomous Agent) - программные сущности (приложения и модули), которые могут принимать решения без необходимости участия и одобрения человека. Умный контракт (smart contract) - это своего рода автономный агент, базирующийся на блокчейне.

PoW, Proof-of-Work, "доказательства работы" - алгоритм, при помощи которого сеть майнинга определяет, какой из майнинговых узлов запишет сформированный блок в блокчейн.

PoS, Proof-of-Stake, "подтверждение доли владения" - альтернативный PoW алгоритм, с помощью которого сеть во время записи блока в блокчейн определяет вероятность записи нового блока в блокчейн и получение соответствующего вознаграждения, пропорционального доле владения пользователя в системе.

Hashrate (хэшрейт или вычислительная мощность) - вычислительная производительность компьютерного оборудования для майнинга криптовалют. Измеряется хэшах (hash) в секунду.

Сайдчейнинг (sidechaining) — это механизм, который дает безопасно использовать токены одного блокчейна в другом, сохраняя возможность обратного перевода. В этом случае оригинальный блокчейн называют основным, дополнительные блокчейны — сайдчейнами

SPV-proof, "доказательство простой проверки платежа" - доказывают существование транзакции в блоке с помощью специального набора данных. SPV перемещает биткоины между основным блокчейном и сайдчейном после того, как узнает, что сигнальная транзакция о переводе средств между цепочками была помещена в блок.

< Лекция 9 || Лекция 10: 123 || Лекция 11 >