Александр Цихилов - Блокчейн. Принципы и основы
- Название:Блокчейн. Принципы и основы
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:2019
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Александр Цихилов - Блокчейн. Принципы и основы краткое содержание
Помимо истории возникновения и описания технологии, в книге рассмотрены наиболее популярные проекты, реализованные на блокчейн, уже существующее и потенциальное применение в различных отраслях, а также проблематика взаимоотношений блокчейн-проектов и государств. Наконец, автор подробно разбирает самые востребованные и популярные темы — инвестиции в криптоактивы, связанные с ними риски и перспективы развития блокчейн. Книга адресована широкому кругу читателей и будет интересна как техническим специалистам, так и аудитории, далекой от финансовых и IT-технологий.
Блокчейн. Принципы и основы - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
этого участника, то есть сослаться на них как на доказательство владения
определенными активами. Причем сослаться можно не на какую-то одну
конкретную транзакцию, а сразу на несколько, если одной будет недостаточно
для того, чтобы набрать необходимую сумму для исходящего платежа.
Когда банк переводит деньги с одного счета на другой, он проводит следующие
три операции: вычитает сумму перевода и сумму комиссии за перевод со счета
отправителя и добавляет сумму перевода на счет получателя. Комиссию же
банк оставляет себе как оплату за совершенную посредническую услугу. В
блокчейн-системах никаких посредников нет, равно как и средства ниоткуда
физически не вычитаются и никуда не прибавляются. Владелец активов просто
указывает в транзакции адреса одного или нескольких получателей, то есть
опять же формирует ссылки. В итоге транзакция представляет собой набор
ссылок на входящие поступления на адрес плательщика, а также набор ссылок
на исходящие адреса получателей его платежей. Для таких транзакций в
блокчейн-среде оперируют понятиями «входы» и «выходы». Существует
правило, что сумма всех средств на «выходах» должна быть равна сумме
средств на «входах». Если у владельца адреса нет необходимости тратить все
средства на задействованных в транзакции «входах» полностью, он формирует
дополнительный «выход» в виде сдачи самому себе, чтобы поддержать
равный баланс «входов» и «выходов». Очевидно, что «выход» для
отправителя будет являться «входом» для получателя, и он сможет потом на
него, в свою очередь, сослаться, когда будет совершать собственные
исходящие платежи.
Какие выводы мы можем сделать из описания этой схемы? Во-первых, проанализировав с самого первого (генезисного) блока базы все «входы» на
конкретный адрес и все «выходы» с него, можно легко выявить, сколько у
владельца данного адреса осталось непотраченных «выходов». Это и есть
баланс его счета. То есть баланс как таковой нигде не хранится, а просто
вычисляется как сумма всех непотраченных «выходов». Во-вторых, указывая
«выход» на конкретный адрес, отправитель предполагает, что в системе
существует такой участник, у которого есть закрытый ключ к этому адресу.
Иначе, если, например, ввести адрес получателя с ошибкой, то транзакция, на
него ссылающаяся, все равно будет принята системой, но средства этой
исходящей транзакции будут навсегда потеряны и исключены из обращения.
Это связано с тем, что транзакции, помещенные в блок, прошедшие процедуру
консенсуса и включенные в общую цепочку блоков, не смогут в будущем быть
изменены. Некоторые проекты, например, Биткоин, формируют определенную
защиту от ошибки, преобразуя адрес в формате шестнадцатеричного числа в
алфавитно-цифровой формат, добавляя в конец полученного адреса его
контрольную сумму. При вводе адреса получателя в соответствующее поле
формы перевода средств в случае ошибки в расчете и сравнении контрольной
суммы система выдаст предупреждение. Также довольно часто используется
представление адреса в виде QR-кода, чтобы отправитель мог его
отсканировать своим мобильным телефоном и автоматически преобразовать в
правильный набор букв и цифр, составляющих адрес получателя.
Возникает вопрос: а может ли участник системы при переводе средств
сослаться на «входы», которые ему самому не принадлежат, и каким образом
это можно проверить? На самом деле для того, чтобы легитимно сослаться на
«входы», необходимо в ссылке указать свой открытый ключ и свою цифровую
электронную подпись, сформированную на базе закрытого ключа, связанного с
адресом владельца. При помощи алгоритмов проверки цифровой подписи
любой участник системы может удостовериться в том, что ссылка на «входы»
действительно легитимна. А в случае ошибки проверки данная транзакция
просто игнорируется и не включается в блок тем узлом, который его
формирует для сети.
Подобная система формирования транзакций и ведения балансов называется
UTXO (Unspent Transaction Output — «непотраченные транзакционные
выходы»). Как было указано выше, для расчета баланса, связанного с
конкретным адресом в системе, необходимо найти и проверить все связанные
с ним «входы» и «выходы» с самого начала базы блоков. Плюс этого метода в
том, что не нужно отдельно хранить состояние балансов и постоянно их
актуализировать, тем самым получая экономию свободного места на
носителях. Минус — это время, которое постоянно затрачивается на расчет
баланса, особенно если база блоков достаточно выросла в своих размерах.
Поэтому ряд проектов все же хранит специальные базы «актуального
состояния», где, в частности, находятся и данные о балансах адресов, которые
можно быстро оттуда получить.
Теперь рассмотрим, какая еще дополнительная служебная информация может
помещаться в транзакции. Во-первых, это идентификатор транзакции с
уникальным номером, который не может повторяться. Его получают из хеша
самой транзакции, поскольку, как мы знаем, у криптостойких хеш-функций
вероятность получения коллизии (то есть одинакового хеша для разных
прообразов) очень и очень мала. Во-вторых, в тело транзакции обычно
помещают хеш предыдущей транзакции в данном блоке — по аналогии с тем, как это делается в заголовках самих блоков. Наличие этой информации в
каждой транзакции преследует ту же самую цель — поддержание целостности
хранения данных и ее защиту от несанкционированного изменения. Также при
описании ссылок на «входы» указывают открытый ключ адреса и электронную
подпись, которая доказывает, что у автора транзакции имеется закрытый ключ
от этой пары.
И последнее, что хотелось бы сказать о транзакциях в общем описании — это
комиссия. Различные блокчейн-проекты взимают комиссию за транзакции, хотя
бывают и такие, в которых все транзакции бесплатны. Комиссия существует
для монетарной мотивации узлов, создающих блоки, — они забирают ее себе, наряду с основным вознаграждением за создание блока как такового. Об этом
процессе мы подробно поговорим в главе о так называемом «майнинге», а
здесь лишь упомянем, что комиссия в блокчейн-системах, как правило, не
является фиксированной и каждый создатель транзакции сам решает, какую
комиссию ему заплатить. Однако если эта комиссия окажется слишком низкой
или вовсе нулевой, то транзакция может получить низкий приоритет при
формировании новых блоков и будет включена в какой-то из них с большой
временной задержкой. Что же касается непосредственной визуализации
Читать дальшеИнтервал:
Закладка: