Generated транзакции Биткоин что это

Транзакция Биткоина — это подписанный раздел данных, который транслируется в сеть и записываются в блоки. Она ссылается на предыдущие транзакции и переводит определённое количество BTC (биткоин-монет) на указанный открытый ключ (Bitcoin-адрес). Транзакции транслируются в сеть без шифрования. Существуют сайты на которых можно увидеть каждую транзакцию записанную в блок, такие сайты называют обозревателями блокчейна (например этот сайт). Они могут быть полезны для выяснения технических деталей сделки, или для подтверждения платежа.

Вход:
Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index: 0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501

Выход:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG

Вход этой транзакции импортирует 50 BTC с выхода #0 транзакции f5d8. Затем выход данной транзакции отправляет 50 BTC на Bitcoin-адрес (выраженный в шестнадцатеричном формате: 404371. ). Когда получатель захочет потратить эти деньги, он сформирует транзакцию, на входе которой будет ссылаться на выход #0 данной сделки.

Вход — это ссылка на выход другой транзакции. Часто в одной транзакции может быть записано несколько входов, в таком случае значения всех упомянутых выходов предыдущих сделок суммируются и общая сумма записывается на выход текущей транзакции. Previous tx — это хэш предыдущей транзакции. Index — конкретный выход транзакции на которую ссылаются. ScriptSig — это подпись — первая половина Скрипта.

Скрипт состоит из двух компонентов, подписи (ScriptSig) и открытого ключа (scriptPubKey). Открытый ключ принадлежит инициатору транзакции и подтверждает что он обладает суммой необходимой для выполнения транзакции (записанной на выходе транзакции). Второй компонент — это подпись (ScriptSig) полученная из хэша транзакции по алгоритму ECDSA (Elliptic Curve Digital Signature Algorithm — алгоритм с открытым ключом для создания цифровой подписи). Вместе они подтверждают что транзакция была создана реальным владельцем Bitcoin-адреса. Различные флаги определяют как упростить транзакцию, и могут быть использованы для создания различных типов оплаты.

Выход содержит инструкции на перевод BTC. Value – это количество Сатоши (1 BTC = 100 000 000 Сатоши) участвующих в данной транзакции (сумма которая будет списана с кошелька инициатора сделки). ScriptPubKey — это вторая половина Скрипта. Транзакция может содержать больше одного выхода, для того что бы обработать всю сумму BTC указанную на входе, к примеру: если вход ссылается на транзакцию в 50 BTC, а вы хотите отправить получателю только 25 BTC, то будет создано 2 выхода: первый к Bitcoin-адресу получателя, а второй обратно к вашему адресу. В тех случаях когда на выходах транзакции обрабатывается не вся сумма BTC указанная на входе, любой необработанный остаток BTC признаётся комиссией за транзакцию: майнер, сгенерировавший блок в который включена запись о данной транзакции — получит эти BTC.

Для подтверждения того что выход транзакции имеет право использовать суммы BTC на её входах, в Bitcoin применяется Forth-подобная Скрипт-система. ScriptSig, на входе, и ссылающийся на него scriptPubKey, на выходе, оцениваются (именно в таком порядке), с использованием значения scriptPubKey из стека scriptSig. Вход признаётся действительным, если scriptPubKey возвращает значение true (истина). Через систему скриптов, отправитель может создавать более сложные условия, которым должен соответствовать получатель суммы указанной на выходе транзакции. Например, можно создать выход:

  • для получения суммы которого нужно будет ввести пароль (а не использовать ключ);
  • для получения суммы которого нужны будут подписи 10 различных ключей и т. д.
Читайте также:  Как выводить сатоши из moon Биткоин

В настоящее время Bitcoin создаёт только три различные пары scriptSig/scriptPubKey. Они будут описаны ниже. Вполне возможно разработать и более сложные виды транзакций и собрать их вместе в криптографически-навязанном соглашении. Такие транзакции в Bitcoin называют Контракты.

Транзакция: перевод на IP-адрес

Отправитель получает открытый ключ получателя (pubKey) общаясь с ним. Когда сумма монет была отправлена на IP-адрес, получатель должен предоставить только подпись (sig). Подпись сверяется с открытым ключом в scriptPubKey.

OP_CHECKSIG

Stack (Стек) Script (Скрипт) Описание
Пусто scriptSig и scriptPubKey объединены.
OP_CHECKSIG Константы добавляются в стек
True (истина) Пусто Подпись проверяется на двух верхних элементах стека

OP_EQUALVERIFY OP_CHECKSIG
scriptSig:

Bitcoin-адрес представляет из себя хэш, по этому отправитель не может указать полный открытый ключ в scriptPubKey. При получении монет отправленных на Bitcoin-адрес, получатель должен предоставить и подпись (sig) и открытый ключ (pubKey). Скрипт проверяет возможно ли с помощью данного открытого ключа получить присланный хэш, затем проверяет подпись к предоставленному открытому ключу.

OP_EQUALVERIFY OP_CHECKSIG

OP_EQUALVERIFY OP_CHECKSIG

OP_EQUALVERIFY OP_CHECKSIG

OP_EQUALVERIFY OP_CHECKSIG

Stack (Стек) Script (Скрипт) Описание
Пусто scriptSig и scriptPubKey объединены.
Константы добавляются в стек.
Верхний элемент стека дублируется.
Верхний элемент стека хэшируется.
OP_EQUALVERIFY OP_CHECKSIG Константы добавляются в стек.
OP_CHECKSIG Проверяется эквивалентность двух верхних элементов стека.
True (истина) Пусто. Подпись проверяется на двух верхних элементов стека.

Транзакция генерации монет имеет один вход с параметром «coinbase», вместо параметра scriptSig. Данные в «coinbase» могут быть любыми, они не используются. Выход транзакции генерации монет может быть каким угодно, но Bitcoin создаёт один, идентичный выходу в транзакции перевода на IP-адрес.

на сайте для livecoin для пополнения DASH
пишет такое
Мы не принимаем generate транзакции. Майнинг напрямую на данный кошелек приведет к потере средств.
что значит generate транзакции ?


на сайте для livecoin для пополнения DASH
пишет такое
Мы не принимаем generate транзакции. Майнинг напрямую на данный кошелек приведет к потере средств.
что значит generate транзакции ?

Это транзакции с пулов. В них много получателей обычно и сумма маленькая. Биржам не выгодно вам онлайн кошелек предоставлять.

@casio спасибо , а если пополнять с терминала https://btcu.biz/main/how_to/buy , например вот
то это будет считаться как generate транзакции ?

@casio Для начала мне нужно зачислить эквивалент 20 долларов , хочу проверить что к чему . Потом после проверки хочу больше сумму зачислить . Вот и спрашиваю .


Ну я не видел их не одну транзакцию . Может они вам будут деньги через сотню транзакций зачислять.
Там на лайве есть способы пополнения. Может стоит через них баланс пополнить. И дешевле и также анонимно

@casio с карты прям на сайте обмен это не анонимно )))

Базовой составляющей блокчейна является блок — единичная порция связанных в цепочку данных (информации).

Как мы уже знаем, блокчейн Биткоина — это некий бухгалтерский реестр или книга ( ledger), в которой записаны абсолютно все транзакции, совершенные с монетами биткоина.

И если блокчейн — это бухгалтерская книга, то отдельные страницы этой книги — это и есть блоки блокчейна, в которых записываются финансовые транзакции и которые связаны между собой посредством хэшей так, что в заголовке каждого последующего блока хранится хэш-код предыдущего.

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

Таким образом, все блоки, записанные в блокчейн, изменить уже невозможно! Вообще, любое редактирование записанной в блокчейн информации (транзакций) запрещено. Можно только дописывать новые блоки.

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

При этом блокчейн гораздо надежней любой бухгалтерской книги или любого банковского реестра операций, поскольку копии блокчейна хранятся на множестве компьютеров (серверов) в распределенной одноранговой сети.

Но, вернемся к блокам блокчейна Биткоина.

Каждый блок состоит из заголовка ( Head), в котором хранится служебная информация, и полезной информации ( Payload) — собственно записи транзакций.

В заголовке блока содержится следующая информация:

– версия блока;
– дата и время создания блока;
– хэш-код заголовка блока;
– хэш-код предыдущего блока;
– хэш-код всех транзакций в блоке;
– специальные параметры nonce и bits, которые записываются при майнинге (подробнее об этом я расскажу с статье «Биткоин за 5 минут: Майнинг»).

Для понимания нам важны хэши в заголовке.

Сам хэш-код заголовка блока — это и есть то, что связывает предыдущий блок с последующим в цепочке блокчейна. Он записывается как хэш-код предыдущего блока в заголовок последующего.

Также в заголовке хранится хэш-код транзакций текущего блока. Он подсчитывается с использованием алгоритма, известного, как дерево Мёркла (Merkle tree) или бинарное дерево хэшей.

Работает это так:

  1. Сначала считаются хэши всех транзакций в блоке.
  2. Потом считаются хэши от суммы хэшей пар транзакций.
  3. Далее считаются хэши от суммы получившихся пар хэшей и далее по такой же схеме, пока не получится один единственный хэш-код — он и будет хэшем транзакций в блоке.

Тут следует учесть, что поскольку дерево бинарное (подсчет идет парами), то на кажом шаге должно быть четное число элементов. Поэтому если, на каком-то этапе получается нечетное количество хэшей, то последний просто дублируется для получения пары.

Именно заголовки позволяют отслеживать целостность содержимого самих блоков.

Теперь перейдем к собственно содержимому ( Payload) блока…

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

В действительности транзакция, записанная в блок блокчейна, сложнее, поскольку протокол Биткоина оперирует такими понятиями, как Входы (Inputs или In) и Выходы (Outputs или Out).

Входы (In) — это транзакции, пополняющие биткоин-адрес, а Выходы (Out) — это суммы, которые переводятся на другие биткоин-адреса.

Поэтому в Биткоине новая транзакция через Входы (один или несколько) ссылается на Выходы (один или несколько) предыдущих транзакций и формирует Выходы (также один или несколько) для использования в последующих транзакциях.

Собственно структура записи транзакций в блокчейне Биткоина содержит:

– количество используемых Входов;
– хэш-код и индекс каждого Входа, а также служебная информация;
– количество используемых Выходов;
– суммы Выходов, а также служебная информация;
– метка времени транзакции.

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

Примечание: На самом деле, баланс определяется путем подсчета всех непотраченных Выходов (т.н. UTXO — unspent transaction output) этого адреса.

Возможность указать сразу несколько Выходов в транзакции — это очень важная вещь, потому что транзакцию (точнее — ее Выход) можно использовать как Вход только один раз и только целиком.

Например, если имеется входящая транзакция (Вход) на 1 биткоин (BTC), а нужно перевести куда-то 0,8 BTC, то создается транзакция с одним Входом и двумя Выходами: на 0,8 BTC — собственно перевод и на 0,2 BTC — возврат на биткоин-адрес отправителя.

Еще важный момент — это т.н. комиссия за транзакцию ( transaction fee), которую получают майнеры — люди, которые записывают новые блоки транзакций в блокчейн.

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

Как происходит запись нового блока в блокчейн, я опишу в статье «Биткоин за 5 минут: Майнинг».

Подписывайтесь и читайте!

Ранее по теме «Биткоин за 5 минут»:

Читайте далее:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock detector