Содержание

Как проверить баланс биткоин кошелька и узнать Bitcoin-адрес через обозреватели блокчейна

Один из первых вопросов, возникающих у новичка, только начинающего пользоваться криптовалютой – как узнать (проверить) баланс Bitcoin адреса. Это очень просто, не требует совершенно никаких специализированных знаний, достаточно воспользоваться предназначенными для этой цели сервисами. Редакция Profinvestment.com расскажет обо всех способах и нюансах проверки баланса BTC-адресов.

Содержание статьи

Как проверить свой баланс в кошельке Биткоин

Особенность хранения BTC заключается в том, что хранятся не сами монеты, а комбинация личных ключей и истории транзакций. Баланс формируется на основе расчета входящих и исходящих транзакций по простой формуле: сумма входящих минус сумма исходящих = баланс. Например, если вы за все время существования своего кошелька получили 5 BTC, а потратили 2 BTC, то система рассчитывает баланс 5 – 2 = 3 BTC.

Что такое Bitcoin-адрес и каким он бывает

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

Существующие форматы Bitcoin-адресов:

  • Стандартный Legacy-адрес (начинается с цифры «1»), например: 1BUrDeWstWetqBFn7Au8m4JFg2xJaKVN4
  • Улучшенный P2SH-адрес (начинается с цифры «3»), например: 3h38N5WuREZ99CNmhWcRcrnykWrMqkhFyWN
  • Еще более усовершенствованный Bech42 (начинается с букв «bc»), который также называют SegWit-адрес или P2WPKH. Например: bc1uf5tdn87k7uz7r2kl5zrfww362ch4746lq5vse7

Как проверить баланс в биткоин кошельке

Самый простой способ узнать баланс своего Bitcoin адреса – это зайти в используемый кошелек. Важно использовать именно те данные для входа и ключи, которые относятся к адресу, обычно используемому вами для получения средств.

Баланс кошелька вы точно найдете сразу – обычно он указывается крупно на главной странице. Если кошелек мультивалютный, то возможно, потребуется выбрать интересующую криптовалюту, чтобы просмотреть баланс по ней.

Например, в кошельке Jaxx справа вы можете видеть стоимость всех своих накоплений в долларах, а слева – балансы по конкретным криптовалютам:

проверить баланс Биткоин адреса через криптовалютный кошелек JAXX

Если вы используете для хранения BTC биржу или электронную платежную систему, то также потребуется авторизоваться и просмотреть баланс по нужной криптовалюте.

Как узнать свой или чужой BTC адрес

Посмотреть свой текущий адрес можно в разделе «Получить», «Receive» или «Request» вашего кошелька. Там же при необходимости можно сгенерировать новый.

Адрес для перевода другому человеку он должен дать вам самостоятельно. Если собираетесь переводить сервису, например, при использовании биржи или обменника, то они также предоставляют адреса для депозита.

Может потребоваться узнать BTC-address крупного сервиса. Как правило, биржи и другие компании мирового уровня не скрывают эту информацию. Существует сервис WalletExprorer, предоставляющий сведения обо всех топовых кошельках и транзакциях по ним. К примеру, история транзакций по кошелькам биржи Huobi:

Как узнать баланс своего или чужого BTC адреса через блокчейн

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

При этом блокчейн прозрачен – то есть транзакции и накопления, связанные с каждым адресом, свободно открыты для просмотра любым желающим через специализированные сервисы под названием блокчейн-обозреватели.

Рассмотрим сервисы, через которые можно быстро, законно и абсолютно бесплатно проверить баланс любого Bitcoin-адреса:

Обозреватель Blockchain.com

Перейдите на страницу https://www.blockchain.com/explorer?view=btc

В поле поиска сверху вставьте адрес, по которому нужно узнать баланс, и нажмите Enter.

Как узнать баланс своего или чужого BTC адреса через обозреватель Blockchain.com

Вероятно, вы увидите такой выбор:

Выбор блокчейна для проверки баланса адреса в сети биткоин

Дело в том, что в определенный момент сеть Bitcoin разветвилась и от нее произошел блокчейн Bitcoin Cash. Указанный адрес есть и в той, и в другой сети. Но нас интересует именно биткоин, поэтому выбираем этот вариант.

На открывшейся странице расположены:

информация о балансе биткоин адреса

  • QR-код для быстрого перевода BTC на этот адрес;
  • Сведения о формате адреса;
  • Общее количество связанных с ним транзакций;
  • Общий объем полученной криптовалюты.
  • Общий объем отправленной криптовалюты.
  • Итоговый баланс.
  • Ниже – список всех транзакций, связанных с адресом.

Представленный пример – это первый биткоин-адрес в истории, который, как предполагается, принадлежит Сатоши Накамото. Как мы видим, с него никогда ничего не отправлялось, а получено за время существования 68 BTC.

Обозреватель BTC.com

Обозреватель находится на странице https://explorer.btc.com/. Русскоязычного интерфейса нет.

проверить баланс адреса Bitcoin кошелька через обозреватель BTC.com

Вставьте адрес и нажмите Search. Для примера используем адрес, находящийся под контролем криптовалютной биржи Бинанс.

Как и в предыдущем случае, потребуется выбрать сеть, выбираем Bitcoin.

выбор нужного блокчейна: Bitcoin или Bitcoin Cash

На странице адреса представлена информация об общем количестве отправленных и полученных монет, текущем балансе, формате самого адреса и всех последних транзакциях. Например, на данный адрес было зачислено 109 232 BTC и ровно столько же отправлено, все это заняло 17 транзакций.

полная информация о балансе нужного адреса биткоин кошелька

aWebAnalysis – проверка сразу нескольких биткоин адресов

На странице https://awebanalysis.com/ru/bitcoin-multiple-address-check-balance/ есть возможность проверить сразу несколько интересующих вас адресов. Сделать это очень легко.

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

массовая проверка баланса биткоин адресов через aWebAnalysis

Затем поставьте галочку «Я не робот» и нажмите кнопку «Проверьте адрес Bitcoin Баланс и детали».

Спустя пару секунд вы увидите интересующую информацию:

информация о каждом BTC-адресе

Для каждого адреса здесь указано количество операций, общая полученная сумма, итоговый баланс в BTC и в USD. Кроме того, ниже будет указана суммарная информация по всем адресам. Это удобно, если вы знаете сразу несколько адресов человека или компании и хотите быстро узнать, сколько средств в их распоряжении.

Заключение

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

Как узнать номер своего биткоин кошелька блокчейн

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

Как выглядит номер биткоин-кошелька

Приступая к пользованию биткойн кошельком, стоит запомнить, как выглядит его номер. Внешние особенности этого идентификатора:

  • начинается с цифр 1 или 3;
  • составлен 27-34 символами — цифрами, латинскими буквами, взятыми в верхнем и нижнем регистрах.

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

  • качественных услуг;
  • приемлемых обменных курсов, комиссий;
  • оперативной технической поддержки, доступной в режиме 24/7;
  • многоуровневой партнерской программы.

Многоуровневая “партнерка” — важное достоинство обменки. Вам становятся доступны не только приветственные бонусы, но и достаточно значительный пассивный доход. Разумеется, в том случае, если вы активно привлекаете других клиентов, чтобы получать отчисления с каждой сделки, которую они совершают.

Можно ли узнать адрес своего биткоин кошелька?

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

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

Обратите внимание! Для повышения анонимности и безопасности транзакций вы можете создавать любое число bitcoin-номеров.

Чем номер кошелька отличается от адреса

Начиная осуществлять операции с криптовалютами, понадобится сразу разобраться, чем отличаются адрес и номер кошелька.

Генерирование нового адреса выполняется после того, как осуществлена транзакция.

Можно пользоваться любым количеством адресов, ранее применявшиеся — сохраняются. Это открытые ключи, ведь они предназначаются, чтобы передать отправителю перевода. Располагая открытым ключом, не получится найти персональные данные. Они зашифрованы, для чего использован закрытый код, приватный.

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

При потере закрытого ключа возможности пользоваться блокчейн кошельком утрачиваются.

Как выглядит номер кошелька биткоин?

Биткоин-адрес – представляет собой особый идентификатор, который начинается с цифр 1 или 3 и содержит в себе от 27 до 34 буквенно-цифровых символов. Технически он представляет собой совокупность байт созданную путем преобразования открытого ключа. В номере не содержится никаких сведений о владельце, ведь он полностью анонимен.

В идентификатор кошелька могут входить не только цифры, но и латинские символы за исключением:

Кроме того, адрес может генерироваться в виде QR-кода. Для этого пользователю достаточно всего лишь сгенерировать его при помощи одного из элементов программного обеспечения биткоин.

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

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

Импорт адресов из других кошельков

Большинство пользователей, оперирующих криптовалютами, владеет несколькими кошельками, что позволяет импортировать адреса. Понадобится:

  • в разделе управления адресами воспользоваться пунктом “Импортировать”. Становится возможным получить ключи, как открытый, так и приватный, позволявший распоряжаться средствами данного кошелька;
  • зайдя в группу “Адреса для расходов”, воспользоваться кнопкой More Options. Открывшееся окно содержит предложения по выполнению возможных действий, включая импорт адреса.

Проведение транзакции по осуществлении импорта станет возможным, когда по запросу системы пользователь введет приватный ключ.

Как создать: пошаговая инструкция

Регистрация нового кошелька обычно не вызывает затруднений. Для того чтобы завести биткоин кошелек Blockchain, выполняют ряд действий:

  • Открыть официальную страницу проекта – blockchain.com.
  • Нажать кнопку «Создать кошелек».
  • Откроется страница, где необходимо ввести личный e-mail и придумать пароль. Для создания надежного пароля используют строчные и прописные буквы, цифры, спецсимволы.
  • Ознакомиться и согласиться с пользовательским соглашением, регламентирующим оказание услуг.
  • Нажать кнопку «Продолжить» — после этого открывается вновь созданный аккаунт пользователя.

E-mail следует верифицировать – подтвердить его, перейдя по ссылке, которая содержится в отправленном на указанный при регистрации E-mail письме.

В письме, кроме ссылки, содержится особый идентификатор, который система безопасности присваивает каждому зарегистрированному. При его утере доступ к средствам будет невозможен.

Самый верный вариант с точки зрения безопасности – распечатать его и хранить в надежном месте, а электронное письмо удалить. При взломе почтового ящика злоумышленники не смогут получить доступ к кошельку.

Эти меры актуальны, если планируется хранить в нем значительные суммы криптовалюты.

Обзор кошелька Blockchain.Info, инструкция по применению и безопасность:

Подобрать и получить выгодный кредит

Создание биткоин-кошелька Blockchain

Особой трудности в том, чтобы оформить биткойн кошелька в блокчейне, нет. Пошагово процесс выглядит так:

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

Теперь можно пользоваться кошельком.

Где и как посмотреть номер биткоин кошелька на blockchain?

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

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

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

Говоря о том где и как посмотреть номер биткоин кошелька на blockchain, стоит отметить что для определения адреса нужно выполнить следующий алгоритм действий:

  1. Перейти на главную страницу.
  2. Выбрать раздел с надписью: «Мой кошелек».
  3. Далее должны появиться значки, с надписями среди которых «Ваш биткоин адрес» («YourBitcoinAdress»).
  4. Эта надпись является ссылок, а потому ее нужно активировать.

После этого появиться специальное окно с кодом.

Для вас одобрен кредит!

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

Сохранить адрес, на своем устройстве, можно скопировав его при помощи сочетания клавиш Ctrl+C или отсканировав появившийся рядом с комбинацией QR-код при помощи смартфона с соответствующей программой.

Почему биткоин-адрес меняется

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

  • безопасности;
  • конфиденциальности.

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

Крипто кошелек: что это такое и как он работает

Главное не потерять доступ к криптовалютному кошельку — это может стать проблемой.
Под Bitcoin-адресом подразумевается идентификатор пользователя, с помощью которого можно выполнять платежи внутри сети ВТС. В данный момент он начинается с цифр «1» или «3» (возможно изменение) и в среднем состоит из 33 букв и цифр (от 27 до 34-х).

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

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

Отличия номера от адреса криптовалютного блокчейн-кошелька

Пользователей, помимо того, как получить адресс кошелька bitcoin cash blockchain, также интересует вопрос отличий между понятиями «адрес блокчейн-кошелька» и «номером блокчейн-кошелька». Попробуем разобраться в этом подробней:

  • номер представляет собой уникальный идентификатор криптокошелька, работающий по принципу закрытого ключа. Этот номер невозможно сфабриковать, а также его крайне сложно вычислить;
  • отдельны стоит поговорить об адресе. Внутри криптосистемы блокчейн-кошельков есть coin address. Он представляет собой открытый ключ, использующийся пользователями для обмена между собой криптой. Количество подобных ключей ничем не ограничивается так, как при проведении каждой новой трансакции создается отдельный новый ключ. При этом все старые криптоадреса сохраняют свою валидность, и они могут быть использованы для проведения в последующем финансовых операций. Стоит отметить, что даже при наличии такого криптоадреса злоумышленники и просто третьи лица не смогут получить доступ к криптокошельку и украсть оттуда средства. Поэтому подобные адреса можно свободно хранить, где угодно и даже публиковать на открытых интернет-площадках, например, для сбора пожертвований.

Правда, для большинства обычных обывателей адрес и номер кошелька так и остаются синонимами.

Как проверить транзакцию биткоина | Currency.com

Что такое транзакция биткоина и как можно ее отследить

                                

Содержание

Данные об операциях с биткоином (BTC) содержатся в блокчейне — системе, которая является прозрачной для всех пользователей интернета. Любой из них может отслеживать транзакции в технологии распределенного реестра, а для поиска информации использовать онлайн-сервисы. Поэтому инструкция, как проверить транзакцию биткоина, понятна любому даже самому начинающему инвестору. Разберемся, как отследить транзакцию биткоин.

Что такое транзакция биткоина

Сама по себе операция с биткоином — это подтвержденный цифровыми подписями фрагмент данных, который передается по сети Bitcoin. Поэтому найти ответ на вопрос, как проверить транзакцию биткоина, достаточно просто. В каждой операции содержатся данные о перераспределении токенов BTC между участвующими в ней адресами. Кроме того, в новом переводе указана ссылка на предыдущий. В результате возникает последовательная цепочка транзакций, история которых и хранится в блокчейне.

Чтобы выполнить операцию с биткоином, необходим специальный кошелек. Это программное обеспечение, которое дает доступ к сети Bitcoin. Для осуществления перевода пользователь должен обладать уникальной комбинацией символов — приватным ключем. После того, как отправитель ввел все данные — адрес получателя, сумму, описание, он должен заверить их с помощью электронной подписи. Так работает подтверждение транзакции Bitcoin.

Где проверить транзакцию биткоина

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

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

Как отследить транзакцию биткоина

Так как сеть Bitcoin публичная, все находящиеся в ней сведения являются общедоступными, поэтому любой желающий может проверить биткоин-транзакцию. Для этого используются онлайн-сервисы, которые называются обозреватели блоков. К самым известным из них относятся Blockchain.com, BitInfoCharts, Blockchair, SoChain и другие.

Перед тем, как найти биткойн-транзакцию в блокчейне, нужно открыть страницу любого обозревателя блоков BTC. В строке поиска необходимо вбить уникальный идентификатор операции — хеш, txhash. Если транзакция уже подтверждена, напротив нее будет стоять пометка confirmed, и она будет выделена зеленым цветом. Если еще нет, то будет значиться пометка unconfirmed и выделение красным цветом.

Также пользователь сможет увидеть все детали операции — адреса отправителя и получателя, сумму перевода и так далее.

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

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

Как проверить биткоин-кошелек

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

Настроение рынка (на торгах с левереджем)

Изменение за день

Мин.: 56950.4

Макс.: 59368.4

Материалы, представленные на этом веб-сайте, предназначены только для информационных целей, не являются инвестиционным исследованием и не должны рассматриваться в качестве инвестиционного совета. Любое мнение, которое может быть представлено на этой странице, является субъективной точкой зрения на объект сообщения автора материала, не является рекомендацией ООО «Карренси Ком Бел» или его партнёров. Мы не делаем никаких заявлений и не даем никаких гарантий относительно точности или полноты информации, представленной на этой странице. Полагаясь на информацию на этой странице, вы признаете, что действуете осознанно и самостоятельно и принимаете соответствующий риск.

Пользователь нашел потерянные биткоины на $4,2 млн :: РБК.Крипто

Студент рассказал, что обнаружил на старом компьютере ключ от кошелька, на котором хранилось 127 BTC. Он получил эту криптовалюту в 2011 году за выполнение простых заданий

Пользователь Reddit под псевдонимом BitcoinHolderThankU рассказал, что восстановил доступ к кошельку с биткоинами, который утратил в 2011 году, забыв о нем. О BitcoinHolderThankU известно, что он студент. Приехав к родственникам на рождественские каникулы, он обнаружил на старом компьютере цифровой ключ от кошелька, на котором хранилось 127 BTC. Позже BitcoinHolderThankU продал криптовалюту, выручив $4,2 млн.

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

BitcoinHolderThankU уточнил, что продал биткоины в начале января по курсу $34 тыс. за монету. Он приложил фотографию с кошельком, баланс которого превышает $4,2 млн. Пользователь отметил, что мог бы заработать на $1 млн больше, если бы подождал с продажей монет несколько дней, так как цена BTC поднималась до $42 тыс.

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

— Трейдер превратил $600 в $20 тыс. за 1 минуту

— Новый DeFi-токен подорожал на 13 000% за ночь и почти сразу обесценился

— Дороже Bitcoin. 40 токенов LINK проданы за $399 960

Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.

Автор

Дмитрий Фомин

Проверить транзакцию биткоин — как посмотреть подтверждение

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

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

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

Прежде чем они попадут на другой кошелёк, надо посмотреть в биткоин кошельке отправителя, как произошло подтверждение транзакции. Далеко не все сделки успешно осуществляются за пару минут. Иногда приходится ждать несколько часов и даже дней. Этому способствует особенность блокчейна.

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

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

  • История предыдущих операций,
  • Данные о новых операциях.

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

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

Благодаря проверке транзакции bitcoin можно максимально точно и с минимальными трудностями отследить текущее состояние сделки. И если возникли какие-то проблемы, принимать радикальные меры. Особенность блокчейна в его открытости. Любое действие в сети может увидеть каждый желающий. Правда, все анонимно, потому нужно найти именно интересующую вас транзакцию, а не миллиард других, которые ежедневно выполняются в сети. А как это сделать, мы сейчас и будем выяснять.

Транзакция в сети Биткоин – определение

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

В цепочке блоков можно отследить последовательность от первой транзакции и до последней. Кстати, блоки формируются не из одной, а из множества операций, потому, по идее, процесс работы должен проходить быстро. Но на практике это не так, несмотря на то что добытчики криптовалюты формируют блоки практически каждые 10 минут, а то и чаще.

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

  • Входом называют адрес, с которого перечисляются биткоины,
  • Далее, любому желающему доступны сведения о сумме перечисляемых криптомонет,
  • Выходом текущей транзакции previous tx называют адрес получателя перевода.

Система анонимная, потому никаких имён здесь нет, но отслеживать операцию можно по символам, что формируют специальный ключ. Так что движение операции найти не проблема. Если сумма перевода маленькая, то пользователю достаточно одного блока, а вот если перевод крупный, то потребуется несколько блоков. Более точное количество зависит от суммы.

Пользователь может проверить транзакцию btc в любой момент как перед, так и после подтверждения. Для того чтобы провести большую сумму, требуется получить подтверждение не меньше шести блоков блокчейна. Если подтверждение не будет получено, появляется вероятность, что сделка не будет проведена или зависнет в неопределённом состоянии.

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

  • Хеш-кода,
  • Собственного хеша,
  • Хеша предыдущего блока.

Прежде чем проверить транзакцию blockchain, нужно понимать, что первыми будут подтверждены, а значит, пойдут в сети те переводы, комиссия за которые выше. Комиссия – это вознаграждение для майнеров, которые и занимаются переводами, получая за это вознаграждение. И только после того, как операция валидирована в блок, можно проверять её подлинность.

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

Перевод осуществляется с помощью адреса и секретного ключа. Пользователь открывает кошелёк, где генерируется закрытый ключ, состоящий из 25 или 34 символов. Кошелёк открывает адрес, а также преобразует закрытый ключ. Пользователь, имеющий этот ключ, может в любой момент посмотреть, что происходит с биткоинами. Больше никто другой не имеет права на подобные действия, пусть блоки и имеют вид прозрачного кейса.

Процедура выглядит следующим образом:

  1. Сначала перевод оформляется с помощью секретного ключа. Благодаря этому с биткоин-адреса информация о криптовалюте отправляется в сеть.
  2. Информация передаётся в случайном порядке на узлы, подключённые к компьютерам, что проверяют сделку и передают её дальше.
  3. В системе реестра появляется код-запись перевода и на счету получателя увеличивается баланс.
  4. Информация о перемещении передаётся нодам (узлам), тем самым реализуя главный принцип сети – открытость.

Переводы одновременно сложные и простые – в этом и секрет популярности сети.

Сколько времени уходит на транзакцию в блокчейне Bitcoin?

Система блокчейна не рассчитана на быстрое проведение сделки. Как правило, пользователям приходиться ждать от 10 минут, чтобы сделка прошла по цепочке и была выполнена. Но нередко проверка транзакции биткоина может продолжаться от 20 минут до часа. Причём это при условии, что сделка подкреплена достаточной комиссией и выполняется не в час пик.

Если же перевод осуществляется на крупную сумму, то есть, нужно задействовать много ячеек блокчейна, времени может потребоваться ещё больше. Период, на протяжении которого проходит перевод средств, занимает несколько суток.

Давайте попытаемся определить все факторы, которые могут повлиять на время проведения сделки:

  1. Размер транзакции. Как уже говорилось, переводы небольшого количества биткоинов подразумевают значительное уменьшение количества блоков, что должна пройти операция. Если денег немного, то хватает и одного блока, а это практически полная гарантия того, что сделку получится провести за минимальный срок – 10 минут. Конечно, если разговор идёт о часе пик, то время увеличивается, но ждать более нескольких часов при правильно указанных параметрах приходится редко.
  1. Стабильность сети. Здесь подразумевается загруженность сети на конкретный момент времени. Логично, что на вашу сделку быстрее обратят внимание, если количество операций минимально, чем когда их много. За последние два года популярность блокчейна и биткоинов значительно выросла, а значит, возросла и загруженность сети. По самым скромным подсчётам количество операций в сети блокчейн возросло в восемь раз. Сейчас в сети выполняется несколько триллионов хэшей в секунду. Кроме того, чаще стали появляться периоды, когда среднее количество сделок в блоках вырастает, а размер блока достигает критического размера.
  2. Колебания курса. В периоды стабилизации курса операций значительно меньше, так как в них нет особой необходимости для трейдеров, работающих на разнице курсов. А вот в период резкого спада или роста цены биткоина начинается период активности, что отрицательно сказываются на среднем времени перевода биткоинов, проверку которой устраивает пользователь. Так что, если хотите быстрее провести сделку, выбирайте периоды, когда количество операций меньше – то есть, когда курс относительно стабилен.
  1. Размер комиссионного сбора. Как уже говорилось, на то, обратят майнеры внимание на ваш перевод криптовалюты или нет, влияет размер вознаграждения. Чем выше комиссия, тем выше шансы, что сделка пойдёт первой в очереди. Но никто не даёт гарантии, что кто-то другой не поставит комиссию выше, чем заявленная вами, и его операция пойдёт первой, а вам придётся дожидаться своей очереди. В таком случае надо либо дополнительно поднимать комиссию, либо набраться терпения и дожидаться, пока сделка поступит в блок.

В любом случае регулярно проверять статус транзакции биткоинов не помешает. Если она зависнет, сможете вовремя приложить соответствующие усилия, чтобы исправить этот недостаток.

Как проверить транзакцию биткоин?

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

  • Адрес отправителя, или вход (input),
  • Точное количество денег, которые переводятся – amount,
  • Адрес получателя, или выход (output).

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

  1. Blockchain.info. Это виртуальный сервис кошельков, который работает с 2011 года. Кроме того, этот сервис занимается обозреванием блоков, что позволяет отслеживать проведение переводов. Здесь всё очень удобно, статистика показана в таблицах и графиках, потому уточнить сведения достаточно просто.
  2. Chain.so. Публичный и бесплатный сервис, где можно быстро и удобно рассмотреть, прошла ли сделка проверку. Среди найденных платежей bitcoin система найдёт транзакции, которые интересуют пользователя. И когда операция найдётся, сервис выдаёт полный перечень доступной информации.

Сам поиск осуществляется по стандартной схеме для публичных сервисов:

  • Зайдите на любую страницу: Blockchain.info или Chain.so,
  • Перейдите в раздел Info,
  • Найдите на странице поисковую строку,
  • Используйте имеющийся у вас хэш операции и введите его в строчку.

После этого отобразится вся информация о заявке и текущее её состояние. В частности, появившаяся информация будет затрагивать сведения о том, сколько блоков уже прошла транзакция и её статус.

Подтверждённые и неподтверждённые транзакции

Как проверить количество подтверждений bitcoin? Для этого надо пользоваться специальными ресурсами, о которых мы уже говорили. А чтобы выяснить, как это работает, надо хотя бы попытаться выяснить, какие сделки называются подтверждёнными, а какие нет:

  • Подтверждённые – это операции, которые включены в блок блокчейна,
  • Неподтверждённые – это сделки, которые пока не включили в блоки блокчейна.

Одно включение равняется одному подтверждению. Но сделки в блокчейне используют от одного до шести подтверждений, в зависимости от объёма передаваемой криптовалюты. Хотя количество блоков ограничивается только количеством передаваемых биткоинов, потому при сделке может задействоваться больше шести блоков. А это, в свою очередь, увеличивает время на выполнение операции. Именно в таких случаях нужно выяснить, как посмотреть подтверждение транзакции биткоин, чтобы знать, на какой стадии находится выполнение операции.

Когда сделку подтверждают все нужные блоки, она считается подтверждённой. Но до этого момента надо мониторить, как идёт операция, то есть, определить количество подтверждений bitcoin. Тогда, если что-то не так, об этом можно узнать гораздо быстрее.

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

Классические Bitcoin-клиенты показывают сделки как неподтверждённые до тех пор, пока не соберутся все необходимые для их выполнения блоки. На самом деле пользователь видит, что система работает и находит блоки, но просто операция пока в процессе, потому кошелёк не отражает её как выполненную. Именно потому сделки с большим количеством блоков могут подолгу висеть в сети.

Задержка при проведении транзакций Bitcoin

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

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

Сегодня минимальная цена транзакции составляет около 0,16 доллара. Ориентируйтесь на сумму 110 сатоши за байт, и средний размер сделки 226 байта. Если используете минимальные цены, то не ждите, что сделка пройдёт быстро. В этом случае задержка гарантирована. Правда, можете выяснить, где смотреть на подтверждение транзакции биткоинов, тем самым проверяя состояние операции. Ведь даже несмотря на низкую комиссию, она вполне может пройти. Но у задержек есть свои последствия:

  • Есть существенное влияние на цену криптовалюты. Это понятно, потому что жалобы на то, что сделки задерживаются на срок от двух суток, не делают биткоины популярнее. Ведь это значит, что с ними сложнее работать. Отсюда и постоянные, пусть и незначительные, колебания курса,
  • Серьёзно страдает торговля, ведь оплата в биткоинах стала привычным явлением в сети и в реальном мире. Не все хотят ждать дольше, чтобы получить оплату. Это становится причиной срыва наиболее перспективных сделок. Кроме того, из-за ограниченности по времени продукта или услуги оплата уже может и не понадобиться,
  • Пользователи, работающие с криптовалютой, теряют интерес к ней, так как не могут использовать её по назначению. А это ужасно для валюты, благосостояние которой зависит от заинтересованности в ней.

От полной потери интереса биткоин спасает только его высокая стоимость в пересчёте на фиатные деньги. Кроме того, задержки при выполнении переводов отрицательно сказываются на общей репутации криптовалюты, вызывая ещё больше опасений у людей, которым и так трудно принять, что у цифровой валюты нет реального, физического подкрепления. Потому и существуют дискуссии на тему увеличения размера блока, чтобы разгрузить систему и избавить от большинства задержек.

Можно ли отменить транзакцию?

Допустим, у вас зависла транзакция. Эта проблема не новая и часто появляется. Но что делать? Отменить. Вот только есть существенная проблема – в сети блокчейна отменить транзакцию невозможно. Это одно из отличительных свойств системы. Правда, с недавнего времени разработчики Bitcoin Core обсуждают возможность редактирования транзакций. Но пока это только теория, реализация которой под сомнением.

Тем не менее и сейчас есть варианты, как отменить транзакции блокчейна в режиме реального времени. Конечно, сделать это не совсем просто и только при условии, что транзакции не подтверждены. Именно потому, прежде чем предпринимать какие-то действия, проверьте, были ли активированы блоки блокчейна на ваши сделки. Проверьте, стоит ли возле них надпись «Неподтверждённая транзакция». Если это так, то, скорее всего, не всё потеряно, и можно приступать к отмене предпринятых ранее действий.

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

  • Откройте кошелёк,
  • Перейдите в отладочную консоль, воспользовавшись путём: Help – Debug window – Console. Кошелёк может быть зашифрован, потому используйте команду «walletpassphrase &lt,passphrase&gt,»,
  • Разыщите свой приватный ключ, используя команду «dumpprivkey &lt,address&gt,». В «&lt,address&gt,» укажите адрес отправки криптовалюты. Когда увидите ключ, скопируйте его,
  • Закройте клиент кошелька и удалите его (можно переименовать или переместить на флешку),
  • Перезапускайте клиент, создавая новый кошелёк. Но не забудьте импортировать в него сохранённые ключи. Для этого перейдите в отладочную консоль, указав команду importprivkey &lt,privkey&gt,. Пока будет проходить импорт, можете заниматься своими делами – это длительный процесс. Но не выключайте систему и ничем ей не мешайте. Дождитесь, пока действие закончится.

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

Методы ускорения проведения транзакций

Несмотря на то что сделка была проведена правильно и все условия соблюдены, есть риск, что операция всё равно пройдёт с задержкой или вообще зависнет. Если оттягивание процедуры перевода средств не устраивает ни одну из сторон сделки, можно предпринять дополнительные меры. Это воспринимается системой транзакций как волшебный пинок, и существенно ускоряет проведение операции.

Простые методы сокращения времени:

  1. При переводе средств отдавайте в качестве комиссии не меньше от 0,0002 ВТС, а если хотите, чтобы сделка прошла молниеносно, то используйте комиссию, которая ещё выше.
  2. Переводите крупные суммы. Чем больше денег будет использовано при переводе, тем выше приоритет сделки.
  3. В поиске лучшего варианта транзакций биткоинов обратите внимание на специальные площадки, где сделки проходят быстрее. Так как для их реализации не используется общая сеть. Это риск для клиента, но он оправдан, поскольку это быстрее.

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

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

Ну и самая эффективная манипуляция для ускорения сделки – это выполнить повторную сделку с помощью функции Opt-In Replace-by-fee. Её суть в том, чтобы повторить ту же транзакцию, но существенно поднять комиссию, чтобы сделка перепрыгнула на более выгодные позиции. Если не использовать эту функцию, то повторная отправка не будет приниматься системой, видя в ней двойную трату.

Комиссии за транзакции в сети биткоин

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

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

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

Хотя если повезёт, то операция будет выполнена через несколько дней, что всё равно не устраивает большинство пользователей, которые готовы ждать несколько часов, но не дней. Но есть случаи, когда можно обойтись и без комиссии. Профессионалы утверждают, что комиссии можно избежать при следующих обстоятельствах:

  • Если сделка использует не больше 0.01 биткоина,
  • Если операция будет использовать мало места в блоке,
  • Если пересылаемые биткоины уже имеют подтверждение.

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

Информация по транзакции сделок с биткоинами доступна каждому. Например:

  • Пользователю не важна скорость проведения сделки, и он ставит комиссию в размере 0.0003438 биткоина. В таком случае приоритет будет минимальным, а шансы на то, что транзакция пройдёт быстро, составляет всего 10%,
  • Если комиссия будет составлять от 0.000405 BTC, то сделка получает стандартный приоритет, и шансы на быстрое проведение операции увеличиваются к 50%,
  • Средний приоритет можно получить, если заплатить комиссию 0.00108 BTC. Вероятность успеха в этом случае составляет 55%,
  • А вот быстро сделку проведут, если комиссия составляет от 0.0018 BTC. Это дорого, потому высокий уровень приоритетности используется, когда речь идёт о крупных переводах, где потеря нескольких сотен долларов не принципиальна.

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

Где посмотреть историю всех транзакций биткоин

История транзакций биткоин находится в открытом доступе – это особенность системы. Вот только получить доступ к данным могут не все, а только владельцы ключа доступа. Без него найти желанную информацию среди миллиардов операций невозможно. Но если соблюдать определённую последовательность, можно получить всю необходимую информацию:

  1. В первую очередь требуется перейти на сайт https://blockchain.info/. Это ресурс, где хранится вся информация об операциях с биткоинами.
  2. На главной странице есть строка поиска, куда можно ввести данные о высоте блока, адреса хэш блока или транзакции, IPv4-адрес и другие данные, которые помогут разобраться со сделкой.
  3. После ввода биткоин-адреса перед пользователем будет список всех сделок, которые он когда-либо проводил. Просмотр транзакций биткоинов здесь намного удобнее, чем в кошельке-клиенте.

Показанные на ресурсе сведения однозначно точные и актуальные. Это самый быстрый способ узнать текущую информацию о ситуации по транзакциям.

Загрузка…

Как проверить биткоин-кошелек на баланс по номеру

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

Для чего нужна проверка кошелька

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

Читайте также

Что такое биткоин-адрес

Когда Bitcoin только появился, люди могли отправлять активы прямо на IP. Однако впоследствии проявилась небезопасность метода. Поэтому пересылку BTC по IP прекратили и разработали более защищенный способ.

Номер биткоин-счета состоит из 26-35 буквенно-цифровых символов.

В основе блокчейна Биткоин лежит асимметричная криптография, построенная на публичных и приватных ключах. Стандартный формат Bitcoin-счета — P2PKH, или pay to public key hash (оплата по хешу открытого ключа). Цифровые кошельки генерируют номера счетов для BTC с помощью криптографических операций. ПО создаёт закрытый ключ через алгоритм асимметричной подписи, а затем извлекает из него открытый ключ. Пользователь подписывает транзакцию приватным кодом. Эту подпись проверяют с помощью публичных алгоритмов шифрования.

Номер BTC-счета не имеет значения, как и его формат. Важно то, что он обеспечивает возможность для совершения транзакций. Bitcoin-адрес — не что иное, как надежный идентификатор. Он служит виртуальным пунктом назначения при отправке криптовалют. Этот идентификатор не предназначен для постоянного использования и чаще всего создается для передачи одной транзакции в сети Bitcoin.

Отличия адреса BTC-кошелька от номера

После того, как Bitcoin отказался от системы Pay to IP, новым стандартом формата биткоин-счетов стал P2PKH. Теперь пункт назначения транзакции в блокчейне состоит примерно из 34 знаков, начинается с цифры 1 и выглядит так:

1K31KZXjcochXpRhjH9g5MxFFTHPi2zEXb

Каждое программное обеспечение криптокошелька может легко создать бесконечное количество BTC-адресов формата P2PKH.

Сначала ПО собирает энтропию (случайный выбор символов) и использует ее для генерации закрытого ключа Elliptic Curve Digital Signature Algorithm.

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

После создания закрытого кода цифровое хранилище извлекает из него открытый ключ, выбирая случайные координаты на определенной эллиптической кривой и выполняя некоторые вычисления. Далее при помощи ряда криптографических алгоритмов из публичного кода генерируется привычный номер BTC-счета.

Как создается биткоин-адрес

Bitcoin-счет представляет собой открытый ключ в удобочитаемом виде, к которому добавлена контрольная сумма, не позволяющая пользователю стать жертвой опечатки. При отправке активов криптокошелек проверяет префикс и вычисляет контрольную сумму. Если последняя не совпадает с расчетами в BTC-адресе, ПО отклоняет номер счета. Это делает отправку средств невозможной.

Если у пользователя есть закрытый ключ для BTC-счета, только он может подписать транзакцию с криптовалютой. Тот, кто знает публичный код, вправе убедиться в действительности этой подписи.

Как быстро проверить биткоин-кошелек на баланс

Если инвестор будет искать свой BTC-счет в обозревателе блокчейна, то он может увидеть, что его баланс не соответствует сумме, указанной в криптокошельке. Хранилище для монет управляет несколькими биткоин-адресами, а не только одним. Каждый раз, когда пользователь совершает транзакцию с BTC, его ПО для хранения криптовалют использует разные номера Bitcoin-счетов. Баланс кошелька — это сумма всех монет, хранящихся на каждом из них. Пользователь может проверить адрес BTC-кошелька на баланс, чтобы узнать общую сумму в хранилище.

Проверка баланса

Посмотреть баланс Bitcoin-кошелька на бирже

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

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

Меры безопасности

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

МераДействия
Хранить приватные ключи оффлайнЛучше всего держать средства на кошельках, которые работают без подключения к интернету. Киберпреступникам будет сложнее получить доступ к закрытому коду от адреса пользователя.
Создавать новые адреса для приема платежейСледует генерировать новый Bitcoin-адрес каждый раз, когда планируется получение средств. Это поможет обеспечить конфиденциальность и изолировать все транзакции друг от друга, чтобы невозможно было связать их вместе.
Всегда подключаться к безопасному интернет-соединениюБольшинство общедоступных сетей уязвимы. Если криптокошелек используется на цифровом устройстве, следует избегать подключения к общедоступным сетям.
Использовать антивирусное ПОКибератаки осуществляются через вредоносные программы. Избежать взлома позволит надлежащее сканирование компьютера или смартфона перед установкой кошелька.
Проверять биткоин-адрес перед отправкойПри совершении транзакции пользователю следует обращать внимание на номер счета получателя. Существуют вредоносные программы, которые изменяют адрес при копировании и вставке. Риск отправить монеты злоумышленникам.

Как узнать свой или чужой адрес

Это можно сделать через криптокошелек, изучив детали транзакции. Если пользователю требуется узнать адрес для того, чтобы получить BTC, программа сгенерирует специальный номер для приема монет после активации в кошельке функции «‎Пополнить»‎ (Deposit или Receive). Бывают случаи, когда может потребоваться полный список всех биткоин-адресов, созданных в хранилище. Такой перечень легко получить, экспортировав его через специальную функцию ПО для хранения криптовалют.

Резюме

Стандартные обозреватели блокчейнов не всегда подходят для эффективного отслеживания транзакций в сети Bitcoin, так как балансы криптокошельков и адресов могут не совпадать. Для того, чтобы провести аудит и посчитать свои деньги, в первую очередь необходимо обновить ПО и получить актуальные данные. Для этого нужно:

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

Часто задаваемые вопросы

🔍 Можно ли узнать, кому принадлежит биткоин-адрес?

Нет. Владельцы не идентифицируются.

❓ Как отследить биткоин-кошелек?

Это сделать сложно, так как для транзакций с BTC внутри ПО используется много разных адресов.

💻 Можно ли проверить балансы на нескольких биткоин-адресах одновременно?

Да. Для массовой проверки разработаны отдельные приложения.

⁉ Как восстановить баланс своего кошелька?

Если аккаунт не был атакован злоумышленниками, пользователь сможет вернуть свои активы, используя секретную фразу (seed-phrase).

💻 Можно ли посмотреть название своего биткоин-кошелька, если есть адрес?

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

заместитель главного редактора

Ищенко Виталий

Как я потерял $70 000 в криптовалюте — опыт сооснователя украинской IT-компании

14 Января, 2021,
10:01

11350

Сооснователь и директор аутсорсингово-продуктовой компании DIGIS Никита Нагаткин написал для AIN.UA колонку, в которой поделился своим опытом инвестирования в криптовалюты и ICO.

Никита Нагаткин. Фото предоставлено автором


Мы в DIGIS активно вкладываемся в образование, IT и предпринимательскую экосистему Украины. Мне нравится делиться своим опытом и не только положительным. Ошибки помогают расти, поэтому я их никогда не стыжусь. 

Моя история началась около 3 лет назад, но ее последствия догнали меня в 2019 и продолжают терзать до сих пор. Именно в связи с тем, что тема с криптовалютой опять набирает актуальность, и многие сейчас начнут инвестировать в биткоин, я решил её рассказать.

За 2020 год биткоин вырос на 155% — с $7 200 в январе до $25 000 в конце года.

Источник: CoinDesk

Вследствие пандемии роль доллара как резервной валюты пошатнулась. Опасаясь, что Центральные банки США снижают стоимость доллара, многие начали оптом скупать биткоины. Сейчас 27% миллениалов и 21% населения, относящегося к поколению X, являются держателями этих цифровых денег. В начале 2021 года стоимость монеты превысила $30 000 — это новый исторический рекорд. 

Итак, возвращаемся к моей истории. На дворе 2017. Год биткоин-лихорадки. Люди начали интересоваться и активно скупать крипту. Это повлекло рост биткоина. Цифровая монета впервые достигает пиковых сумм: в августе — $4000, в конце осени — более $10 000. 

Источник: CoinDesk

Меня, как и многих других инвесторов и предпринимателей, заинтересовало это направление.

Начал с $1000. Постепенно вместе с партнерами стали вкладывать все больше и больше. Всего в криптовалюту мы вложили около $24 000. 

Параллельно я начал участвовать в ICO. Разработал простенькую методику по анализу криптокомпаний. Смотрел, кто разрабатывает криптовалюту, изучал, чем занимается эта компания, размер рынка, географию. Если мне все казалось адекватным, то я вкладывался в этот актив до $5000.

После ICO валюта вырастала в 2-3 раза, иногда больше. Заработанные деньги вкладывал в основном в биткоин и немного в эфириум. Например, вложили в какую-то крипту $3000, достали $6000 и купили биткоинов.

Зимой 2018 года я уехал в отпуск на 2 недели и совершенно не занимался криптовалютой. Когда я вернулся, курс биткоина упал почти в 2 раза (с $16 000 до $10 000). На тот момент у меня было 1,9 BTC, и я терял $10 000. 

Источник: CoinDesk

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

Летом 2019 мне звонит мой товарищ и с большим энтузиазмом предлагает вложиться в одну криптовалюту, которая, со слов экспертов, должна вырасти в 10 раз. И я как раз решил использовать отложенные биткоины. 

1,9 биткоина (сейчас это больше $70 000) я хранил в холодном кошельке. Это считается одним из наиболее безопасных способов. Ваш ключ хранится, например, на флешке или компьютере. Для этого требуется специальное ПО, но не требуется интернет. 

Холодные кошельки выбирают те, у кого крупные суммы и нужно долгосрочное хранение без частых покупок-продаж. Чтобы продать биткоины, находящиеся на холодном кошельке, их потребуется сначала отправить на биржу. А пока они будут идти, есть риск потерять деньги на падении курса. 

Холодные кошельки делятся на «толстые» (heavy) и «тонкие» (light). 

  • Первые скачивают весь блокчейн, а соответственно требуют больше места, а также они ресурсоемкие и работают очень медленно. Но, в то же время, обеспечивают наивысшую степень безопасности и анонимности. 
  • Вторые работают быстрее и могут быть загружены хоть на планшет. Однако большая часть блоков (сотни гигабайтов памяти) загружается на сторонние сервера, что повышает риск передачи данных о вашем кошельке третьей стороне. 

Я выбрал кошелек Electrum. Это бесплатная программа с открытым исходным кодом, которая является самой популярной из «тонких» кошельков, и широко используется с 2011 года. 

Чтобы вложиться в предложенную крипту, я хотел отправить с этого кошелька около $2000. Когда я попытался это сделать, приложение потребовало скачать обновление. Появилась кнопка «Установить». Установка прошла, и снова появилось окно входа в программу. 

Я ввожу свои доступы, открывается мой кошелек, и там отображается 0 BTC. Пабам.

Уязвимость

На это попадаются даже технические специалисты, которые просто не ожидают и не выискивают подставу вне рабочего времени. А самое плохое в баге, что все действие происходит внутри десктопного приложения, чего я никак не ожидал. 

Впервые хакеры нашли и стали использовать дыры в приложении в декабре 2018 года. СМИ начали писать об этом в начале 2019, но так как я не следил за новостями (сложил же крипту в «безопасный» кошелек), я об этом не знал. 

Как хакерам удалось добраться до цифровых средств множества пользователей?  Для обработки транзакции кошельки Electrum подключаются к блокчейну через cервера Electrum. 

Источник: ZDNet

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

Когда пользователь открывает кошелек и пытается совершить транзакцию, появляется сообщение об ошибке и просьба обновить программу. Самое коварное, что это сообщение появляется ВНУТРИ десктопного приложения, и выглядит, как задумка разработчиков. Если вы, как и я, по неосторожности соглашаетесь, то загружается вредоносное ПО. Скачать его предлагается или с «левого» гитхаб-репозитория, или с измененного домена, который очень похож на оригинал. 

Источник: GitHub

Скачанный кошелек является измененной версией Electrum. 

Уязвимыми являются все версии кошелька Electrum старше 3.3.4.

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

А вообще, если используете для хранения биткоинов бесплатное ПО, лучше проверяйте периодически их обновления и новости на сайте и в соцсетях. Ну и следите за новостями в целом. 

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

По данным исследования ZdNet на октябрь 2020 мошенники украли около 1980 BTC. В связи с быстрым ростом биткоина сейчас это больше $80 млн.

Happy end?

Несколько дней назад я решил проверить свой кошелек с Ethereum, про который полностью забыл после этой страшной истории. На нем была какая-то незначительная сумма, которую я держал на случай необходимости провести какие-то операции в криптовалюте. Сейчас же, на фоне роста криптовалют, там оказался эквивалент $10,000 долларов, что стало очень приятным сюрпризом.

Я рад, что возместилась хоть часть моих потерь. Но больше я решил не ввязываться в эту историю и заниматься тем, в чем разбираюсь, так как понятия не имею, как формируется курс биткоина и почему он так скачет.

Выводы

Даже наиболее безопасные способы долгосрочного хранения криптовалюты могут иметь уязвимости. У государства пока что не очень получается регулировать блокчейн, поэтому нам самим нужно следить за своей безопасностью. Регулярно обновляйте ПО из официальных источников и следите за новостями в СМИ с хорошей репутацией. 

Надеюсь эта статья поможет вам избежать моих ошибок. 

Автор: Никита Нагаткин, сооснователь и директор аутсорсингово-продуктовой компании DIGIS

Читайте также:

2. Как работает биткойн — освоение биткойнов [Книга]

Глава 2. Как работает биткойн

Транзакции, блоки, майнинг и цепочка блоков

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

Каждый пример основан на реальной транзакции, совершенной в сети биткойнов, имитируя взаимодействие между пользователями (Джо, Алиса и Боб) путем отправки средств из одного кошелька в другой. При отслеживании транзакции через сеть биткойнов и цепочку блоков мы будем использовать сайт проводника цепочки блоков для визуализации каждого шага. Обозреватель блокчейнов — это веб-приложение, которое работает как поисковая система биткойнов, поскольку позволяет искать адреса, транзакции и блоки, а также видеть взаимосвязи и потоки между ними.

К популярным исследователям блокчейнов относятся:

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

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

Рисунок 2-1. Обзор биткойнов

Алиса, представленная в предыдущей главе, — новый пользователь, который только что приобрел свой первый биткойн. В разделе «Получение первых биткойнов» Алиса встретилась со своим другом Джо, чтобы обменять немного денег на биткойны.Транзакция, созданная Джо, пополнила кошелек Алисы 0,10 BTC. Теперь Алиса совершит свою первую розничную сделку, купив чашку кофе в кофейне Bob’s в Пало-Альто, Калифорния. Кофейня Боба недавно начала принимать платежи в биткойнах, добавив опцию биткойнов в свою кассовую систему. Цены в Bob’s Cafe указаны в местной валюте (долларах США), но в реестре клиенты могут платить в долларах или биткойнах. Алиса размещает заказ на чашку кофе, а Боб вносит транзакцию в кассу.Система точек продаж преобразует общую цену из долларов США в биткойны по преобладающему рыночному курсу и отобразит цены в обеих валютах, а также покажет QR-код, содержащий запрос на оплату для этой транзакции (см. Рисунок 2 -2):

 Итого:
1,50 доллара США
0,015 BTC 

Рисунок 2-2. QR-код запроса платежа (Подсказка: попробуйте отсканировать это!)

QR-код запроса платежа кодирует следующий URL, определенный в BIP0021:

 биткойнов: 1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA?
сумма = 0.015 и
label = Bob% 27s% 20Cafe &
message = Покупка% 20at% 20Bob% 27s% 20Cafe

Компоненты URL

Биткойн-адрес: "1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA"
Сумма платежа: «0,015».
Ярлык для адреса получателя: "Кафе Боба".
Описание платежа: «Покупка в кафе Боба» 

Совет

В отличие от QR-кода, который просто содержит биткойн-адрес назначения, запрос на платеж представляет собой URL-адрес в кодировке QR, который содержит адрес назначения, сумму платежа и общее описание, такое как «Кафе Боба».«Это позволяет приложению биткойн-кошелька предварительно заполнять информацию, используемую для отправки платежа, показывая пользователю удобочитаемое описание. Вы можете сканировать QR-код с помощью приложения биткойн-кошелька, чтобы увидеть, что увидит Алиса.

Боб говорит: «Это один доллар пятьдесят, или пятнадцать миллибитов».

Алиса использует свой смартфон для сканирования штрих-кода на дисплее. На ее смартфоне отображается платеж 0,0150 BTC на счет Bob’s Cafe , и она выбирает Отправить , чтобы подтвердить платеж.В течение нескольких секунд (примерно столько же, сколько при авторизации кредитной карты) Боб увидит транзакцию в реестре, завершив транзакцию.

В следующих разделах мы рассмотрим эту транзакцию более подробно, посмотрим, как ее создал кошелек Алисы, как она распространялась по сети, как проверялась и, наконец, как Боб может потратить эту сумму на последующие транзакции.

Примечание

Биткойн-сеть может совершать операции с дробными значениями, например.g., от милли-биткойнов (1/1000 биткойна) до 1/100000000 биткойна, который известен как сатоши. В этой книге мы будем использовать термин «биткойн» для обозначения любого количества биткойн-валюты, от наименьшей единицы (1 сатоши) до общего количества (21 000 000) всех биткойнов, которые когда-либо будут добыты.

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

Операции похожи на строки в бухгалтерской книге с двойной записью. Проще говоря, каждая транзакция содержит один или несколько «входов», которые являются дебетами счета биткойнов. На другой стороне транзакции есть один или несколько «выходов», которые представляют собой кредиты, добавленные к счету биткойнов. Входы и выходы (дебет и кредит) не обязательно составляют одну и ту же сумму. Вместо этого выходы в сумме немного меньше, чем входные, и разница представляет собой подразумеваемую «комиссию за транзакцию», которая представляет собой небольшой платеж, взимаемый майнером, который включает транзакцию в реестр.Биткойн-транзакция показана как запись в бухгалтерской книге на Рисунке 2-3.

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

Наконечник

Транзакции перемещают значение из входов транзакции в выходы транзакции .Вход — это источник стоимости монеты, обычно это результат предыдущей транзакции. Выходные данные транзакции присваивают новому владельцу значение, связывая его с ключом. Ключ назначения называется обременением . Он требует наличия подписи для погашения средств в будущих транзакциях. Выходные данные одной транзакции могут использоваться в качестве входных данных в новой транзакции, создавая таким образом цепочку владения по мере того, как значение перемещается от адреса к адресу (см. Рисунок 2-4).

Рисунок 2-3.Операция по двойной записи

Рисунок 2-4. Цепочка транзакций, в которой выход одной транзакции является входом следующей транзакции.

Платеж Алисы в адрес Bob’s Cafe использует предыдущую транзакцию в качестве входных данных. В предыдущей главе Алиса получила биткойны от своего друга Джо в обмен на наличные. В этой транзакции есть несколько биткойнов, заблокированных (обремененных) ключом Алисы. Ее новая транзакция с Bob’s Cafe ссылается на предыдущую транзакцию как на вход и создает новые выходы для оплаты чашки кофе и получения сдачи.Транзакции образуют цепочку, в которой входные данные последней транзакции соответствуют выходным данным предыдущих транзакций. Ключ Алисы обеспечивает подпись, которая разблокирует эти предыдущие транзакции, тем самым доказывая сети биткойнов, что она владеет средствами. Она прикрепляет оплату за кофе к адресу Боба, тем самым «загромождая» этот вывод требованием, чтобы Боб поставил подпись, чтобы потратить эту сумму. Это представляет собой передачу стоимости между Алисой и Бобом.Эта цепочка транзакций от Джо до Алисы и Боба показана на рисунке 2-4.

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

Рисунок 2-5. Наиболее распространенная транзакция

Другой распространенной формой транзакции является объединение нескольких входов в один выход (см. Рисунок 2-6).Это представляет собой реальный эквивалент обмена стопки монет и денежных знаков на одну большую банкноту. Подобные транзакции иногда генерируются приложениями-кошельками для очистки множества небольших сумм, полученных в качестве сдачи платежей.

Рисунок 2-6. Операция агрегирования средств

Наконец, еще одна форма транзакции, которая часто встречается в бухгалтерской книге биткойнов, — это транзакция, которая распределяет один вход на несколько выходов, представляющих нескольких получателей (см. Рисунок 2-7).Этот тип транзакции иногда используется коммерческими организациями для распределения средств, например, при обработке выплат заработной платы нескольким сотрудникам.

Рисунок 2-7. Транзакция по распределению средств

Создание транзакции

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

Приложение кошелька Алисы сначала должно будет найти входы, которые могут заплатить сумму, которую она хочет отправить Бобу. Большинство приложений-кошельков хранят небольшую базу данных «неизрасходованных выходных транзакций», которые заблокированы (обременены) собственными ключами кошелька.Следовательно, кошелек Алисы будет содержать копию вывода транзакции из транзакции Джо, которая была создана в обмен на наличные (см. Получение ваших первых биткойнов). Приложение биткойн-кошелька, которое работает как клиент с полным индексом, фактически содержит копию всех неизрасходованных выходных данных каждой транзакции в цепочке блоков. Это позволяет кошельку создавать входные данные для транзакций, а также быстро проверять входящие транзакции на наличие правильных входных данных. Однако, поскольку клиент с полным индексом занимает много места на диске, большинство пользовательских кошельков запускают «легкие» клиенты, которые отслеживают только собственные неизрасходованные выходные данные пользователя.

Если приложение кошелька не поддерживает копию неизрасходованных выходных транзакций, оно может запросить сеть биткойнов для получения этой информации, используя различные API-интерфейсы, доступные от разных поставщиков, или запрашивая узел полного индекса с помощью биткойн-JSON RPC API. . В примере 2-1 показан запрос RESTful API, созданный как команда HTTP GET для определенного URL-адреса. Этот URL-адрес будет возвращать все неизрасходованные выходные данные транзакции для адреса, предоставляя любому приложению информацию, необходимую для создания входных данных транзакции для расходов.Мы используем простой HTTP-клиент командной строки cURL для получения ответа.

Пример 2-1. Найдите все неизрасходованные выходы для биткойн-адреса Алисы

  $  curl https://blockchain.info/unspent?active  =  1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK 

Пример 2-2. Ответ на запрос

  {

          "unspent_outputs"  : [

                  {
                          «tx_hash»  :   «186f9f998a5...2836dd734d2804fe65fa35779 " , 
                          "tx_index"  :   104810202  , 
                          "tx_output_n"  :   0  , 
                          "сценарий"  :   "76a9147f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a888ac"  , 
                          «значение»  :   10000000  , 
                          "value_hex"  :   "00989680"  , 
                          «подтверждения»  :   0 
                 } 

         ] 
 }  

Ответ в примере 2-2 показывает один неизрасходованный выход (тот, который еще не был погашен), принадлежащий адресу Алисы 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK .Ответ включает ссылку на транзакцию, в которой содержится этот неизрасходованный результат (платеж от Джо), и его стоимость в сатоши, равную 10 миллионам, что эквивалентно 0,10 биткойна. С помощью этой информации приложение кошелька Алисы может создать транзакцию для передачи этого значения на адреса нового владельца.

Как видите, кошелек Алисы содержит достаточно биткойнов за один неизрасходованный вывод, чтобы заплатить за чашку кофе. Если бы это было не так, приложению кошелька Алисы, возможно, пришлось бы «рыться» в куче меньших неизрасходованных результатов, например, собирать монеты из кошелька, пока оно не сможет найти достаточно, чтобы заплатить за кофе.В обоих случаях может потребоваться вернуть некоторые изменения, что мы увидим в следующем разделе, поскольку приложение кошелька создает выходные данные транзакции (платежи).

Вывод транзакции создается в форме сценария, который создает нагрузку на значение и может быть погашен только путем введения решения в сценарий. Проще говоря, вывод транзакции Алисы будет содержать сценарий, который говорит что-то вроде: «Этот вывод выплачивается тому, кто может представить подпись ключа, соответствующего общедоступному адресу Боба.Поскольку только у Боба есть кошелек с ключами, соответствующими этому адресу, только кошелек Боба может предоставить такую ​​подпись для погашения этого вывода. Таким образом, Алиса «обременяет» выходное значение требованием подписи от Боба.

Эта транзакция также будет включать второй вывод, потому что средства Алисы представлены в виде вывода 0,10 BTC, что слишком много для чашки кофе 0,015 BTC. Алисе потребуется 0,085 BTC сдачи. Платеж сдачи Алисы создается кошельком Алисы в той же транзакции, что и платеж Бобу.По сути, кошелек Алисы разбивает ее средства на два платежа: один Бобу и один обратно ей. Затем она может использовать выходные данные изменений в следующей транзакции, чтобы потратить их позже.

Наконец, для своевременной обработки транзакции в сети приложение кошелька Алисы добавит небольшую комиссию. Это не указано явно в транзакции; это подразумевается разницей между входами и выходами. Если вместо изменения 0,085, Алиса создаст только 0,0845 в качестве второго выхода, будет 0.Осталось 0005 BTC (полмиллибиткойна). 0,10 BTC на входе не полностью расходуются на два выхода, потому что в сумме они будут меньше 0,10. Результирующая разница составляет комиссионных за транзакцию , которые собираются майнером в качестве комиссии за включение транзакции в блок и внесение ее в реестр цепочки блоков.

Результирующую транзакцию можно увидеть с помощью веб-приложения проводника цепочки блоков, как показано на рисунке 2-8.

Рисунок 2-8. Транзакция Алисы в кафе Боба

Добавление транзакции в бухгалтерскую книгу

Транзакция, созданная приложением кошелька Алисы, имеет длину 258 байт и содержит все необходимое для подтверждения владения средствами и назначения новых владельцев.Теперь транзакция должна быть передана в сеть биткойнов, где она станет частью распределенного реестра (цепочки блоков). В следующем разделе мы увидим, как транзакция становится частью нового блока и как блок «добывается». Наконец, мы увидим, как новый блок, добавленный в цепочку блоков, пользуется растущим доверием в сети по мере добавления новых блоков.

Передача транзакции

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

Приложение кошелька Алисы может отправить новую транзакцию любому другому биткойн-клиенту, к которому оно подключено, через любое подключение к Интернету: проводное, Wi-Fi или мобильное. Ее биткойн-кошелек не обязательно должен быть напрямую подключен к биткойн-кошельку Боба, и ей не нужно использовать подключение к Интернету, предлагаемое кафе, хотя оба эти варианта также возможны.Любой сетевой узел биткойнов (другой клиент), который получает действительную транзакцию, которую он раньше не видел, немедленно пересылает ее другим узлам, к которым он подключен. Таким образом, транзакция быстро распространяется по одноранговой сети, достигая большого процента узлов в течение нескольких секунд.

Если приложение биткойн-кошелька Боба напрямую связано с приложением-кошельком Алисы, приложение-кошелек Боба может быть первым узлом, получившим транзакцию. Однако даже если кошелек Алисы отправит транзакцию через другие узлы, она достигнет кошелька Боба в течение нескольких секунд.Кошелек Боба немедленно идентифицирует транзакцию Алисы как входящий платеж, поскольку он содержит выходы, которые можно погасить с помощью ключей Боба. Приложение кошелька Боба также может независимо проверять, что транзакция правильно сформирована, использует ранее неизрасходованные входы и содержит достаточную комиссию за транзакцию, которая будет включена в следующий блок. На этом этапе Боб может предположить, с небольшим риском, что транзакция вскоре будет включена в блок и подтверждена.

Наконечник

Распространенное заблуждение о транзакциях с биткойнами состоит в том, что они должны быть «подтверждены» путем ожидания 10 минут для нового блока или до 60 минут для полных шести подтверждений.Хотя подтверждения гарантируют, что транзакция была принята всей сетью, такая задержка не требуется для небольших предметов, таких как чашка кофе. Торговец может принять действительную транзакцию на небольшую сумму без подтверждений, с не большим риском, чем платеж по кредитной карте, произведенный без удостоверения личности или подписи, как это принято сегодня продавцами.

Теперь транзакция распространяется в сети биткойнов. Он не становится частью общего реестра (цепочка блоков ) до тех пор, пока не будет проверен и включен в блок процессом, называемым Mining .См. Главу 8 для подробного объяснения.

Биткойн-система доверия основана на вычислениях. Транзакции объединены в блоки , которые требуют огромного количества вычислений для подтверждения, но лишь небольшого количества вычислений для подтверждения того, что они доказаны. Процесс майнинга в биткойнах служит двум целям:

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

Хороший способ описать майнинг — это гигантская соревновательная игра в судоку, которая сбрасывается каждый раз, когда кто-то находит решение, и чья сложность автоматически регулируется так, что поиск решения занимает около 10 минут. Представьте себе гигантскую головоломку судоку размером в несколько тысяч строк и столбцов.Если я покажу вам готовую головоломку, вы сможете проверить ее довольно быстро. Однако, если в головоломке есть несколько заполненных квадратов, а остальные пусты, для решения потребуется много работы! Сложность судоку можно отрегулировать, изменив его размер (больше или меньше строк и столбцов), но его все равно можно довольно легко проверить, даже если он очень большой. «Головоломка», используемая в биткойне, основана на криптографическом хэше и демонстрирует аналогичные характеристики: ее асимметрично сложно решить, но легко проверить, а ее сложность можно регулировать.

В разделе «Использование биткойнов, пользователи и их истории» мы представили Цзин, студента компьютерной инженерии из Шанхая. Цзин участвует в сети биткойнов в качестве майнера. Каждые 10 минут Цзин присоединяется к тысячам других майнеров в глобальной гонке, чтобы найти решение для блока транзакций. Поиск такого решения, так называемого доказательства работы, требует квадриллионов операций хеширования в секунду во всей сети биткойнов. Алгоритм доказательства работы включает многократное хеширование заголовка блока и случайного числа с помощью криптографического алгоритма SHA256 до тех пор, пока не появится решение, соответствующее заранее определенному шаблону.Первый майнер, который найдет такое решение, побеждает в соревновании и публикует этот блок в блокчейне.

Jing начал майнинг в 2010 году, используя очень быстрый настольный компьютер, чтобы найти подходящее доказательство работы для новых блоков. По мере того как все больше майнеров присоединялось к сети биткойнов, сложность проблемы быстро возрастала. Вскоре Цзин и другие майнеры перешли на более специализированное оборудование, такое как высокопроизводительные выделенные графические процессоры (GPU), такие как те, которые используются в игровых настольных компьютерах или консолях.На момент написания этой статьи сложность настолько высока, что выгодно добывать только с помощью специализированных интегральных схем (ASIC), по сути, сотен алгоритмов майнинга, напечатанных на оборудовании, работающих параллельно на одном кремниевом чипе. Цзин также присоединился к «майнинговому пулу», который очень похож на лотерейный пул, позволяющий нескольким участникам делиться своими усилиями и вознаграждением. Сейчас Цзин использует две ASIC-машины, подключенные к USB, для добычи биткойнов 24 часа в сутки. Он оплачивает свои расходы на электроэнергию, продавая биткойны, которые он может генерировать в результате майнинга, получая некоторый доход от прибыли.Его компьютер запускает копию bitcoind, эталонного клиента биткойнов, в качестве серверной части его специализированного программного обеспечения для майнинга.

Операции майнинга в блоках

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

Транзакции добавляются в новый блок с приоритетом транзакций с самой высокой комиссией и некоторыми другими критериями.Каждый майнер начинает процесс добычи нового блока транзакций, как только он получает предыдущий блок из сети, зная, что он проиграл предыдущий раунд соревнования. Он немедленно создает новый блок, заполняет его транзакциями и отпечатком предыдущего блока и начинает вычислять доказательство работы для нового блока. Каждый майнер включает в свой блок специальную транзакцию, которая выплачивает его собственному биткойн-адресу вознаграждение в виде вновь созданных биткойнов (в настоящее время 25 BTC за блок).Если он находит решение, которое делает этот блок действительным, он «выигрывает» это вознаграждение, потому что его успешный блок добавляется в глобальную цепочку блоков, и транзакция вознаграждения, которую он включил, становится потраченной. Цзин, который участвует в майнинг-пуле, настроил свое программное обеспечение для создания новых блоков, которые назначают вознаграждение адресу пула. Оттуда часть вознаграждения распределяется между Цзин и другими майнерами пропорционально объему работы, которую они внесли в последний раунд.

Транзакция Алисы была перехвачена сетью и включена в пул непроверенных транзакций.Поскольку у него была достаточная комиссия, он был включен в новый блок, созданный майнинг-пулом Jing. Примерно через пять минут после того, как транзакция была впервые передана кошельком Алисы, ASIC-майнер Цзин нашел решение для блокировки и опубликовал его как блок № 277316, содержащий 419 других транзакций. ASIC-майнер Джинга опубликовал новый блок в сети биткойнов, где другие майнеры подтвердили его и начали гонку за генерацию следующего блока.

Вы можете увидеть блок, который включает транзакцию Алисы.

Через несколько минут новый блок, # 277317, добывается другим майнером. Поскольку этот новый блок основан на предыдущем блоке (# 277316), который содержал транзакцию Алисы, он добавил еще больше вычислений поверх этого блока, тем самым укрепив доверие к этим транзакциям. Блок, содержащий транзакцию Алисы, считается одним «подтверждением» этой транзакции. Каждый блок, добытый поверх блока, содержащего транзакцию, является дополнительным подтверждением. Поскольку блоки накладываются друг на друга, становится экспоненциально сложнее отменить транзакцию, тем самым делая ее все более и более надежной в сети.

На диаграмме на рис. 2-9 мы видим блок № 277316, который содержит транзакцию Алисы. Ниже находится 277 316 блоков (включая блок № 0), связанных друг с другом в цепочке блоков (цепочка блоков) вплоть до блока № 0, известного как генезисный блок . Со временем, по мере увеличения «высоты» блоков, возрастает и сложность вычислений для каждого блока и цепочки в целом. Блоки, добытые после того, который содержит транзакцию Алисы, действуют как дополнительная гарантия, поскольку они накапливают больше вычислений в более длинной и длинной цепочке.По соглашению любой блок с более чем шестью подтверждениями считается безотзывным, поскольку для признания недействительным и пересчета шести блоков потребуется огромное количество вычислений. Мы рассмотрим процесс майнинга и то, как он создает доверительные отношения, более подробно в главе 8.

Рисунок 2-9. Транзакция Алисы включена в блок № 277316

Теперь, когда транзакция Алисы была встроена в цепочку блоков как часть блока, она стала частью распределенного реестра биткойнов и видима для всех биткойн-приложений.Каждый биткойн-клиент может независимо проверить транзакцию как действительную и пригодную для использования. Клиенты с полным индексом могут отслеживать источник средств с момента первого создания биткойнов в блоке, постепенно от транзакции к транзакции, до тех пор, пока они не достигнут адреса Боба. Легкие клиенты могут выполнять то, что называется упрощенной проверкой платежей (см. Узлы упрощенной проверки платежей (SPV)), подтверждая, что транзакция находится в цепочке блоков и после нее было добыто несколько блоков, тем самым обеспечивая уверенность в том, что сеть принимает ее как действительную.

Боб теперь может расходовать выходные данные этой и других транзакций, создавая свои собственные транзакции, которые ссылаются на эти выходы как на свои входы и назначают им новое право собственности. Например, Боб может заплатить подрядчику или поставщику, переведя стоимость из платежа Алисы за чашку кофе этим новым владельцам. Скорее всего, биткойн-программное обеспечение Боба объединит множество мелких платежей в более крупный платеж, возможно, сконцентрируя весь дневной доход от биткойнов в одной транзакции. Это переместит различные платежи на один адрес, который будет использоваться в качестве общего «текущего» счета магазина.Диаграмму агрегированной транзакции см. На рис. 2-6.

По мере того, как Боб тратит платежи, полученные от Алисы и других клиентов, он расширяет цепочку транзакций, которые, в свою очередь, добавляются в глобальную бухгалтерскую книгу блокчейна, чтобы все могли видеть и доверять. Предположим, Боб платит своему веб-дизайнеру Гопешу в Бангалоре за новую страницу веб-сайта. Теперь цепочка транзакций будет выглядеть, как на рисунке 2-10.

Рисунок 2-10. Транзакция Алисы как часть цепочки транзакций от Джо до Гопеша

5.Транзакции — Освоение биткойнов [Книга]

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

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

Жизненный цикл транзакции начинается с создания транзакции, также известного как происхождение . Затем транзакция подписывается одной или несколькими подписями, указывающими на разрешение расходовать средства, указанные в транзакции. Затем транзакция транслируется в сети биткойнов, где каждый сетевой узел (участник) проверяет и распространяет транзакцию, пока она не достигнет (почти) каждого узла в сети.Наконец, транзакция проверяется майнинговым узлом и включается в блок транзакций, который записывается в цепочку блоков.

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

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

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

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

Трансляция транзакций в сеть биткойнов

Во-первых, транзакция должна быть доставлена ​​в сеть биткойнов, чтобы ее можно было распространить и включить в цепочку блоков.По сути, биткойн-транзакция — это всего лишь от 300 до 400 байтов данных и должна достигнуть любого из десятков тысяч биткойн-узлов. Отправителям не нужно доверять узлам, которые они используют для широковещательной рассылки транзакции, если они используют более одного, чтобы гарантировать ее распространение. Узлам не нужно доверять отправителю или устанавливать «личность» отправителя. Поскольку транзакция подписана и не содержит конфиденциальной информации, закрытых ключей или учетных данных, ее можно публично транслировать с использованием любого удобного базового сетевого транспорта.В отличие, например, от транзакций по кредитным картам, которые содержат конфиденциальную информацию и могут быть переданы только в зашифрованных сетях, транзакция с биткойнами может быть отправлена ​​по любой сети. Пока транзакция может достичь узла биткойнов, который распространит ее в сеть биткойнов, не имеет значения, как она передается на первый узел.

Биткойн-транзакции могут быть переданы в биткойн-сеть через небезопасные сети, такие как WiFi, Bluetooth, NFC, Chirp, штрих-коды или путем копирования и вставки в веб-форму.В крайних случаях транзакция биткойнов может быть передана по пакетной радиосвязи, спутниковой ретрансляции или коротковолновой передаче с использованием пакетной передачи, расширенного спектра или скачкообразной перестройки частоты, чтобы избежать обнаружения и глушения. Биткойн-транзакцию можно даже закодировать в виде смайлов (смайликов) и опубликовать на общедоступном форуме или отправить в виде текстового сообщения или сообщения в чате Skype. Биткойн превратил деньги в структуру данных, что сделало практически невозможным остановить кого-либо от создания и выполнения транзакции с биткойнами.

Распространение транзакций в сети Биткойн

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

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

Биткойн-сеть предназначена для распространения транзакций и блоков на все узлы эффективным и отказоустойчивым способом, устойчивым к атакам.Чтобы предотвратить рассылку спама, атаки типа «отказ в обслуживании» или другие нежелательные атаки на систему биткойнов, каждый узел независимо проверяет каждую транзакцию перед ее дальнейшим распространением. Деформированная транзакция не выйдет за пределы одного узла. Правила подтверждения транзакций более подробно описаны в разделе «Независимая проверка транзакций».

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

Таблица 5-1. Структура транзакции

1 или несколько транзакций 4 байта

Размер Поле Описание

4 байта

Версия

, которому соответствует

1–9 байт (VarInt)

Счетчик входов

Сколько входов включено

Переменная

Входы

31

3

Входы

31

3

36 Один или несколько входов

1–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.

Tip

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

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

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

Выходы транзакции состоят из двух частей:

  • Количество биткойнов, выраженное в сатоши , наименьшая единица биткойнов.
  • Сценарий блокировки , также известный как «обременение», который «блокирует» эту сумму, определяя условия, которые должны быть выполнены, чтобы потратить выходные данные.

Язык сценариев транзакций, используемый в сценарии блокировки, упомянутом ранее, подробно обсуждается в разделах «Сценарии транзакций и язык сценариев».Таблица 5-2 показывает структуру вывода транзакции.

Таблица 5-2. Структура вывода транзакции

Размер Поле Описание

8 байт

Сумма

05 сат.

биткойн)

1–9 байтов (VarInt)

Размер сценария блокировки

Длина сценария блокировки в байтах, в соответствии с

9305

Переменная блокировки Сценарий

Сценарий, определяющий условия, необходимые для расходования вывода

В примере 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": "ebadfaa92f1fd29e2fe296eda702c48bd11ffd52313e986e99ddad62167", # "tx_index": 51

7,
# "tx_output_n": 1, # "script": "76a9148c7e252f8d64b0b6e3139850fcfefcf4a2d88ac", # "значение": 8000000, # "value_hex": "7a1200", # "подтверждения": 28691 #}, #... #]} или = запросов . получить ( 'https://blockchain.info/unspent?active= % s ' % адрес ) utxo_set = json . загружает ( соответственно . текст ) [ "unspent_outputs" ] для utxo для utxo_set : print " % s : % d - % ld Satoshis" % ( utxo [ 'tx_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  ,   value  ): 
          сам  .   tx_hash   =   tx_hash 
          сам  .   tx_index   =   tx_index 
          сам  .  значение   =   значение 

      def   __repr__   (  self  ): 
          возврат   "< % s  :  % s   с  % s   Satoshis>"  %   (  self  .   tx_hash  ,   self  .   tx_index  , 
                                               сам  .  значение  ) 

  # Выбрать оптимальные выходы для отправки из списка неизрасходованных выходов. 
  # Возвращает список вывода и оставшееся изменение для отправки на 
  # изменить адрес. 
  def   select_outputs_greedy   (  неизрасходовано  ,   min_value  ): 
      # Ошибка, если пусто. 
      если   нет   неизрасходовано  : 
          возврат   нет 
      # Разделение на 2 списка.
      lessers   =   [  utxo   для   utxo   in   неизрасходовано   если   utxo  .   значение   <  min_value  ] 
      больше   =   [  utxo   для   utxo   in   неизрасходовано   если   utxo  .   значение  > =   min_value  ] 
      key_func   =   лямбда   utxo  :   utxo  .  значение 
      если   больше  : 
          # Не пусто. Найдите наименьшее большее. 
          мин_больше   =   мин   (  больше  ) 
          изменить   =   min_greater  .   значение   -   min_value 
          возврат   [  min_greater  ],   изменить 
      # Не встречается в больших.Вместо этого попробуйте несколько лессеров. 
      # Переставьте их в порядке убывания. Мы хотим использовать как минимум 
      # Максимальное количество входов. 
      лессеры  .   сортировать   (  ключ   =   key_func  ,   обратный   =   True  ) 
      результат   =   [] 
      накопитель   =   0 
      для   utxo   для   lessers  : 
          счет  .  добавить   (  utxo  ) 
          аккумулятор   + =   utxo  .   значение 
          если   накопление  > =   мин_значение  : 
              изменить   =   накопить   -   мин_значение 
              возврат   результат  ,   "Изменение:  % d   Сатоши"  %   изменение 
      # Ничего не найдено.
      возврат   Нет  ,   0 

  деф   основной   (): 
      неизрасходованные   =   [
          OutputInfo   (  "ebadfaa92f1fd29e2fe296eda702c48bd11ffd52313e986e99ddad62167"  ,   1  ,   8000000  ), 
          OutputInfo   (  "6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf"  ,   0  ,   16050000  ), 
          OutputInfo   (  "b2affea89ff82557c60d635a2a3137b8f88f12ecec85082f7d0a1f82ee203ac4"  ,   0  ,   10000000  ), 
          OutputInfo   (  "7dbc497969c7475e45d952c4a872e213fb15d45e5cd3473c386a71a1b0c136a1"  ,   0  ,   25000000  ), 
          OutputInfo   (  "55ea01bd7e9afd3d3ab97e777d62a0709cf0725e80a7350fdb22d7b8ec6"  ,   17  ,   5470541  ), 
          OutputInfo   (  "12b6a7934c1df821945ee9ee3b3326d07ca7a65fd6416ea44ce8c3db0c078c64"  ,   0  ,   10000000  ), 
          OutputInfo   (  "7f42eda67921ee92eae5f79bd37c68c9cb859b899ce70dba68c48338857b7818"  ,   0  ,   16100000  ), 
     ] 

      если   len   (  argv  )  >   1  : 
          target   =   long   (  argv   [  1  ]) 
      еще  : 
          цель   =   55000000 

      print   "Для суммы транзакции  % d   Satoshis ( % f   bitcoin) используйте:"  %   (  target  ,   target  /  10.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. Структура ввода транзакции

Транзакция, содержащая хеш-транзакцию 93000T

быть потрачено

Размер Поле Описание

32 байта

Транзакция, содержащая хеш-код транзакции

4 байта

Индекс вывода

Номер индекса UTXO, который должен быть потрачен; первый - 0

1-9 байтов (VarInt)

Размер сценария разблокировки

Длина скрипта разблокировки в байтах, затем

9302

Разблокирующая переменная -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 выталкивает два элемента из стека и нажимает TRUE (TRUE представлено числом 1), если они равны, или FALSE (представлен нулем), если они не равны.Скрипты биткойн-транзакций обычно содержат условный оператор, поэтому они могут выдавать ИСТИННЫЙ результат, обозначающий действительную транзакцию.

На рисунке 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-of-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

9329 9033 9033

-5. Сложный скрипт как P2SH

Сценарий блокировки

2 PubKey1 PubKey2 PubKey3 PubKey4 PubKey5 5 OP_CHECKMULTISIG

9322

9322 9322 OP_CHECKMULTISIG OP_EQUAL

Скрипт Redeem> Скрипт Redeem

2 PubKey1 PubKey2 PubKey3 PubKey4 PubKey5 5 OP_CHECKMULTISIG

Сценарий разблокировки

Sig1 Сценарий погашения Sig2

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

Давайте посмотрим на компанию Мохаммеда, сложный сценарий с несколькими подписями и полученные сценарии P2SH.

Во-первых, скрипт с несколькими подписями, который компания Мохаммеда использует для всех входящих платежей от клиентов:

 2 <Открытый ключ Мохаммеда> <Открытый ключ партнера1> <Открытый ключ партнера2> <Открытый ключ партнера3> <Открытый ключ поверенного> 5 OP_CHECKMULTISIG 

Если заполнители заменены фактическими открытыми ключами (показаны здесь как 520-битные числа, начинающиеся с 04), вы увидите, что этот сценарий становится очень длинным:

 2
04C16B8698A9ABF84250A7C3EA7EEDEF9897D1C8C6ADF47F06CF73370D74DCCA01CDCA79DCC5C395D7EEC6984D83F1F50C900A24DD47F569FD4193AF5DE762C58704A2192968D8655D6A935BEAF2CA23E3FB87A3495E7AF308EDF08DAC3C1FCBFC2C75B4B0F4D0B1B70CD2423657738C0C2B1D5CE65C97D78D0E34224858008E8B49047E63248B75DB7379BE9CDA8CE5751D16485F431E46117B9D0C1837C9D5737812F393DA7D4420D7E1A9162F0279CFC10F1E8E8F3020DECDBC3C0DD389D99779650421D65CBD7149B255382ED7F78E946580657EE6FDA162A187543A9D85BAAA93A4AB3A8F044DADA618D087227440645ABE8A35DA8C5B73997AD343BE5C2AFD94A5043752580AFA1ECED3C68D446BCAB69AC0BA7DF50D56231BE0AABF1FDEEC78A6A45E394BA29A1EDF518C022DD618DA774D207D137AAB59E0B000EB7ED238F4D800 5 OP_CHECKMULTISIG 

Этот сценарий может вместо этого быть представлена ​​20-байтовой криптографический хэш, сначала путем применения алгоритма хэширования SHA256, а затем применения алгоритма ripemd160 на результат.20-байтовый хэш предыдущего сценария:

 54c557e07dde5bb6cb791c7a540e0a4796f5e97e 

Транзакция P2SH блокирует вывод в этот хэш вместо более длинного сценария, используя сценарий блокировки:

 OP_HASh2607d09e07e07e07e07e06e9e намного короче. Вместо «оплата этому сценарию с 5 ключами с несколькими подписями» эквивалентная транзакция P2SH - «оплата сценарию с этим хешем». Клиенту, производящему платеж компании Мохаммеда, нужно только включить этот гораздо более короткий скрипт блокировки в свой платеж.Когда Мохаммед хочет потратить этот UTXO, он должен представить исходный скрипт погашения (тот, чей хэш заблокировал UTXO) и подписи, необходимые для его разблокировки, например: 

   <2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG> 

Два сценария объединяются в два этапа. Сначала скрипт погашения сравнивается со скриптом блокировки, чтобы убедиться, что хеш-код совпадает:

 <2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG> OP_HASh260  OP_EQUAL 

Если хэш скрипта погашения совпадает, запускается скрипт разблокировки самостоятельно, чтобы разблокировать скрипт погашения:

   2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG 

Pay-to-script-hash Address

Другой важной частью функции P2SH является возможность для кодирования хэша сценария как адреса, как определено в BIP0013.Адреса P2SH представляют собой кодировки Base58Check 20-байтового хэша сценария, точно так же, как адреса биткойнов представляют собой кодировки Base58Check 20-байтового хеша открытого ключа. Адреса P2SH используют префикс версии «5», в результате чего адреса в кодировке Base58Check начинаются с «3». Например, сложный сценарий Мохаммеда, хешированный и закодированный с помощью Base58Check как адрес P2SH, становится 39RF6JqABiHdYHkfChV6USGMe6Nsr66Gzw . Теперь Мохаммед может дать этот «адрес» своим клиентам, и они могут использовать практически любой биткойн-кошелек для простой оплаты, как если бы это был биткойн-адрес.Префикс 3 подсказывает им, что это особый тип адреса, соответствующий скрипту, а не публичному ключу, но в остальном он работает точно так же, как платеж на биткойн-адрес.

P2SH-адреса скрывают всю сложность, поэтому человек, производящий платеж, не видит скрипт.

Преимущества хеширования pay-to-script

Функция pay-to-script-hash предлагает следующие преимущества по сравнению с прямым использованием сложных сценариев при блокировке выходов:

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

Сценарий погашения и проверка isStandard

До версии 0.9.2 клиента Bitcoin Core хеширование pay-to-script было ограничено стандартными типами сценариев транзакций биткойнов функцией isStandard () . Это означает, что сценарий погашения, представленный в транзакции расходования, может быть только одного из стандартных типов: P2PK, P2PKH или с несколькими подписями, за исключением OP_RETURN, и самого P2SH.

Начиная с версии 0.9.2 клиента Bitcoin Core, транзакции P2SH могут содержать любой допустимый сценарий, что делает стандарт P2SH гораздо более гибким и позволяет экспериментировать со многими новыми и сложными типами транзакций.

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

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

Предупреждение

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

Как проверить транзакции биткойнов

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

Что делает подтверждение транзакции биткойнов?

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

Как работает подтверждение транзакции биткойнов?

Если вы не так называемый «майнер» цепочки блоков, вы мало что можете сделать для подтверждения транзакции. Вместо этого оставьте это профессионалам.

Каждый раз, когда вы совершаете биткойн-транзакцию, вам будет предоставлен «закрытый ключ» для выполнения запроса.Только у вас есть доступ к этому ключу, и ключ создается автоматически и уникален для каждой транзакции. Вы будете использовать закрытый ключ для запроса транзакции, и затем запрос транзакции будет транслироваться в сети Биткойн.

Затем майнеры примут ваш запрос вместе со многими другими и в частном порядке обработают закодированный запрос, чтобы «решить его». Мы не будем здесь вдаваться в процесс майнинга, поскольку он довольно сложен, но майнинг является важным процессом для проверки транзакции биткойнов.

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

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

Каково среднее время подтверждения биткойнов?

Биткойн-блоки, содержащие все самые последние транзакции, добавляются в цепочку блоков каждые 10 минут. Теоретически это означает, что ваша транзакция получит первое подтверждение в течение 10 минут после отправки запроса. Если вы не отправляете криптовалюту на сумму более 1 000 000 долларов, маловероятно, что вам потребуется более 6 подтверждений для обработки транзакции, поэтому обычно для полного подтверждения транзакции не требуется более одного часа.

Сколько подтверждений необходимо для биткойн-транзакции?

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

В большинстве случаев одного подтверждения считается достаточно для небольших транзакций на сумму менее 1000 долларов США, трех подтверждений лучше всего для транзакций до 1000 долларов США, а шесть подтверждений являются стандартными для транзакций на сумму до 1000000 долларов США.

Как отслеживать биткойн-транзакции

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

Блокчейн Биткойн доступен по адресу https://blockchain.info/. Здесь вы сможете ввести свой биткойн TxID, адрес биржи или кошелька, чтобы отслеживать свои транзакции.Вы увидите сводную информацию о транзакции, включая количество подтверждений.

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

Мы можем помочь

GoCardless поможет вам автоматизировать сбор платежей, сократив количество администраторов, с которыми ваша команда должна иметь дело при поиске счетов. Узнайте, как GoCardless может помочь вам со специальными или регулярными платежами.

GoCardless используется более чем 60 000 компаний по всему миру. Узнайте больше о том, как вы можете улучшить обработку платежей в своем бизнесе уже сегодня.

Узнать большеЗарегистрироваться

Проверка кошелька биткойнов | Проверьте биткойн-адрес и отслеживайте недавние транзакции.

Наша программа проверки адресов биткойн-кошельков позволяет быстро увидеть сумму любого биткойн-адреса и его недавние транзакции.

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

Если вы можете поделиться или дать ссылку на мой веб-сайт, пожалуйста, оставьте отзыв, напишите мне по адресу [email protected], я бы хотел, чтобы это было больше, чем просто хобби.

И, конечно, если вы хотите сделать пожертвование.

Адрес: 12yqAPjYdsfZrNf9XAWovquJ3piqsUrMWV

Анализ кошелька Биткойн

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

Комплексная проверка биткойн-адреса

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

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

Проверка баланса собственного биткойн-кошелька

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

Интересные адреса

Некоторые из наиболее интересных адресов показаны ниже, если вы хотите их проверить.

  • A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa - Первый адрес, этот адрес получил награду за первый блок 50 BTC.
  • 14rE7Jqy4a6P27qWCCsngkUfBxtevZhPHB - По этому адресу хранились монеты Шелкового пути, конфискованные монеты из Шелкового пути.
  • 3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r - Bitfinex, это адрес биржи Bitfinex, поэтому, хотя это один адрес, баланс держат многие люди.

Вы можете узнать больше о разбивке адресов биткойнов на сайте Cryptocanuks.

Рейтинг кошелька BeMoreBitcoin

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

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

Со временем, по мере того, как вы создаете больше транзакций и взаимодействуете с разными биткойн-адресами, ваш счет в кошельке будет расти. Неактивный кошелек, в котором когда-то не проводилась транзакция, будет видеть, что адресный счет биткойн-кошелька падает. Указанное выше время транзакции биткойнов не будет точным, но должно быть в пределах 1-2 часов от фактического времени транзакции. Это результат взятия отметки времени от подключенных узлов и установки ее в качестве отметки времени для блока. Временная метка должна быть больше, чем среднее из предыдущих 11 блоков, и не более чем на 2 часа больше установленного в сети времени.Количество транзакций включает все входящие и исходящие транзакции. На некоторых адресах может быть большой объем транзакций, но более низкая оценка кошелька, отчасти это может быть связано с тем, что кошелек отправляет только много транзакций биткойнов или принимает только большой объем транзакций. Баланс кошелька отображается в биткойнах, а не в сатоши, но со временем это может стать более распространенным явлением. Неподтвержденные транзакции в эту сумму не включаются.

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

Если вы хотите купить или продать биткойн, вы можете сравнить текущие цены здесь, сравнить и купить биткойны.

Биткойн-кошелек - Защитите свои биткойн-активы (BTC)

BTC в настоящее время является крупнейшей криптовалютой с точки зрения рыночной капитализации, а также наиболее широко торгуемой.Общее количество, которое когда-либо будет создано, ограничено 21 миллионом биткойнов.

История

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

Майнинг и как работает сеть Биткойн:

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

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

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

Алгоритм хеширования биткойнов и сложность

В сети Биткойн каждые десять минут добывается блок. Точные сроки зависят от эффективности глобальной сети узлов майнинга.
Биткойн использует функцию доказательства работы Hashcash, и чем больше узлов работают над поиском решения криптографической головоломки, тем быстрее будет найдено решение.Чтобы поддерживать нормальное время блока в 10 минут, алгоритм сложности хеширования корректируется каждые две недели.

Система доказательства работы биткойнов потребляет много энергии, и потребление электроэнергии увеличивается с использованием сети. Противники Биткойна используют этот аргумент, чтобы объяснить, почему Биткойн не сможет масштабироваться и использоваться в качестве глобальной валюты. Хотя это веский аргумент, сторонники Биткойна утверждают, что используемая электроэнергия в основном поступает из возобновляемых источников энергии, и делают ставку на решение второго уровня, такое как сеть Lightning, чтобы решить как ограничения скорости транзакций, так и ограничения стоимости энергии.
Узнайте больше о том, как купить биткойн

Почему преступники не могут спрятаться за биткойнами | Наука

Страна:
Страна * AfghanistanAland IslandsAlbaniaAlgeriaAndorraAngolaAnguillaAntarcticaAntigua и BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBolivia, многонациональное государство ofBonaire, Синт-Эстатиус и SabaBosnia и HerzegovinaBotswanaBouvet IslandBrazilBritish Индийский океан TerritoryBrunei DarussalamBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral африканских RepublicChadChileChinaChristmas IslandCocos (Килинг) IslandsColombiaComorosCongoCongo, Демократическая Республика theCook IslandsCosta RicaCote D'IvoireCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland острова (Мальвинские ) Фарерские острова, Фиджи, Финляндия, Франция, Французская Гвиана, Французская Полинезия, Французские Южные территории, Габон, Гамбия, Грузия, Германия, Гана, Гибралтар, Греция, Гренландия, Гренада, Гваделупа, Гватемала, Гернси, Гвинея, Гвинея-Бисау, Гайана, Гаити, Остров Херд и МакДональда IslandsHoly Престол (Ватикан) HondurasHong KongHungaryIcelandIndiaIndonesiaIran, Исламская Республика ofIraqIrelandIsle из ManIsraelItalyJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiKorea, Корейская Народно-Демократическая Республика ofKorea, Республика ofKuwaitKyrgyzstanLao Народная Демократическая RepublicLatviaLebanonLesothoLiberiaLibyan Арабская JamahiriyaLiechtensteinLithuaniaLuxembourgMacaoMacedonia, бывшая югославская Республика ofMadagascarMalawiMalaysiaMaldivesMaliMaltaMartiniqueMauritaniaMauritiusMayotteMexicoMoldova, Республика ofMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorwayOmanPakistanPalestinianPanamaPapua Новый GuineaParaguayPeruPhilippinesPitcairnPolandPortugalQatarReunionRomaniaRussian FederationRWANDASaint BarthélemySaint Елены, Вознесения и Тристан-да-КуньяСент-Китс и НевисСент-ЛюсияСент-Мартен (французская часть) Сен-Пьер и МикелонСент-Винсент и ГренадиныСам oaSan MarinoSao Том и PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint Маартен (Голландская часть) SlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Джорджия и Южные Сандвичевы IslandsSouth SudanSpainSri LankaSudanSurinameSvalbard и Ян MayenSwazilandSwedenSwitzerlandSyrian Arab RepublicTaiwanTajikistanTanzania, Объединенная Республика ofThailandTimor-LesteTogoTokelauTongaTrinidad и TobagoTunisiaTurkeyTurkmenistanTurks и Кайкос IslandsTuvaluUgandaUkraineUnited арабского EmiratesUnited KingdomUnited StatesUruguayUzbekistanVanuatuVenezuela, Боливарианская Республика ofVietnamVirgin остров, BritishWallis и Футуна Западная Сахара Йемен Замбия Зимбабве

Пожертвовать сейчас

Поддержка некоммерческой научной журналистики

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

Раскрытие благотворительной информации

Биткойн-кошелек (BTC) - BitcoinWiki

Понравилась статья? Поделиться:

Биткойн-кошелек - эквивалент физического кошелька для транзакций с биткойнами.Существуют разные кошельки для разных платформ. Чтобы начать работу с биткойнами (Bitcoin), в первую очередь вам понадобится биткойн-кошелек. Он позволяет совершать транзакции, то есть покупать и продавать криптовалюту. Основная задача биткойн-кошелька - хранить секретный ключ, который нужен для доступа к биткойн-адресу и, соответственно, вашим средствам. С технической точки зрения сами биткойны нигде не хранятся, хранятся только секретные цифровые ключи, которые дают доступ к публичным адресам биткойнов и возможность «подписывать» транзакции.Именно для этой информации и нужен биткойн-кошелек. Кошельки бывают разные, в зависимости от устройства, для которого они предназначены - можно даже не пользоваться компьютером и писать ключи на бумаге. И, конечно же, очень важно, чтобы кошелек имел резервную копию и был защищен от несанкционированного доступа. [1]

Криптовалютные кошельки

- это цифровые и физические, автономные и онлайн-методы, основанные на криптографии с открытым ключом [2] , позволяющей пользователям безопасно отправлять и получать биткойны по сети.

Что такое биткойн-кошелек? [Править]

Типы кошельков Биткойн (BTC)

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

Кошелек

BTC может быть программным, аппаратным, онлайн-сервисом или листом бумаги, который работает путем генерации пары открытый ключ-закрытый ключ, необходимой пользователям для участия в транзакции, т.е.е. для передачи стоимости между кошельками Биткойн и включения этой информации в цепочку блоков. [4] Открытый ключ - также называемый адресом - и закрытый ключ - также называемый семенем - это большие целые числа, обычно представляемые с использованием отдельного формата импорта кошелька (WIF), состоящего из букв и цифр. [5] Каждый открытый ключ следует использовать только один раз. Хотя адрес является общедоступным, закрытый ключ должен быть виден только владельцу кошелька и никогда не должен передаваться другим людям.

Когда пользователь желает отправить биткойны, его закрытый ключ объединяется с запросом транзакции (который включает публичный адрес получателя) для его шифрования или цифровой «подписи». [6] Созданная цифровая подпись важна, потому что она предоставляет узлам в сети математическое доказательство, которое они используют для проверки подлинности источника и проверки того, что у отправителя действительно есть нужное количество биткойнов, которое он может потратить. В блокчейне все биткойны регистрируются на адрес или открытый ключ.

Основные функции [править]

Биткойн-кошельки

предоставляют следующие функции:

  • хранение биткойн-адресов и соответствующих закрытых / открытых ключей на компьютере пользователя в файле wallet.dat.
  • проведение транзакций получения и передачи биткойнов (BTC), в том числе без подключения к Интернету
  • , предоставляющий информацию о балансе в BTC по всем доступным адресам, предыдущим транзакциям, запасным ключам.

Чтобы настроить биткойн-кошелек, вам необходимо выбрать поставщика кошелька, пройти процедуру регистрации и подтвердить адрес электронной почты. [7]

Биткойн Ядро [править]

Исходный биткойн-клиент хранит информацию о закрытом ключе в файле с именем wallet.dat в соответствии с так называемым форматом битовых ключей.

Содержит:

  • пар ключей для каждого из ваших адресов
  • транзакций с / на ваши адреса
  • пользовательские настройки
  • ключ по умолчанию
  • резервные ключи
  • счетов
  • номер версии
  • Пул ключей
  • Начиная с 0.3.21: информация о текущей лучшей цепочке для возможности автоматического повторного сканирования при восстановлении из резервной копии.

Файл wallet.dat находится в каталоге данных Биткойн и может быть зашифрован паролем.

Предполагается, что файл кошелька будет использоваться только на одной установке Биткойна за раз. Попытка клонировать файл кошелька для использования на нескольких компьютерах приведет к странному поведению. [8]

Формат этого файла - Berkeley DB.Инструменты, которые могут управлять файлами кошелька, включают pywallet.

Типы кошельков Биткойн (BTC) [править]

Кошельки

можно классифицировать в зависимости от того, являются они физическими или цифровыми, а также в зависимости от того, находятся ли они в сети или офлайн. Аппаратные биткойн-кошельки и бумажные кошельки являются физическими. Цифровые кошельки могут быть мобильными или настольными программами или веб-сервисами. Все эти кошельки либо по умолчанию, либо потенциально могут быть в какой-то момент онлайн. Аппаратные и бумажные биткойн-кошельки предназначены для использования в автономном режиме (холодное хранение).Однако можно было подключить аппаратный кошелек или распечатать бумажный кошелек с компьютера, который был подключен к сети. Это не рекомендуется, так как это приведет к аннулированию всей цели этих кошельков. Программный кошелек можно использовать онлайн или офлайн. Веб-кошельки всегда в сети. Для удобства система EZ Flash IV предоставляет три типа биткойн-кошельков: настольный, онлайн и мобильный.

Настольные кошельки [править]

Настольные кошельки

устанавливаются на ваш компьютер и обеспечивают полный контроль над валютой и сохранность бюджета.

Толстые кошельки [править]

Обеспечивает независимое управление безопасностью средств, загрузку сетевых блоков и контроль их подлинности.

  • Bitcoin-Qt (Windows, Mac OS, Linux). Высокая стабильность, надежность, конфиденциальность, ресурсоемкость. Возможен экспорт / импорт ключей, шифрование пароля к файлу wallet.dat, подпись сообщений.
  • Оружейная (Linux, Windows). Работает над приложением Bitcoin-Qt, расширяя его возможности. Управление несколькими биткойн-кошельками, хранение их в автономном режиме, защита от хакерских атак, создание сообщений и их подпись закрытым ключом. [9]
Тонкие кошельки [править]

Нет необходимости скачивать блоки, легко установить на планшет / мобильный телефон, сторонний ресурс ведет проверку операций.

  • Мультибит (Windows, Mac OS, Linux). Приложение для начинающих, русский язык включен. Multibit - это кошелек с несколькими монетами.
  • Electrum (Windows, Mac OS, Android, Linux). Генерация 6 адресов, которые можно восстановить через Электрум.

Кастодиальный биткойн-кошелек [править]

Кастодиальный (или размещенный) кошелек

очень похож по своим функциям на приложения онлайн-банка.В отличие от других кошельков, которые возлагают на пользователей ответственность за безопасность, хранители обеспечивают резервное копирование и гарантируют доступ к кошельку в сложных ситуациях (например, когда пользователь теряет телефон или забывает мнемоническую фразу). Кастодиальные кошельки обычно поддерживают усиленные меры безопасности, такие как 2FA и Multisignature. Некоторые из них (Coinbase, Freewallet) обеспечивают мгновенные транзакции без комиссии между пользователями кошелька и поддерживают SegWit.
С другой стороны, как и в банке, пользователи не имеют прямого доступа к своим средствам и приказывают хранителю совершать транзакции от их имени.Средства не защищены полностью от ареста по решению суда, а также от целевых хакерских действий или мошенничества.

Freewallet [править]

Freewallet - это семейство кастодиальных кошельков, работающих на iOS, Android и в Интернете. Мультивалютный кошелек Freewallet работает с 30+ валютами, хотя существуют отдельные кошельки для разных валют. Freewallet недавно был включен в список третьего по величине онлайн-кошелька для Android.

Coinbase [править]

Обмен цифровой валюты со штаб-квартирой в Сан-Франциско, Калифорния.Брокер Coinbase обменивает биткойны, Ethereum, Litecoin и другие цифровые активы с фиатными валютами в 32 странах, а также транзакции и хранение биткойнов в 190 странах мира.

BTC.com [править]

Первый мобильный клиент для iOS и Android, предназначенный для смартфонов и планшетов. Клиент подключается к сети Биткойн напрямую, что исключает возможность потери конфиденциальных данных. Кошелек BTC.com работает только с биткойнами.

Coinpayments [править]

Принимает более 450 различных альткойнов (включая ERC20) и работает по всему миру.Кошелек CoinPayments полностью бесплатен для некоммерческих приложений. Продавцы, использующие систему оформления заказа и API, взимают небольшую комиссию в размере 0,50% за входящие транзакции, которая удерживается во время оплаты.

МЕДУЗА [править]

Криптовалютный мультивалютный кошелек

MEDOOZA - это бесплатный безопасный онлайн-кошелек для хранения BTC, LTC и ЛЮБЫХ токенов erc20.
Владейте своими закрытыми ключами и надежно храните свои криптовалюты!
Самая низкая комиссия за транзакции.
Наш кошелек также поддерживает тестовую сеть. Это отличный выбор для разработчиков.Импорт / экспорт полностью поддерживаются и предоставляют пользователям свободу.

Мобильный кошелек криптовалюты для Android и Apple [править]

Деньги всегда под рукой, что удобно при оплате товаров сканированием адресов в виде QR-кода, приложение технологии NFC).

  • Кошелек доверительного управляющего. Мультивалютный криптокошелек с открытым исходным кодом и обменом. Доступен на русском, английском и украинском языках. Поддерживает все популярные криптовалюты и сотни различных токенов, а также технологию SegWit для BTC, Visa / Mastercard, не требует проверки, процедуры KYC / AML, полностью анонимны.Доступно для Android и iOS.
  • Кошелек Plutus. Кошелек работает с несколькими валютами, включая биткойн. Его простой и интуитивно понятный пользовательский интерфейс - одна из основных функций. Подробнее о кошельке здесь.
  • BitcoinWallet. Автономность, калькулятор конвертации валют, адресная книга, баланс в BTC или другой валюте.
  • MyceliumWallet. Удобное резервное копирование, отправка биткойн-адреса по Skype или электронной почте, защита PIN-кодом. Текущий курс указан в биткойнах, а баланс - в необходимой валюте.
  • У

  • CoinCorner также есть мобильный кошелек для Android, iOS и Windows Phone, который дает пользователям возможность отправлять и получать биткойны на ходу.

Также существуют приложения для мобильных устройств, обеспечивающие доступ к онлайн-кошелькам, например, Blockchain.

Аппаратные биткойн-кошельки [править]

Denarium.com [править]

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

Кошелек Ledger [править]

Ledger Wallet производит различные аппаратные криптовалютные кошельки.

Мультибит [править]

Multibit HD (текущая версия) использует детерминированный кошелек BIP 0032 (тип 2) с описанным здесь форматом. В классической версии использовался файл кошелька bitcoinj protobuf.

Blocktrail [править]

Blocktrail предлагает детерминированный кошелек BIP 0032 (тип 2), а для дополнительной безопасности также реализует технологию кошелька с несколькими подписями.

ТРЕЗОР [править]

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

OpenCoiner [править]

OpenCoiner - это быстрый и легкий веб-кошелек с открытым исходным кодом.

Карта кошелька NFC [править]

NFC Wallet Card - это аппаратный кошелек для холодного хранения любых криптовалют.

Бумажный биткойн-кошелек [править]

Бумажный биткойн-кошелек

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

Самый безопасный биткойн-кошелек [править]

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

Какой биткойн-кошелек лучший? [Править]

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

Пользователи также могут использовать комбинацию кошельков. Веб-сайт weusecoins.com рекомендует использовать мобильный кошелек в качестве расчетного счета и аппаратный или безопасный автономный кошелек в качестве сберегательного счета.

Безопасность кошелька BTC [править]

Не существует самого безопасного кошелька для криптовалюты, но для обеспечения безопасности кошелька Биткойн необходимо принять следующие меры:
Шифрование кошелька . Вы можете зашифровать с помощью надежного пароля, который сложно взломать, но он не дает абсолютной защиты. Если ваш компьютер заражен вирусом, записывающим нажатие клавиш, ваш пароль может стать известен злоумышленнику.
Резервное копирование . Важно сделать резервную копию всего кошелька.Дело в том, что некоторые адреса используются для хранения изменений транзакций и могут быть не видны пользователю. Поэтому вам нужно сделать резервную копию всего вашего кошелька в нескольких местах.
Multipoles В последнее время растет количество сервисов, поддерживающих транзакции с несколькими подписями. Такой подход позволяет нескольким пользователям частично подписать один адрес открытым ключом, и, если кто-то хочет потратить биткойны, необходимо, чтобы помимо его подписания транзакция была подписана еще несколькими пользователями.Сколько подписей нужно, устанавливается заранее, при создании адреса. Эта форма подписи может быть полезна в случае взаимного согласия, например, между деловыми партнерами или членами семьи. Второе устройство, принадлежащее тому же пользователю, также может быть вторым участником.
рассудительность при выборе качественной услуги

См. Также на BitcoinWiki [править]

Внешние ссылки [править]

Ссылки [править]

  1. ↑ «Биткойн», Википедия.org , н.д. Проверено 03.02.18
  2. ↑ «Криптография с открытым ключом», Wikipedia.org , н.д. Дата обращения 03.03.18.
  3. ↑ Indika, «Разница между открытым и закрытым ключом», Differencebetween.com , 23.07.11. Проверено 18.03.03.
  4. ↑ Как работает Биткойн?, bitcoin.org , н.д. Проверено 18.02.18.
  5. ↑ Леон Ди, «Зачем мне нужны открытый и закрытый ключи в цепочке блоков?», blog.wetrust.io , 29.01.17. Проверено 18.03.18.
  6. ↑ Джерри Брито, Андреа Кастильо, «Биткойн, учебник для политиков», Mercatus Center в Университете Джорджа Мейсона , 2013.