Согласно конкретному протоколу, заданной BitcoinWiki, после операции трансляции, ""он может быть включен в блок, который публикуется в сети", А вот что-то тривиальное: Когда вновь подтвердил транзакции записываются в блок? Предположим, я средний узел, и я получил сделку и проверить это действительно. Каков следующий шаг для меня? Должна ли я написать эту сделку в последний блок? Как убедиться, что все узлы имеют конкретную транзакцию письменной последовательно в одном блоке?
Я в настоящее время исследования проблемы непротиворечивости сети и проблемы безопасности в системе Bitcoin. Эта проблема, как представляется, остается нерешенной проблема дала я ничего не понял. Я признателен за любую помощь от любого профессионала. Заранее спасибо.
Вы читали Bitcoin Whitepaper, написанный Сатоши Накамото еще? Если нет, то вы должны сделать это до того * * "исследования проблем сети непротиворечивости и проблемы безопасности в системе Bitcoin",
Что, как говорится. Если мы будем "Предположим, вы средний узел", То вы убедитесь, что входы все действующие ранее неизрасходованных выходы, которые вы знаете о. Вы также убедитесь, что необходимые signaures (или другие требования сценария), были выполнены. После того как вы подтвердили, что все части сделок являются действительными, вы будете хранить сделку в пуле памяти, и передать его все узлы, вы подключены. Вот и все. Не намного больше, чем это.
Теперь, если вместо того, чтобы предположить, что вы являетесь "средний узел", Мы предполагаем, что вы шахтер (или майнинг), то вы будете выбирать некоторые из неподтвержденных транзакций с вашего пула памяти и расположить их в определенном порядке. Вы также создать специальный "coinbase" сделка, которая не имеет входов и выплачивает текущий раскол блока субсидий среди стольких же выходов, как вам нравится (до тех пор, пока вы не превышать максимальный размер сделки). Вы будете принимать этот список операций и вычисление Merkle корня (это хэш, который является уникальным для данного конкретного набора выбранных сделок, организованных в этом порядке). При выборе сделок, не будет включать в себя любую сделку, которая использует неподтвержденный вывод в качестве входных данных, если вы также включать в себя, что "родитель" сделка в вашем блоке. Тогда вы будете строить заголовок блока, который включает хэш предыдущего блока, то Merkle корень выбранного списка операций, а также несколько других важных частей информации (например, размер блока). Вы начнете поиск по Нонсу стоимости, что приведет к хэшу этого блока заголовок составляет менее текущая целевую сложности. После того, как вы нашли достаточно низкий хэш, вы будете транслировать на все подключенные сверстник блок с соответствующим одноразовым номером. Если ваш блок является первым, что любой сверстников слышал о том, что использует тот же "предыдущий блок" хэш, то все они будут проверять содержимое вашего блока и заголовка. Тогда они будут добавлять его к их blockchain и передать его все свои подсоединенные аналоги. Любая сделка, которая входит в блок, который вы построили в настоящее время считается "подтвердил" с 1 подтверждениями.