Bitcoin Asset Network: токены в блокчейн-платформах. Спикер: Алексей Карпов
Сооснователь Bitaps - Алексей Карпов, познакомит аудиторию со своим проектом, который является биткоин эксплорером и процессингом биткоин платежей.
Для детального понимая проекта, сначала спикер расскажет о токенах и архитектуре Блокчейн:
Эмиссия токенов
Популярность и широкое распространение криптовалют стали причиной рождения различных токенов. Со временем пришло осознание того, что поддержание и разработка собственной блокчейн-платформы - это достаточно накладное мероприятие. В следствии, появилась идея создания системы, в которой была бы возможность эмитировать пользовательские токены, работающие на публичном Блокчейн. Сначала идея была реализована в подходе colored coins, в дальнейшем были разработаны отдельные блокчейн-платформы для выпуск пользовательских токенов.
На сегодняшний день данные платформы широко используется
Данная диаграмма - выборка c сайта https://coinmarketcap.com/ , где учтены токены, которые имеют ощутимую капитализацию. Общая капитализация представленных токенов составляет примерно 7 500 000 000 USD. Как видно из диаграммы - Ethereum является платформой лидером по выпуску токенов.
Наиболее популярные блокчейн-платформы
Важно отметить что, Блокчейн Counterparty и Omni не являются отдельными платформами, это метапротоколы, которые базируются на платформе Bitcoin.
Использование токенов
Задачи прикладного характера, которые могут стоять перед токенами:
- Обмен между двумя участниками системы
- Прием платежей
- Выплаты
- Обмен токенов
При решении данных задач, могут возникнуть следующие проблемы:
Проблемы, которые связаны с обменом токенов
В указанном примере обмен происходит на платформе Ethereum. Разберем более подробно: Алиса передала 10 токенов Бобу. Боб, недавно зарегистрировавшийся в сети Ethereum, в свою очередь, передает токены Кэрол, но транзакция не проходит, по причине того, что для проведения операции Бобу необходим валюта Ethereum. В результате перед Бобом стоит проблема того, что ему необходимо доложить Ether и знать, что ему необходимо это сделать, что несомненно усложняет проведение операции на платформе.
Проблемы при процессинге платежей
Процессинг платежей подразумевает использование токенов, например, для получения оплаты. При получении оплаты классическая схема идентификации платежа - это генерация нового уникального платежа, который связан либо с аккаунтом пользователя, либо с каким-то конкретным заказом и поступление активов на этот адрес означает то, что оплата завершена, либо то, что баланс пользователя пополнен. Соответственно, магазин генерирует определенные множество адресов на которые периодически поступают какие-то средства и в определенный момент, когда магазин собирается консолидировать средства, которые он получил и сделать перевод на свой общий адрес, он сталкивается с этой же проблемой. Теперь чтобы сделать перевод, необходимо ещё дополнительно на каждый адрес сделать транзакцию и «докинуть» эфир для проведения перевода. Соответственно, если это одноразовый адресата, стоимость комиссии возрастает примерно в 2 раза и это только для консолидации активов, которые были получены.
Для анализа других проблем, необходимо рассмотреть типы Блокчейн архитектур, на сегодняшний день существует два типа:
Основывается на аккаунтах (подход, который используется в Ethereum)
Достаточно простой для понимания подход: существует аккаунт с определенным адресом и балансом, он имеет свое состояние и любая транзакция, которая происходит в сети может воздействовать на состояния аккаунта, меняя его баланс.
Недостатки подхода:
Наиболее важный недостаток - отсутствие параллелизма, то есть транзакции не взаимосвязаны. Это может привести к тому, что пользователь произведет транзакцию и любой другой пользователь может ее повторить, так называемая replay атака. Для решения проблемы, было введено поле nonce. Данное поле означает порядковый номер транзакции и для ее проведения число nonce должно быть на одну единицу выше, что существенно замедляет процесс.
Еще один недостаток - нет возможности в рамках одной транзакции оплатить несколько счетов.
Также стоит отметить, что все токены, которые сейчас работают в сети, встроены внутри транзакции. То есть, любой токен на Ethereum - это встроенный кусочек информации внутри транзакции Ethereum.
UTXO архитектура - основывается на не потраченных выходах (используется в Bitcoin)
Весь Блокчейн состоит из транзакций, которые представляют собой цепочки транзакций. Каждая транзакция получает на входе не потраченный выход другой транзакции и с свою очередь, создает новый выход, который является не потраченным. В данном подходе отсутствует проблема параллелизма, но существует другая проблема - нет понятия состояния, это значит, что монета может быть либо потрачена, либо не потрачена.
Эволюционный шаг в решении проблем - проект BitcoinAsset:
- Нативные токены, которые естественным образом циркулируют в Блокчейн
- UTXO архитектура
- Связь с Блокчейн Bitcoin, что даст дополнительное преимущество - обмен токенов на Bitcoin без доверия
- Алгоритм консенсуса Proof of Stake
Для достижения естественной циркуляции токенов необходимо:
В Bitcoin любой выход транзакций подразумевает сумму транзакций и адрес на который она зачисляется. В эту структуру достаточно добавить одно поле, которое будет означать идентификатор токена, который переводится и получится система, в которой все токены будут переводится естественным образом. Данная система - аналогия Блокчейн Bitcoin, только с поддержкой многочисленных токенов.
Основная идея проекта - взять за основу Блокчейн Bitcoin и расширить протокол, наследуя скриптовый язык:
Учитывая то, что создается новый Блокчейн, есть возможность применить современные технологий без хардфорка или софтфорка, а заложив их изначально.
Агрегация подписей
Основная идея заключается в следующем: есть транзакция, на вход которой понадобится определенное количество не потраченных выходов, то есть монет. Каждый вход должен быть подписан. Каждая подпись - это примерно 72 байта. С помощью определенной техники можно агрегировать четыре подписи в одну, которая будет валидна для четырех входов. Соответственно в блок запишется не четыре поля по 72 байта, а одно, что существенно сократит объем Блокчейн и количество проведенных операций. В результате возрастет пропускная способность Блокчейн и скорость обработки новых блоков.
Segregated witness
Из иллюстрации видно: от транзакции вычисляется хэш, который покрывает все поля транзакции, кроме подписи. И второй хэш - witness хэш, будет покрывать и подписи. Данное решение оптимизирует структуру блока транзакций, поскольку появится возможность отделять подписи транзакций от процесса их передачи. В результате транзакции будут занимать меньше места, а блоки, соответственно, станут более вместительными.
Аналог технологии MAST
Merkelized Abstract Syntax Trees или Дерево Меркла - математической структура, комбинирующая различные пакеты показателей в единый хэш, который называется корень Меркса. Его суть заключается в том, что он может применяться в качестве подтверждения наличия конкретных показателей в дереве Меркла. Зная один элемент, можно подтвердить присутствие другого элемента, при этом, не зная о существовании третьего.
Обмен токенов
На платформе UTXO открываются возможности нативного обмена токенами:
Разберем на примере: Алиса хочет обменять 10 BST на другой токен. Она создает половинчатую транзакцию и подписывает ее SIGHASH_SINGLE, который блокирует только один вход и один выход. И эту половинчатую транзакцию предлагают другим пользователям дополнить. Соответственно любой другой пользователь, которого устраивают условия обмена, добавляет туда свой выход другого актива и ставит на вход актив Алисы. Подписание этой транзакции ведет к атомарному обмену, что естественным образом ложится на архитектуру Блокчейн.
Атомарный обмен между Блокчейн Bitcoin и новым Блокчейн
Боб хочет обменять bitcoin на другой актив. Его последующие действия: Боб создает две транзакции, берет свои не потраченные монеты и переводит их Алисе, но пока не подписывает транзакции. Затем он создает еще одну транзакцию, где эти же три входа переводит сам себе, подписывает эту транзакцию и отдает ее Алисе. В свою очередь, Алисе эта транзакция бессмысленна, так как она переведет токены обратно Бобу. Алиса создает новую транзакцию в Блокчейн, где на входе указывает ссылку на все три выхода, добавляет тот актив, который необходимо поменять и создает транзакцию со скриптом, который будет действовать следующим образом: если транзакция А зашла в Блокчейн, то актив принадлежит Бобу, если нет - Алисе.
Это значит что, если Боб подписывает транзакцию, то Алиса получает bitcoin, а Боб становится владельцем актива.
Алгоритм консенсуса
В сети Bitcoin и Ethereum используется алгоритм консенсуса Proof of Work.
Недостатки алгоритма:
- Высокое энергопотребление
- Слабое распределение и возможность атаки
Сейчас считается что, подтверждения 6 блоков - это безопасно, но это только когда атакующий владеет не более 10% мощностей, в противном случае безопасным будет дожидаться 10-25 блоков.
Алгоритм Proof of Stake
В самом простом виде данный алгоритм имеет ряд недостатков:
- Не защищен от атаки издалека, поскольку стоимость создания блока минимальна и перегенерировать всю цепочку, даже от нулевого блока, технически ничего не стоит.
- Около нулевая стоимость блока, что может привести к тому, что когда происходит ветвление Блокчейн, рациональное поведение участников майнинга - попробовать в нескольких цепочках, так как это ничего не стоит. В таком случае консенсуса в сети можно не достичь.
- Краткосрочные атаки, это также связано с низкой стоимостью создания блока.
Изучив существующие реализации Proof of Stake, наша команда предлагает свое видение решения вышеуказанных проблем:
- Пользователь должен внести депозит, это необходимо для вычета в случае отклонений от правил протокола, что позволит имитировать стоимость создания атаки
- Появляется такое понятие как слот, как то время, за которое должен генерироваться блок - по проведенным исследованиям среднее время 20 сек.
- Эпоха - это количество слотов, которое способно предотвратить атаку
- Алгоритм консенсуса предполагает определенное количество честных участников, в нашей системе допустимо до 45% нечестных участников
Экономические инициативы:
Блок опубликован - пользователь получает награду за публикацию и комиссию за транзакции, которые он обработал в данном блоке
Блок не опубликован - штраф, который высчитывается из депозита
Публикация сразу нескольких блоков - жесткое нарушение правил протокола, которое ведет к полной потере депозитаПроект уже функционирует http://bitcoinasset.org/