Где проверить транзакцию биткоина по номеру кошелька
Проведение транзакций биткоина становится обыденной практикой в современной финансовой системе. Тем не менее, у начинающих инвесторов в криптовалюту возникает масса вопросов о покупке, продаже цифровых денег, других операциях. В данной статье речь пойдет о проверке транзакции биткоина.
Содержание
Скрыть- Что такое биткоин-транзакция
- Как найти биткоин-транзакцию в блокчейне
- Как работают биткоин транзакции
- Как долго ждать транзакцию
- Как узнать, сколько подтверждений прошло?
- Как увеличить скорость транзакции?
- Почему сумма на входе и выходе может оказаться разной?
- Комиссия
- Как отменить транзакцию?
Что такое биткоин-транзакция
Транзакция Bitcoin – это подтвержденный раздел данных, который записывается в сеть без шифрования. Каждый пользователь может проследить цепочку операций, начиная с получения первых криптомонет. Транзакции проводятся между специальными кошельками. Пользователи-инвесторы покупают вкладывают средства в криптомонеты и держат их, расчитывая на рост их курса с целью выгодно продать через год или несколько лет. Но в этом случае теряется смысл цифровых денег как таковых. Необходимо пользоваться биткоинами, то есть тратить в интернет магазинах на бирже. В этом случае и возникает необходимость проведения и проверки транзакции.
Как найти биткоин-транзакцию в блокчейне
Биткоин-транзакции отличаются от операций по обычным банковским счетам. Да и самих криптомонет не существует в том виде, в каком мы привыкли видеть доллары, фунты и другие валюты на счетах. Цифровые деньги не хранятся и на биткоин адресе. В кошельке имеются лишь записи о подписанных транзакциях между кошельками или счетами. Баланс таких записей может меняться в зависимости от выполненной операции. Записи хранятся в Blockchain (цепочка блоков, которая выглядит как книга учета).
Для просмотра транзакций биткоина можно установить специальную программу, например Block Explorer. В приложении легко отслеживать каждую биткоин-транзакцию, программа самостоятельно создает таблицы и графики, которые показывают деятельность в криптокошельке.
Информация о получении криптомонет с другого кошелька включает такие типы данных:
- Input (вход), то есть информация о биткоин-адресе отправителя.
- Amount (сумма) – это то количество монет, которые поступили на счет кошелька.
- Output (выход), то есть сведения о получателе перевода.
Как работают биткоин транзакции
Проводя транзакцию биткоинов, пользователь должен осознать, что на самом деле ничего не пересылается, а просто переписывается введенное количество монет с одного кошелька на другой, причем информация доступна всем, так как записывается на незакодированный реестр. Каждая транзакция записывается как вход, то есть сумма, переписанная на счет или выход для отправленных сумм.
Выведенные суммы становятся недоступными и совершение дальнейших операций невозможно. Однако здесь можно отследить общее количество поступивших биткоинов на определенном кошельке.
При проведении операций имена обладателей кошелька не отображаются, видено лишь наименование кошелька, с включением цифрового и буквенного кода. Благодаря этому сервис можно считать анонимным. Привязка кошелька к документам реального человека невозможно.
При всей открытости информации, которая хранится на блокчейне, проведение операций, зная только комбинацию букв и цифр, невозможно. Необходимо применять еще и секретный код, также состоящий из цифр и букв.
Как долго ждать транзакцию
Бывают моменты, когда подтверждение транзакции затягивается. Так происходит потому что этим занимаются майнеры, которые также занимаются поиском и добычей криптовалют. Ждать окончания майнинга иногда приходится довольно долго от 10 минут до нескольких часов. При проведении транзакций через специализированные процессинговые компании ждать не нужно. Биткоин-адрес переписывается мгновенно.
Компании BitPay или Coinbase оснащены мгновенным подтверждением транзакций. Однако следует принять во внимание повышенную комиссию за перевод криптомонет.
В целом, время проведения зависит от нескольких пунктов:
- Количество транзакций, выполняемых в определенный момент времени. За последний год проведение операций с биткоинами выросло в 8 раз. Иногда количество транзакций вырастает до критических величин, ожидание подтверждения платежа достигает одного часа.
- Транзакции с небольшой комиссией обычно откладываются, приоритет отдается переводам с высоким сбором.
- Время верификации операции также зависит от курса криптовалюты на данный момент.
Как узнать, сколько подтверждений прошло?
Для просмотра подписанных транзакций можно также воспользоваться сайтом blockchain.info. На сервисе для быстрого поиска необходимо воспользоваться поиском, панель находится в верхней части страницы. Эта функция позволяет узнать детали об определенном биткоин-адресе, номере в цепочке блоков, хэше транзакции.
Как увеличить скорость транзакции?
Существует несколько способов снижения времени транзакции:
- Увеличение объема переводимых средств. Чем больше криптовалют переводится, тем выше статус перевода.
- Увеличение комиссии за проведение транзакций. Если пользователи отдают за осуществление операций от 0,00002 ВТС, майнеры быстрее подтверждают платежи.
- Использование специальных сервисов типа Coinbase позволяет проводить транзакции мгновенно. На площадках сохраняются ключи продавца и покупателя, подтверждение происходит непосредственно через сервис.
- Возможно также использование криптокошельков с функционалом мультиподписи. Для совершения платежей на подобных сервисах нужно ввести лишь секретный ключ. Кошелек использует собственный ключ. Экономия времени и средств на лицо.
Почему сумма на входе и выходе может оказаться разной?
Поскольку биткоины не существуют на электронных кошельках, как например другая валюта на банковских счетах. Все биткоины записаны в транзакциях, поэтому при переводе другому человеку нужно брать во внимание тот факт, что сумму из транзакции невозможно поделить. Пользователь вынужден переводить всю сумму, но указывать реальную сумму операции. На выход пойдет одна сумма, а на вход другая, разница будет переведена клиенту в качестве сдачи.
Комиссия
На данный момент большинство криптокошельков работают без вознаграждения майнеру. Однако есть и такие, где пользователь сам указывает размер вознаграждения.
Как отменить транзакцию?
Отмена подписанной транзакции невозможна, это одна из отличительных особенностей всей системы. Не так давно специалисты задумывались о разрешении на откат транзакции еще не принятой в цепочку блока, но этого так и не случилось.
Тем не менее, в случае если транзакция зависла, то отменить ее можно. Нужно следовать следующим шагам:
- Во-первых, нужно убедиться, что операция реально зависла. Для этого открываем программу Block Explorer и проверяем информацию о данной операции. Если деньги еще лежат на счету, то не все потеряно, отменить операцию вполне возможно. Это также реально, если появилось окошко «Неподтвержденная транзакция!»
- В биткоин-кошельке нажить на окошко «Помощь», затем перейти в «Меню откладки», далее «Консоль».
- Нужно получить доступ к кошельку с помощью команды passphase.
- После этого получаем секретный ключ от адреса. Для этого необходимо указать в поле адреса тот, который был применен для отправки криптомонет.
- После окончания экспорта ключей удаляем кошелек путем его перенесения в надежное место или переименования.
- Запускаем клиент заново, импортируем полученный код. Это может занять несколько минут.
- В конце отмены транзакции и запуска нового кошелька должен появиться счет с реальным положением дел. Все зависшие и неподтвержденные операции будут аннулированы.
Из статьи можно сделать вывод о том, что работать с криптовалютами не так уж сложно. Даже начинающий инвестор и просто пользователь сможет разобраться с такой системой.
Транзакции Биткоин — время, проверка, отслеживание, комиссии
Блокчейн Bitcoin представляет собой цепочку блоков, которая включает публичную базу с информацией обо всех транзакциях с биткоинами, то есть передачи BTC от одного адресата другому. Генерация нового блока с подтвержденными транзакциями в сети биткоина происходит каждые 10 минут.
Получить информацию по любой биткоин-транзакции можно с помощью публичных сервисов:
Каждый элемент цепи блоков сети блокчейна хранит:
- историю о предыдущих операциях;
- информацию о новых транзакциях.
Таким образом блокчейн это связный список, в котором каждая следующая запись ссылается на одну предыдущую и так по цепочке до самой первой транзакции в сети.
Навигация по материалу:
Что такое транзакции в сети Bitcoin?
Информация об операциях с биткоинами записывается в специальные блоки, которые представляют собой список транзакций. Если сложить блоки в цепочку, то получите историю «хождения» криптовалюты.
Блок состоит из заголовка и списка транзакций. Заголовок содержит хеш-коды транзакций, собственный и хеш предыдущего блока. Первой в перечне идет транзакция, в которой указывается вознаграждение (комиссия) за создание нового блока.
Чтобы проверить подлинность операций с криптовалютой, транзакции должны быть валидированы в блокчейн. Он представляет собой распределенную БД. Ее части хранятся на множестве компьютеров в сети Bitcoin.
Подтверждение транзакции – это ее присоединение к списку транзакций в блоке.
После проведения операции с криптовалютой счета на стороне отправителя и получателя обновляются не сразу. В традиционных пользовательских приложениях для подтверждения транзакции должно быть найдено шесть блоков, которые доказывают ее валидность.
При этом пользователь, проводящий операцию, может уменьшить число проверок. Это следует делать, если оперируете небольшой суммой биткоинов. Что упрощает и ускоряет процесс подтверждения транзакции.
Если верификации перевода криптоденег не произошло, то система возвращает средства обратно на кошелек отправителя.
Для покупки и обмена криптовалюты мы чаще всего используем сервис Матби, это одновременно криптовалютный кошелек и обменник, подробную информацию о сервисе можно посмотреть здесь.
Время транзакции в блокчейне Bitcoin
В среднем на транзакцию уходит от 20 минут до 60 минут, но в моменты пиковой нагрузки это время может быть увеличено во много раз.
Время ожидания зависит от загруженности сети блокчейна. За последние два года количество операций с биткоинами выросло более чем в 8 раз. Это видно на графике ниже:
Он показывает рост количества триллионов хешей, выполняемых в секунду в сети Bitcoin. Также в сети бывают всплески, когда среднее количество транзакций в блоках возрастает, и сам размер блоков увеличивается до критической величины.
Методы сокращения времени транзакции:
- Повышение комиссии для майнеров – специалисты советуют «не жадничать» и отдавать за подтверждение от 0,0002 ВТС и более.
- Объем переводимых средств – чем больше криптовалюты переводите, тем статус операции выше в «криптосети».
Как проверить биткоин транзакцию?
Отследить любую биткоин транзакцию и BTC-кошелек можно с помощью публичных сервисов (регистрация и авторизация на них не требуется).
ТОП-3 сервиса для проверки BTC-транзакций:
Что бы узнать сколько подтверждений сети прошло по определенной транзакции, зайдите на площадку Blockchain.info или Chain.so и введите в поисковую строку известный вам хеш операции или адрес кошелька. После этого отобразится вся информация о блоке и его текущий статус.
Подтвержденные и неподтвержденные транзакции
Процесс включения транзакции в состав найденного блока называется подтверждением транзакции. Включение в 1 блок = 1 подтверждение, когда таких подтверждений набирается 6 и выше транзакция считается подтвержденной. Такая функция была введена для защиты от повторной траты одних и тех же биткоинов.
Классический Bitcoin-клиент будет отображать транзакцию как «неподтвержденную» пока не наберется 6 подтверждений (6 найденных блоков). Сайты или сервисы, которые принимают Bitcoin для оплаты своих товаров или услуг, могут ставить свои ограничения на количество блоков нужных для подтверждения транзакции.
Цифра 6 была выбрана не случайно: она основывается на теории, что вероятность того, что злоумышленник сможет накопить более 10% от хешрейта сети для подделки транзакций, мала, и что незначительный риск (менее 0,1%) является приемлемым.
Как ускоритель биткоин транзакцию?
Рассмотрим несколько способов, как использовать систему блокчейн в «скоростном режиме»:
- Использование централизованных сервисов с отдельной системой транзакций. Существуют ресурсы, предлагающие услуги создания и использования Биткоин-кошельков, которые проводят транзакции цифровой валюты между своими клиентами, не задействовав экосистему блокчейна. Подобные сервисы предлагают своим клиентам мгновенные транзакции, но только в том случае, если перевод валюты происходит внутри системы. Один из таких сервисов – Coinbase. Он имеет отдельную от блокчейна систему транзакций, благодаря которой можно проводить переводы практически мгновенно.
- Использование мультиподписи для ускорения подтверждения транзакции в системе Биткоин. Некоторые компании, такие как GreenAddress, кроме стандартной подписи транзакции, предусмотренной системой, ставят свою мультиподпись, как подтверждение надежности перевода. Система блокчейн рассматривает подобные транзакции, как надежные и они быстрее принимаются в генерируемый блок. Кроме того, использование технологии мультиподписей повышают безопасность криптовалютных транзакций.
- Использование открытых транзакций и доверительных серверов. Суть в том, что открытая транзакция, когда присутствует вся информация об отправляющей и принимающей стороне, быстрее получает подтверждение системы путем принятия данных в генерируемый блок. Но мало кто использует открытые Биткоин-транзакции, поскольку это противоречит самой идее использования цифровой валюты, а именно – анонимности денежных переводов.
Ускорение транзации с помощью функции Opt-In Replace-by-fee
Самый простой способ заставить вашу транзакцию перепрыгнуть очередь – использование опции под названием Opt-InReplace-by-Fee (Opt-InRBF). С её помощью можно повторно отправить ту же самую транзакцию, но с более высокой комиссией.
Однако, отправляя транзакцию при помощи Opt-InRBF, вы, по сути, сообщаете сети о возможности повторной отправки этой транзакции позднее, но с более высокой комиссией. В результате большинство узлов Биткоина принимают новую транзакцию вместо старой; таким образом, новая транзакция перепрыгивает очередь.
Включится ли ваша транзакция именно в следующий блок, зависит от того, какой майнер добудет новый блок: не все майнеры используют Opt-InRBF. Так или иначе, данную опцию поддерживает достаточное количество майнеров, чтобы ваша транзакция была включена в следующие несколько блоков.
В настоящее время, функцию Opt-InRBF поддерживают как минимум два кошелька: Electrum и GreenAddress. В Bitcoin Core она поддерживается при обработке транзакций, однако создавать собственные RBF транзакции возможно только с помощью сторонних скриптов. В зависимости от кошелька, может потребоваться обновление Opt-InRBF в настройках меню до отправления (первой) транзакции.
Комиссии за транзакции в сети биткоин
Особенностью системы Биткоин является то обстоятельство, что пользователь может по своему усмотрению устанавливать размер комиссии. Но от этой величины напрямую зависит длительность перевода. Чем больше его сумма, тем выше уровень приоритета соответствующей операции и меньше времени требуется для получения подтверждения от системы.
В блокчейне Bitcoin первыми проходят валидацию транзакции с большим размером вознаграждения майнерам сети биткоин. В некоторых случаях, если сильно экономить, процедура подтверждения может занять несколько дней.
Какую комиссию ставить что бы транзакция не зависла — таблица!
Размер комиссии не зависит от суммы транзакции, а зависит только от размера транзакции в Байтах. Транзакция это по сути некий скрипт, который занимает определенное место в Байтах, и майнерам его тем тяжелее обработать, чем он больше.
Ниже приведена таблица приоритетов включения транзакции в блок. Рекомендованная комиссия спрогнозированна с учетом нагрузки сети Bitcoin для быстрого подтверждения Вашей транзакции.
Приоритет | Размер комиссии | Точность прогноза |
Медленный | 0.0003438 BTC | 10% |
Стандарт | 0.000405 BTC | 50% |
Средний | 0.00108 BTC | 55% |
Быстрый | 0.0018 BTC | 90% |
Последний столбец в таблице показывает прогноз попадания платежа с комиссией за транзакцию соответствующий этой строке во временной интервал подтверждения от 0 до 25 мин.
Как проводить анонимные транзакции в сети Bitcoin?
Также если это необходимо, вы можете узнать как проводить анонимные транзакции в сети Bitcoin (BTC), развернутое руководство доступно у нас на сайте.
Данное руководство поможет создать безопасную среду, в которой можно анонимно общаться, просматривать веб-страницы, и, конечно, получать и отправлять биткоины.
Также будет полезно ознакомиться с ТОП-8 технологий для сохранения анонимность биткоин-транзакций (некоторые из которых до сих пор находятся в размработке).
Где выгоднее покупать биткоин? ТОП-5 криптобирж
Для безопасной и удобной покупки криптовалют мы подготовили рейтинг самых надежных и популярных криптовалютных бирж, которые поддерживают ввод и вывод средств в рублях, гривнах, долларах и евро.
Надежность площадки в первую очередь определяется объемом торгов и количеством пользователей. По всем ключевым метрикам, крупнейшей криптовалютной биржей в мире является Binance. Также Binance самая популярная криптобиржа в России и на территории СНГ, поскольку имеет наибольший оборот денежных средств и поддерживает переводы в рублях с банковских карт Visa/MasterCard и платёжных систем QIWI, Advcash, Payeer.
Специально для новичков мы подготовили подробный гайд: Как купить биткоин на криптобирже за рубли?
Рейтинг криптовалютных бирж:
Критерии по которым выставляется оценка в нашем рейтинге криптобирж:
- Надежность работы — стабильность доступа ко всем функциям платформы, включая бесперебойную торговлю, ввод и вывод средств, а также срок работы на рынке и суточный объем торгов.
- Комиссии – размер комиссии за торговые операции внутри площадки и вывод активов.
- Отзывы и поддержка – анализируем отзывы пользователей и качество работы техподдержки.
- Удобство интерфейса – оцениваем функциональность и интуитивность интерфейса, возможные ошибки и сбои при работе с биржей.
- Особенности платформы – наличие дополнительных возможностей — фьючерсы, опционы, стейкинг и прочее.
- Итоговая оценка – среднее число баллов по всем показателям, определяет место в рейтинге.
5 / 5 ( 142 голоса )
The following two tabs change content below.Материал подготовлен редакцией сайта «Майнинг Криптовалюты», в составе: Главный редактор — Антон Сизов, Журналисты — Игорь Лосев, Виталий Воронов, Дмитрий Марков, Елена Карпина. Мы предоставляем самую актуальную информацию о рынке криптовалют, майнинге и технологии блокчейн. Отказ от ответственности: все материалы на сайте Mining-Cryptocurrency.ru имеют исключительно информативные цели и не являются торговой рекомендацией или публичной офертой к покупке каких-либо криптовалют или осуществлению любых иных инвестиций и финансовых операций.
Как отслеживаются транзакции в сети биткоина?
В январе 2018 года компания Bitfury Group (один из крупнейших в мире разработчиков и провайдеров блокчейн-решений) представила финансовым учреждениям и правоохранительным органам инструмент Crystal, который создала специально для проведения расследований, связанных с биткоином.
Crystal анализирует информацию в блокчейне биткоина, концентрируясь на заданных адресах и наборах транзакций, а также выходит за пределы сети и собирает относящиеся к запросу данные по всем доступным источникам: сайтам, тематическим форумам и т. п.
Инструмент визуализирует движение средств вплоть до конечного адреса и вывода криптоактивов в фиатную валюту и высылает результаты на почту клиента. При этом, если при отслеживании вручную можно столкнуться с проблемой большой разветвленности потоков средств, результатом работы Crystal становится список конкретных адресов, на которые дошли деньги, а также определение всех путей их доставки.
Расследование может углубиться в оценку рисков транзакций и отслеживать подозрительные транзакции по BTC-адресу, но разработчики утверждают, что в конечном итоге, применяя уникальный алгоритм кластеризации, Crystal способен выявить настоящее имя держателя монет.
В версии 2.2 Crystal для удобства расследователей появилось еще несколько функций. Например, клиенты могут настроить нотификации об активностях по определенному адресу с возможностью в один клик добавлять к мониторингу и в визуализацию список адресов, участвовавших в транзакции, а также отслеживать операции, совершенные между адресами с помощью посредников.
В пример эффективности Crystal его создатели приводят расследование по вирусу-вымогателю WannaCry. В мае 2017 года за 4 дня он нанес своим жертвам урон почти на $1 млрд, от него пострадали Государственная служба здравоохранения Великобритании, крупнейшая телеком-компания Испании Telefónica, американский логистический гигант FedEx и пользователи из 150 стран мира. Воспользовавшись своим инструментом, создатели Crystal за три часа отследили движение средств с биткоин-кошельков злоумышленников (до точек вывода через криптобиржи Changelly и ShapeShift) и определили, кто стоит за атаками.
В Bitfury также провели расследование по взлому в сентябре 2018 года японской биткоин-биржи Zaif, которая потеряла в результате действий хакеров $60 млн в криптоактивах, включая 6000 биткоинов.
Исследователи определили, что часть похищенных средств была отправлена на вывод через криптовалютную биржу Binance, другая часть — разбита на мелкие суммы и распределена на многочисленные адреса через миксеры, игровые сервисы и другие криптобиржи, а 30% остались на ранее не засвеченных в сети адресах, предположительно принадлежавших взломщику. После этого зарегистрированные на неизвестные лица адреса перевели под дальнейшее наблюдение в Crystal.
Транзакции биткоин — как отследить и проверить 2021 году
Транзакции биткоинКаждый день армия биткоин-энтузиастов пополняется новобранцами с горящими глазами и желанием разбогатеть. Однако, чтобы использовать Bitcoin как средство накопления и перераспределения ценностей, необходимо хотя бы в общих чертах разбираться в принципах работы его блокчейна.
В частности, важно понимать, что из себя представляют транзакции биткоин, почему они являются основной движущей силой сети, как формируются, почему происходят задержки и как ускорить транзакцию биткоин.
Ответы на все эти вопросы взаимосвязаны, поэтому вполне логично комплексно их рассмотреть в рамках одной и той же статьи, что мы сейчас и сделаем.
Отправка и получение биткоиновТранзакции биткоин — это подтвержденные цифровыми подписями фрагменты данных, которые передаются по сети Bitcoin и участвуют в формировании новых блоков.
В каждой транзакции содержится информация о перераспределении некоторого количества монет BTC между участвующими в ней адресами. Также каждый новый перевод содержит ссылку на предыдущий, формируя таким образом последовательную цепочку операций, история которых за все время существования биткоина хранится в публичном реестре — блокчейне.
Формирование транзакций по пересылке биткоинов выполняется с помощью кошельков — специального программного обеспечения, позволяющего взаимодействовать с сетью Bitcoin. Для создания перевода пользователь должен обладать приватным ключем — уникальной комбинацией символов, которая генерируется в момент создания нового BTC-адреса (публичного ключа).
Как работают биткоин-транзакцииНезависимо от того, какой кошелек используется, общий принцип создания и отправки транзакций биткоин остается неизменным:
- Указывается адрес получателя.
- Вводится сумма, которая пересылается.
- Определяется комиссия сети.
- Заполняется описание транзакции (опционально, доступно не во всех кошельках).
- Подтверждается намерение пользователя перевести средства путем отправки в сеть заявки на это, подписанной его цифровой подписью.
Валидной, то есть добавленной в блок, транзакция биткоин становится после проверки участниками сети, имеющими на это право — майнерами, под управлением которых находятся ноды (узлы). Перед тем, как это произойдет, новый перевод попадает на подтверждение в специальное хранилище — мемпул.
Пока транзакция биткоин находится в очереди на проверку она считается неподтвержденной. Включение в блок означает получение транзакцией 1 подтверждения.
☝️
В теории для того, чтобы сделка получила статус успешно завершенной, нужно минимум 2 подтверждения (генерация блока включения и последующего за ним). Но в большинстве случаев эта цифра должна равняться 6 — считается, что такая мера защищает сеть от «атак двойного расходования».
Исходя из того, что новые блоки в среднем создаются каждые 10 минут, стандартное количество подтверждений (6) занимает примерно час времени. Однако, криптовалютные биржи и разнообразные онлайн-сервисы для ускорения зачисления средств могут устанавливать свои правила, понижая минимально необходимое количество подтверждений до 2–4.
В момент успешного завершения транзакции биткоины зачисляются на баланс получателя. Также в это время происходит обновление кошелька отправителя — на его счет возвращаются неизрасходованные выходы (UTXO), которые являются разницей между изначальным количеством монет и отправленной в переводе суммой с учетом комиссии майнерам.
Комиссии за транзакции биткоинОсновная мотивация майнеров, подталкивающая их к обработке транзакций — получение комиссионных, размер которых устанавливается отправителем. Таким образом формируется «живая» очередь, приоритетными в которой становятся те сделки, у которых комиссия больше.
Размеры комиссионных отчислений зависят от загруженности мемпула, которая в свою очередь изменяется пропорционально популярности биткоина и его цене.
Так, например, в конце 2017 года во время массовой истерии по поводу достижения курсом главной криптовалюты отметки в почти $20000 количество неподтвержденных транзакций биткоин также пребывало на пике. В то время комиссии доходили до $45 за один перевод, но даже это не всегда обеспечивало их быстрое подтверждение.
В итоге время ожидания в некоторых случаях доходило до нескольких суток. А вот в разгар «криптозимы», когда стоимость биткоина консолидировалась чуть выше $3000, обработка майнерами одной транзакции биткоин оценивалась всего лишь в $0,20–0,40.
Для определения актуального среднего значения комиссионных сборов используются специализированные сайты со статистикой по транзакциям биткоин, например, BitInfoCharts.
Проверка транзакции BitcoinКак проверить транзакцию биткоин:
- Скопируйте хеш транзакции.
- Откройте сайт любого обозревателя блоков биткоина.
- В поисковую строку вставьте скопированный в Шаг 1 хеш транзакции и нажмите Enter.
- Напротив подтвержденной тразакции будет стоять пометка confirmed и/или она будет выделена зеленым цветом; напротив неподтвержденной транзакции пользователь увидит пометку unconfirmed и/или выделение красным цветом.
Подробную инструкцию, как отслеживать транзакции биткоин, со всеми подробностями и нюансами вы найдете ниже.
Поскольку сеть Bitcoin является публичной, все хранящиеся в ней данные общедоступны. Для просмотра истории уже завершенных транзакций или отслеживания состояния новых используются специализированные сервисы — обозреватели блоков (эксплореры). Самые популярные из них — Blockchain.com, BitInfoCharts, Blockchair, SoChain и BlockCypher.
Процедура проверки транзакции биткоин инициируется путем указания ее уникального идентификатора (хеш, txhash) в соответствующем поле любого из перечисленных или аналогичных им сайтов. Результатом этого действия будет открытие страницы с подробными деталями операции:
Адреса отправителя и получателя.
Номер блока включения.
Статус подтверждения.
Дата и время включения в блок.
Вес транзакции.
Количество входов и выходов.
Сумма перевода.
Служебная информация (скрипты, подписи и т.п.).
Блок в сети биткоин☝️
Для проверки транзакции биткоин необязательно знать ее хеш — для этого вполне достаточно знать адрес хотя бы одного из участников сделки.
Если ввести его в поисковую строку любого обозревателя блоков, откроется страница, на которой будет присутствовать история всех сделок, в которых участвовал просматриваемый кошелек. Зная сумму и примерное время проведения транзакции биткоин можно найти её в списке и, просто кликнув по txhash, увидеть искомые данные.
☝️
Если проверка показывает, что транзакция длительное время пребывает в статусе «Unconfirmed» (неподтвержденная) можно считать ее зависшей и принимать меры по ее ускорению.
Рассмотрим процесс проверки транзакции биткоин на примере одного из самых популярных обозревателей блоков Blockchain.com.
Так как Blockchain.com является не только эксплорером, но и сервисом онлайн-кошельков, а также площадкой криптовалютной статистики, на главной странице сайта нужно в меню «Данные» выбрать интересующий нас раздел «Проводник».
Запуск биткоин-эксплорера на сайте Blockchain.com // Источник: Blockchain.comВ открывшемся окне обозревателя блоков необходимо ввести в соответствующее поле хеш транзакции (tx hash), убедиться, что в выпадающем списке выбран Bitcoin (сервис также поддерживает Ethereum и Bitcoin Cash) и нажать кнопку «Поиск».
Поиск транзакции по хешу через обозреватель блоков // Источник: Blockchain.comНа сгенерированной странице результатов будут присутствовать участвующие в транзакции адреса (отправителя и получатель), ее статус (неподтвержденная или n-е кол-во подтверждений), сводная информация (размер, вес, время получения, номер блока включения), а также данные по пересылаемым средствам и комиссионным сборам за сделку.
Проверка транзакции Bitcoin в эксплорере // Источник: Blockchain.com☝️
Поскольку все транзакции Bitcoin транслируются в сеть без шифрования, кто-угодно может получить доступ к вышеописанным подробностям по любой транзакции, независимо от того, кем он является — одним из ее участников или сторонним наблюдателем.
Большинство Bitcoin-эксплореров позволяют просматривать не только информацию по транзакциям и проверять транзакции Bitcoin, но и узнавать подробные данные по отдельным публичным ключам и блокам с возможностью отслеживания записанных в блокчейне цепочек операций.
Поэтому, если у вас нет возможности скопировать tx hash и вставить его в обозреватель блоков, можно ввести адрес кошелька получателя или отправителя. Среди данных, которые отобразит эксплорер, будет раздел истории транзакций, в котором можно найти и просмотреть информацию по интересующему вам переводу средств.
Поиск транзакции путем просмотра кошелька через обозреватель блоков // Источник: Blockchain.comКак это происходит на практике, вы можете посмотреть в видео ниже:
Как проверить транзакцию Bitcoin Ускорение тразакций биткоинЧтобы ускорить транзакцию биткоин, нужно сделать следующее:
- Шаг 1. Проверить статус транзакции в обозревателе блоков.
- Шаг 2. Выбрать способ ускорения транзакции.
- Шаг 3. Отправить бесплатный запрос в майнинг-пул на ускорение транзакции или повысить комиссию в кошельке, через который данная транзакция создавалась.
- Шаг 4. Дождаться обработки транзакции майнерами.
Ниже вы сможете прочитать подробности по каждому способу.
Каждый, кто имеет хотя бы небольшой опыт в отправке биткоин-транзакций, наверняка не раз сталкивался с их медленным подтверждением. Будь-то оплата за покупку какого-нибудь товара или же перевод трейдером средств на биржу, в любом случае длительное ожидание — вовсе не то, с чем будет мириться современный человек, у которого есть карта Visa или Mastercard.
Сеть BitcoinЗа одну секунду в Visa или Mastercard проходит по несколько тысяч транзакций, у биткоина — всего 5–10 штук.
Да, это факт — низкая скорость сети является одной из основных проблем прародителя всех криптовалют. И именно по этой причине многие переходят на использование более быстрых блокчейнов, выбирая Bitcoin разве что в качестве средства для долгосрочного накопления сбережений.
Число пользователей биткоина, а, следовательно, и производимых ими транзакций неустанно растет с каждым годом. При этом пропускная способность сети остается неизменной, что вполне естественно провоцирует ситуации с длительным подтверждением переводов вследствие загруженности мемпула и/или установки слишком низкой комиссии.
В большинстве случаев успешное завершение таких транзакций рано или поздно состоится, но могут быть и такие, которые зависают, по сути, навсегда.
В зависимости от сложившейся ситуации, можно попытаться воспользоваться некоторыми способами для ускорения транзакции Bitcoin.
При формировании транзакции биткоин не всегда стоит соглашаться со стандартным значением комиссии сети, которое предлагается используемым программным обеспечением (при наличии такой возможности).
Если перед отправителем стоит цель беспрепятственно перевести средства получателю, нужно указать вручную значение, которое будет не ниже текущего среднестатистического.
☝️
А чтобы наверняка обеспечить быструю обработку транзакции биткоин майнерами, можно заплатить им даже на 20–30% больше.
Комиссии за блокчейн-транзакцииВ случае, если транзакция уже отправлена и долгое время остается неподтвержденной, можно воспользоваться платной услугой по ее «проталкиванию» в очереди. Такая возможность предоставляется большинством крупных пулов для майнинга, например — ViaBTC и BTC.com.
В среднем это обойдется в $20–30. Но даже при этом быстрый результат не гарантируется — после указания идентификатора биткоин-транзакции время включения ее в блок займет от 10 минут до нескольких часов, в зависимости от текущей загруженности сети.
Название данного метода ускорения транзакций биткоин переводится как «ребенок платит за родителя». Он может быть применен только получателем зависшего перевода в случае поддержки его кошельком функции «Spend unconfirmed» (потратить неподтвержденные).
В этом случае пользователь имеет возможность создать новую транзакцию с использованием средств, которые фактически еще не зачислены на его баланс, отправив ее самому себе и указав при этом комиссию, размера которой будет хватать на обе сделки, он обеспечит быстрое включение обоих транзакций биткоин в блок.
Хитрость в том, что без подтверждения первого перевода с маленькими комиссионными майнер не сможет получить более привлекательную награду за подтверждение второго.
Чтобы правильно определить размер комиссии для реализации описанной схемы, нужно с помощью любого эксплорера узнать вес зависшей транзакции и, взяв среднестатистические данные по стоимости обработки байта информации сетью с сайта Bitcoinfees, рассчитать приемлемое вознаграждение за сделку.
☝️
При формировании CPFP-транзакции важно не забыть умножить полученное значение на два, чтобы комиссии хватило на оба перевода.
Методы ускорения биткоин-транзакцииВ некоторых кошельках, например Electrum, имеется функция Replace-by-fee, с помощью которой «зависшие» биткоин-транзакции могут быть заменены своими копиями с увеличенной комиссией, которая обеспечит ускорение ее подтверждения. Обязательное условие при этом — изначальная сделка должна быть с пометкой «replaceable» (устанавливается еще на этапе формирования).
Такие транзакции биткоин могут быть изменены в любой момент до включения в блок. В большинстве кошельков с поддержкой данной функции повторный перевод даже не нужно создавать — достаточно лишь в списке сделок найти зависшую и, открыв контекстное меню правой кнопкой мыши, выбрать опцию увеличения комиссии (как определить оптимальную, было описано выше).
Реакцией сети на такие действия будет обработка биткоин-транзакции с увеличенной комиссией и отмена зависшей (с пометкой «replaceable»). Если же нужная опция не будет включена в первый перевод, его копия будет отвергаться системой в целях предотвращения ситуаций с «двойной тратой».
Кошельки SegWitКроме использования увеличенной комиссии, для ускорения биткоин-транзакций можно дополнительно использовать кошелек с поддержкой сайдчейн-технологии Segregated Witness (SegWit). Благодаря ей, вместимость блоков в сети Bitcoin увеличивается вдвое и соответственно в столько же раз повышается пропускная способность при обработке переводов между SegWit-адресами.
Такую возможность предоставляют пользователям большинство популярных криптокошельков — Bitcoin Core, Exodus, Jaxx, Electrum, Green Address, Samourai Wallet и Coinbase Wallet.
Кстати, при использовании SegWit даже увеличенные комиссии по факту получаются намного дешевле, чем в стандартных сделках. Причина — уменьшение веса транзакций биткоин за счет выноса подписей в отдельные блоки побочной цепи.
Функция Multisignature (мультиподпись), которая присутствует в некоторых криптовалютных кошельках, также положительно влияет на скорость обработки транзакций биткоин. Поскольку в этом случае перевод средств подтверждается сразу несколькими приватными ключами, как правило, контролируемыми разными пользователями, система рассматривает этот факт как гарантию надежности и повышает его приоритет в очереди.
Учитывая все вышеперечисленное, можно прийти к выводу, что добиться максимально быстрого подтверждения можно с помощью комплексного подхода. В идеале это было бы создание биткоин-транзакции с увеличенной комиссией, использованием multisig-адресов и технологии segwit, не забывая при этом об отметке «replaceable». При этом также стоит обращать внимание на загруженность мемпула и учитывать желаемое время завершения перевода.
Анонимные транзакции в сети биткоинМногие участники криптосообщества считают принцип открытости блокчейна, который является одним из основополагающих Bitcoin-постулатов, серьезной проблемой на пути настоящей финансовой свободы. Имеется в виду возможность отслеживания транзакций биткоин.
С одной стороны, это позволяет, например, в расследовании преступлений, в которых используются криптовалюты. С другой же позволяет посторонним лицам получать доступ к информации о размере сбережений того или иного участника сети, так как на деле связать личность человека с BTC-адресом не так уж и сложно. И в первую очередь это касается жителей государств, в которых операции с криптовалютами запрещены или же отслеживаются властями из-за жесткого регуляторного законодательства.
Несмотря на то, что Сатоши Накамото не смог реализовать в своем детище по-настоящему конфиденциальные транзакции, биткоины все же можно пересылать анонимно, пользуясь некоторыми инструментами.
Миксеры для биткоин-транзакцийСамый популярный способ — использование криптовалютных миксеров. Такие интернет-ресурсы предлагают многочисленные схемы «перемешивания» платежей путем деления их на мелкие части и многократной пересылки между разными адресами. Сумма изначального перевода в итоге достигает конечного адресата, но связь между ним и отправителем отследить практически невозможно. Кроме того, некоторые сервисы предлагают пользователям использование отложенных транзакций, что еще больше затрудняет их отслеживание.
За выполненную работу биткоин-миксеры, конечно же, берут плату в размере нескольких процентов от суммы транзакции, которая чаще всего является не такой уж и высокой с учетом получаемого результата.
☝️
Как правило, стоимость и скорость проведения анонимизирующих операций зависит от количества «перемешиваний» и суммы перевода.
Криптовалютных миксеров, позволяющих сделать транзакции биткоин анонимными, существует достаточно много. Но поскольку всегда существует риск того, что малоизвестный сервис окажется мошенническим, следует использовать только проверенные многими пользователями варианты. Например — Blender, BitMix, Mixcoins, Bitcoin Mixer и SmartMix.
Кошелек WasabiБиткоин-кошелек Wasabi Wallet позволяет проводить конфиденциальные транзакции биткоин по схожему с миксерами принципу. Однако при этом речь идет не об обычном «перемешивании» монет между адресами, а об использовании анонимной сети Tor в комплексе с технологией CoinJoin и протоколом «слепых подписей» ZeroLink, разработанным компаниями Hidden Wallet и Samurai Wallet.
Основным отличием от использования биткоин-миксеров является то, что пользователь никому не передает в управление свои средства, т.е. исключается риск нечестного посредника. Кроме того, непосредственно процесс микширования через Wasabi занимает считанные секунды.
Этот кошелек является приложением с открытым исходным кодом и выпускается только в десктопной версии для Windows, Linux и MacOS.
Сайдчены в сети биткоинТехнология Liquid, представленная блокчейн-компанией Blockstream, используется в виде надстройки к сети биткоина, позволяющей создавать выделенные транзакционные каналы между биржами и прочими площадками. Это позволяет пересылать активы не только намного быстрее, чем в обычной сети Bitcoin, но и анонимно. Для этого используется уникальный метод криптографической маскировки сумм транзакций от всех, кроме непосредственных участников сделки.
Изначально эта технология ориентирована на крупных игроков криптовалютного рынка. Но также может использоваться трейдерами, которые являются клиентами бирж-партнеров Liquid, и пользователями одноименного кошелька. Ожидается, что со временем такие конфиденциальные сделки могут быть внедрены и в основной протокол Bitcoin.
Пожалуй, на этом ознакомление с особенностями транзакций биткоин и методами их совершенствования можно считать завершенным. Если вы освоите хотя бы половину из описанных инструментов, взаимодействие с блокчейном главной криптовалюты станет намного эффективнее и безопаснее по сравнению с использованием «настроек по-умолчанию».
Как осуществляются биткойн-транзакции | Начало работы с биткоином
Биткойн существует в форме записей о биткойн-транзакциях
Мы определяем биткойн как цепь цифровых подписей. Каждый владелец отправляет свой биткойн следующему путем цифрового подписывания хэша предыдущей транзакции и открытого ключа следующего владельца, после чего добавляет эту информацию в конец койна. Получатель платежа может проверить подписи, чтобы верифицировать цепочку владельцев.
– Сатоши Накамото, Руководство по Биткойну
Здесь стоит упомянуть, что биткойны (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, напротив, обладает копеечным транзакционным сбором, а его платежи могут быть верифицированы даже с нулем подтверждений.
Мечта о Bitcoin умерла — ему не стать валютой
24 Января, 2021, 11:00
18364
Колумнист Slate и The New Yorker Джеймс Суровецки размышляет о том, как проект Bitcoin свернул не туда и потерпел поражение в достижении своей первоначальной цели — стать альтернативой традиционным деньгам.
22 мая 2010 года разработчик Bitcoin Ласло Ханец купил самое дорогое блюдо в истории человечества — пиццу Papa John’s за 10 000 биткоинов. Учитывая, что сегодня за 1 BTC дают $35 000, эта пицца обошлась ему в $350 млн.
Сегодня никому и в голову не придет отдать биткоины за такую будничную вещь как пицца, потому что люди в первую очередь думают о том, сколько денег они смогут получить за эту цифровую монету в будущем. С тех пор, как Хайнц так бездарно распорядился своими «битками», биткоин превратился из любопытного эксперимента в области децентрализованных криптофинансов в самый успешный инвестиционный актив последних десятилетий: с 2010 года он показал рост более чем на 10 000 000% с прыжком на 220% только за последний год.
Сегодня на каждом финансовом сайте висит тикер биткоин. Легенды инвестиционного бизнеса вроде Пола Тюдор-Джонса, Стенли Дракенмиллера и Билла Миллера высказывают энтузиазм относительно его перспектив, а такие компании как Square и MicroStrategy инвестируют в биткоин свои корпоративные финансы.
Несмотря на высокую рискованность и волатильность — только за последнюю неделю BTC обвалился на 25% — биткоин, скажем так, приняли в клуб и теперь воспринимают, как достойного конкурента таким традиционным активам как золото.
Но взбираясь на вершину, биткоин незаметно лишился того, ради чего изначально создавался.
Цифровые деньги. Финансовая революция
Биткоин разрабатывался не как спекулятивный актив. Он разрабатывался, чтобы стать криптовалютой — новой денежной единицей, которую люди будут использовать для обмена на материальные и нематериальные ценности. Поэтому мы и зовем его криптовалютой, не так ли?
В опубликованных white paper в 2008 году неким Сатоши Накамото проект описывался как «чистая Р2Р-версия электронных денег, которые позволят проводить онлайн-платежи напрямую от отправителя получателю без посредничества финансовых организаций». Он позиционировал Bitcoin как «электронную платежную систему, которая полагается не на веру, а на криптографию, и позволяет осуществлять транзакции без участия стороннего доверенного лица», которым обычно выступает банк или кредитная компания.
И это именно то, как Хайнц распорядился своими биткоинами в 2010 году: он отправил электронный платеж напрямую другому человеку без вмешательства посредников. И хотя в тот день он, ни о чем не подозревая, допустил чудовищную инвестиционную ошибку, Хайнц все же использовал биткоин аккурат по его прямому назначению.
Сейчас мало кто помнит, что в те дни биткоин обещал стать новой версией валюты, которая бросит вызов гегемонии так называемых фиатных валют вроде доллара, которые выпускают правительства государств. Конкурировать с ними биткоин намеревался своими свойствами: децентрализованные транзакции, которые нельзя отследить и перехватить, позволяли людям проводить платежи дешевле и полностью анонимно. И поскольку эмиссия биткоинов изначально была программно ограничена — не более 21 млн коинов может быть создан до 2140 года, и на этом все — люди могли не опасаться инфляции, которая обесценила бы стоимость криптовалюты.
Это была фантазия из области киберпанка, которая воодушевила огромное количество энтузиастов по всему миру. В 2018 году глава Twitter и Square Джек Дорси заявил: «В конце концов в мире будет только одна валюта. Лично я верю, что это будет Bitcoin».
Даже сегодня можно встретить ученых мужей, которые трубят о революционных возможностях Bitcoin и ссылаются на планы PayPal предложить мерчантам в 2021 году осуществлять транзакции в криптовалютах, как свидетельство того, что радикальные изменения уже на носу.
Подножка на старте
В реальности же биткоин никогда не был валютой. Почти с самого начала лишь малая доля биткоин-транзакций осуществлялась в обмен на реальные товары и сервисы — и те были в основном нелегальными, вроде наркотиков или азартных ставок. В основном транзакции в биткоинах были трейдинговыми: люди просто покупали и продавали его, зарабатывая на колебаниях курса.
Аналитическая блокчейн-компания Chainalysis обнаружила, что всего 1,3% всех биткоин-транзакций в 2019 году осуществлялись при участии мерчантов. И этот тренд лишь усилился, когда стоимость биткоина взлетела.
Несмотря на спекулятивный ареол, окружающий биткоин, количество транзакций за последние два года выросло не так уж сильно. Точнее, их число настолько мало по сравнению с количеством банковских онлайн-транзакций, что даже не стоит упоминания. Представьте себе: на сегодня в среднем за день происходит около 325 000 транзакций в биткоинах, включая трейдинговые. В то же время по кредитным картам за день осуществляется примерно миллиард транзакций.
Одна из причин, по которым биткоин провалил свою изначальную цель, заключается в том, как он работает. Транзакции в его блокчейн-сети проводятся очень медленно.
Для сравнения, Visa проводит примерно 6000 транзакций в секунду, но ее возможности позволяют обрабатывать намного-намного больше платежей. А сколько транзакций за секунду обрабатывает биткоин? Семь.
Поэтому, если вы хотите рассчитаться за покупки в местном супермаркете, где за вами на кассе уже выстроилась очередь нетерпеливых покупателей, Bitcoin — едва ли хороший выбор.
Кроме того, комиссии с платежей через сеть биткоина порой бывают шокирующе высоки. В 2017 году, когда Bitcoin переживал очередной бум, комиссии достигали $55 за транзакцию, и хотя с тех пор они сильно просели, в мае 2020 года покупка чего-либо за биткоин обходилась в $6 с операции. Это не проблема, если вы делаете инвестицию, но это серьезный барьер, если ваша цель — купить пиццу.
Еще более существенная проблема для биткоина как криптовалюты заключается в том, что людям в нем больше всего нравится. И это — ограниченность и контроль его эмиссии. Это значит, что когда спрос на биткоин растет (потому что все больше людей думает, что сможет разбогатеть с его помощью), то же самое происходит и с его стоимостью.
Так что если вы верите, что ваши биткоины завтра будут более востребованы, чем сегодня, попросту глупо тратить их на пиццу: их надо копить, а потом продать, когда цена на них вырастет. И поскольку вы вполне можете обойтись без ежедневных трат в биткоинах, ничего не мешает вам придерживаться этой стратегии.
Чем больше людей копят биткоины, воспринимая их как спекулятивный актив, тем менее привлекательны они как валюта.
Экстраординарная волатильность цены биткоина, который — как мы убедились за прошедшую неделю — может за одну ночь обвалиться на 10%, заставляет бизнес отказаться от его использования в качестве платежного средства. Никто не хочет отдавать свои товары и услуги в обмен на то, что завтра будет стоить на 10% меньше, чем сегодня. Конечно, завтра оно может наоборот стоить больше. Но это какая-то лотерея, а не бизнес.
Вместо итогов
Превращение биткоина из предполагаемой валюты в спекулятивный актив было эффективно встроено в систему с самого начала. Это то, к чему биткоин все время шел. Вслед за биткоином появились криптовалюты, которые лучше приспособлены к работе в качестве валюты, но, как ни парадоксально, они и близко не так популярны, как биткоин.
Несмотря на то, что биткоин разрабатывался как платежная система и средство обмена, его реальная привлекательность неизбежно приходила к тому, что экономисты называют «средством сбережения», своего рода цифровым аналогом золота.
Как и золото, биткоин ценен в той мере, в какой люди считают его ценным: вы покупаете его, потому что думаете, что кто-то другой в будущем заплатит за него больше. И, как и золото, его стоимость не может быть завышена центральным банком.
Тот факт, что ценность биткоина ничем не подкреплена (как у акций или облигаций), не означает, что он абсолютно ничего не стоит. Это означает лишь то, что биткоин оказался полностью оторван от своей изначальной цели. То, что должно было в корне изменить ежедневную финансовую жизнь каждого человека на Земле, превратилось в способ быстро разбогатеть (или обанкротиться), а в идеале — защитить свои сбережения от инфляции.
Биткоин начинался как криптовалюта. А заканчивает как криптоактив.
Читайте также:
4 самых распространенных видов мошенничества с криптовалютами | Как не стать жертвой
Как только вы начинаете пользоваться новыми цифровыми денежными механизмами, известными как криптовалюты, вы осознаете, что такие операции и транзакции связаны с риском. Мы сейчас не говорим о непредсказуемости рынков. Интернет – это благодатная почва для мошенничества, и биржи криптовалют не являются исключением. Рассматривая варианты вложений в различные стартапы и платформы обмена валют, будьте начеку, чтобы не потерять ваши инвестиции в криптовалюте.
При рассмотрении вариантов инвестиций в стартапы и компании, связанные с криптовалютами, эксперты рекомендуют проверять, что в них используется технология блокчейн (blockchain), которая обеспечивает отслеживание данных всех транзакций. Также убедитесь, что у них есть надежный бизнес-план, в котором предусматриваются пути решения реальных проблем. Компании должны предоставлять данные о ликвидности и правилах первичного размещения своей криптовалюты. За компанией должны стоять реальные люди. Если рассматриваемый вами стартап не удовлетворяет каким-то из этих критериев, то критически пересмотрите свое решение.
Предлагаем вам обзор распространенных видов мошенничества с криптовалютами и способы защититься от них.
1- Поддельные вебсайты
Даже если вы следуете рекомендациям опытного человека, вы можете попасться на уловку мошенников, зайдя на поддельный вебсайт. Существует удивительно много вебсайтов, созданных под копирку с настоящих сайтов законных стартапов. Если при отображении вебсайта в адресной строке браузера нет значка с замочком и не отображается «https» в адресе сайта, то это должно вас насторожить.
Даже если сайт на вид ничем не отличается от оригинального, для проведения платежной операции вас могут перенаправить на другую платформу. Например, вы можете нажать на ссылку, которая, как вам кажется, ведет на легитимный вебсайт, но окажется, что это мошеннический URL-адрес, в котором киберпреступники подменили букву «о» знаком нуля. Эта платформа, естественно, не приведет вас на сайт той инвестиции, которую вы для себя выбрали. Чтобы избежать такой опасности, внимательно перепроверяйте URL-адреса, а лучше набирайте их сами вручную.
2- Поддельные мобильные приложения
Еще один распространенная уловка, на которую часто поддаются инвесторы в криптовалюты – это поддельные приложения, размещаемые в Google Play и Apple App Store. Хотя такие приложения обычно быстро распознаются и удаляются, некоторые пользователи могут стать их жертвой. Тысячи пользователей совершают такую ошибку и скачивают поддельные приложения для работы с криптовалютами.
Описываемый риск выше для пользователей платформы Андроида, однако от него не застрахован любой инвестор. Обращайте внимание на явные опечатки, в т.ч. в названии приложения. Будьте начеку, если в названии бренда использованы неоригинальные цвета или неправильный логотип. Перепроверьте приложение и лучше скачайте его снова из доверенного источника.
3- Будьте осторожны с соцсетями
Если вы в соцсетях подписаны на знаменитостей или известных бизнесменов, имейте в виду, что такие профили бывают клонами, созданными мошенниками. То же касается и криптовалют – часто действуют вредоносные боты, которые выдают себя за кого-то еще. Не принимайте предложения о криптовалютах, которые получаете в социальных сетях – велика вероятность попасть на фальшивые аккаунты.
Если в этих платформах кто-то просит вас поделиться даже небольшим количеством криптовалюты, не верьте – скорее всего вы ее никогда обратно не получите. Если на сообщения отвечают другие пользователи, то это еще ничего не означает – они тоже могут оказаться ботами. Нужно быть предельно осторожным.
4- Мошеннические емейлы
Даже если полученное вами письмо выглядит абсолютно похоже на то, которое вы получили от легитимной криптовалютной компании, подумайте дважды, стоить ли делать инвестиции. Абсолютно ли совпадают письма, идентичен ли логотип и изображение бренда? Легитимен ли почтовый адрес, является ли он официальным? Чтобы проверить все это, нужно, чтобы в компании работали реальные люди. Если письмо вызывает у вас сомнения, обратитесь к кому-нибудь, кто в этой компании работает. И никогда не переходите по ссылке в сообщении, чтобы попасть на сайт.
Мошенники часто объявляют о поддельных первичном размещении монет – таким образом они могут украсть у пользователей значительное количество денег. Будьте осторожны с предложениями, которые вы получаете по почте и видите на вебсайтах; внимательно изучайте все детали.
К сожалению, много случаев, когда некоторые интернет-пользователи эксплуатируют небезопасные вычислительные системы, чтобы производить майнинг или красть криптовалюты. До того, как начать инвестировать в криптовалюты, узнайте побольше о безопасности и способах защитить себя на этом новом рынке.
Дополнительные ссылки по теме:
Что такое криптовалюта?
Как защитить свои деньги в Интернете
Что такое биткоин?
Kaspersky Total Security
Kaspersky VPN Secure Connection (Защищенный ВПН канал)
Распространенные виды мошенничества с криптовалютами
KasperskyМошенничества в интернете распространены, и биржи криптовалют – не исключение. Узнайте о четырех наиболее распространенных видах мошенничества с криптовалютами, как их распознать и не стать жертвой.
Bitcoin Block Explorer | BlockCypher
Последние блоки
Высота | Возраст | транзакции | Всего отправлено | Итого | Размер блока (в байтах) |
---|---|---|---|---|---|
693160 | 2021-07-29T03: 10: 44.291Z | 2,257 | 18 742,127 BTC | 0,109 BTC | 1,261,542 |
693159 | 2021-07-29T02: 52: 14.927Z | 2,024 | 19 334.337 BTC | 0,122 BTC | 1,152,753 |
693158 | 2021-07-29T02: 36: 45.244Z | 1 938 | 3 441,052 BTC | 0,103 BTC | 856 953 |
693157 | 2021-07-29T02: 21: 16.094Z | 1,067 | 18 034,54 BTC | 0,048 BTC | 749 366 |
693156 | 2021-07-29T02: 12: 53.702Z | 214 | 313.49 BTC | 0,012 BTC | 94 448 |
Высокий приоритет (1-2 блока) | Средний приоритет (3-6 блоков) | Низкий приоритет (7+ блоков) |
---|---|---|
0,00039 BTC / КБ | 0,00025 BTC / КБ | 0,00004 BTC / КБ |
Оценка вознаграждения основана на скользящем средневзвешенном значении.
Последние транзакции
Хэш транзакции | BTC | Время | Предпочтение майнера |
---|---|---|---|
eedef6e8a666 … | 0,00336183 BTC | низкий | |
2f390d9582b5 … | 0,414344 BTC | низкий | |
6ae51d053fa7 … | 0,0014756 BTC | низкий | |
ca2f967 ... | 0,04463407 BTC | низкий | |
ea334019f19d ... | 0,10762296 BTC | низкий | |
76f48cb10534 ... | 0,01856621 BTC | низкий | |
c118e5006a4f ... | 0,0242021 BTC | средний | |
4646bacb97df ... | 0,05997923 BTC | низкий | |
49612f172e7d ... | 2,41428924 BTC | низкий | |
098471131e21 ... | 0,10017832 BTC | низкий |
Примечание. BlockCypher работает быстрее, чем другие API-интерфейсы цепочки блоков, поэтому для появления этих транзакций на других сайтах может потребоваться некоторое время.
Как работает биткойн
Как именно классифицировать Биткойн, вызывает разногласия.Тип валюты, средство сбережения, платежная сеть или класс активов?
К счастью, легче определить, что такое Биткойн на самом деле. Это программное обеспечение. Не дайте себя обмануть стоковыми изображениями блестящих монет, украшенных измененными символами тайского бата. Биткойн - это чисто цифровое явление, набор протоколов и процессов.
Это также самая успешная из сотен попыток создать виртуальные деньги с помощью криптографии, науки создания и взлома кодов.Биткойн вдохновил сотни подражателей, но он остается крупнейшей криптовалютой по рыночной капитализации - отличием, которое он сохранял на протяжении всей своей более чем десятилетней истории.
(Общее примечание: согласно Bitcoin Foundation, слово «Биткойн» пишется с заглавной буквы, когда оно относится к криптовалюте как к объекту, и дается как «биткойн», когда оно относится к количеству валюты или самих единиц. Биткойн также сокращенно обозначается как «BTC». В этой статье мы будем чередовать эти способы использования.)
Ключевые выводы
- Биткойн - это цифровая валюта, децентрализованная система, которая регистрирует транзакции в распределенном реестре, называемом блокчейном.
- Биткойн-майнеры используют сложные компьютерные установки для решения сложных головоломок, пытаясь подтвердить группы транзакций, называемые блоками; в случае успеха эти блоки добавляются в запись блокчейна, и майнеры награждаются небольшим количеством биткойнов.
- Другие участники рынка биткойнов могут покупать или продавать токены через криптовалютные биржи или в одноранговой сети.
- Реестр Биткойн защищен от мошенничества через систему без доверия; Биткойн-биржи также защищают себя от потенциальной кражи, но громкие кражи случаются.
Блокчейн
Биткойн - это сеть, работающая по протоколу, известному как блокчейн. В статье 2008 года человека или людей, называющих себя Сатоши Накамото, сначала были описаны как блокчейн, так и Биткойн, и какое-то время эти два термина были почти синонимами.
С тех пор блокчейн превратился в отдельную концепцию, и тысячи блокчейнов были созданы с использованием аналогичных криптографических методов.Эта история может сбить с толку номенклатуру. Блокчейн иногда относится к оригинальной цепочке блоков биткойнов. В других случаях это относится к технологии блокчейн в целом или к любому другому конкретному блокчейну, например, к той, на которой работает Ethereum.
К счастью, основы технологии блокчейн просты. Любой данный блокчейн состоит из единой цепочки дискретных блоков информации, упорядоченных в хронологическом порядке. В принципе, эта информация может быть любой строкой из единиц и нулей, что означает, что она может включать электронные письма, контракты, права собственности на землю, свидетельства о браке или сделки с облигациями.Теоретически любой тип контракта между двумя сторонами может быть заключен на блокчейне, если обе стороны согласны с контрактом. Это устраняет необходимость участия третьей стороны в любом контракте. Это открывает целый мир возможностей, включая одноранговые финансовые продукты, такие как ссуды или децентрализованные сберегательные и текущие счета, где банки или любые посредники не имеют значения.
Хотя текущая цель Биткойна - это средство сбережения, а также платежная система, нет ничего, что могло бы сказать, что Биткойн нельзя было бы использовать таким образом в будущем, хотя необходимо будет достичь консенсуса, чтобы добавить эти системы в Биткойн.Основная цель проекта Ethereum - создать платформу, на которой могут возникать эти «умные контракты», тем самым создавая целый мир децентрализованных финансовых продуктов без каких-либо посредников, а также связанных с ними сборов и потенциальных утечек данных.
Эта универсальность привлекла внимание правительств и частных корпораций; действительно, некоторые аналитики считают, что технология блокчейн в конечном итоге станет самым действенным аспектом повального увлечения криптовалютой.
Однако в случае Биткойна информация в цепочке блоков - это в основном транзакции.
Биткойн - это действительно просто список. Человек A отправил X биткойнов человеку B, который отправил Y биткойнов лицу C и т. Д. Подсчитывая эти транзакции, каждый знает, где находятся отдельные пользователи. Важно отметить, что эти транзакции не обязательно должны выполняться от человека к человеку.
Кто угодно может получить доступ к сети Биткойн и использовать ее, и ваша этническая принадлежность, пол, религия, вид или политические взгляды не имеют никакого значения. Это открывает огромные возможности для Интернета вещей.В будущем мы можем увидеть системы, в которых у беспилотных такси или сверхмощных транспортных средств есть собственные кошельки с блокчейном. Автомобиль будет отправлен от пассажира криптовалютой и не будет двигаться до тех пор, пока не будут получены средства. Транспортное средство сможет определить, когда ему нужно топливо, и будет использовать свой кошелек для облегчения заправки.
Другое название блокчейна - «распределенный реестр», что подчеркивает ключевое отличие этой технологии от хорошо хранимого документа Word. Блокчейн Биткойна является распределенным, то есть публичным.Любой может загрузить его целиком или перейти на любое количество сайтов, которые его разбирают. Это означает, что запись общедоступна, но это также означает, что существуют сложные меры для обновления реестра блокчейна. Нет центрального органа, который следил бы за всеми транзакциями биткойнов, поэтому участники сами делают это, создавая и проверяя «блоки» данных транзакции. См. Раздел «Майнинг» ниже для получения дополнительной информации.
Вы можете увидеть, например, что 15N3yGu3UFHeyUNdzQ5sS3aRFRzu5Ae7EZ отправил 0.01718427 биткойн на 1JHG2qjdk5Khiq7X5xQrr1wfigepJEK3t 14 августа 2017 г., с 11:10 до 11:20. Длинные строки цифр и букв - это адреса, и если бы вы были в правоохранительных органах или просто очень хорошо информированы, вы, вероятно, могли бы выяснить, кто контролировал их. Это неправильное представление о том, что сеть Биткойн является полностью анонимной, хотя принятие определенных мер предосторожности может затруднить привязку отдельных лиц к транзакциям.
Пост-траст
Несмотря на то, что Биткойн является абсолютно публичным или, скорее, из-за этого факта, вмешательство в него чрезвычайно сложно.Биткойн не имеет физического присутствия, поэтому вы не можете защитить его, заперев в сейфе или закопав в лесу.
Теоретически все, что нужно сделать вору, чтобы забрать это у вас, - это добавить в бухгалтерскую книгу строку, которая переводится как «вы заплатили мне все, что у вас есть».
Связанное с этим беспокойство - двойные расходы. Если бы злоумышленник мог потратить немного биткойнов, а затем потратить их снова, уверенность в стоимости валюты быстро испарилась бы. Чтобы добиться двойных расходов, злоумышленник должен будет составлять 51% майнинговых мощностей Биткойна.Чем больше растет сеть Биткойн, тем менее реалистично это становится, поскольку необходимая вычислительная мощность будет астрономической и чрезвычайно дорогой.
Чтобы в дальнейшем не допустить ни того, ни другого, вам нужно доверие. В этом случае обычным решением с традиционной валютой было бы проведение транзакций через центрального нейтрального арбитра, такого как банк. Однако Биткойн сделал это ненужным. (Вероятно, это не совпадение, что первоначальное описание Сатоши было опубликовано в октябре 2008 года, когда доверие к банкам было на низком уровне среди нескольких поколений.Это повторяющаяся тема в сегодняшнем климате коронавируса и растущем государственном долге.) Вместо того, чтобы иметь надежный орган, который ведет бухгалтерскую книгу и руководит сетью, сеть биткойнов децентрализована. Все следят за всеми остальными.
Чтобы система работала правильно, никому не нужно знать или доверять кому-либо в частности. Предполагая, что все работает, как задумано, криптографические протоколы гарантируют, что каждый блок транзакций прикреплен к последнему в длинной, прозрачной и неизменной цепочке.
Горное дело
Процесс, который поддерживает этот публичный реестр, не имеющий доверия, известен как майнинг. В основе сети пользователей биткойнов, которые торгуют криптовалютой между собой, лежит сеть майнеров, которые записывают эти транзакции в блокчейн.
Запись последовательности транзакций для современного компьютера тривиальна, но майнинг затруднен, потому что программное обеспечение Биткойна делает процесс искусственно трудоемким. Без дополнительных трудностей люди могли подделывать транзакции, чтобы обогатить себя или разорить других людей.Они могли регистрировать мошенническую транзакцию в блокчейне и накладывать на нее столько тривиальных транзакций, что распутывание мошенничества стало бы невозможным.
Точно так же было бы легко вставить мошеннические транзакции в прошлые блоки. Сеть превратилась бы в беспорядочную спамерскую массу из конкурирующих реестров, а биткойн стал бы бесполезным.
Сатоши совершил прорыв в сочетании «доказательства работы» с другими криптографическими методами. Программное обеспечение Биткойна регулирует трудности, с которыми сталкиваются майнеры, чтобы ограничить сеть одним новым 1-мегабайтным блоком транзакций каждые 10 минут.Таким образом, объем транзакций легко усваивается. У сети есть время, чтобы проверить новый блок и предшествующую ему бухгалтерскую книгу, и каждый может прийти к консенсусу относительно статус-кво. Майнеры не работают для проверки транзакций путем добавления блоков в распределенный реестр исключительно из желания убедиться, что сеть Биткойн работает бесперебойно; им также выплачивается компенсация за свой труд. Ниже мы подробнее рассмотрим компенсацию за майнинг.
Уменьшение вдвое
Как упоминалось ранее, майнеры получают вознаграждение в биткойнах за проверку блоков транзакций.Это вознаграждение сокращается вдвое через каждые 210 000 добытых блоков или примерно каждые четыре года. Это событие называется уменьшением вдвое или «уменьшением вдвое». Система встроена как дефляционная, где скорость выпуска новых биткойнов в обращение.
Этот процесс спроектирован таким образом, что вознаграждение за майнинг биткойнов будет продолжаться примерно до 2140 года. После того, как весь биткойн будет добыт из кода и все халвинги будут завершены, майнеры по-прежнему будут стимулироваться сборами, которые они будут взимать с пользователей сети.Есть надежда, что здоровая конкуренция сохранит низкие сборы.
Эта система увеличивает отношение запасов к потоку Биткойна и снижает его инфляцию, пока она в конечном итоге не станет равной нулю. После третьего сокращения вдвое, которое произошло 11 мая 2020 года, награда за каждый добытый блок теперь составляет 6,25 биткойна.
Хеши
Вот немного более техническое описание того, как работает майнинг. Сеть майнеров, разбросанных по всему миру и не связанных друг с другом личными или профессиональными узами, получает последний пакет данных о транзакциях.Они обрабатывают данные с помощью криптографического алгоритма, который генерирует «хэш», строку цифр и букв, которая проверяет достоверность информации, но не раскрывает саму информацию. (На самом деле это идеальное видение децентрализованного майнинга больше не является точным, поскольку майнинговые фермы промышленного масштаба и мощные майнинговые пулы образуют олигополию. Подробнее об этом ниже.)
Учитывая хэш 000000000000000000c2c4d562265f272bd55d64f1a7c22ffeb66e15e826ca30, вы не можете узнать, какие транзакции содержит соответствующий блок (# 480504).Однако вы можете взять кучу данных, якобы являющуюся блоком # 480504, и убедиться, что они не были подделаны. Если бы одно число было неуместным, каким бы незначительным оно ни было, данные генерировали бы совершенно другой хэш. Например, если вы запускаете Декларацию независимости с помощью хеш-калькулятора, вы можете получить 839f561caa4b466c84e2b4809afe116c76a465ce5da68c3370f5c36bd3f67350. Однако удалите точку после слов «представленный для откровенного мира», и вы получите 800790e4fd445ca4c5e3092f9884cdcd4cf536f735ca958b93f60f82f23f97c4.Это совершенно другой хеш, хотя вы изменили только один символ в исходном тексте.
Технология хеширования позволяет сети Биткойн мгновенно проверять действительность блока. Было бы невероятно много времени, чтобы прочесать всю бухгалтерскую книгу, чтобы убедиться, что человек, добывающий самую последнюю партию транзакций, не пробовал ничего смешного. Вместо этого в новом блоке появляется хеш предыдущего блока. Если бы самая мельчайшая деталь была изменена в предыдущем блоке, этот хеш изменился бы.Даже если бы изменение было 20 000 блоков обратно в цепочку, хэш этого блока вызвал бы каскад новых хэшей и отключил бы сеть.
Однако создание хэша на самом деле не работает. Этот процесс настолько быстр и прост, что злоумышленники могут спамить сеть и, возможно, при наличии достаточной вычислительной мощности передать мошеннические транзакции на несколько блоков обратно в цепочку. Таким образом, протокол Биткойн требует доказательства работы.
Это достигается за счет того, что майнерам бросается в глаза кривая: их хэш должен быть ниже определенного целевого значения.Вот почему хеш блока # 480504 начинается с длинной строки нулей. Он крошечный. Поскольку каждая строка данных будет генерировать один и только один хэш, поиск достаточно маленького хеша включает добавление одноразовых значений («числа, используемые один раз») в конец данных. Итак, майнер запустит [данные]. Если хеш слишком большой, она попробует еще раз. [данные] 1. Все еще слишком большой. [данные] 2. Наконец, [thedata] 93452 возвращает ей хэш, начинающийся с необходимого количества нулей.
Добытый блок будет транслироваться в сеть для получения подтверждений, на обработку которых уходит около часа, хотя иногда и намного дольше.(Опять же, это описание упрощено. Блоки не хешируются полностью, а разбиваются на более эффективные структуры, называемые деревьями Меркла.)
(Минуты, среднее значение за 7 дней)
В зависимости от типа трафика, получаемого сетью, протоколу Биткойн потребуется более длинная или более короткая строка нулей, регулируя сложность для получения одного нового блока каждые 10 минут. По состоянию на октябрь 2019 года текущая сложность составляет около 6,379 триллиона, по сравнению с 1 в 2009 году.Как следует из этого, майнить Биткойн стало значительно сложнее с момента запуска криптовалюты десять лет назад.
Добыча ведется интенсивно, для ее работы требуются большие и дорогие буровые установки и много электроэнергии. И это конкурентоспособно. Неизвестно, какой одноразовый номер будет работать, поэтому цель состоит в том, чтобы как можно быстрее изучить их.
Вначале майнеры осознали, что они могут повысить свои шансы на успех, объединившись в пулы для майнинга, поделившись вычислительной мощностью и распределив вознаграждение между собой.Даже когда несколько майнеров разделяют эти награды, все еще есть достаточный стимул для их получения. Каждый раз, когда добывается новый блок, успешный майнер получает кучу вновь созданных биткойнов. Сначала было 50, потом сократилось вдвое до 25, а сейчас - 12,5 (около 119 тысяч долларов в октябре 2019 года).
Вознаграждение будет продолжать уменьшаться вдвое каждые 210 000 блоков или примерно каждые четыре года, пока не достигнет нуля. К этому моменту будет добыт весь 21 миллион биткойнов, и майнеры будут зависеть исключительно от платы за обслуживание сети.Когда был запущен Биткойн, планировалось, что общий объем криптовалюты составит 21 миллион токенов.
Некоторых беспокоит то, что майнеры организовались в пулы. Если пул превышает 50% мощности майнинга сети, его участники потенциально могут тратить монеты, отменять транзакции и тратить их снова. Они также могли блокировать чужие транзакции. Проще говоря, этот пул майнеров будет иметь возможность подавить распределенную природу системы, проверяя мошеннические транзакции в силу своего большинства.
Это может означать конец Биткойна, но даже так называемая атака 51%, вероятно, не позволит злоумышленникам отменить старые транзакции, потому что требование доказательства работы делает этот процесс очень трудоемким. Чтобы вернуться и изменить блокчейн, пулу потребуется контролировать такое большое количество сети, что это, вероятно, было бы бессмысленно. Когда вы контролируете всю валюту, с кем торговать?
Атака 51% - это финансово самоубийственное предложение с точки зрения майнеров.Когда в 2014 году майнинг-пул Ghash.io достиг 51% вычислительной мощности сети, он добровольно пообещал не превышать 39,99% хешрейта биткойнов, чтобы поддерживать уверенность в стоимости криптовалюты. Однако другим участникам, например правительствам, может показаться интересной идея такой атаки. Но, опять же, огромный размер сети Биткойн сделает это чрезвычайно дорогим даже для мировой державы.
Еще один источник беспокойства, связанный с добычей полезных ископаемых, - это практическая тенденция к концентрации в тех частях мира, где электроэнергия дешевая, например в Китае или, после репрессий со стороны Китая в начале 2018 года, в Квебеке.
Биткойн-транзакции
Для большинства людей, участвующих в сети Биткойн, тонкости блокчейна, хешрейта и майнинга не особенно важны. За пределами майнингового сообщества владельцы биткойнов обычно покупают свою криптовалюту через биржу биткойнов. Это онлайн-платформы, которые облегчают транзакции биткойнов и, часто, других цифровых валют.
Сальвадор сделал биткойн законным платежным средством 9 июня 2021 года.Это первая страна, которая сделала это. Криптовалюту можно использовать для любой транзакции, в которой ее может принять бизнес. Доллар США по-прежнему является основной валютой Сальвадора.
Биржи биткойнов, такие как Coinbase, объединяют участников рынка со всего мира для покупки и продажи криптовалют. Эти биржи становятся все более популярными (поскольку популярность самого Биткойна в последние годы выросла) и чреваты нормативными, юридическими проблемами и проблемами безопасности. Поскольку правительства во всем мире рассматривают криптовалюты по-разному - как валюту, как класс активов или любое количество других классификаций, - правила, регулирующие покупку и продажу биткойнов, сложны и постоянно меняются.
Однако, возможно, даже более важным для участников обмена биткойнов, чем угроза изменения регулирующего надзора, является кража и другая преступная деятельность. Хотя сама сеть Биткойн в значительной степени была безопасной на протяжении всей своей истории, отдельные обмены не обязательно одинаковы. Многие кражи были нацелены на крупные криптовалютные биржи, что часто приводило к потере токенов на миллионы долларов. Самая известная биржевая кража - это, вероятно, Mt. Gox, который доминировал в сфере транзакций биткойнов до 2014 года.В начале того же года платформа объявила о вероятной краже примерно 850 000 BTC на сумму около 450 миллионов долларов на тот момент. Mt. Gox объявила о банкротстве и закрыла двери; по сей день большая часть украденной награды (которая сейчас оценивается в 8 миллиардов долларов) не возвращена.
Ключи и кошельки
По этим причинам понятно, что трейдеры и владельцы биткойнов захотят принять любые возможные меры безопасности для защиты своих активов.Для этого они используют ключи и кошельки.
Владение биткойнами по сути сводится к двум числам: открытому ключу и закрытому ключу. Грубая аналогия - имя пользователя (открытый ключ) и пароль (закрытый ключ). Хэш открытого ключа, называемый адресом, отображается в цепочке блоков. Использование хеша обеспечивает дополнительный уровень безопасности.
Чтобы получить биткойн, отправителю достаточно знать ваш адрес. Открытый ключ является производным от закрытого ключа, который вам нужно отправить биткойн на другой адрес.Система упрощает получение денег, но требует подтверждения личности для их отправки.
Для доступа к биткойнам вы используете кошелек, который представляет собой набор ключей. Они могут принимать разные формы: от сторонних веб-приложений, предлагающих страховые и дебетовые карты, до QR-кодов, напечатанных на листах бумаги. Наиболее важное различие между «горячими» кошельками, которые подключены к Интернету и поэтому уязвимы для взлома, и «холодными» кошельками, которые не подключены к Интернету.В Mt. В случае Gox, описанном выше, считается, что большая часть украденных BTC была взята из горячего кошелька. Тем не менее, многие пользователи доверяют свои закрытые ключи биржам криптовалют, что по сути является ставкой на то, что эти биржи будут иметь более надежную защиту от возможности кражи, чем собственный компьютер.
Как найти любую биткойн-транзакцию в блокчейне 🔍
Интересно, «Где мой биткойн?» Наш бесплатный инструмент Block Explorer может помочь вам отследить определенные транзакции.
Обозреватель блоков Bitcoin.com буквально позволяет вам исследовать как блокчейны Bitcoin Cash (BCH), так и Bitcoin Core (BTC).
Подобно поисковой системе, вы можете использовать ее для поиска определенных блоков, транзакций и даже адресов.
Обозреватель блоков Bitcoin.com суммирует подтверждения транзакций, номер блока и многое другое.
Как использовать Block Explorer для поиска деталей транзакции?
1. Выберите транзакцию в своем кошельке
Откройте свой цифровой кошелек и выберите транзакцию, о которой хотите узнать больше.В большинстве программных кошельков и криптобирж четко указаны ваши недавние транзакции, что упрощает их поиск.
2. Найдите уникальный идентификатор транзакции
Каждая биткойн-транзакция имеет собственный идентификатор транзакции (TXID) - строку букв и цифр, которая делает ее уникальной. Кошелек Bitcoin.com предоставляет вам TXID, как и некоторые другие кошельки и биржи.
3. Просмотр в обозревателе блоков
Если вы используете кошелек Bitcoin.com, просто нажмите «Просмотреть в блокчейне», и вы попадете на соответствующую страницу в Block Explorer.В противном случае вырежьте и вставьте идентификатор транзакции и найдите его вручную в обозревателе блоков.
Кошелек Bitcoin.com имеет встроенную кнопку для просмотра TXID
Зачем вам может понадобиться идентификатор транзакции?
Вам может потребоваться отслеживать идентификатор транзакции по разным причинам. Два самых распространенных:
Отсроченные транзакции
Если вас беспокоит задержка, вы можете использовать Block Explorer для просмотра своей транзакции. Если он там появится, вы можете быть уверены, что ваша транзакция выполняется.
Подтверждение отправки
Иногда получатель может попросить вас отправить идентификатор транзакции, чтобы подтвердить, что вы отправили ему биткойн. Этот TXID является неопровержимым доказательством успешной передачи.
Не можете найти идентификатор транзакции?
Не все кошельки и биржи предоставляют вам TXID. Тем не менее, вы все равно можете найти его самостоятельно.
Начните с поиска адреса, на который вы отправили биткойн, и вставьте его в строку поиска Block Explorer. В результате будут показаны все входящие и исходящие транзакции, относящиеся к этому адресу.
Таким образом, часто указывается более одной транзакции. Чтобы найти TXID, который вы ищете, проверьте такие цифры, как дата, время и отправленная сумма, чтобы убедиться, что это правильная транзакция.
Поиск адресов кошельков вручную в Block Explorer - еще один способ найти TXID
Что делать, если ваша транзакция не найдена в Block Explorer?
Во-первых, не паникуйте. Это один из самых распространенных вопросов, которые нам задают, и обычно есть простое объяснение.
Возможно, вы искали не тот блокчейн. Например, если вы ищете TXID BCH, но вы выполнили поиск в разделе BTC типичного обозревателя блоков, результатов не будет.
Чтобы избежать путаницы, Bitcoin.com Block Explorer достаточно умен, чтобы перенаправить вас, когда это происходит: вы будете автоматически отправлены на нужную страницу через несколько секунд.
Обозреватель блоков Bitcoin.com охватывает как Bitcoin Cash (BCH), так и Bitcoin Core (BTC).
Если вы все еще не можете найти свою транзакцию, возможно, TXID просто неверен.
В частности, если вы отправляли его туда и обратно в различных мессенджерах, используемых другими людьми, могут возникать ошибки, и, поскольку исследователи блоков очень точны, даже одна крошечная ошибка не даст результатов.
Скорее всего, TXID либо не был скопирован полностью, либо, возможно, это вообще не транзакция (т.е. вместо этого был выбран случайный набор цифр и букв).
В последнем случае это может означать, что кто-то пытается доказать, что они отправили вам биткойны, хотя на самом деле они этого не сделали, поэтому будьте осторожны.
Что делать, если ваша транзакция была отправлена не на тот адрес?
Иногда транзакции могут быть отправлены не на тот адрес (например, из-за опечатки) или полностью на неправильный блокчейн. К сожалению, оба случая трудно разрешить.
Иногда криптобиржи пытаются помочь вам, если вы ошиблись при отправке. Поскольку эти биржи централизованы, они могут технически контролировать перемещение криптовалюты в кошельки и из них, поэтому они потенциально могут отменить транзакцию для вас.
Однако, если вы не используете обмен, вернуть свои монеты невозможно. Биткойн децентрализован по своей конструкции, что означает, что никто не может отменить транзакции, которые вы совершаете.
Кроме того, кошельки не привязаны к чьей-либо личности, поэтому вы не можете просто связаться с получателем и попросить его вернуть ваши средства.
Чтобы этого никогда не случилось с вами, всегда дважды проверяйте адреса перед отправкой биткойнов.
Что делать, если ваш TXID существует, но биткойн не прибыл?
Иногда на отправку транзакций требуется больше времени.В этом случае вы увидите, что TXID отображается в Block Explorer, но биткойн еще не поступил в кошелек получателя.
Нет причин для беспокойства! Как только транзакция появляется в проводнике блоков, вы знаете, что она в конечном итоге завершится. Но почему транзакции биткойнов иногда задерживаются?
Сеть Bitcoin Core (BTC) испытала серьезные задержки транзакций в 2017 году. Подробнее см. Charts.Bitcoin.com.
Различные криптовалюты
Обычные транзакции Bitcoin Cash (BCH) обычно выполняются за секунды, а для больших сумм они обычно завершаются в течение часа.Однако известно, что транзакции Bitcoin Core (BTC) занимают несколько дней, когда сеть занята.
Обменные требования
Криптобиржи предъявляют разные требования к количеству требуемых подтверждений. Пока это число не будет достигнуто, вы не увидите биткойн в своем кошельке. Вы можете проверить, сколько подтверждений требуется для вашего обмена, прочитав их веб-сайт.
Обслуживание блокчейна
Иногда блокчейны проходят плановое обслуживание.В это время транзакции будут отложены, так как большинство кошельков и бирж временно блокируют переводы. Вы получите уведомление об этом заранее, и все транзакции будут завершены после завершения обслуживания.
5. Транзакции - освоение биткойнов [Книга]
Транзакции - самая важная часть системы биткойнов. Все остальное в биткойне предназначено для обеспечения того, чтобы транзакции можно было создавать, распространять в сети, проверять и, наконец, добавлять в глобальный реестр транзакций (блокчейн).Транзакции - это структуры данных, которые кодируют передачу стоимости между участниками системы биткойнов. Каждая транзакция является публичной записью в цепочке блоков биткойнов, глобальной бухгалтерской книге с двойной записью.
В этой главе мы рассмотрим все различные формы транзакций, что они содержат, как их создавать, как они проверяются и как они становятся частью постоянной записи всех транзакций.
Жизненный цикл транзакции начинается с создания транзакции, также известного как происхождение .Затем транзакция подписывается одной или несколькими подписями, указывающими на разрешение расходовать средства, указанные в транзакции. Затем транзакция транслируется в сети биткойнов, где каждый сетевой узел (участник) проверяет и распространяет транзакцию, пока она не достигнет (почти) каждого узла в сети. Наконец, транзакция проверяется майнинговым узлом и включается в блок транзакций, который записывается в цепочку блоков.
После записи в цепочку блоков и подтверждения достаточным количеством последующих блоков (подтверждений) транзакция является постоянной частью реестра биткойнов и принимается как действительная для всех участников.Средства, выделенные транзакцией новому владельцу, можно затем потратить на новую транзакцию, расширив цепочку владения и снова начав жизненный цикл транзакции.
В некотором смысле это помогает думать о транзакции так же, как о бумажном чеке. Как и чек, транзакция - это инструмент, который выражает намерение перевести деньги и не виден финансовой системе до тех пор, пока не будет отправлен на исполнение. Как и в случае с чеком, отправитель транзакции не обязательно должен подписывать транзакцию.
Транзакции может создавать кто угодно онлайн или офлайн, даже если лицо, создающее транзакцию, не является авторизованным лицом, подписывающим учетную запись. Например, клерк по счетам к оплате может обрабатывать чеки к оплате на подпись генеральным директором. Точно так же клерк по счетам к оплате может создавать биткойн-транзакции, а затем заставлять генерального директора применять цифровые подписи, чтобы сделать их действительными. В то время как чек ссылается на конкретную учетную запись как на источник средств, биткойн-транзакция ссылается на конкретную предыдущую транзакцию в качестве источника, а не на учетную запись.
После создания транзакции она подписывается владельцем (или владельцами) исходных средств. Если он правильно сформирован и подписан, подписанная транзакция теперь действительна и содержит всю информацию, необходимую для выполнения перевода средств. Наконец, действительная транзакция должна достичь сети биткойнов, чтобы ее можно было распространить, пока она не достигнет майнера для включения в публичный реестр (блокчейн).
Трансляция транзакций в сеть биткойнов
Во-первых, транзакция должна быть доставлена в сеть биткойнов, чтобы ее можно было распространить и включить в цепочку блоков.По сути, биткойн-транзакция - это всего лишь от 300 до 400 байтов данных и должна достигнуть любого из десятков тысяч биткойн-узлов. Отправителям не нужно доверять узлам, которые они используют для широковещательной рассылки транзакции, если они используют более одного, чтобы гарантировать ее распространение. Узлам не нужно доверять отправителю или устанавливать «личность» отправителя. Поскольку транзакция подписана и не содержит конфиденциальной информации, закрытых ключей или учетных данных, ее можно публично транслировать с использованием любого удобного базового сетевого транспорта.В отличие, например, от транзакций по кредитным картам, которые содержат конфиденциальную информацию и могут быть переданы только в зашифрованных сетях, транзакция с биткойнами может быть отправлена по любой сети. Пока транзакция может достигнуть узла биткойнов, который распространит ее в сеть биткойнов, не имеет значения, как она передается на первый узел.
Биткойн-транзакции могут быть переданы в биткойн-сеть через небезопасные сети, такие как WiFi, Bluetooth, NFC, Chirp, штрих-коды или путем копирования и вставки в веб-форму.В крайних случаях транзакция биткойнов может быть передана по пакетной радиосвязи, спутниковой ретрансляции или коротковолновой передаче с использованием пакетной передачи, расширенного спектра или скачкообразной перестройки частоты, чтобы избежать обнаружения и помех. Биткойн-транзакцию можно даже закодировать в виде смайлов (смайликов) и опубликовать на общедоступном форуме или отправить в виде текстового сообщения или сообщения в чате Skype. Биткойн превратил деньги в структуру данных, что сделало практически невозможным остановить кого-либо от создания и выполнения транзакции с биткойнами.
Распространение транзакций в сети Биткойн
После отправки транзакции биткойна на любой узел, подключенный к сети Биткойн, транзакция будет подтверждена этим узлом.Если он действителен, этот узел распространит его на другие узлы, к которым он подключен, и сообщение об успешном завершении будет синхронно возвращено отправителю. Если транзакция недействительна, узел отклонит ее и синхронно вернет сообщение об отклонении отправителю.
Биткойн-сеть является одноранговой сетью, что означает, что каждый биткойн-узел подключен к нескольким другим биткойн-узлам, которые он обнаруживает во время запуска через одноранговый протокол. Вся сеть образует слабо связанную сетку без фиксированной топологии или какой-либо структуры, что делает все узлы равноправными.Сообщения, включая транзакции и блоки, распространяются от каждого узла к одноранговым узлам, к которым он подключен. Новая подтвержденная транзакция, введенная в любой узел сети, будет отправлена трем-четырем соседним узлам, каждый из которых отправит ее еще трем-четырем узлам и так далее. Таким образом, в течение нескольких секунд действительная транзакция будет распространяться в виде экспоненциально расширяющейся ряби по сети, пока все подключенные узлы не получат ее.
Биткойн-сеть предназначена для распространения транзакций и блоков на все узлы эффективным и отказоустойчивым способом, устойчивым к атакам.Чтобы предотвратить рассылку спама, атаки типа «отказ в обслуживании» или другие нежелательные атаки на систему биткойнов, каждый узел независимо проверяет каждую транзакцию перед ее дальнейшим распространением. Деформированная транзакция не выйдет за пределы одного узла. Правила подтверждения транзакций более подробно описаны в разделе «Независимая проверка транзакций».
Транзакция - это структура данных , которая кодирует передачу стоимости из источника средств, называемую входом , в место назначения, называемое выходом .Входы и выходы транзакций не связаны с учетными записями или личностями. Вместо этого вы должны думать о них как о количестве биткойнов - фрагментах биткойнов, заблокированных определенным секретом, который может разблокировать только владелец или человек, который знает секрет. Транзакция содержит ряд полей, как показано в Таблице 5-1.
Таблица 5-1. Структура транзакции
Размер | Поле | Описание | |||
4 байта | Версия | Указывает, каким правилам | следует 9011–9 байт (VarInt) | Счетчик входов | Сколько входов включено |
Переменная | Входы | Один или несколько входов транзакций | |||
Счетчик выходов | Сколько выходов включено | ||||
Переменная | Выходы | Один или несколько выходов транзакций | |||
Локт ime | Временная метка Unix или номер блока |
Выходы и входы транзакций
Основным строительным блоком транзакции биткойнов является неизрасходованный выход транзакции или UTXO.UTXO - это неделимые блоки биткойн-валюты, привязанные к определенному владельцу, записанные в цепочке блоков и распознаваемые как денежные единицы всей сетью. Сеть биткойнов отслеживает все доступные (неизрасходованные) UTXO, которые в настоящее время исчисляются миллионами. Всякий раз, когда пользователь получает биткойн, эта сумма записывается в блокчейне как UTXO. Таким образом, биткойн пользователя может быть разбросан как UTXO среди сотен транзакций и сотен блоков. По сути, не существует такой вещи, как сохраненный баланс биткойн-адреса или учетной записи; есть только разрозненные UTXO, привязанные к конкретным владельцам.Концепция баланса биткойнов пользователя - это производная конструкция, созданная приложением кошелька. Кошелек рассчитывает баланс пользователя, сканируя цепочку блоков и собирая все UTXO, принадлежащие этому пользователю.
Совет
Нет счетов или остатков в биткойнах; есть только неизрасходованных выходов транзакций (UTXO), разбросанных по блокчейну.
UTXO может иметь произвольное значение, кратное сатоши. Точно так же, как доллары можно разделить до двух знаков после запятой как центы, биткойны можно разделить до восьми знаков после запятой как сатоши.Хотя UTXO может иметь любое произвольное значение, однажды созданное оно неделимо, как монета, которую нельзя разрезать пополам. Если UTXO превышает желаемое значение транзакции, он все равно должен быть использован полностью, и в транзакции должны быть сгенерированы изменения. Другими словами, если у вас есть 20 биткойнов UTXO и вы хотите заплатить 1 биткойн, ваша транзакция должна потреблять все 20 биткойнов UTXO и давать два результата: один платит 1 биткойн желаемому получателю, а другой платит 19 биткойнов в обмен на ваш бумажник.В результате большинство транзакций с биткойнами приведет к изменениям.
Представьте себе покупателя, который покупает напиток за 1,50 доллара, залезает в бумажник и пытается найти комбинацию монет и банкнот, чтобы покрыть стоимость за 1,50 доллара. Покупатель выберет точную сдачу, если таковая имеется (долларовая купюра и две четверти), или комбинацию меньшего достоинства (шесть четвертей), или, если необходимо, более крупную единицу, например, пятидолларовую банкноту. Если она отдаст владельцу магазина слишком много денег, скажем 5 долларов, она будет ожидать 3 доллара.50 сдачи, которые она вернет в свой кошелек и будет доступна для будущих транзакций.
Аналогичным образом, биткойн-транзакция должна быть создана из UTXO пользователя в любых номиналах, доступных пользователю. Пользователи не могут разрезать UTXO вдвое больше, чем они могут разрезать долларовую купюру и использовать ее в качестве валюты. Приложение кошелька пользователя обычно выбирает из доступных пользователю UTXO различные единицы, чтобы составить сумму, большую или равную желаемой сумме транзакции.
Как и в реальной жизни, биткойн-приложение может использовать несколько стратегий для удовлетворения суммы покупки: объединение нескольких меньших единиц, поиск точного изменения или использование одной единицы, превышающей стоимость транзакции, и внесение изменений. Вся эта сложная сборка расходуемого UTXO выполняется кошельком пользователя автоматически и невидима для пользователей. Это актуально только в том случае, если вы программно создаете необработанные транзакции из UTXO.
UTXO, потребляемые транзакцией, называются входами транзакции, а UTXO, созданными транзакцией, называются выходами транзакции.Таким образом, части стоимости биткойнов перемещаются от владельца к владельцу в цепочке транзакций, потребляющих и создающих UTXO. Транзакции потребляют UTXO, разблокировав его подписью текущего владельца, и создают UTXO, привязав его к биткойн-адресу нового владельца.
Исключением из цепочки вывода и ввода является специальный тип транзакции, называемый транзакцией coinbase , которая является первой транзакцией в каждом блоке. Эта транзакция размещается там «победившим» майнером и создает совершенно новый биткойн, подлежащий выплате этому майнеру в качестве вознаграждения за майнинг.Вот как создается денежная масса биткойна в процессе майнинга, как мы увидим в главе 8.
Совет
Что первично? Входы или выходы, курица или яйцо? Строго говоря, выходы на первом месте, потому что транзакции на базе монет, которые генерируют новый биткойн, не имеют входных данных и создают выходы из ничего.
Каждая биткойн-транзакция создает выходные данные, которые записываются в регистр биткойнов. Почти все эти выходные данные, за одним исключением (см. Выходные данные (OP_RETURN)), создают расходуемые блоки биткойна, называемые неизрасходованными выходными транзакциями или UTXO, которые затем распознаются всей сетью и доступны для владельца для использования в будущей транзакции. .Отправка кому-либо биткойнов создает неизрасходованный выход транзакции (UTXO), зарегистрированный на их адрес и доступный для использования.
UTXO отслеживаются каждым биткойн-клиентом с полным узлом в базе данных, хранящейся в памяти, называемой набором UTXO или пулом UTXO . Новые транзакции потребляют (расходуют) один или несколько из этих выходов из набора UTXO.
Выходы транзакции состоят из двух частей:
- Количество биткойнов, выраженное в сатоши , наименьшая единица биткойна.
- Сценарий блокировки , также известный как «обременение», который «блокирует» эту сумму, указывая условия, которые должны быть выполнены, чтобы потратить выходные данные.
Язык сценариев транзакций, используемый в сценарии блокировки, упомянутом ранее, подробно обсуждается в разделах "Сценарии транзакций и язык сценариев".Таблица 5-2 показывает структуру вывода транзакции.
Таблица 5-2. Структура вывода транзакции
Размер | Поле | Описание |
8 байт | Сумма | Биткойн 907 в сатоши (10 биткойн) |
1-9 байтов (VarInt) | Размер сценария блокировки | Длина сценария блокировки в байтах, для выполнения |
Переменная | Сценарий | Сценарий, определяющий условия, необходимые для расходования вывода |
В примере 5-1 мы используем цепочку блоков.info API для поиска неизрасходованных выходов (UTXO) определенного адреса.
Пример 5-1. Скрипт, который вызывает API blockchain.info, чтобы найти UTXO, связанный с адресом
# получить неизрасходованные выходные данные из API блокчейна
импорт
json
импорт
запросов
# пример адреса
адрес
=
'1Dorian4RoXcnBv9hnQ4Y2C1an6NJ4UrjX'
# URL-адрес API: https://blockchain.info/unspent?active=
# Возвращает объект JSON со списком "unspent_outputs", содержащим UTXO, например:
# {"unspent_outputs": [
# {
# "tx_hash": "ebadfaa92f1fd29e2fe296eda702c48bd11ffd52313e986e99ddad
62167",
# "tx_index": 51
7,# "tx_output_n": 1,
# "script": "76a9148c7e252f8d64b0b6e313985
0fcfefcf4a2d88ac",# "значение": 8000000,
# "value_hex": "7a1200",
# "подтверждения": 28691
#},
#...
#]}
или
=
запросов
.
получить
(
'https://blockchain.info/unspent?active=
% s
'
%
адрес
)
utxo_set
=
json
.
загружает
(
или
.
текст
) [
"unspent_outputs"
]
для
utxo
в
utxo_set
:
"
% s
:
% d
-
% ld
Satoshis"
%
(
utxo
'
90_hash utxo[
'tx_output_n'
],
utxo
[
'value'
])
Запустив скрипт, мы видим список идентификаторов транзакций, двоеточие, порядковый номер конкретный неизрасходованный выход транзакции (UTXO) и значение этого UTXO в сатоши.Сценарий блокировки не показан в выходных данных примера 5-2.
Пример 5-2. Запуск сценария get-utxo.py
$
python get-utxo.py ebadfaa92f1fd29e2fe296eda702c48bd11ffd52313e986e99ddad62167: 1 - 8000000 сатоши 6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf: 0 - 16050000 сатоши 74d788804e2aae10891d72753d1520da1206e6f4f20481cc1555b7f2cb44aca0: 0 - 5000000 Сатоши b2affea89ff82557c60d635a2a3137b8f88f12ecec85082f7d0a1f82ee203ac4: 0 - 10000000 сатоши ...
Условия расходов (обременения)
Выходные данные транзакции связывают определенную сумму (в сатоши) с конкретным обременением или сценарием блокировки, который определяет условие, которое должно быть выполнено, чтобы потратить эту сумму. В большинстве случаев сценарий блокировки блокирует вывод на конкретный биткойн-адрес, тем самым передавая право собственности на эту сумму новому владельцу. Когда Алиса заплатила Bob’s Cafe за чашку кофе, ее транзакция создала 0,015 биткойнов, на выходе , обремененных или привязанных к биткойн-адресу кафе.Эти 0,015 биткойнов были записаны в блокчейне и стали частью набора неизрасходованных транзакций, то есть отображались в кошельке Боба как часть доступного баланса. Когда Боб решает потратить эту сумму, его транзакция снимает обременение, разблокируя выход, предоставляя сценарий разблокировки, содержащий подпись из закрытого ключа Боба.
Проще говоря, входные данные транзакции - это указатели на UTXO. Они указывают на конкретный UTXO по ссылке на хэш транзакции и порядковый номер, где UTXO записывается в цепочке блоков.Чтобы потратить UTXO, вход транзакции также включает скрипты разблокировки, которые удовлетворяют условиям расходов, установленным UTXO. Сценарий разблокировки обычно представляет собой подпись, подтверждающую право собственности на биткойн-адрес, указанный в сценарии блокировки.
Когда пользователи производят платеж, их кошелек создает транзакцию, выбирая из доступного UTXO. Например, для совершения платежа в биткойнах 0,015 приложение кошелька может выбрать UTXO 0,01 и UTXO 0,005, используя их оба для добавления желаемой суммы платежа.
В примере 5-3 мы показываем использование «жадного» алгоритма для выбора из доступных UTXO, чтобы произвести определенную сумму платежа. В этом примере доступный UTXO предоставляется в виде постоянного массива, но на самом деле доступный UTXO может быть получен с помощью вызова RPC к Bitcoin Core или к стороннему API, как показано в Примере 5-1.
Пример 5-3. Скрипт для расчета общего количества выпущенных биткойнов
# Выбирает выходные данные из списка UTXO с использованием жадного алгоритма.
из
sys
импорт
argv
класс
OutputInfo
:
def
__init__
(
self
,
tx_hash
,
tx_index
,
значение
):
сам
.
tx_hash
=
tx_hash
сам
.
tx_index
=
tx_index
сам
.
значение
=
значение
def
__repr__
(
self
):
возврат
"<
% s
:
% s
с
% s
Satoshis>"
%
(
self
.
self
.
.
tx_index
,
сам
.
значение
)
# Выбрать оптимальные выходы для отправки из списка неизрасходованных выходов.
# Возвращает список выходных данных и оставшееся изменение для отправки на
# изменить адрес.
def
select_outputs_greedy
(
неизрасходовано
,
min_value
):
# Ошибка, если пусто.
если
нет
неизрасходованные
:
возврат
Нет
# Разделение на 2 списка.
лессеров
=
[
utxo
для
utxo
in
неизрасходованных
if
utxo
.
значение
<
min_value
]
больше
=
[
utxo
для
utxo
in
неизрасходовано
if
utxo
.
значение
> =
min_value
]
key_func
=
лямбда
utxo
:
utxo
.
значение
если
больше
:
# Не пусто. Найдите наименьшее большее.
min_greater
=
min
(
больше
)
изменить
=
min_greater
.
значение
-
min_value
возврат
[
min_greater
],
изменение
# Не встречается в больших.Вместо этого попробуйте несколько лессеров.
# Переставьте их в порядке убывания. Мы хотим использовать как минимум
# Максимальное количество входов.
лессеров
.
сортировка
(
ключ
=
key_func
,
обратный
=
True
)
результат
=
[]
накоп
=
0
для
utxo
в
lessers
:
результат
.
добавить
(
utxo
)
аккумулятор
+ =
utxo
.
значение
если
аккумулятор
> =
min_value
:
изменить
=
накопить
-
min_value
возврат
результат
,
"Изменение:
% d
Сатоши"
%
изменение
# Ничего не найдено.
возврат
Нет
,
0
по умолчанию
основной
():
неизрасходованные
=
[
OutputInfo
(
"ebadfaa92f1fd29e2fe296eda702c48bd11ffd52313e986e99ddad
0062167"
,
1
,
8000000 9077,
8000000 9077
00OutputInfo
(
"6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf"
,
0
,
OutputInfo
(
"b2affea89ff82557c60d635a2a3137b8f88f12ecec85082f7d0a1f82ee203ac4"
,
0
,
000),
000)
OutputInfo
(
"7dbc497969c7475e45d952c4a872e213fb15d45e5cd3473c386a71a1b0c136a1"
,
0
25000000),
25000000
OutputInfo
(
"55ea01bd7e9afd3d3ab97e777d62a0709cf0725e80a7350fdb22d7b8ec6"
,
17
, 77 9077
OutputInfo
(
"12b6a7934c1df821945ee9ee3b3326d07ca7a65fd6416ea44ce8c3db0c078c64"
,
0
,
000),
000)
OutputInfo
(
"7f42eda67921ee92eae5f79bd37c68c9cb859b899ce70dba68c48338857b7818"
,
0
,
161006000)
16100000 9077
]
если
лен
(
argv
)
>
1
:
target
=
long
(
argv
[
1
])
еще
:
цель
=
55000000
"Для суммы транзакции
% d
Satoshis (
% f
bitcoin) используйте:"
%
(
target
,
target
/10776.0
**
8
)
распечатать
select_outputs_greedy
(
неизрасходовано
,
цель
)
, если
__name__
==
"__main__"
:
main
()
Если мы запустим сценарий select-utxo.py без параметра, он попытается создать набор UTXO (и изменений) для выплаты 55000000 сатоши (0.55 биткойн). Если вы укажете целевую сумму платежа в качестве параметра, сценарий выберет UTXO для выполнения этой целевой суммы платежа. В примере 5-4 мы запускаем скрипт, пытаясь произвести платеж в размере 0,5 биткойна или 50 000 000 сатоши.
Пример 5-4. Запуск сценария select-utxo.py
$ python select-utxo.py 50000000 Для суммы транзакции 50000000 сатоши (0.500000 биткойнов) используйте: ([<7dbc497969c7475e45d952c4a872e213fb15d45e5cd3473c386a71a1b0c136a1: 0 с 25000000 Satoshis>, <7f42eda67921ee92eae5f79bd37c68c9cb859b899ce70dba68c48338857b7818: 0 с 16100000 Satoshis>, <6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf: 0 с 16050000 Satoshis>], 'Изменение: 7150000 Satoshis')
После того, как UTXO выбран, бумажник затем производит разблокировку сценарии, содержащие сигнатуры для каждого UTXO, что делает их доступными для использования, удовлетворяя их условиям сценария блокировки.Кошелек добавляет эти ссылки UTXO и скрипты разблокировки в качестве входных данных для транзакции. Таблица 5-3 показывает структуру ввода транзакции.
Таблица 5-3. Структура ввода транзакции
Размер | Поле | Описание |
32 байта | Хэш транзакции | , содержащий указатель на транзакцию быть потрачено |
4 байта | Индекс вывода | Номер индекса UTXO, который должен быть потрачен; первый - 0 |
1-9 байтов (VarInt) | Размер сценария разблокировки | Длина сценария разблокировки в байтах, чтобы следовать |
Переменная | -Script | Сценарий, который выполняет условия сценария блокировки UTXO. |
4 байта | Порядковый номер | В настоящее время отключена функция замены Tx, установлена на 0xFFFFFFFF |
Примечание
Порядковый номер используется для отмены транзакции до истечения срока действия времени блокировки транзакции, которая в настоящее время отключена в биткойнах. Большинство транзакций устанавливают это значение на максимальное целочисленное значение (0xFFFFFFFF), и оно игнорируется сетью биткойнов.Если транзакция имеет ненулевое время блокировки, по крайней мере один из ее входов должен иметь порядковый номер ниже 0xFFFFFFFF, чтобы включить время блокировки.
Большинство транзакций включают комиссию за транзакцию, которая компенсирует майнерам биткойнов защиту сети. Майнинг, а также сборы и вознаграждения, собираемые майнерами, более подробно обсуждаются в главе 8. В этом разделе рассматривается, как транзакционные комиссии включаются в типичную транзакцию. Большинство кошельков автоматически рассчитывают и включают комиссию за транзакцию.Однако, если вы создаете транзакции программно или с помощью интерфейса командной строки, вы должны вручную учитывать и включать эти комиссии.
Комиссионные за транзакции служат стимулом для включения (майнинга) транзакции в следующий блок, а также как сдерживающий фактор против «спамовых» транзакций или любого вида злоупотреблений в системе за счет небольших затрат на каждую транзакцию. Комиссию за транзакцию взимает майнер, который добывает блок, который записывает транзакцию в цепочке блоков.
Комиссия за транзакцию рассчитывается на основе размера транзакции в килобайтах, а не стоимости транзакции в биткойнах. В целом, комиссии за транзакции устанавливаются на основе рыночных сил в сети биткойнов. Майнеры устанавливают приоритеты транзакций на основе множества различных критериев, включая комиссии, и могут даже обрабатывать транзакции бесплатно при определенных обстоятельствах. Комиссия за транзакцию влияет на приоритет обработки, а это означает, что транзакция с достаточной комиссией, вероятно, будет включена в следующий наиболее добываемый блок, в то время как транзакция с недостаточной комиссией или без комиссии может быть отложена и обработана с максимальной эффективностью после нескольких блоки или не обрабатываются совсем.Комиссия за транзакцию не является обязательной, и в конечном итоге транзакция без комиссии может быть обработана; тем не менее, включение комиссии за транзакцию способствует приоритетной обработке.
Со временем способ расчета комиссий за транзакции и их влияние на приоритизацию транзакций изменились. Сначала комиссии за транзакции были фиксированными и постоянными во всей сети. Постепенно структура комиссий была смягчена, чтобы на нее могли влиять рыночные силы в зависимости от пропускной способности сети и объема транзакций.Текущая минимальная комиссия за транзакцию установлена на уровне 0,0001 биткойна или десятой милли биткойна за килобайт, недавно снизившись с одного милли биткойна. Большинство транзакций составляют менее одного килобайта; однако те, у которых несколько входов или выходов, могут быть больше. Ожидается, что в будущих версиях протокола биткойнов приложения-кошельки будут использовать статистический анализ для расчета наиболее подходящей комиссии для присоединения к транзакции на основе средней комиссии за последние транзакции.
Текущий алгоритм, используемый майнерами для определения приоритетности транзакций для включения в блок на основе их комиссий, подробно рассматривается в главе 8.
Добавление комиссий к транзакциям
В структуре данных транзакций нет поля для комиссионных. Вместо этого, сборы подразумеваются как разница между суммой вложенных средств и суммой результатов. Любая избыточная сумма, которая остается после вычета всех выходов из всех входов, является комиссией, взимаемой майнерами.
Комиссия за транзакцию подразумевается как превышение входов минус выходы:
Сборы = Сумма (Входы) - Сумма (Выходы)
Это несколько сбивающий с толку элемент транзакций и важный момент, который необходимо понять, потому что, если вы создаете свои собственные транзакции, вы должны убедиться, что вы случайно не включили очень большую комиссию. из-за недостаточного расходования средств.Это означает, что вы должны учитывать все вводимые данные, если необходимо, путем внесения изменений, иначе вы в конечном итоге дадите майнерам очень большой совет!
Например, если вы потребляете UTXO на 20 биткойнов для совершения платежа в 1 биткойн, вы должны включить вывод сдачи 19 биткойнов обратно в свой кошелек. В противном случае «оставшиеся» 19 биткойнов будут считаться комиссией за транзакцию и будут собраны майнером, который майнит вашу транзакцию в блоке. Хотя вы получите приоритетную обработку и сделаете майнера очень счастливым, это, вероятно, не то, что вы планировали.
Предупреждение
Если вы забыли добавить выход изменения в транзакцию, созданную вручную, вы заплатите это изменение в качестве комиссии за транзакцию. "Сдачи не надо!" может быть не тем, что вы хотели.
Давайте посмотрим, как это работает на практике, еще раз посмотрев на покупку кофе Алисой. Алиса хочет потратить 0,015 биткойна на оплату кофе. Чтобы обеспечить своевременную обработку этой транзакции, она захочет включить комиссию за транзакцию, скажем, 0,001. Это будет означать, что общая стоимость транзакции будет равна 0.016. Следовательно, ее кошелек должен быть источником набора UTXO, который в сумме составляет 0,016 биткойна или более, и, при необходимости, вносить изменения. Допустим, в ее кошельке есть UTXO на 0,2 биткойна. Поэтому ему необходимо будет использовать этот UTXO, создать один выход для Bob’s Cafe за 0,015, а второй выход с 0,184 биткойна в обмен на свой собственный кошелек, оставив 0,001 биткойна нераспределенным в качестве неявной комиссии за транзакцию.
Теперь давайте посмотрим на другой сценарий. Евгения, директор благотворительной организации по работе с детьми на Филиппинах, завершила сбор средств на покупку школьных учебников для детей.Она получила несколько тысяч небольших пожертвований от людей со всего мира на общую сумму 50 биткойнов, поэтому ее кошелек заполнен очень маленькими платежами (UTXO). Теперь она хочет купить сотни школьных учебников у местного издателя, заплатив биткойнами.
Поскольку приложение кошелька Евгении пытается создать одну большую платежную транзакцию, оно должно исходить из доступного набора UTXO, который состоит из множества меньших сумм. Это означает, что результирующая транзакция будет исходить из более чем сотни мелких UTXO в качестве входных данных и только из одного выхода, оплачиваемого издателем книги.Транзакция с таким количеством входов будет больше одного килобайта, возможно, от 2 до 3 килобайт. В результате потребуется более высокая комиссия, чем минимальная сетевая плата в 0,0001 биткойн.
Приложение кошелька Евгении рассчитает соответствующую комиссию, измерив размер транзакции и умножив ее на комиссию за килобайт. Многие кошельки переплачивают комиссию за более крупные транзакции, чтобы обеспечить своевременную обработку транзакции. Более высокая комиссия объясняется не тем, что Евгения тратит больше денег, а тем, что ее транзакция более сложна и больше по размеру - комиссия не зависит от стоимости транзакции в биткойнах.
Сцепление транзакций и потерянные транзакции
Как мы видели, транзакции образуют цепочку, при которой одна транзакция расходует выходные данные предыдущей транзакции (известной как родительская) и создает выходные данные для последующей транзакции (известной как дочерняя) . Иногда целая цепочка транзакций, зависящих друг от друга, например, родительская, дочерняя и внучатая транзакции, создается одновременно для выполнения сложного транзакционного рабочего процесса, который требует, чтобы действительные дочерние элементы были подписаны до подписания родительского элемента.Например, это метод, используемый в транзакциях CoinJoin, когда несколько сторон объединяют транзакции вместе, чтобы защитить свою конфиденциальность.
Когда цепочка транзакций передается по сети, они не всегда поступают в одном и том же порядке. Иногда ребенок может прийти раньше родителя. В этом случае узлы, которые сначала видят дочерний элемент, могут видеть, что он ссылается на родительскую транзакцию, которая еще не известна. Вместо того, чтобы отвергать дочерний элемент, они помещают его во временный пул, чтобы дождаться прибытия его родителя и распространить его на все остальные узлы.Пул транзакций без родителей известен как пул сиротских транзакций . После прибытия родителя любые сироты, которые ссылаются на UTXO, созданный родителем, освобождаются из пула, рекурсивно проходят повторную валидацию, а затем вся цепочка транзакций может быть включена в пул транзакций, готовая к майнингу в блоке. Цепочки транзакций могут быть сколь угодно длинными, с одновременной передачей любого количества поколений. Механизм удержания сирот в пуле сирот гарантирует, что в противном случае действительные транзакции не будут отклонены только потому, что их родительская транзакция была отложена, и что в конечном итоге цепочка, к которой они принадлежат, будет реконструирована в правильном порядке, независимо от порядка поступления.
Существует ограничение на количество потерянных транзакций, хранящихся в памяти, чтобы предотвратить атаку отказа в обслуживании против узлов биткойнов. Предел определен как MAX_ORPHAN_TRANSACTIONS
в исходном коде эталонного клиента биткойнов. Если количество потерянных транзакций в пуле превышает MAX_ORPHAN_TRANSACTIONS
, одна или несколько случайно выбранных потерянных транзакций исключаются из пула, пока размер пула не вернется в установленные пределы.
Сценарии транзакций и язык сценариев
Клиенты Биткойн проверяют транзакции, выполняя сценарий, написанный на языке сценариев, подобном Forth.И сценарий блокировки (обременение), помещенный в UTXO, и сценарий разблокировки, который обычно содержит подпись, написаны на этом языке сценариев. Когда транзакция подтверждена, сценарий разблокировки на каждом входе выполняется вместе с соответствующим сценарием блокировки, чтобы проверить, удовлетворяет ли он условию расходов.
Сегодня большинство транзакций, обрабатываемых через сеть биткойнов, имеют форму «Алиса платит Бобу» и основаны на том же сценарии, который называется сценарием Pay-to-Public-Key-Hash.Однако использование сценариев для блокировки выходов и разблокировки входов означает, что благодаря использованию языка программирования транзакции могут содержать бесконечное количество условий. Биткойн-транзакции не ограничиваются формой и шаблоном «Алиса платит Бобу».
Это только верхушка айсберга возможностей, которые могут быть выражены с помощью этого языка сценариев. В этом разделе мы продемонстрируем компоненты языка сценариев транзакций биткойнов и покажем, как его можно использовать для выражения сложных условий расходов и как эти условия могут быть выполнены с помощью сценариев разблокировки.
Совет
Проверка транзакции Биткойн не основана на статическом шаблоне, а вместо этого достигается посредством выполнения языка сценариев. Этот язык позволяет выражать почти бесконечное множество условий. Так биткойн получает силу «программируемых денег».
Построение сценария (блокировка + разблокировка)
Механизм проверки транзакций Биткойн полагается на два типа сценариев для проверки транзакций: сценарий блокировки и сценарий разблокировки.
Сценарий блокировки - это обременение, налагаемое на вывод, и он определяет условия, которые должны быть выполнены для использования вывода в будущем. Исторически сценарий блокировки назывался scriptPubKey , потому что обычно он содержал открытый ключ или биткойн-адрес. В этой книге мы называем его «сценарием блокировки», чтобы признать гораздо более широкий диапазон возможностей этой технологии создания сценариев. В большинстве биткойн-приложений то, что мы называем сценарием блокировки, будет отображаться в исходном коде как scriptPubKey
.
Сценарий разблокировки - это сценарий, который «решает» или удовлетворяет условиям, налагаемым на выход сценарием блокировки, и позволяет потратить выходные данные. Сценарии разблокировки являются частью каждого ввода транзакции, и в большинстве случаев они содержат цифровую подпись, созданную кошельком пользователя с его или ее закрытого ключа. Исторически скрипт разблокировки называется scriptSig , потому что обычно он содержит цифровую подпись. В большинстве биткойн-приложений в исходном коде скрипт разблокировки называется scriptSig
.В этой книге мы называем его «сценарием разблокировки», чтобы признать гораздо более широкий диапазон требований сценария блокировки, поскольку не все сценарии разблокировки должны содержать подписи.
Каждый биткойн-клиент будет проверять транзакции, выполняя сценарии блокировки и разблокировки вместе. Для каждого входа в транзакции программное обеспечение проверки сначала извлекает UTXO, на который ссылается вход. Этот UTXO содержит сценарий блокировки, определяющий условия, необходимые для его использования. Затем программа проверки возьмет сценарий разблокировки, содержащийся во входных данных, который пытается потратить этот UTXO, и выполнит два сценария.
В исходном биткойн-клиенте скрипты разблокировки и блокировки были объединены и выполнялись последовательно. По соображениям безопасности это было изменено в 2010 году из-за уязвимости, которая позволяла некорректному сценарию разблокировки помещать данные в стек и повредить сценарий блокировки. В текущей реализации сценарии выполняются отдельно со стеком, передаваемым между двумя выполнениями, как описано ниже.
Сначала выполняется сценарий разблокировки с использованием механизма выполнения стека.Если сценарий разблокировки выполняется без ошибок (например, в нем не осталось «болтающихся» операторов), копируется основной стек (а не альтернативный стек) и выполняется сценарий блокировки. Если результатом выполнения сценария блокировки с данными стека, скопированными из сценария разблокировки, является «ИСТИНА», сценарий разблокировки преуспел в разрешении условий, налагаемых сценарием блокировки, и, следовательно, входные данные являются действительным разрешением на использование UTXO. . Если после выполнения объединенного сценария остается какой-либо результат, отличный от «ИСТИНА», ввод недопустим, поскольку он не удовлетворяет условиям затрат, установленным для UTXO.Обратите внимание, что UTXO постоянно записывается в цепочку блоков и, следовательно, неизменен, и на него не влияют неудачные попытки потратить его по ссылке в новой транзакции. Только действительная транзакция, которая правильно удовлетворяет условиям UTXO, приводит к тому, что UTXO помечается как «потраченный» и удаляется из набора доступных (неизрасходованных) UTXO.
Рисунок 5-1 представляет собой пример сценариев разблокировки и блокировки для наиболее распространенного типа биткойн-транзакций (платеж на хэш открытого ключа), показывающий комбинированный сценарий, полученный в результате объединения сценариев разблокировки и блокировки перед сценарием. Проверка.
Рисунок 5-1. Комбинирование scriptSig и scriptPubKey для оценки сценария транзакции
Язык сценария транзакции биткойнов, называемый Script , представляет собой язык исполнения на основе стека обратной полировки нотации типа Форта. Если это звучит как тарабарщина, вы, вероятно, не изучали языки программирования 1960-х годов. Сценарий - это очень простой язык, который был разработан с учетом ограничений по объему и выполняемого на широком диапазоне аппаратных средств, возможно, таких же простых, как встроенное устройство, такое как карманный калькулятор.Он требует минимальной обработки и не может делать многие из фантастических вещей, которые могут делать современные языки программирования. В случае программируемых денег это преднамеренная функция безопасности.
Язык сценариев Биткойна называется языком на основе стека, потому что он использует структуру данных, называемую стеком . Стек - это очень простая структура данных, которую можно визуализировать как стопку карточек. Стек позволяет две операции: push и pop. Push добавляет элемент в верхнюю часть стека. Pop удаляет верхний элемент из стека.
Язык сценариев выполняет сценарий, обрабатывая каждый элемент слева направо. Числа (константы данных) помещаются в стек. Операторы выталкивают или выталкивают один или несколько параметров из стека, воздействуют на них и могут помещать результат в стек. Например, OP_ADD
вытолкнет два элемента из стека, сложит их и поместит полученную сумму в стек.
Условные операторы оценивают условие, выдавая логический результат ИСТИНА или ЛОЖЬ. Например, OP_EQUAL
выталкивает два элемента из стека и нажимает ИСТИНА (ИСТИНА представлено числом 1), если они равны, или ЛОЖЬ (представлено нулем), если они не равны.Скрипты биткойн-транзакций обычно содержат условный оператор, поэтому они могут выдавать ИСТИННЫЙ результат, обозначающий действительную транзакцию.
На рисунке 5-2 сценарий 2 3 OP_ADD 5 OP_EQUAL
демонстрирует оператор арифметического сложения OP_ADD
, складывающий два числа и помещающий результат в стек, за которым следует условный оператор OP_EQUAL
, который проверяет, что Итоговая сумма равна 5
. Для краткости префикс OP_
в пошаговом примере опущен.
Ниже приведен немного более сложный сценарий, который вычисляет 2 + 7 - 3 + 1
. Обратите внимание, что когда сценарий содержит несколько операторов подряд, стек позволяет выполнять действия одного оператора следующему оператору:
2 7 OP_ADD 3 OP_SUB 1 OP_ADD 7 OP_EQUAL
Попробуйте проверить предыдущий сценарий самостоятельно, используя карандаш и бумага. Когда выполнение скрипта завершится, вы должны остаться со значением TRUE в стеке.
Хотя большинство сценариев блокировки ссылаются на адрес биткойна или открытый ключ, что требует подтверждения права собственности на использование средств, сценарий не должен быть таким сложным.Допустима любая комбинация сценариев блокировки и разблокировки, которая приводит к значению ИСТИНА. Простая арифметика, которую мы использовали в качестве примера языка сценариев, также является допустимым сценарием блокировки, который можно использовать для блокировки вывода транзакции.
Используйте часть сценария арифметического примера в качестве сценария блокировки:
3 OP_ADD 5 OP_EQUAL
, который может быть удовлетворен транзакцией, содержащей ввод со сценарием разблокировки:
2
Программа проверки сочетает блокировку и разблокировку сценарии и результирующий сценарий:
2 3 OP_ADD 5 OP_EQUAL
Как мы видели в пошаговом примере на рисунке 5-2, когда этот сценарий выполняется, результатом является OP_TRUE
, что делает транзакцию действительной. .Это не только допустимый сценарий блокировки вывода транзакции, но и полученный UTXO может быть использован любым, кто обладает арифметическими навыками, чтобы знать, что число 2 удовлетворяет сценарию.
Рисунок 5-2. Проверка сценария Биткойна с помощью простых вычислений
Совет
Транзакции действительны, если верхний результат в стеке ИСТИНА (обозначен как {0x01}
), любое другое ненулевое значение или если стек пуст после выполнения сценария. Транзакции недействительны, если верхнее значение в стеке равно FALSE (пустое значение нулевой длины, обозначенное как {}
) или если выполнение скрипта явно остановлено оператором, таким как OP_VERIFY, OP_RETURN, или условным ограничителем, например OP_ENDIF.См. Подробности в Приложении A.
Язык сценария транзакции биткойнов содержит множество операторов, но намеренно ограничен одним важным способом - нет никаких циклов или сложных возможностей управления потоком, кроме условного управления потоком. Это гарантирует, что язык не Turing Complete , а это означает, что скрипты имеют ограниченную сложность и предсказуемое время выполнения. Скрипт не является языком общего назначения. Эти ограничения гарантируют, что язык не может быть использован для создания бесконечного цикла или другой формы «логической бомбы», которая может быть встроена в транзакцию таким образом, чтобы вызвать атаку отказа в обслуживании против сети биткойнов.Помните, что каждая транзакция проверяется каждым полным узлом в сети биткойнов. Ограниченный язык предотвращает использование механизма проверки транзакции в качестве уязвимости.
Язык сценария транзакции биткойнов не имеет состояния, в котором нет состояния до выполнения сценария или состояния, сохраненного после выполнения сценария. Следовательно, вся информация, необходимая для выполнения сценария, содержится внутри сценария. Сценарий предсказуемо будет выполняться одинаково в любой системе.Если ваша система проверяет сценарий, вы можете быть уверены, что каждая другая система в сети биткойнов также проверит сценарий, а это означает, что действительная транзакция действительна для всех, и все это знают. Эта предсказуемость результатов - важное преимущество системы биткойнов.
В первые несколько лет разработки биткойна разработчики ввели некоторые ограничения в типы скриптов, которые могут обрабатываться эталонным клиентом. Эти ограничения закодированы в функции isStandard ()
, которая определяет пять типов «стандартных» транзакций.Эти ограничения являются временными и могут быть сняты к тому времени, когда вы это прочтете. До тех пор пять стандартных типов скриптов транзакций - единственные, которые будут приняты эталонным клиентом и большинством майнеров, запускающих эталонный клиент. Хотя можно создать нестандартную транзакцию, содержащую сценарий, который не является одним из стандартных типов, вы должны найти майнера, который не соблюдает эти ограничения, чтобы превратить эту транзакцию в блок.
Проверьте исходный код клиента Bitcoin Core (эталонная реализация), чтобы узнать, что в настоящее время разрешено в качестве допустимого сценария транзакции.
Пять стандартных типов сценариев транзакций: хэш-код с оплатой по общему ключу (P2PKH), с открытым ключом, с несколькими подписями (до 15 ключей), хеш с оплатой по сценарию (P2SH) и с данными. output (OP_RETURN), которые более подробно описаны в следующих разделах.
Pay-to-Public-Key-Hash (P2PKH)
Подавляющее большинство транзакций, обрабатываемых в сети биткойнов, являются транзакциями P2PKH. Они содержат сценарий блокировки, который обременяет вывод хешем открытого ключа, более известным как адрес биткойна.Транзакции, которые оплачивают биткойн-адрес, содержат скрипты P2PKH. Вывод, заблокированный сценарием P2PKH, можно разблокировать (потратить), представив открытый ключ и цифровую подпись, созданную соответствующим закрытым ключом.
Например, давайте еще раз посмотрим на платеж Алисы в адрес Bob’s Cafe. Алиса перевела 0,015 биткойна на биткойн-адрес кафе. Этот вывод транзакции будет иметь сценарий блокировки вида:
OP_DUP OP_HASh260 <Хэш открытого ключа кафе> OP_EQUAL OP_CHECKSIG
Хэш открытого ключа кафе
эквивалентен биткойн-адресу кафе без кодировки Base58Check.Большинство приложений будут отображать хэш открытого ключа в шестнадцатеричной кодировке, а не знакомый формат адреса биткойнов Base58Check, который начинается с «1».
Предыдущий сценарий блокировки может быть удовлетворен сценарием разблокировки в форме:
<Подпись кафе> <Открытый ключ кафе>
Два сценария вместе образуют следующий комбинированный сценарий проверки:
<Подпись кафе> <Кафе Открытый ключ> OP_DUP OP_HASh260 <Хеш открытого ключа Cafe> OP_EQUAL OP_CHECKSIG
При выполнении этот комбинированный сценарий будет оцениваться как TRUE, если и только если сценарий разблокировки соответствует условиям, установленным сценарием блокировки.Другими словами, результатом будет ИСТИНА, если сценарий разблокировки имеет действительную подпись из закрытого ключа кафе, которая соответствует хешу открытого ключа, установленному в качестве обременения.
На рисунках 5-3 и 5-4 показано (в двух частях) пошаговое выполнение комбинированного сценария, который докажет, что это действительная транзакция.
Рисунок 5-3. Оценка сценария для транзакции P2PKH (часть 1 из 2)
Pay-to-public-key - более простая форма биткойн-платежа, чем pay-to-public-key-hash.В этой форме сценария сам открытый ключ хранится в сценарии блокировки, а не в хэше открытого ключа, как в случае с P2PKH ранее, который намного короче. Pay-to-public-key-hash был изобретен Сатоши, чтобы сделать биткойн-адреса короче для простоты использования. Плата за открытый ключ теперь чаще всего встречается в транзакциях с базой монет, генерируемых старым программным обеспечением для майнинга, которое не было обновлено для использования P2PKH.
Сценарий блокировки с оплатой по общему ключу выглядит следующим образом:
<Открытый ключ A> OP_CHECKSIG
Соответствующий сценарий разблокировки, который должен быть представлен, чтобы разблокировать этот тип выходных данных, представляет собой простую подпись, например:
<Подпись из закрытого ключа A>
Комбинированный сценарий, который проверяется программным обеспечением для проверки транзакций, имеет следующий вид:
<Подпись из закрытого ключа A> <Открытый ключ A> OP_CHECKSIG
Этот сценарий представляет собой простой вызов Оператор CHECKSIG
, который проверяет подпись как принадлежащую правильному ключу и возвращает TRUE в стеке.
Рисунок 5-4. Оценка сценария для транзакции P2PKH (Часть 2 из 2)
Сценарии с несколькими подписями устанавливают условие, при котором N открытых ключей записываются в сценарий, и по крайней мере M из них должны предоставлять подписи для освобождения от обременения. Это также известно как схема M-of-N, где N - общее количество ключей, а M - порог подписей, необходимых для проверки. Например, мульти-подпись 2-из-3 - это та, в которой три открытых ключа указаны в качестве потенциальных подписывающих лиц, и по крайней мере два из них должны использоваться для создания подписей для действительной транзакции для расходования средств.В настоящее время стандартные сценарии с несколькими подписями ограничены максимум 15 перечисленными открытыми ключами, что означает, что вы можете делать что угодно, от 1 из 1 до 15 из 15 или любую комбинацию в этом диапазоне. Ограничение до 15 перечисленных ключей может быть снято к моменту публикации этой книги, поэтому проверьте функцию isStandard ()
, чтобы узнать, что в настоящее время принимается сетью.
Общая форма сценария блокировки, устанавливающего условие множественной подписи M из N:
M <Открытый ключ 1> <Открытый ключ 2>... <Открытый ключ N> N OP_CHECKMULTISIG
где N - общее количество перечисленных открытых ключей, а M - порог необходимых подписей для использования вывода.
Сценарий блокировки, устанавливающий условие множественной подписи 2 из 3, выглядит следующим образом:
2 <Открытый ключ A> <Открытый ключ B> <Открытый ключ C> 3 OP_CHECKMULTISIG
Предыдущий сценарий блокировки может быть удовлетворен с помощью сценарий разблокировки, содержащий пары подписей и открытых ключей:
OP_0 <Подпись B> <Подпись C>
или любую комбинацию двух подписей из закрытых ключей, соответствующих трем перечисленным открытым ключам.
Примечание
Префикс OP_0
требуется из-за ошибки в исходной реализации CHECKMULTISIG
, когда из стека выскакивает слишком много элементов. Он игнорируется CHECKMULTISIG
и является просто заполнителем.
Два сценария вместе образуют объединенный сценарий проверки:
OP_0 <Подпись B> <Подпись C> 2 <Открытый ключ A> <Открытый ключ B> <Открытый ключ C> 3 OP_CHECKMULTISIG
При выполнении этот объединенный сценарий будет оцениваться как ИСТИНА, если и только если скрипт разблокировки соответствует условиям, установленным скриптом блокировки.В этом случае условием является наличие у сценария разблокировки действительной подписи из двух закрытых ключей, которые соответствуют двум из трех открытых ключей, установленных в качестве обременения.
Распределенная бухгалтерская книга Биткойна с отметками времени, блокчейн, имеет потенциальное применение далеко за пределами платежей. Многие разработчики пытались использовать язык сценариев транзакций, чтобы воспользоваться преимуществами безопасности и отказоустойчивости системы для таких приложений, как цифровые нотариальные услуги, сертификаты акций и смарт-контракты.Ранние попытки использовать язык сценариев биткойна для этих целей включали создание выходных данных транзакций, которые записывали данные в цепочку блоков; например, чтобы записать цифровой отпечаток файла таким образом, чтобы любой мог установить доказательство существования этого файла на определенную дату, ссылаясь на эту транзакцию.
Использование цепочки блоков биткойнов для хранения данных, не связанных с платежами в биткойнах, является спорной темой. Многие разработчики считают такое использование оскорбительным и не одобряют его.Другие рассматривают это как демонстрацию мощных возможностей технологии блокчейн и хотят поощрять такие эксперименты. Те, кто возражает против включения данных о неплатежах, утверждают, что это вызывает «раздувание блокчейна», обременяя тех, кто использует полные биткойн-узлы, несут расходы на дисковое хранилище для данных, которые блокчейн не предназначен для передачи. Более того, такие транзакции создают UTXO, которые нельзя потратить, используя биткойн-адрес назначения в виде 20-байтового поля произвольной формы. Поскольку адрес используется для данных, он не соответствует закрытому ключу, и результирующий UTXO не может быть потрачен , а никогда не будут потрачены; это поддельный платеж.Эта практика приводит к увеличению размера установленного в памяти UTXO, и, следовательно, эти транзакции, которые никогда не могут быть потрачены, никогда не удаляются, вынуждая узлы биткойнов нести их навсегда в ОЗУ, что намного дороже.
В версии 0.9 клиента Bitcoin Core компромисс был достигнут с введением оператора OP_RETURN
. OP_RETURN
позволяет разработчикам добавлять 40 байтов данных о неплатежах к выходным данным транзакции. Однако, в отличие от использования «фальшивого» UTXO, оператор OP_RETURN
создает явно непригодный для вывод , который не нужно сохранять в наборе UTXO. OP_RETURN
выходных данных записываются в блокчейн, поэтому они занимают дисковое пространство и способствуют увеличению размера блокчейна, но они не хранятся в наборе UTXO и, следовательно, не раздувают пул памяти UTXO и не обременяют полные узлы затратами. более дорогой оперативной памяти.
OP_RETURN
скрипты выглядят следующим образом:
OP_RETURN
Часть данных ограничена 40 байтами и чаще всего представляет собой хэш, например результат алгоритма SHA256 (32 байта).Многие приложения ставят перед данными префикс, чтобы помочь идентифицировать приложение. Например, в службе цифрового нотариального удостоверения «Доказательство существования» используется 8-байтовый префикс «DOCPROOF», который имеет кодировку ASCII как 44f4350524f4f46
в шестнадцатеричном формате.
Имейте в виду, что не существует «сценария разблокировки», соответствующего OP_RETURN
, который можно было бы использовать для «расходования» вывода OP_RETURN
. Весь смысл OP_RETURN
заключается в том, что вы не можете потратить деньги, заблокированные в этом выпуске, и, следовательно, их не нужно держать в UTXO, как потенциально пригодные для использования - OP_RETURN
- это , которые доказуемо нельзя потратить . OP_RETURN
обычно является выходом с нулевым количеством биткойнов, потому что любой биткойн, назначенный такому выходу, фактически теряется навсегда. Если программа проверки подлинности сценария обнаруживает ошибку OP_RETURN
, это немедленно приводит к остановке выполнения сценария проверки и пометке транзакции как недействительной. Таким образом, если вы случайно ссылаетесь на выход OP_RETURN
как на вход транзакции, эта транзакция недействительна.
Стандартная транзакция (та, которая соответствует проверкам isStandard ()
) может иметь только один выход OP_RETURN
.Однако один выход OP_RETURN
может быть объединен в транзакции с выходами любого другого типа.
Pay-to-Script-Hash (P2SH)
Pay-to-script-hash (P2SH) был представлен в 2012 году как мощный новый тип транзакции, который значительно упрощает использование сложных сценариев транзакций. Чтобы объяснить необходимость P2SH, давайте рассмотрим практический пример.
В главе 1 мы представили Мохаммеда, импортера электроники из Дубая. Компания Мохаммеда широко использует функцию мультиподписи биткойнов для своих корпоративных счетов.Сценарии с несколькими подписями - одно из наиболее распространенных применений расширенных возможностей сценариев Биткойна и очень мощная функция. Компания Мохаммеда использует сценарий с несколькими подписями для всех платежей клиентов, известный в бухгалтерском учете как «дебиторская задолженность» или AR. При использовании схемы с несколькими подписями любые платежи, производимые клиентами, блокируются таким образом, что для их выпуска требуется как минимум две подписи, от Мохаммеда и одного из его партнеров или от его поверенного, у которого есть резервный ключ. Подобная схема с несколькими подписями обеспечивает контроль корпоративного управления и защищает от краж, растраты или потери.
Результирующий сценарий довольно длинный и выглядит следующим образом:
2 <Открытый ключ Мохаммеда> <Открытый ключ партнера1> <Открытый ключ партнера2> <Открытый ключ партнера3> <Открытый ключ поверенного> 5 OP_CHECKMULTISIG
Хотя сценарии с несколькими подписями являются мощной функцией, они громоздки в использовании. Учитывая предыдущий сценарий, Мохаммед должен был передать этот сценарий каждому покупателю до оплаты. Каждый клиент должен будет использовать специальное программное обеспечение биткойн-кошелька с возможностью создания пользовательских сценариев транзакций, и каждый клиент должен будет понимать, как создать транзакцию с использованием пользовательских сценариев.Более того, итоговая транзакция будет примерно в пять раз больше, чем простая платежная транзакция, потому что этот сценарий содержит очень длинные открытые ключи. Бремя этой сверхкрупной транзакции ляжет на плечи клиента в виде комиссионных. Наконец, такой большой сценарий транзакции будет переноситься в UTXO, установленном в ОЗУ на каждом полном узле, пока он не будет израсходован. Все эти проблемы затрудняют использование сложных сценариев вывода на практике.
Pay-to-script-hash (P2SH) был разработан для решения этих практических трудностей и для упрощения использования сложных скриптов, таких как оплата на биткойн-адрес.При платежах P2SH сложный скрипт блокировки заменяется его цифровым отпечатком - криптографическим хешем. Когда транзакция, пытающаяся потратить UTXO, представляется позже, она должна содержать сценарий, соответствующий хэшу, в дополнение к сценарию разблокировки. Проще говоря, P2SH означает «заплатить скрипту, соответствующему этому хешу, скрипту, который будет представлен позже, когда эти выходные данные будут потрачены».
В транзакциях P2SH сценарий блокировки, который заменяется хешем, называется сценарием погашения , потому что он представляется системе во время погашения, а не как сценарий блокировки.В таблице 5-4 показан сценарий без P2SH, а в таблице 5-5 показан тот же сценарий, закодированный с помощью P2SH.
Таблица 5-4. Сложный скрипт без P2SH