Может ли кто-нибудь объяснить, как работает биткойн-блокчон?

Я пытаюсь понять, как работает блокчлин и как читать его через сайт blockchain.info. Является ли способ простой способ объяснить, как работает цепочка блоков и как читать блоксхемы для отслеживания транзакций?

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

54 голоса | спросил Patoshi パトシ 31 J000000Wednesday13 2013, 21:24:43

2 ответа


57

Если вы полностью новичок в биткойне, вы можете найти мой второй ответ более доступным, что это менее техническое описание .


Как вы сказали, blockchain - это журнал всех транзакций, которые когда-либо проверялись в сети Bitcoin.

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

Каждый заголовок блока содержит:

[Иллюстрация от Маттхуса Вандера (Викимедиа) ]

  • Временная метка:
    Время, когда блок был найден.
  • Ссылка на родительский элемент (Prev_Hash):
    Это хэш предыдущего заголовка блока, который связывает каждый блок с его родителем и, следовательно, путем индукции ко всем предыдущие блоки. Эта цепочка ссылок - это эпонимая концепция блочной цепи.
  • Merkle Root (Tx_Root):
    Корень Merkle - это уменьшенное представление набора транзакций, подтвержденного этим блоком. Сами транзакции предоставляются независимо, формируя тело блока . Должна быть хотя бы одна транзакция: Coinbase . Coinbase - это специальная транзакция, которая может создавать новые биткойны и собирать транзакционные сборы. Другие транзакции являются необязательными.
  • Цель:
    Цель соответствует сложности поиска нового блока. Он обновляется каждые 2016 блоков, когда происходит сбой при сбросе .
  • Nonce:
    Произвольно выбранное число для удобного добавления энтропии в заголовок блока без перестройки дерева Merkle.
  • Собственный хэш блока:
    Все вышеперечисленные элементы заголовка (т. е. все, кроме данных транзакции) становятся хешированными в хеш-блоке, что для одного является доказательством того, что другие части заголовок не был изменен, а затем используется как ссылка последующим блоком.

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

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

На 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

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

ответил Murch 17 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 17 Sep 2013 02:17:37 +0400 2013, 02:17:37
47

Для user32260 : Билл продает Салли несколько яблок за £ 2.50

Билл - продавец фруктов. Салли хочет купить яблоки за £ 2,50. Салли хочет использовать биткойн для оплаты Билла за яблоки. Билл представляет Салли свой адрес оплаты, например, как код быстрого ответа:

 Адрес Билла

Салли использует Биткойн-кошелек на своем смартфоне для сканирования кода. Ей представлен экран, на котором она может ввести сумму для отправки на адрес Билла. Она набирает «£ 2,50» и нажимает отправить. Через мгновение планшет Билла уведомляет его о том, что ожидается входящий платеж, который еще не подтвержден. Примерно через десять минут, оплата будет завершена **, когда она будет подтверждена ***.

Под капотом

1) Платежное поручение (Транзакция) :
Программное обеспечение на смартфоне Sally проверяет, имеет ли Sally достаточный баланс, а затем создает платежное поручение, которое мы назовем Транзакция . Эта транзакция состоит из трех частей информации: какие «монеты» потратить, получателя и подпись.
Кошелек Салли подключен к другим участникам сети. Кошелек передает транзакцию всем им, которые, в свою очередь, передают его всем своим связям. Через несколько секунд каждый участник сети получил уведомление о платежном поручении Салли. Каждый участник проверяет, существуют ли перечисленные «монеты», и является ли подписавший его владельцем.

2) Подтверждение :
До сих пор оплата Салли - это только обещание, потому что оно по-прежнему не подтверждено. Чтобы изменить это, некоторые участники сети, которые мы будем называть майнеры , работаем над подтверждением этих транзакций. Шахтеры захватывают все неподтвержденные транзакции и пытаются упаковать их в набор. Когда этот набор не удовлетворяет требованиям сложности, он перетаскивает его и повторяет попытку. В какой-то момент кто-то находит набор с правильными свойствами: допустимый блок .
Как и в случае с транзакциями, они отправляют этот блок во все свои соединения, которые в свою очередь направляют его на свой. Каждый проверяет работу (чтобы подтвердить, что блок соответствует правилам), и, когда это удовлетворено, применяет включенные транзакции к своей собственной книге: транзакции выполняются, а «монеты», которые использовались отправителями, становятся недействительными, а получатели получают новые «монеты», как указано в транзакциях. В настоящее время транзакция Салли (и все остальные) подтверждена. Теперь Билл может потратить «монеты», которые он получил от Салли.

3) Блок-цепочка
Давайте сделаем шаг назад. Прежде чем Салли заплатила Биллу, Салли получила биткойны от Алисы. Очевидно, что порядок здесь имеет решающее значение. Она не может заплатить Биллу, если она сначала не получит деньги от Алисы.
Как правило, транзакции могут тратить только «монеты», которые уже созданы. Вот почему каждый блок имеет фиксированную позицию : каждый блок ссылается на своего непосредственного предшественника. Например. Block 90 говорит, что ему предшествовал Block 89, в свою очередь Block 89 names Block 88 как его предшественник, и поэтому вперед, пока Block 2 не укажет на первый блок, Genesis Block.

Genesis Block ← 2 ← … ← 88 ← 89 ← 90

Эпонимия blockchain имеет полезные свойства:

  • Детерминированные результаты : каждый может начинать с Genesis Block и применять каждый блок последовательно, чтобы получить тот же результат.
  • Синхронизация & Консенсус . Когда вы применили последний блок, балансы в вашей книге имеют то же состояние, что и во всех остальных регистрах участников.
  • Неизменяемая история . Поскольку каждый блок основывается на своем предшественнике, каждый новый блок затухает историю под дополнительной работой (см. рисунок ниже):

 введите описание изображения здесь>> </a>
<a href= Иллюстрация: Марк Монтгомери /IEEE Spectrum


* Что удерживает среднее время блока в 10 минут?

** Почему 6 подтверждений, которые считаются безопасными?

*** Что такое «подтвержденные биткойны»?

«Монеты» - это упрощение для Отказанные транзакции Выходы

ответил Murch 22 Jpm1000000pmFri, 22 Jan 2016 21:35:25 +030016 2016, 21:35:25

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132