Да будет дождь… (или снег)
В конце 1970-х годов ученый-информатик Ральф Меркл запатентовал технологию хеш-дерева или дерева Меркла (вам достаточно знать, что эта структура данных относится к криптографии, которая является фундаментом технологии блокчейн). Еще через 20 лет Стюарт Хабер и У. Скотт Сторнетта использовали деревья Меркла для создания системы, в которой невозможно было подделать временные метки документов (в это тоже не стоит вникать, просто знайте, что это стало прорывом в истории «блокчейн»).
Технология продолжала развиваться, и в 2008 неизвестный человек или группа под псевдонимом Сатоши Накамото воплотили то, над чем работали предыдущие поколения в нечто, ставшее сенсацией - «блокчейн» обрел совершенный вид, который мы наблюдаем по сей день.
В ответ на неочевидный факт в головах людей появляются вопросы. Что такое блокчейн? Зачем блокчейн? Как его применять? Майнеры… кто такие майнеры? Узлы… консенсус, транзакции, хеширование…
Понимаю, технология обширная и интересная, поэтому мы изучим каждую ее деталь. Вам не будет сложно, если вы доверитесь мне и найдете в себе силы вникнуть в смысл каждого предложения. По мере чтения определения будут поясняться, а следовательно и осознание каждой детали придет со временем.
Вы жаждите информации, верно?
Технология блокчейн — это усовершенствованный механизм базы данных (большинство из вас работали с exel, во многих магазинах ведется учет товаров, их цен, а также времени, когда эти товары были проданы, тут что-то похожее, но совершеннее), который позволяет организовывать открытый обмен информацией в рамках сети. Представьте сеть как комок комков нитей. У каждого «сгустка» есть начало и конец. Все они переплетаются между собой, образуя единую сеть.
База данных блокчейна хранит данные в блоках, связанных между собой в цепочку, поэтому и технология называется block chain - цепочка блоков. Скоро вы поймете, что из себя представляют блоки.
Данные являются хронологически последовательными, поскольку нельзя удалять или изменять цепочку без консенсуса со стороны сети. Большинство участников распределенной блокчейн-сети должны подтвердить, что записанная транзакция является действительной - именно это и называется консенсусом.
Теперь мы можем помечтать. Если в ваших руках откажется 51% мощностей сети, что называется «атака 51%», вы сможете контролировать процесс консенсуса и изменять данные в блокчейн по своему усмотрению. Совершение фальшивых и отмена уже подтвержденных транзакций, двойные траты (приятно было бы вывести баланс 10 раз). Красота, правда? Однако позволить себе это сможет не каждый ввиду гигантской стоимости реализации.
Стоит дополнить ваши выводы из вышепрочитанного (надеюсь они есть).
Если мы забудем о возможности завладеть большей частью сети и творить любые пакости (то есть изменять реестр и пренебрегать любыми установленными правилами), блокчейн обладает неизменностью, то есть данные не могут быть изменены. Ни один участник не может вмешаться в транзакцию после ее внесения в реестр. Если запись содержит ошибку, то для ее исправления необходимо добавить новую транзакцию. В сети будут отображены обе транзакции.
Хорошо, на несколько вопросом вы ответ уже получили, но зачем блокчейн? Какие проблемы он решает?
Представьте, что вы планируете купить машину. В традиционной ситуации существуют проблемы с доверием и безопасностью. Как покупатель, вы можете отправить деньги, а продавец будет утверждать, что не получил их. С другой стороны, продавец в силах утверждать, что вы не отправили деньги, даже если это ложь. В итоге, хоть такие ситуации и происходят нечасто (ведь серьезные организации ценят свою репутацию), дело доходит до юридических разбирательств, которые отнимают силы, время и ресурсы. Примеров тут может быть намного больше, но с другими активами. Никто в нашем мире не защищен от обмана.
Тут и проявляется польза технологии. Блокчейн предоставляет специальную систему, в которой все транзакции записываются и хранятся безопасно. Когда вы отправляете деньги, эта транзакция должна быть одобрена большинством других незаинтересованных в обмане участников сети (почему незаинтересованных вы поймете, когда я расскажу о майнинге) и автоматически обновлена в реестре в режиме реального времени. Это означает, что если одна из сторон попытается решиться на мошенничество, то большинство других участников сети это заметят и «защитят» потенциально пострадавшую сторону от потери средств (если говорить простыми словами, мошенника быстро найдут и..).
Я залезу немного вперед, ведь должен рассказать об этом во второй части, но блокчейн позволяет создавать "умные контракты" - smart contracts. Это программы, созданные для автоматического выполнения условия сделки. Например, вы можете создать умный контракт для продажи машины, где деньги будут автоматически отправлены продавцу, когда машина будет передана покупателю. Такая возможность позволяет избегать споров, потери времени и обеспечивает надежность сделок. Никаких посредников. Только единицы и двойки (вообще нули, но видимо кто-то воспользовался атакой 51% и изменил ноль на двойку).
Какие еще есть преимущества у технологии блокчейн?
Всегда есть риск, что кто-то будет манипулировать базовым программным обеспечением, чтобы заработать деньги нечестным путем. Скамеры, кардеры, эмо, готы (это уже не туда залез). Но три принципа блокчейна — криптография, децентрализация и консенсус — обеспечивают максимально безопасную базовую систему, в которую практически невозможно вмешаться. У системы нет слабых мест, и ни один пользователь не сможет внести изменения в записи транзакций (помним про атаку 51%).
Операции между коммерческими структурами могут быть трудоемкими и занимать много времени, особенно в отношении соответствия требованиям при участии третьих сторон. Прозрачность и использование смарт-контрактов, ускоряют подобные деловые операции и делают их более эффективными.
Компании должны иметь возможность генерировать, обменивать, архивировать и восстанавливать электронные операции надежным, поддающимся проверке способом. Записи хранятся в хронологически неизменном порядке. Такая прозрачность данных значительно ускоряет проведение аудита.
Выходит, что технология блокчейн (развеивание мифов, биткоин это и блокчейн и монета на блокчейн битокин, рекурсия уже выходит…) совсем не фантик и не способ отъема денег у граждан, как пытаются донести до масс многие сми и заинтересованные лица, а вполне реальная инновация.
Осталось понять, шаг за шагом, как именно все функционирует.
Вы отправляете деньги на свой левый кошелек (одиночество добралось и до крипты), происходит запись транзакции в блокчейн. Блокчейн-транзакция отражает перемещение физических или цифровых активов от одной стороны к другой в блокчейн-сети. Она записывается в виде блока данных и может включать следующие сведения: участники сделки, время проведение сделки, где была проведена сделка, размер переведенных активов, количество выполненных предварительных условий в ходе сделки.
После того, как программное обеспечение блокчейн наиграется с кучей вопросов, должно произойти достижение консенсуса. Большинство участников распределенной блокчейн-сети должны подтвердить, что записанная транзакция является действительной. В зависимости от типа сети правила соглашения могут различаться, но, как правило, они устанавливаются в начале процедуры. Когда участники достигают консенсуса, транзакции в блокчейн записываются в блоки. Тут происходит запоминание, сейчас мы углубимся в одно из определений, а позже продолжим наши шаги. Запоминаем!
Зачем блоки?
Представьте, что у вас есть блокчейн для записи и отслеживания сделок с недвижимостью. Каждая сделка представляет собой транзакцию, которую нужно записать в блокчейн. Допустим, есть несколько участников в блокчейн, включая покупателей, продавцов и проверяющих (назовем их майнерами, скоро о них поговорим). Когда сделка с недвижимостью происходит, она отправляется в сеть блокчейна и доступна всем участникам. Чтобы достичь консенсуса, майнеры собирают несколько транзакций в блок. Например, пусть блок будет содержать транзакции о покупке нескольких домов. Когда майнеры достигают консенсуса относительно состояния блокчейна и порядка транзакций, этот блок считается завершенным.
Теперь, когда блок завершен, он добавляется в цепочку блоков, образуя блокчейн. Каждый блок имеет ссылку на предыдущий блок, что обеспечивает связь между ними. Таким образом, блокчейн формирует непрерывную последовательность блоков, похожую на страницы реестра.
Когда блок записан в блокчейн, содержащиеся в нем транзакции становятся неизменяемыми и доступными для всех участников. Это означает, что каждая сделка с недвижимостью, зафиксированная в блоке, будет сохранена в блокчейне и невозможно будет изменить или стереть эту информацию. Такие дела..
Вспоминаем! Не зря запоминали.
Вместе с транзакциями в новый блок добавляется криптографический хеш (про это мы скоро очень подробно поговорим). Хеш действует как цепочка, связывающая блоки вместе. Если содержимое блока намеренно или случайно изменяется, меняется и значение хеша, что помогает обнаружить подделку данных.
Выходит, что блоки и цепочки надежно связаны, а их редактирование невозможно. Каждый дополнительный блок усиливает проверку предыдущего блока и, следовательно, всего блокчейна. Такой принцип схож со строительством башни из деревянных блоков. Блоки можно складывать только сверху, а если убрать один блок из середины, то рухнет вся башня.
И тут последний шаг, система распространяет среди всех участников последнюю копию центрального реестра (правильно сказать среди всех нод, то есть узлов, но об этом вы узнаете дальше).
В итоге на вашем левом кошельке теперь 5 битков. Можете купить на них самолет.
Почти конец - тоже новое начало.
Я бы мог рассказать о типах блокчейн-сетей, но из всех них вам нужно знать лишь о публичных. Такие блокчейны не требуют разрешений и позволяют любому желающему присоединиться к сети. Все участники блокчейна имеют равные права на чтение, редактирование и проверку информации
Все готово. Осталось понять кто такие майнеры, какую именно работу они выполняют и как, а также где хранится информация обо всех транзакциях, то есть где именно хранятся копии центрального (корневого) реестра.
Сейчас будет больно и сложно, однако вы сможете почувствовать себя полу-программистами.
Мы уже шли шаг за шагом в надежде понять, как именно работает блокчейн, но теперь мы погрузимся глубже, приняв во внимание деятельность майнеров, только благодаря которым технология может функционировать.
Каждому из вас важно узнать о самых популярных алгоритмах консенсуса (то есть как именно достигается соглашение между участниками сети), майнинге, стейкинге и криптографической задаче, которую решают участники майнерской сети.
Консенсус в широком смысле этого слова означает способ прийти к соглашению. Важное свойство блокчейна состоит в том, что участникам сети совершенно не обязательно доверять друг другу, как в централизованной системе, достаточно просто договориться о правилах, которые будут устраивать всех.
Тут я хочу сделать небольшое отступление и наконец ответить на вопрос. Зачем нужно владеть фундаментальными знаниями, которыми я с вами делюсь?
Осознавая всю фундаментальность, то есть концепцию технологии, которая применяется в определенном активе, вы начинаете понимать, во что инвестируете.
У крупных инвесторов, фондов и корпораций, двигающих криптоиндустрию, есть определённые цели (корыстные или нет, в любом случае у них есть скрытые цели, о которых никогда не расскажут, однако вы, опираясь на собственные знания, становитесь способными анализировать происходящее и извлекать из этого выгоду) в развитии данных технологий, важно понимать, в какую сторону они смотрят, так как имеют большое влияние на движение цены (вы наверное думали, что на рынке все честно, все добрые, искренние, однако все не так… манипуляции, манипуляции, манипуляции, скоро поговорим об этом)
Знайте, чем вы владеете, и почему.
Его имя POW и суть его - фундамент.
Самый известный механизм консенсуса - Proof of Work, доказательство работы, то есть механизм достижения соглашения между пользователями сети с публичным доказательством проделанной работы (можем утрировать - проделал работу, все это увидели, подтвердили, ты получил вознаграждение, мир стал лучше).
POW тесно переплетен с майнингом (давайте забудем о том, что по факту это бесполезная задача, придуманная людьми с одной целью - быть той самой «работой», которую нужно «доказать», вот и выходит Proof of Work) - процессом добычи биткоина и других криптовалют, в результате которого в блокчейн добавляется новый блок транзакций и происходит эмиссия (это как сша печатают доллары в неограниченном количестве - именно эта печать и называется эмиссией, то есть добавление новых «зеленых бумажек» в «море» уже «существующих», кстати у биткоина эмиссия ограничена, поэтому он дефляционный) или выпуск новых монет - это вознаграждение майнера за проделанную работу и потраченную электроэнергию в процессе майнинга.
Добавление новой транзакции требует от сети затрат энергии на решение определённой криптографической задачи. Не получится просто добавить в блокчейн очередной блок – надо потратить реальные деньги на оплату электричества или покупку оборудования, необходимого для решения этих крипто-задач.
Вот то самое углубление в рубрику «шаг за шагом». Как именно проходит цикл добавления транзакции в блокчейн?
Вы переводите свою криптовалюту на свой левый адрес в блокчейне (подружка у вас пока еще не появилась, вы все таки еще учитесь). Информация о вашей транзакции помещается в общий реестр, который называется mempool. К нему имеют доступ все майнеры сети. Данный список постоянно пополняется новыми транзакциями, оттуда майнеры берут себе то количество операций, которое могут обработать (это не буквально, руками никто ничего не берет, все в автоматическом режиме делает запрограммированный софт). Затем для каждой транзакции решается сложная криптографическая задача (скоро вы узнаете, что это за «бесполезный монстр»). Если майнеру удаётся решить задачу, он отправляет решение на устройства других участников сети. Остальные проверяют, верно ли решена задача и правильно ли сконструирована цепочка блокчейн.
Если всё верно, блок добавляется в блокчейн. Здесь стоит сказать о том, что добавляется блок, подготовленный майнером, который первым решил задачу. Майнер с наибольшей вычислительной мощностью с большей вероятностью решит задачу первым. То есть, как вы уже могли понять, выходит, что везение - тоже одна из составляющих майнинга, а именно механизма консенсуса POW.
Давайте поэтапно, делаем вывод. Вы совершаете транзакцию, информация о ее совершении помещается в базу для майнеров - mempool, майнеры проворачивают свои грязные делишки, то есть решают криптографическую задачу, и если это выходит, другие майнеры выполняют проверку. Все верно? Тогда в блокчейн добавляется блок, присланный на проверку первым решившим. Это победа.
Но что именно делают майнеры? Что из себя представляет эта криптографическая задача?
Для начала стоит понять, что такое хэш-функция. Это математический алгоритм, который отображает данные произвольного размера в битовый массив фиксированного размера, буквально, произведение Алигьери Данте «Божественная комедия» можно превратить в 16-ричный набор букв и цифр. Для тех кто не учил информатику, мы пользуемся 10-тичной системой счисления - 0123456789. В 16-ричной используется 16 символов - 0123456789abcdef. Хеш примерно выглядит так - 0xdd8b990525464840dc73ec99cdf00ed0087fbe23098248f47eac7d89ef420aeb.
Это функция вида f(X+N)=H, где X - любой набор символов неограниченной длины (информация, записанная в блоке), H - это значение хэш-суммы (то, что я уже показал вам выше), а N - свободная переменная, в криптографии эту переменную называют nonce, она представляет собой любое значение от 1 до 4 миллиардов. Результатом шифрования или хэширования является «хэш-сумма», или просто хеш. У этой функции есть много свойств, но вам важно понимать лишь то, что хеш необратим. Вы можете превратить информацию в хеш, но получить из хеша информацию никак (только если перебором, но уникумов на это готовых пока нет). Также стоит знать, что любое изменение информации приводит к другому результату. Например слово «Эмо» и слово «Гот» будут иметь разные хэши.
Также есть разные алгоритмы хеширования, написанные умными программистами, но чаще всего используется sha-2(256), это значит что вне зависимости от размера входящих данных (даже книга на 50000 страниц), хеш всегда будет иметь фиксированную длину в 256 бит.
Наконец разберёмся, что за задача стоит перед майнерами в сети блокчейн. Итак, вся информация, находящаяся в блоке X (помним про f(X+N)=H, кстати не думайте что функция - вещь сложная, ведь это простое представление входящих данных, представьте коробку, которая удваивает любую лежащую в ней вещь - вы кладете 2 банана, получаете 4, также работает и функция изменяя что-то внутри себя по заданному алгоритму) подлежит шифрованию посредством алгоритма SHA-2(256), в ходе чего мы получаем хэш-сумму H. Алгоритм блокчейн устанавливает некоторую минимальную границу значения хэша, пусть это будет число Y. Майнер в свою очередь считает хэш-сумму всего блока и сравнивает её с минимальной границей Y. Если условие H<Y выполняется, то задача считается решённой, если нет - майнер меняет свободную переменную nonce и снова применяет алгоритм sha-2(256) до тех пор, пока условие задачи не выполнится (ну разве не бред, бьются как бараны головой об стену в надежде получить вознаграждение, эх, люди…). При изменении N на единицу значение хэша полностью меняется, причём, меняется непредсказуемо - нет никакой закономерности между тем, как изменился nonce, и тем, как изменится результат хэш-функции (помните, выше я писал, что разная информация выдает разные хеши?). По крайней мере, пока что никому не удалось такую закономерность найти. Поэтому все майнят простым перебором nonce.
Вот мы и выяснили, что именно делают майнеры. Придумали себе сложную математическую задачу, тратят электроэнергию, создают сообщества, зато эмиссия ограничена, да и вообще криптовалюта - новое золото. Ирония это хорошо, но пора рассказать и о других механизмах консенсуса.
Кто они - другие?
Я расскажу подробнее лишь про стейкинг, потому что он обладает преимуществами над POW, да и большинство проектов выбирают для себя именно этот механизм.
Все остальные алгоритмы либо используются редко, либо мне они неинтересны.
Proof of Stake - механизм достижения соглашения между пользователями с доказательством доли владения, то есть больше крипты имеешь, значит и влияния тоже. Пользователи хранят или стейкают крипту для обеспечения работоспособности блокчейна.
Как происходит транзакция? Вы совершаете транзакцию, опять же на свой левый кошелек, все транзакции автоматически отправляются в пулы и распределяются между валидаторами посредством смарт-контрактов (снова я залез во 2 часть, потерпите). Узлы, называемые валидаторами стейкают криптовалюту (скоро об узлах поговорим). Размер монет в стейкинге называется ставкой. Валидаторы с большей ставкой будут выбраны для обработки транзакции и создания блока. Другие валидаторы проверяют, является ли блок действительным. Если он действителен, все участвующие валидаторы получают комиссию за транзакцию. Если нет, то валидатор, создавший блок, может потерять свою долю, потому что будет считаться недобросовестным. Все узлы добавляют новый блок в свою копию блокчейна, и ваша транзакция проходит. Вы снова можете купить самолет.
У каждого блокчейна на механизме POS есть свои условия для получения статуса валидатора. Например в Ethereum придется держать на счету 32 ETH, а сегодня это 108 000$.
Почему вообще решили создавать новые механизмы? Разве старый плох?
В какой-то степени, майнинг в POW - сложный процесс, требующий больших вычислительных мощностей для получения новых блоков. Вам придется приобретать асики или видеокарты, что позволить себе сможет не каждый (как будто 32 ETH сможет…).
Теперь о других. Delegated Proof-of Stake - каждый пользователь может голосовать за валидаторов - тех, кто одобряет транзакции.
Proof of Importance - как POS, но помимо рассмотрения количества участников, владеющих валютой, алгоритм анализирует их поведение: где, когда и насколько часто монеты ими передаются. Hybrid PoS/PoW - позволяет одновременно использовать и Proof of Stake, и Proof of Work процедуры для достижения консенсуса. В этом случае можно достичь баланса между майнерами и держателями монет, создав систему управления со стороны «внешних» (майнеры) и «внутренних» (держатели) участников.
В общем дичи много, ведь человеческая фантазия безгранична. Что-то становится «трендом», что-то из мира крипты исчезает. Учитесь думать и анализировать, а нам осталось узнать о нодах, и на этом первая часть будет закончена.
Теперь точно конец.
Много говорить тут не придется. Вам просто достаточно представить сеть, которую плетет паук, а точки пересечения паутинок будут узлами. Все узлы связаны между собой и выполняют определенные функции.
Полные ноды хранят полную копию блокчейна и выполняют все функции, связанные с проверкой, обработкой и подтверждением транзакций. Майнинговые занимаются добычей криптовалюты или добычей новых блоков в блокчейн-сети, решая сложные математические задачи, чтобы создать новые блоки и добавить их в блокчейн. Узлы-партнеры устанавливают партнерские отношения между различными участниками блокчейн-платформы, или, другими словами, вводят новые условия и возможности для других нод. Легкие ноды не хранят полную копию блокчейна, а могут запрашивать информацию у других нод. Требуют меньше ресурсов и предназначены, скорее, для мобильных устройств. Голосующие ноды участвуют в процессе голосования по принятию решений в блокчейн-сети: например, по изменениям в протоколе блокчейна или важным решениям, касающимся сети. Есть и валидаторы, о них мы говорили в контексте POS.
А вот тут интереснее. Об этих необычных «существах» я расскажу в других частях, однако есть такие ноды как оракулы - механизмы которые обеспечивают доступ к внешним данным и информации, которая не может быть достоверно получена из самого блокчейна. Оракулы получают данные из разных источников, вроде API (Application Programming Interface - программный интерфейс приложения) внешних сервисов, сенсоров устройств IoT (internet of things - интернет вещи) или других блокчейн-сетей. Затем они передают эти данные в блокчейн, где умные контракты могут использовать их для автоматического выполнения заданных условий. Они в какой-то степени являются связующим звеном между нашим web2.0 миром и миром блокчейн. Как именно они работают, я расскажу в других частях, но это одни из самых удивительных составляющих мира крипты.
Я мог бы рассказать еще и о форках, и о том, как ноды принимают решения, но это не обладает особой значимостью, поэтому могу вас поздравить, вы завершили первую часть.
Вы узнали об истории технологии блокчейн, осознали концепцию и теперь можете объяснять своим знакомым, как именно эта технология работает, раскрыли тайну майнеров и раскусили их грязные делишки. В ваших головах должна была сложиться цельная картина, однако это не всегда происходит с первого раза. Крипта будет развиваться и скоро станет обыденностью для каждого. К этому моменту вы будете готовы.