Web3. База №1. Криптовалюта.
По результатам опроса, у нас тут аж 50% людей как минимум знает, что такое смарт-контракты в Эфириуме! Это очень круто, с одной стороны. А с другой – надо подтянуть остальную половину, чем я и займусь в этом посте. Буду рассказывать базу и дам несколько ссылок для более глубокого погружения, чтобы сильно не растягивать материал новичкового уровня.
Начнем с криптовалют.
А еще лучше, с цифровых валют. Цифровая валюта – это, грубо, база данных счетов и циферок на этих счетах. Плюс сервера и код, который заставляет значения в этой БД меняться при переводах, снятиях и все в таком духе.
Цифровые валюты бывают как привязанными к каким-то государственным (фиатным) валютам, так и нет. Например, золотые монетки в ММО-играх – это вполне себе цифровая валюта, которая ни к чему не привязана. А вот цифровой рубль, который вот-вот запустится у нас в стране – привязан к рублю фиатному, то есть один цифровой рубль всегда может быть обменян на рубль на вашем банковском счету. Или WMZ от когда-то популярной Webmoney – это также цифровая валюта, привязанная уже к доллару.
Непривязанные ни к чему (виртуальные) цифровые валюты нам не интересны, так как они существуют только в рамках своей экосистемы, и никому не нужны вне ее. А вот привязанные – уже более полезны, ведь ими можно обмениваться между собой, обналичивать или совершать на них покупки самых настоящих товаров. И все бы с ними было хорошо, если бы не одно "но" – централизованное управление. Соответственно, пользователи такой валюты должны полностью доверять ее эмитенту (лицу, который занимается ее выпуском, а также обеспечением работоспособности). А он, в свою очередь, имеет полный доступ как к БД, так и к железу и программному коду.
Хорошо ли это? Ну, частично, да. Эмитент может исправлять ошибки в коде, если они есть, блокировать мошеннические транзакции и счета мошенников целиком, осуществлять возврат украденной валюты. Вы всегда можете обратиться к эмитенту с просьбой восстановить доступ к своему счету, если вдруг потеряли его по какой-то причине.
А теперь про минусы. Так как эмитент – царь и бог в рамках экосистемы своей валюты, он может устанавливать любые правила ее использования (обычно в рамках закона, но не всегда). В случае нарушения этих правил (даже непреднамеренного) – ваш счет может быть заблокирован и вот вы уже должны лично явиться со всеми документами в единственный офис эмитента на другом конце страны (или земного шара).
Ошибочно сработала антифрод система – "не забудьте ваш паспорт".
Показалось, что вы злоупотребляете кешбеком – "наш офис работает с 9 до 18".
"Ой, вы просто однофамилец того должника? Списанные средства вернутся в течение месяца".
Или если у эмитента вдруг отзывают лицензию – ваши средства могут пропасть очень и очень надолго. А еще, эмитент может решить подкрутить циферки в базе, чтобы насыпать своей валюты какому-нибудь непростому человеку, что вызовет инфляцию. Про санкции и массовые блокировки счетов по разным интересным признакам даже и говорить не буду.
Для решения этих проблем уже давно происходили попытки создать децентрализованную цифровую валюту. То есть чтобы все то же самое, но без единого центра управления. Чтобы однажды был задан некий набор прозрачных и проверяемых правил такой системы, а дальше оно как-нибудь само все эмитировалось и работало, но никто не мог контролировать (и менять) поведение этой системы.
Очевидно, что раз единого доверенного центра в такой системе существовать не должно, то состоять она должна из множества узлов, которые независимы друг от друга, и нет среди них более или менее доверенных. При этом, каким-то образом все они должны иметь одинаковое достоверное знание о балансе всех счетов в системе и проводимых транзакциях. Задача, в общем-то, весьма непростая.
Предлагались разные подходы, но ни один не мог полноценно решить все возникающие проблемы: двойное использование одних и тех же средств, replay-атаки, DDoS, злонамеренную централизацию системы и многие другие. Десятки лет эта задача не решалась. А именно, до 2008 года.