Так как именно блок-добавляется в цепи? Почему некоторые блоки имеют очень мало сделок, в то время как другие имеют много? Что это означает, что "новый блок обнаружен"?
Я до сих пор не понимаю, отношения между шахтером и подтверждения сделки.
При отправке сделки вы передаете его к любым сверстникам вы подключены. Эти сверстники проверка транзакции, а затем повторно транслировать его к любым сверстникам они подключены. Эти сверстники проверки транзакции и повторно транслировать его, и так далее. Каждые сверстники, что слышит о сделке отслеживают его в пуле памяти, таким образом они могут передать его новым коллегам, которые не слышали об этом.
В конце концов, некоторые из коллег, которые слышат о сделке шахтеры. Шахтеры выбрать неподтвержденные транзакции из списка они имеют в памяти всех текущих неподтвержденных операций. Протокол позволяет шахтеры могут использовать любые критерии, которые они хотят решить, какие сделки выбрать. Они могут выбрать только несколько, если они хотят, они могут выбрать достаточно, чтобы полностью заполнить блок (в настоящее время существует предел 1 мегабайта до максимального размера блока). Шахтер также создает специальную операцию, называемую "coinbase" сделка. Coinbase сделка выплачивает вознаграждение блока на адрес (или адрес) по выбору шахтера. Эта награда блока допускаются по протоколу равным сумме блока субсидий (в настоящее время 25 BTC) и все сделки сборов от всех сделок, которые выбрали шахтер
для блока.
После того, как шахтер определить, какие из неподтвержденных операций они хотят включить в блоке они создают, они создают специальный хэш сделок (так называемый "корень Merkle"), ADN включить его в заголовке блока, который они создают. Если какие-либо изменение транзакций (или порядок изменений транзакций), то корень Merkle будет совершенно другое значение. Таким образом, корень Merkle впоследствии может быть использован любой / каждый вглядываться, чтобы убедиться, что корень Merkle в заголовке блока действительно представляет собой точный перечень операций в блоке. Существуют различные другие атрибуты, которые хранятся в заголовке блока, который создает шахтер (например, даты / времени, хэш самого последнего блока решена в сети, размер блока, и т.д.).
После того, как минер закончит создание заголовка блока они вычисляют пару SHA-256 хэш заголовка и сравнить результат к текущей цели сложности, определенной в соответствии с протоколом. Если значение хэша достаточно низка, то блок "решена", Если этого не достаточно мала, то увеличивает специальное поле шахтер в заголовке блока, называемого одноразового номера (единственная цель которого заключается в обеспечении быстрой простой способ для шахтера, чтобы изменить содержимое заголовка, так что новое значение хеш-функции приведет к). Минер затем вычисляет пару SHA-256 хэш заголовка блока и снова сравнивает полученное значение целевой сложности. Шахтер повторяет этот процесс до тех пор, пока они либо найти хэш с достаточно низкой стоимостью, или получить вновь решить блок ретрансляционных им от партнера.
Если они получают вновь решаются блок от партнера, они проверяют все значения блока для обеспечения его действительный. Затем они добавляют ее в свою собственную копию blockchain, удалите из памяти все ранее неподтвержденные транзакции, которые находятся в блоке, они только что получили, отбрасывать блок они работали на, и начать работать на новом блоке на ступеньках описанные выше.
Если они находят хэш достаточно низкой стоимости, прежде чем они получают вновь решается блок от сверстников, то они достаточно удачливы, чтобы быть шахтером, который только решить новый блок. Они транслируют заголовок блока и список транзакций для всех коллег, что они подключены. Каждый из них проверяет пэр всех значений блока, чтобы убедиться, что он является действительным. Затем они добавляют ее в свою собственную копию blockchain, удалите из памяти все ранее неподтвержденные транзакции, которые находятся в блоке, что они только что получили, и повторно транслировать заголовок блока и транзакцию для каждого всмотреться они подключены. Этот процесс повторяется до тех пор, все узлы сети не слышали о новом блоке и добавить его в свою собственную копию blockchain.
Первое подтверждение о сделке просто означает, что шахтер выбрал операцию для блока они работали над и успешно "решена" блок, находя временное значение, которое приводит к хэш достаточно низкой стоимости и его вещание.
Любое изменение содержимого блока приведет к другому значению хэша-блок. Это означает, что никто не может убедить любой пэр в сети, чтобы изменить содержимое блока без первого прохождения через усилие найти хэш достаточно низкого значения, чтобы считать "решена", Это процесс, который занимает все хеширование мощности всей сети Bitcoin примерно 10 минут на среднем найти. В то же время остальная часть сети занята работой на следующий блок. Поскольку хэш-значение блока всегда включается в следующий блок, кто-то пытается изменить транзакцию в старом блоке необходимо заново (и повторно решить) каждый блок, который произошел с тех пор, и они должны сделать это быстрее, чем остальная часть сети решение блоков или они никогда не догонят.
Поэтому каждый новый блок, который добавляется к blockchain делает экспоненциально более трудным для атаки, чтобы вернуться назад и изменить сделку, которая была добавлена к старому блоку. По этой причине каждый новый блок добавляется к blockchain считается дополнительным "подтверждение" на вершине каждой сделки уже в blockchain.
TLDR;
Шахтеры выбора операций и создать набор из них, который затем называется "блок",
Шахтеры делать какую-то работу, которая требует значительной мощности процессора придумать значение, которое доказывает, что они сделали работу.
Шахтеры затем транслировать выбранные операции и доказательство того, что они сделали работу.
Если транзакция находится в наборе, выбранном шахтера, который успешно находит значение, то сделка считается "подтвердил",
Это доказательство работы затрудняет злоумышленнику изменить историю транзакций.