Я пытаюсь понять, как работает блокчейн и как его читать через сайт blockchain.info. Есть ли простой способ объяснить, как работает цепочка блоков и как читать блок-цепочку для отслеживания транзакций?
Что я знаю на данный момент, так это то, что блокчейн — это просто публичный реестр транзакций в сети биткойнов.
Если вы новичок в биткойнах, вам может показаться более доступным мой второй ответ , который является менее техническим описанием .
Как вы сказали, блокчейн — это журнал всех транзакций, которые когда-либо были проверены в сети Биткойн.
Транзакции собираются в блоки , которые обнаруживаются примерно каждые десять минут в случайном процессе, называемом майнингом. Поскольку транзакции передают право собственности на биткойн-балансы, каждый из этих блоков представляет собой обновление балансов пользователя в сети.
Следуя цепочке блоков из блока Genesis и применяя все транзакции, которые были проверены в каждом блоке, в правильном порядке, вы получаете текущий статус-кво.
[Иллюстрация Маттеуса Вандера (Викимедиа)]
Prev_Hash
): Tx_Root
): Поскольку многие майнеры соревнуются, чтобы найти следующий блок, часто будет обнаружено более одного действительного следующего блока. Это разрешается, как только одна из двух веток достигает большей длины, после чего любой клиент, получивший новейший блок, знает, что нужно отбросить более короткую вилку. Эти выброшенные блоки называются вымершими блоками (иногда их также называют блоками-сиротами , хотя их полное происхождение известно).
Когда транзакция отправляется в сеть, она передается в одноранговой сети всеми клиентами. После обнаружения майнеры поместят его в свой список транзакций, которые они хотят проверить и обновить Merkle Root.
На Blockchain.info вы можете отслеживать транзакцию, запрашивая страницу напрямую с хешем транзакции
http://blockchain.info/tx/<transaction-hash>
e.g. http://blockchain.info/tx/37df28642f97db7003a7bc6663467eb1e9cb4493b6c94bf089ee77f87acdae3d
или позвонив на один из задействованных адресов через
http://blockchain.info/address/<address>
e.g. http://blockchain.info/address/1DrZtRNsSu9BqGcY4D9etFno4H95DqNmKb
В любом случае для каждой транзакции вы увидите строку с большой стрелкой, которая показывает, какие адреса использовались для финансирования транзакции и какие адреса получали какие части транзакции.
Билл — продавец фруктов. Салли хочет купить яблок за 2,50 фунта стерлингов. Салли хочет использовать биткойны, чтобы заплатить Биллу за яблоки. Билл представляет Салли свой платежный адрес, например, в виде кода быстрого ответа:
Салли использует биткойн-кошелек на своем смартфоне для сканирования кода. Ей предоставляется экран, на котором она может ввести сумму для отправки на адрес Билла. Она набирает «2,50 фунта стерлингов» и нажимает «Отправить». Мгновение спустя планшет Билла уведомляет его об ожидании входящего платежа, который еще не подтвержден. Примерно через десять минут платеж будет завершен , когда он будет подтвержден .
1) Платежное поручение (Транзакция) :
Программное обеспечение на смартфоне Салли проверяет, есть ли у Салли достаточный баланс, а затем создает платежное поручение, которое мы назовем транзакцией . Эта транзакция состоит из трех частей информации: какие « монеты » тратятся, платеж получателю и подпись.
Кошелек Салли подключен к другим участникам сети. Кошелек передает транзакцию всем им, которые, в свою очередь, пересылают ее всем своим соединениям. В течение нескольких секунд каждый участник сети получил уведомление о платежном поручении Салли. Каждый участник проверяет, существуют ли упомянутые «монеты» и совпадает ли подпись с подписью владельца.
2) Подтверждение :
Пока платеж Салли является только обещанием, потому что транзакция еще не подтверждена .
Чтобы изменить это, некоторые участники сети, которых мы назовем майнерами , работают над подтверждением этих транзакций. Майнеры захватывают все неподтвержденные транзакции и пытаются упаковать их в набор. Когда этот набор не соответствует требованиям сложности, они перетасовывают его и повторяют попытку. Майнеры по всей планете выполняют эту работу, пока в какой-то момент кто-нибудь не найдет набор с нужными свойствами: действительный блок . Поскольку обнаружение действительного блока — маловероятное событие, объявление о новом блоке доказывает, что сеть приложила усилия, чтобы найти его.
Как и в случае с предыдущими транзакциями, майнер отправляет блок всем своим соединениям, которые, в свою очередь, пересылают его. Каждый участник проверяет работу (чтобы убедиться, что блок соответствует правилам) и, когда он удовлетворен, применяет включенные транзакции в свою собственную книгу: транзакции выполняются, а «монеты», которые были использованы отправителями, помечаются как потраченные, тогда как получатели получают новые «монеты» в соответствии с инструкциями транзакций. Транзакция Салли (и всех остальных) теперь подтверждена. Билл теперь может потратить «монеты», которые он получил от Салли.
3) Блокчейн
Давайте сделаем шаг назад. Прежде чем Салли заплатила Биллу, Салли получила свои биткойны от Алисы. Порядок транзакций имеет решающее значение, поскольку транзакции могут тратить только «монеты», которые уже были созданы. Салли не сможет заплатить Биллу, если сначала не получит деньги от Алисы. Транзакции имеют явную позицию в блоке, который подтверждает их, и каждый блок имеет фиксированную позицию в цепочке блоков, ссылаясь на своего прямого предшественника. Например Block 90
, ссылается на Block 89
своего предшественника, в свою очередь Block 89
основывается на Block 88
, и так далее, пока не Block 2
укажет на первый блок, Genesis Block
.
Genesis Block ← 2 ← … ← 88 ← 89 ← 90
Одноименный блокчейн обладает полезными свойствами:
Genesis Block
и применять каждый блок последовательно, чтобы получить один и тот же результат.requirements
в виду под фразой «Когда их набор не соответствует требованиям, они перетасовывают его и пробуют снова»?
Стивен Горник
Нейт Элдридж
Марч