Проверка транзакций в блокчейне - PullRequest
0 голосов
/ 30 августа 2018

Давайте рассмотрим, что у нас есть AltCoin с именем ABCCoin, ABC. Я буду называться X, добываю блок и получаю только что отчеканенную 25 ABC в качестве награды за майнинг. Теперь я хочу подарить эту монету другу Y. Итак,

Tx: X -> Y : 25ABC

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

Tx: Y -> Z : 25ABC

Теперь, спустя несколько месяцев. Мистер Z хотел купить кофе в Starbucks, когда ходил на свидание со своей девушкой.

Теперь цепочка транскрипций будет выглядеть так:

|Tx|Minted -> X |
   --> "Tx: X -> Y : 25ABC" 
   --> "Tx: Y -> Z : 25ABC"
   --> "Tx: Z -> Starbucks : 25ABC"

Итак, в этой ситуации. Когда нам нужно проверить «Tx: Z -> Starbucks: 25ABC» Должны ли мы отследить его происхождение, то есть до того момента, когда эта монета была отчеканена, ИЛИ ее можно просто проверить, проверив ее непосредственный источник. т.е. "Tx: X -> Y: 25ABC" и не заботится о других предыдущих.

1 Ответ

0 голосов
/ 30 августа 2018

Предположим, что вы спрашиваете о блокчейнах на основе транзакций UTXO, таких как биткойны.

Существует 2 типа проверки

  1. FullNode Verification

  2. Проверка SPV

Полный узел

Полный узел - это программа, которая полностью проверяет транзакции и блоки, такие как bitcoind, litecoind или geth. Таким образом, каждый раз, когда полный узел получает новый блок от другого узла, он проверяет все транзакции в блоке и добавляет его в блокчейн и обновляет список UTXO только в том случае, если блок является полностью действительным.

для проверки транзакций, полный узел проверяет что-то вроде

  • Формат транзакции
  • подпись (я) транзакции
  • найти предыдущие транзакции из своей цепочки блоков
  • наличие транзакции двойных расходов

Поскольку полный узел имеет список UTXO, которые он считает правильными, проверки формата / подписей транзакций и списка UTXO достаточно для проверки новой транзакции.

SPV

Клиент SPV не имеет полных данных блокчейна или списка UTXO, SPV проверяет, только находится ли транзакция в блоке, используя MarkleTree, и блок, который содержит транзакцию, удовлетворяет трудности блока или нет. И это все, что может проверить SPV, потому что он должен проверять все заголовки блоков и блочные тела один за другим, чтобы создать список UTXO. Таким образом, SPV не может проверить, является ли это двойной транзакцией или нет. Но, тем не менее, поскольку создание поддельного блока стоит дорого, пока блокчейн имеет достаточную сложность, проверка пригодна для использования. как и @Haardik, упомянутый в комментарии, в будущем обновлении может появиться получение списка надежных UTXO без загрузки всех данных блокчейна с использованием дерева маркеров

...