Каждый раз, начиная разговор о двух ведущих криптовалютах, перед специалистами встает вопрос об их преимуществах и недостатках, о том, почему на первом месте стоит именно Биткоин, и какова причина того, что Эфир не может занять его место.
Редакция нашего журнала взяла интервью у специалиста по блокчейн-технологиям и смарт-контрактам, Александра Мёдова. Он рассказал о том, возможен ли выход Эфира на первое место, что лучше – Эфир или Биткоин, а также о выборе криптовалюты в качестве долгосрочной инвестиции.
Александр Мёдов о преимуществах и недостатках Эфира:
«Хотя Ethereum и появился через 5 лет после Bitcoin и во многом взял из него самое лучшее – есть в Ethereum и некоторые странные, неочевидные, зачастую откровенно неприятные особенности. Из-за которых говорить вот так однозначно, «Ethereum лучше Bitcoin-а» – нельзя, он не лучше и не хуже, каждый из них решает свою задачу.
При этом если обо всех преимуществах (абсолютно децентрализованное выполнение dApp/«децентрализованных приложений», создание частных криптовалют-токенов с управляемой логикой, интеграция процессов между такими валютами), как правило, уже давно рассказано на множестве сайтов, то проблемы и недостатки – это то, с чем многие сталкиваются совершенно неожиданно для себя.
И на удивление, одной из первых проблем, с которой столкнётся любой человек, решивший внедрить, например, «приёмы платежей Ethereum/ERC20» (даже в том случае, если до этого он уже успешно внедрил приём Bitcoin/Litecoin), будут... именно платежи. Обычные платежи, ничего сверх-навороченного. Попытка использовать Ethereum так, как используют Bitcoin.
Дело в том, что в архитектуре Bitcoin в своё время была реализована чудесно подходящая именно для платежей/микроплатежей концепция UTXO. Может, она не настолько удобна для запуска dApp-ов и работы с ними; но для платежей – самое то.
Не вдаваясь слишком глубоко в технические подробности, “UTXO” означает, что любой платёж, любая транзакция может взять одну или несколько (!) «кучек» денег/криптомонет – возможно, которые сейчас принадлежат совершенно не связанным между собой секретным ключам. И превратить их в несколько других «кучек криптомонет», передав их на разные адреса. Самый важное слово в этом описании – что на входе может быть НЕСКОЛЬКО кучек, несколько балансов. Из соображений безопасности когда-то это было даже популярной рекомендацией – создавать новый секретный ключ (и новый адрес) на каждый ожидаемый входящий платёж.
И в то же время в Ethereum любой платёж, любая транзакция в самой сети подписываются одним и только одним (!) секретным ключом, который её инициирует (и платит сетевые комиссии).»
Ethereum (Эфириум, Эфир) является единовременно как криптовалютой, так и функциональной децентрализованной средой, коренным образом изменившей все криптовалютное пространство.
Проект «Ethereum» стартовал в 2014 году, через продажу токенов в общей сложности было собрано 31549 BTC. Одним из основателей Ethereum является всем известный Виталик Бутерин.
Целью создания Эфира, конечно, было разработка улучшенной версии Биткоина. Однако, эфир сложно назвать биткоином. Возможно, они имеют какие-то сходства, но в большинстве своем между ними есть множество отличий.
Разработчик ПО, специалист по блокчейн-технологиям и смарт-контрактам, Александр Мёдов, коротко о главном:
«UTXO-подход (Bitcoin) – это транзакция от N отправителей (секретных ключей) M получателям (адресам).
«Аккаунтный» подход (Ethereum) – это транзакция от 1 отправителя (секретного ключа) M получателям (адресам).
И разница между такими подходами очень сильно проявляется именно в вопросе приёма/отправки платежей. Не столько во время приёма (какая там разница – и в том и в другом случае «монеты» просто отправляются на «адреса»). А именно последующего использования полученных активов.
Вспомните любые криптобиржи, криптообменники, даже принимающие криптовалюту интернет-магазины. Наиболее простой и комфортный для пользователя способ идентифицировать пользователя – это выдать ему уникальный адрес, идентифицирующий или конкретный ожидаемый платеж, или все платежи от такого пользователя. И сказать пользователю: «просто переведите такую-то сумму на такой-то адрес, и мы это учтём».
(Любители dApp-ов тут же предложат разработать «dApp для принятия платежей» и этим откроют отдельный, совершенно уникальный ящик Пандоры. В случае, если децентрализованность получения платежей сама по себе вам не важна и не входит в бизнес-требования – лучше с этим не связываться: во многих нетипичных случаях вам очень пригодится возможность воспользоваться секретным ключом для входящего платежа напрямую – поверьте, пользователи могут быть очень изобретательны в плане «сделать что-то не так, как ожидалось»).
Ethereum дал абсолютно новые возможности по созданию децентрализованных проектов и стартапов на основе блокчейн и умных контрактов.
Запуск Ethereum основательно пробудил все криптовалютное пространство, представив многогранность и гибкость блокчейн. Создатели платформы создали пространство с рациональными инструментами, где любой человек без специальной подготовки может создать стартап или приложение децентрализованного характера.
«Итак, допустим, магазин, продавший 1000 товаров по 0.001 BTC, получил тысячу платежей на тысячу адресов, управляемых тысячей секретных ключей для BTC. Аналогично, магазин, продавший 1000 товаров по 0.001 ETH, получил тысячу платежей на тысячу адресов, управляемых тысячей ключей для ETH. Как теперь два этих магазина могут воспользоваться полученными 1 BTC и 1 ETH?
«Биткойн-магазину» будет очень просто. Если он захочет перевести куда-то ровно 1 BTC – он может сделать UTXO-транзакцию, включающую в себя тысячу «входов» и один «выход». Приложить тысячу подписей (этой самой тысячей ключей). И потратить сразу «всю свою кассу» одной транзакцией. Кстати, это не преувеличение – в истории блокчейна Bitcoin действительно можно найти как «бесполезные» (сделанные с «нулевыми данными», явно для эксперимента) транзакции аж на 20 тысяч входов, так и вполне разумные и содержательные транзакции на несколько тысяч входов.»
А что делать «Ethereum-магазину»?
Вы же ещё помните, что каждая Ethereum-транзакция контролируется одним и только одним секретным ключом? Да, как вы уже догадались, чтобы «собрать 1 ETH», придётся сделать тысячу промежуточных «консолидирующих» транзакций, отправив всю эту пришедшую тысячу платежей на один адрес. Заплатить тысячу комиссий сети. И в конечном итоге вам придёт значительно меньше, чем ожидаемый «1 ETH» (которым вы уже сможете воспользоваться только на тысячепервую транзакцию). Всё ради удобства пользователя, всё, чтобы пользователю было максимально просто перевести платёж в магазин/сервис.
Отступление: на самом деле, в переводе ETH можно было бы указать, например, какие-то дополнительные данные (хоть это и добавляет сложности пользователю и даёт ему ещё одно место, где он может ошибиться, после чего потребуется разбираться с его платежом вручную). Можно было бы попросить пользователя «переведите нужную сумму ETH на такой-то адрес, и в примечании к платежу укажите такой-то код», и именно по этому коду идентифицировать его платёж. Но если это и сработает при переводе ETH, то вот в стандарте ERC20 никаких «примечаний» не предусмотрено, и поэтому как только мы от приёма ETH переходим к приёму ERC20, то волей-неволей придётся идентифицировать пользователя (или платёж от него) по выданному ему разовому адресу, контролируемому разовым секретным ключом. Поэтому логично делать одинаковую систему приёма и для того и для другого.
Проблема с account-based model в Ethereum уже достаточно заметна при переводах ETH. Но где приём ETH, там и приём ERC20-токенов, не так ли? С ними ситуация становится совсем критической.
Итак, представим третий магазин, например, принимающий ERC20-токены USDT. И продавший 1000 товаров по 0.001 USDT. У него есть тысяча платежей на тысячу «разовых» адресов, управляемых тысячей ключей. Как ему собрать весь 1 USDT и заплатить им?
И если вы, по аналогии с предыдущем, тут же ответили «да всё понятно; в биткойне это был бы один платёж с 1000 входов; а в ETH это будет тысяча переводов, собирающих микроплатежи на одном адресе, и только потом тысячепервым платежом получится перевести уже 1 ETH или то что от него осталось; и тут, наверняка будет так же»,... то нет, к сожалению, вы ошиблись. В случае с ERC20-токеном понадобится не 1001 платёж, а 2001 платёж.
Вы ведь помните, что покупатели переводили на эти «разовые» адреса именно USDT-токены, и по этим адресам ничего, кроме USDT, нет? А для перевода с каждого адреса нужно… правильно, заплатить комиссию сети, в ETH. И заплатить её должен ИМЕННО ЭТОТ адрес – именно этот секретный ключ, контролирующий адрес (потому что в методологии Ethereum единственный ключ, подписывающий транзакцию, также и оплачивает её). А раз так – получается, что надо:
- На каждый адрес посчитать и кинуть достаточно ETH, чтобы хватило на последующий перевод ERC20-токена с него. 1000 транзакций.
- С каждого адреса – перевести ERC20-токен на общий консолидирующий адрес. Если на адресе остались незадействованные ETH –… возможно, они так и останутся там навеки, потому что их может быть слишком мало, чтобы перевести их отдельно. Ещё 1000 транзакций.
- И только после этого, получив на одном адресе 1 USDT (и потратив при этом комиссии на 2 тысячи транзакций), получится воспользоваться всей суммой.
Это всё можно было бы значительно упростить, добавив в Ethereum возможность мультисигнатурных подписей транзакций прямо на уровень протокола (и в том числе, позволить одному аккаунту платить комиссии за операции другого аккаунта) – но такой функциональности, привычной по Bitcoin, в Ethereum пока не планируется. К сожалению, многое из этого не может быть реализовано средствами dApp-ов, сохраняя полноценную обратную совместимость с уже имеющимися токенами и dApp-ами.
При всех положительных качествах и возможностях архитектуры Ethereum, «универсальность» в нём приходит вместе с дополнительной сложностью и новыми ограничениями. И именно для «децентрализованного платёжного решения» архитектура Ethereum вовсе не лучше узкоспециализированных решений.»
Благодаря экспертному мнению Александра Мёдова мы смогли увидеть другую сторону криптовалюты и подробнее ознакомиться с тонкостями проведения транкзаций. Александр подробно разъяснил причины недостатков и способы их устранения.
Подробное описание всех нюансов с яркими примерами дало нам иное понимание многих моментов, но также мы подчеркиваем, что мнение эксперта является субъективным, рассматривать его как совершенно верное или наоборот – не стоит.
Подробнее о возможностях эфириума рассказывается в нашей статье «Возможности Ethereum – почему Эфир не обогнал биткоин?»