BTC $ 3643.3780754 (4.5 %)
XRP $ 0.315609169 (2.61 %)
ETH $ 95.960421959 (3.68 %)
XLM $ 0.1248444646 (4.81 %)
BCH $ 110.319544612 (6.54 %)
EOS $ 2.0747433268 (12.85 %)
USDT $ 1.0098979766 (-0.54 %)
BSV $ 99.7269609003 (1.99 %)
LTC $ 26.0236615966 (4.06 %)
TRX $ 0.0137415846 (2.06 %)

Простое объяснение термина блокчейн

20:37 13/09/2018

Криптовалюты появились относительно недавно. Это новый вид денег, обеспеченный математической сложностью и доверием пользователей. Техническая часть криптовалют основана на двух понятиях: блокчейн и распределенность.

 

Блокчейн как технология — это особый вид базы данных, который предназначен для надежного и согласованного хранения информации. Данные в блокчейне практически невозможно изменить, для этого требуется приложить значительные усилия. Защищенность системы обусловлена сложными криптографическими алгоритмами.

 

По своей структуре блокчейн состоит из блоков. Каждый блок — это цельная информационная единица. Блоки располагаются в строгой последовательности, и каждый последующий блок крепко связан с предыдущим. Если какой-то из блоков будет изменен, то пользователь сети непременно об этом узнает, а криптографическая проверка покажет место, где произошло нарушение.

 

По большому счёту, последовательность блоков не обязательно должна дублироваться, но для криптовалют важна прозрачность. Полноценный доступ для каждого участника может обеспечить только децентрализация. Это значит, что в сети нет центрального органа, а у каждого участника на компьютере хранится копия полного блокчейна.

 

В качестве примера рассмотрим Биткоин — блокчейн самой популярной криптовалюты.

 

Блок как единицу блокчейна можно разделить на следующие компоненты:

 

  • «Магическое число» — последовательность бит, которая однозначно определяет начало блока. Для Биткоина она равняется 0xD9B4BEF9;
  • Размер блока — значение, которое показывает, сколько места будет занимать блок.
  • Заголовок, содержащий шесть полей:
    • версия блока показывает, по каким правилам был сформирован блок;
    • хеш предшественника даёт ссылку на предыдущий блок;
    • корень древа Меркла предоставляет контрольное значение для проверки полезного содержимого блока;
    • время создания блока;
    • уровень сложности расчётов;
    • счетчик для расчетов;
  • Количество транзакций;
  • Все транзакции блока.

 

Хеширование в компьютерных технологиях — это операция, использующая входящие данные любого размера и выдающая результат одинаковой длины. Важно то, что изменение даже одного бита на входе даст абсолютно другой хеш-результат. Поскольку каждый блок содержит хеш предыдущего блока, то пользователь легко может проверить весь блокчейн на внесение изменений.

 

Корень дерева Меркла — это особый хеш, полученный путём многократного хеширования. В сети Биткоин дерево Меркла показывает многократный хеш транзакций внутри блока. Процедура вычисления довольно проста. Для всех транзакций блока вычисляется хеш, затем результаты объединяются попарно и вновь хешируются. Если данных нечётное количество, то последний хеш обрабатывается дважды. Процесс повторяется до тех пор, пока на выходе не получится единственный хеш-результат. Именно он и называется корневым хешем дерева Меркла.

 

Уровень сложности определяет, каким должен быть хеш блока, чтобы блок был признан корректным для занесения в блокчейн. По правилам Биткоина эта сложность может меняться.

 

Чаще всего найти подходящий хеш блока получается далеко не сразу. В то же время хеширование с одинаковыми данными на входе даст такой же результат на выходе. Чтобы найти правильный хеш, необходимо что-то поменять в блоке. Для этого используется специальный счетчик — nonce. После каждого неудачного хеширования число на счетчике увеличивается на единицу. Если счетчик закончился, а правильный хеш так и не был найден, то изменяется время закрытия блока, а счетчик обнуляется.

 

Перейдем к основному компоненту блоков — транзакциям. Транзакции создаются рядовыми пользователями блокчейна для передачи денежных средств друг другу. Каждая транзакция показывает адрес отправителя и адрес получателя, которому передается право управления средствами. Строго говоря, одна транзакция может передавать права на управление несколькими суммами разным адресам. Это возможно благодаря структуре транзакции.

 

У каждой транзакции есть следующие поля:

 

  • номер версии определяет правила составления транзакции;
  • специальный флаг «0001» указывает на использование технологии SegWit (опционально);
  • количество входов;
  • список входов;
  • количество выходов;
  • список выходов;
  • SegWit данные, если в начале транзакции был помещён соответствующий флаг;
  • время исполнения.

 

Ключевыми компонентами транзакций являются входы и выходы. Важно понимать, что каждый вход новой транзакции указывает на выход более ранней транзакции. Выход определяет адрес, которому можно тратить средства, закрывающий код и количество средств. Вход указывает адрес выхода и открывающий код. Если адреса верны и коды подходят, то вход считается правильным.

 

Каждая транзакция использует входы как источники средств. В самом простом случае каждый вход — это отсылка к выходу предыдущей транзакции из более раннего блока, уже находящегося в блокчейне. Чтобы такая отсылка сработала, на используемый выход не должна ссылаться никакая другая транзакция. Такой выход называется UTXO (Unspent Transaction Output). Если хотя бы один вход ссылается неправильно, то транзакция будет отклонена.

 

Использование технологии SegWit позволяет менять местами данные внутри транзакции без потери ее правильности. Она не меняет суть транзакций, но немного корректирует положение ключей для входов и выходов.

 

Время исполнения указывается, если необходимо отложить помещение транзакции в блок на будущее. Длительность отсрочки может доходить до нескольких дней.

 

Существуют некоторые особенности составления транзакций:

 

  • Сумма средств на входе не должна быть меньше суммы средств на выходе.
  • Разница между суммами входа и выхода будет записана на счет майнера в качестве комиссии.
  • Комиссия для майнера не считается автоматически. Если пользователь, кроме пересылки средств и комиссии, хочет получить сдачу, он должен указать это в виде дополнительного выхода.

 

В целом, управление средствами при помощи транзакций автоматизировано, поэтому пользователю не нужно утруждать себя дополнительными вычислениями. Программы-кошельки сами предлагают комиссию, рассчитывают сдачу и ведут учет доступных средств.

 

Сергей Борсук, Blockspoint

Нашли ошибку? Выделите её и нажмите Ctrl + Enter чтобы сообщить администратору.

Самые актуальные новости о криптовалютах и блокчейне. Прочтите первым!

Зачем мне это?

Загрузка...