- Bitcoin транзакция
- Содержание
- Что такое Bitcoin транзакция? [ править ]
- Сложность процедуры традиционной банковской онлайн транзакции [ править ]
- Преимущество проведения Bitcoin транзакции перед банковской онлайн транзакцией: [ править ]
- Общий формат проведения Bitcoin транзакций (внутри блока) [ править ]
- Пример транзакции Биткоина с одним входом и одним выходом [ править ]
- Данные [ править ]
- Объяснение [ править ]
- Вход [ править ]
- Выход [ править ]
- Верификация транзакции [ править ]
- Общий формат каждого входа транзакции — Txin [ править ]
- Общий формат каждого выхода транзакции — Txout [ править ]
- Биткоин где хранятся транзакции
- Table of Contents
- Биткойн существует в форме записей о биткойн-транзакциях
- Пример биткойн-транзакции
- Как работает биткойн-транзакция?
- Почему подтверждения некоторых биткойн-транзакций занимают так много времени?
- Подробнее о входах и выходах биткойн-транзакций
- Каковы комиссионные сборы за биткойн-транзакции?
Bitcoin транзакция
Понравилась статья? Поделись:
Bitcoin транзакции — это подтверждённая подписью секция данных (подпись транзакции), которая передаётся по сети Bitcoin и собирается в блоки. Обычно она содержит ссылки на предыдущие транзакции и ассоциирует определённое количество Биткоинов с одним или несколькими публичными ключами (Биткоин адресами). Она не зашифрована, так как в системе Биткоин ничего не зашифровано.
Браузер цепочки блоков — это место, где все транзакции, объединённые в цепочку блоков, могут быть найдены и проверены, все транзакции биткоин можно отследить. Это необходимо не только для определения технических параметров транзакции, но и для проверки качества осуществления платежа.
Содержание
Что такое Bitcoin транзакция? [ править ]
Сложность процедуры традиционной банковской онлайн транзакции [ править ]
Оплате банковской платёжной картой в торгово-сервисном предприятии, начинается, когда держатель карты решает оплатить товар или услугу, и передаёт карту (либо оплачивает сам) кассовому работнику.
Посредством POS-терминала, в целях аутентификации держателя, информация о карте из терминала передаётся в банк-эквайрер, обслуживающий данный терминал, и имеющий соглашение с владельцем торговой точки. В зависимости от договорённостей торговая точка оплачивает банку комиссию за его участие в обработке транзакции. Далее банк-эквайрер передаёт информацию в платёжную систему, обслуживающую данную карту. Там данные попадают в операционный центр, к которому подключены банки-участники платёжной системы. В этом центре проходит проверка на предмет наличия или отсутствия платёжных данных карты в стоп-листе и в зависимости от полученного результата в транзакции отказывается или она одобряется с дальнейшим направлением в банк-эмитент, выпустивший данную карту, и обслуживающий привязанный к ней банковский счёт/счета клиента. Здесь она попадает в процессинговый и авторизационный центр, в котором проводятся расширенные проверки на легальность обрабатываемой транзакции. При подозрении на мошенничество или нарушение условий обслуживания даётся отказ. В зависимости от типа карты (дебетовая или кредитная) и установленного банком приоритета авторизации здесь может проводиться проверка доступного остатка средств на счёте или платёжного лимита, а также сверяться авторизационный PIN-код держателя. При удовлетворении всем проверкам эмитент одобряет операцию и в рамках транзакции, также через платёжную систему, ответ даётся в торговую точку. Путём взаиморасчётов с платёжной системой эмитент перечисляет эквайреру сумму запрашиваемых по транзакции средств, а также комиссию платёжной системы за обработку транзакции. В свою очередь с клиентского счёта банк списывает оплачиваемую и подтверждённую клиентом к оплате сумму денег (для дебетовых карт) или уменьшает доступный платёжный лимит, тем самым резервируя часть средств к последующему списанию (для кредитных карт). Транзакция завершается в момент поступления обратно в торговую точку ответа с одобрением или отказом. Bitcoin транзакцию отменить невозможно.
Преимущество проведения Bitcoin транзакции перед банковской онлайн транзакцией: [ править ]
- Избавление от посредников (банков-корреспондентов)
- Быстрота транзакций
- Стоимость транзакции
- Низкий риск возникновения ошибок
- Децентрализация,
- P2P взаимодействие
Общий формат проведения Bitcoin транзакций (внутри блока) [ править ]
Поле | Описание | Размер |
---|---|---|
Номер версии | На данный момент 1 | 4 байта |
Входящий счётчик | Положительное целое VI = VarInt | 1-9 байтов |
Список входящих данных | Первый ввод первой транзакции также называется «coinbase» (монетная база) | много входящих данных |
Исходящий счётчик | Положительное целое VI = VarInt | 1-9 байтов |
Список исходящих данных | Исходящие данные первой транзакции используют добытые Биткоины для блока | много исходящих данных |
Время блокировки | Если не равны нулю и порядковые номера меньше 0xFFFFFFFF: высота блока или временная отметка (для конечных транзакций) | 4 байта |
Пример транзакции Биткоина с одним входом и одним выходом [ править ]
Данные [ править ]
Объяснение [ править ]
Вход в этой транзакции импортирует 50 BTC от выхода #0 в транзакции f5d8. а затем выход отправляет 50 BTC на Биткоин адрес (выраженный здесь в шестнадцатеричной системе — 4043…). Когда получатель захочет потратить свои деньги, то он будет ссылаться на выход #0 этой транзакции для входа своей собственной транзакции.
Вход [ править ]
Вход (input) — это ссылка на выход другой транзакции. У транзакции часто бывает несколько входов. Значения этих ссылок суммируются, и общая сумма биткоинов может быть использован в выходе текущей транзакции. Previous tx — это хеш предыдущей транзакции. Index — это определённый выход этой транзакции. ScriptSig — это первая половина половина скрипта (подробнее об этом — ниже).
Скрипт содержит две компоненты: подпись (signature) и публичный ключ (public key). Публичный ключ принадлежит пользователю, который использует выходы транзакции, и подтверждает то, что создатель транзакции имеет право распоряжаться суммой, пришедшей с выходов. Другой компонент – это ECDSA-подпись хеша упрощённой версии транзакции. Объединённая с публичным ключом, подпись подтверждает, что транзакция была создана реальным владельцем данного Bitcoin адреса.
Выход [ править ]
Выход (output) содержит инструкции по отправлению биткоинов. Значение (value) — это количество сатоши (1 BTC = 100,000,000 сатоши), которое сможет использовать транзакция, для которая текущая будет входом. ScriptPubKey — это вторая половина скрипта (будет рассмотрена далее).
Может существовать более одного выхода, и они будут делить между собой сумму, пришедшую со входов.
Каждый выход транзакции может быть использован в качестве входа для следующей транзакции только один раз, поэтому сумма всех входов для текущей транзакции должна быть использована на её выходах. В противном случае, оставшаяся сумма входов транзакции будет потеряна. Например, если ввод равен 50 BTC, а пользователю нужно отправить только 25 BTC, то биткоин создаст два выхода по 25 BTC каждый: один отправится в пункт назначения, а другой отправится ещё раз владельцу этих средств (так называемая «сдача» — транзакция, которую пользователь фактически отправляет сам себе).
Любая сумма входов биткоинов, не использованная в выходах, становится коммиссией транзакции. Она достанется тому, кто сгенерирует блок.
Верификация транзакции [ править ]
Для того чтобы проверить, авторизированы ли входы для использования сумм, указанных в выходах предыдущих транзакций, Биткоин использует стандартную систему скриптования (см. дальше). scriptSig входа и scriptPubKey выхода, на который ссылается данная транзакция, оцениваются при помощи scriptPubKey, используя значения оставшиеся в множестве scriptSig.
Вход подтверждается, если скрипт scriptPubKey возвращает значение «true» (истинно). Через систему скрипта, отправитель может создавать очень сложные условия, которым должны соответствовать люди, желающие получить выходящее значение. Например, возможно создать вход, который сможет получить любой пользователь без авторизации. Также возможно потребовать того, чтобы вход был подписан 10 разными ключами, или проверялся не ключом, а паролем.
Общий формат каждого входа транзакции — Txin [ править ]
Поле | Описание | Размер |
---|---|---|
Хеш предыдущей транзакции | Двойное SHA256-хэширование предыдущей транзакции | 32 байта |
Предыдущий Txout-индекс | Неотрицательное целое, индексирующее выходы предыдущей транзакции | 4 байта |
Длина скрипта Txin | Не отрицательное целое VI = VarInt | 1-9 байтов |
Txin-script / scriptSig | Скрипт | -много байтов |
sequence_no | обычно 0xFFFFFFFF; действует, только если lock_time транзакции > 0 | 4 байта |
Вход достаточным образом описывает, где и как получить количество Биткоинов, которыми может распоряжаться их новый владелец. Если это единственный вход первой транзакции блока, то его называют входом генерирующей транзакции, и его содержание полностью игнорируется.
Общий формат каждого выхода транзакции — Txout [ править ]
Поле | Описание | Размер |
---|---|---|
value | Неотрицательное целое, дающее сумму Сатоши (1 BTC = 10^8 сатоши), необходимых для транзакции | 8 байтов |
Длина Txout-скрипта | Неотрицательное множество | 1-9 байтов |
Txout-script / scriptPubKey | Скрипт | — много байтов |
Выход определяет условия по использования данных биткоинов в следующих транзакциях.
Сумма выходных значений для первой транзакции в блоке — это значение добытых биткоинов для блока, плюс сумма коммиссий от других Биткоин транзакций, включённых в этот блок.
Источник
Биткоин где хранятся транзакции
Bitcoin (BTC) был создан как одноранговая электронная платежная система. Независимо от того, отправляете вы или получаете платеж в BTC, стоит понимать, как происходит транзакция. Транзакции Bitcoin — это сообщения, как электронные письма, которые подписаны цифровым способом с использованием криптографии и отправлены всей сети Биткойн для подтверждения. Транзакции публичны и могут быть найдены в цифровом реестре под названием блокчейн.
История всех транзакций в BTC ведет назад, к точке, когда биткойны были впервые произведены.
Table of Contents
- Биткойн существует в форме записей о биткойн-транзакциях
- Пример биткойн-транзакции
- Как работает биткойн-транзакция?
- Почему подтверждения некоторых биткойн-транзакций занимают так много времени?
- Подробнее о входах и выходах биткойн-транзакций
- Каковы комиссионные сборы за биткойн-транзакции?
Биткойн существует в форме записей о биткойн-транзакциях
Мы определяем биткойн как цепь цифровых подписей. Каждый владелец отправляет свой биткойн следующему путем цифрового подписывания хэша предыдущей транзакции и открытого ключа следующего владельца, после чего добавляет эту информацию в конец койна. Получатель платежа может проверить подписи, чтобы верифицировать цепочку владельцев.
Здесь стоит упомянуть, что биткойны (Bitcoin) не «существуют» в физическом аспекте, а только в цифровом. Думайте о блокчейне как о записи транзакций между разными биткойн-адресами. Записи об этих транзакциях обновляются сетью Bitcoin и публикуются на всех ее узлах при изменении баланса. Вы даже можете использовать один из наших обозревателей блоков, если хотите посмотреть историю и текущий баланс любого существующего адреса BTC.
Пример биткойн-транзакции
Марк хочет отправить биткойны Джессике. В сущности транзакция с BTC состоит из трех частей:
Ввод: Это запись адреса BTC, с которого Марк изначально получил биткойны, которые хочет отправить Джессике.
Количество: Это конкретное количество BTC, которое Марк хочет отправить Джессике.
Вывод: Это открытый ключ Джессики, также известный как ее биткойн-адрес.
Как работает биткойн-транзакция?
Отправка BTC требует доступа к открытым и закрытым ключам, связанным с требуемым количеством биткойнов. Когда мы говорим, что у кого-то есть биткойны, на самом деле мы имеем в виду, что этот человек обладает доступом к паре ключей, состоящей из:
- открытого ключа, на который ранее было выслано некоторое количество биткойнов
- соответствующего ему уникального закрытого ключа, который авторизует отправку куда-то еще BTC, ранее отправленных на вышеупомянутый открытый ключ
Открытые ключи, также называемые биткойн-адресами, представляют собой случайную последовательность букв и цифр, которая работает так же, как адрес электронной почты или имя пользователя в социальной сети. Они публичные, так что вы можете без опасений делиться ими с другими. На самом деле вы должны давать свой адрес Bitcoin другим, когда хотите, чтобы они прислали вам BTC. Закрытый ключ — это еще одна последовательность букв и цифр. Однако закрытые ключи, как и пароли к электронной почте или другим аккаунтам, должны храниться в секрете.
Никогда не делитесь своим закрытым ключом с кем-либо, если вы на 100% не уверены, что этот человек никогда не украдет ваши средства. Также не забудьте сделать резервную копию закрытых ключей, записав их ручкой на бумаге, и храните их в безопасном месте. Ваш адрес Bitcoin по сути является прозрачным сейфом. Другие могут видеть, что внутри, но только те, у кого есть закрытый ключ, могут разблокировать сейф и получить доступ к средствам внутри. В нашем примере транзакции выше Марк хочет отправить BTC Джессике. Для этого он использует свой закрытый ключ, чтобы подписать сообщение с деталями транзакции. Затем в блокчейн отправляется это сообщение, содержащее:
- ввод: исходная операция с монетами, ранее отправленными по адресу Марка
- сумма: количество BTC, которое нужно отправить от Марка Джессике
- вывод: Публичный адрес Джессики.
Затем эта транзакция транслируется в сеть Bitcoin, где майнеры подтверждают, что ключи Марка имеют доступ к источникам (т. е. к адресам, с которых он ранее получал BTC), которые, по его словам, он контролирует. Этот процесс подтверждения известен как майнинг, потому что он требует ресурсоемкого вычислительного труда и вознаграждения майнеров в BTC за каждый разрешенный блок. Это также процесс, посредством которого «создаются» новые биткойны.
Почему подтверждения некоторых биткойн-транзакций занимают так много времени?
Все транзакции Bitcoin должны быть проверены майнерами блокчейна. Обратите внимание, что майнеры не занимаются отдельными транзакциями. Они майнят блоки, которые являются группами транзакций. Иногда ваша транзакция не попадает в текущий блок и встает в очередь до тех пор, пока не будет собран следующий блок. Протокол Bitcoin динамически регулирует требования, чтобы каждый блок занимал примерно 10 минут. Другая причина для длинного периода подтверждения заключается в том, что размер блока ограничен 1 Мбайтом текущим протоколом Bitcoin . Этот произвольный лимит может быть увеличен, но на данный момент он ограничивает количество транзакций, которые могут войти в блок, что по сути замедляет время подтверждения и, как следствие, всю сеть Bitcoin.
Подробнее о входах и выходах биткойн-транзакций
Хотя с монетами можно было бы обращаться по отдельности, было бы крайне неудобно совершать отдельную операцию на каждый цент при переводе. Чтобы значение можно было разделять и объединять, транзакции содержат несколько входов и выходов. Как правило, существует либо один вход от более крупной предыдущей операции, либо несколько входов, объединяющих меньшие суммы, и максимум два выхода: один для оплаты и один для возврата отправителю сдачи, если таковая имеется.
Помните, что биткоины «существуют» только в виде записей транзакций в блокчейне? Это означает, что иногда несколько транзакций заканчиваются прикреплением к определённому адресу Bitcoin. Допустим, у вас в кошельке 2 BTC. Эти 2 BTC пришли от четырех разных друзей, каждый из которых прислал вам 0,5 BTC на ваш день рождения. Для удобства интерфейс вашего кошелька будет отображать ваши сбережения как «2 BTC». Но внутри вашего кошелька эти доходы по 0,5 BTC не «складываются» в 2 BTC. Скорее ваш кошелек просто отслеживает четыре транзакции по 0,5 BTC по отдельности, и в сумме они составляют 2 BTC. Когда вы хотите купить что-то за BTC, ваш кошелек использует записи транзакций различных сумм, которые в сумме составляют сумму биткойнов, которую вы хотите потратить. Предположим, это число составляет 0,25 BTC, и вы хотите использовать эту сумму для покупки одежды у продавца. Основываясь на информации о ваших сбережениях выше, мы знаем, что у вас нет ни одной транзакции ровно на 0,25 BTC. Пользователи Bitcoin не могут разбить транзакцию на меньшие суммы, и потратить можно только всю транзакцию целиком. Поэтому когда вы открываете свой кошелек и набираете «.25» в поле количество, технически происходит так: одна из транзакций на 0,5 BTC (от вашего щедрого друга Криса) будет отправлена целиком. Затем разница вернется вам через новую транзакцию. Вот технический процесс по шагам:
- Количество, которое вы должны за вашу одежду, составляет 0,25 BTC
- Вы «отправляете» в магазин ввод на 0,5 BTC. (Помните, что вводы должны быть потрачены целиком).
- Биткойн-адрес магазина одежды — это вывод
Но фактически ваш кошелек создает для этой транзакции два вывода:
- 0,25 BTC продавцу одежды
- 0,25 BTC на новый адрес, созданный вашим кошельком, чтобы получить от продавца «сдачу».
Это может звучать сложно, но хорошая новость заключается в том, что для отправки или получения биткойнов знать это не обязательно.
Каковы комиссионные сборы за биткойн-транзакции?
Комиссионные сборы в Bitcoin учитывают различные факторы. Многие кошельки позволяют пользователям вручную устанавливать комиссию за транзакции. Любая часть транзакции, которая не предназначена получателю или возвращается как «сдача», включается в расчет комиссии. Комиссии идут майнерам. Их можно использовать для увеличения скорости подтверждения, мотивируя майнеров считать ваши транзакции приоритетными. Bitcoin сборы за больште переводы иногда могут достигать значительных сумм. Bitcoin Cash, напротив, обладает копеечным транзакционным сбором, а его платежи могут быть верифицированы даже с нулем подтверждений.
Начните покупать на сумму от 30 долларов!
Выберите из Bitcoin, Bitcoin Cash, Ethereum и других криптовалют
Источник