Перейти к содержанию

polym0rph

Рекомендуемые сообщения

Sorr0s, спасибо за ответ, но меня интересует более низкий уровень.

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

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

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

 

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

Изменено пользователем uncleandy
Ссылка на комментарий
Поделиться на другие сайты

Давай разбираться. Обычный, публичный адрес это хеш в кодировке base58. То, что ты видишь в scriptPubKey  это Hash160. Значит Hash160, после нескольких преобразований, надо перевести в base58 , и получим необходимый адрес.

 

Делаем это так - Спереди добавляем 00 - это байт основной сети ( для тестовой используется 6f), далее добавляем первые четыре байта из значения полученного от sha256(sha256("00" + hash160)) (здесь + это конкатенация). Если использовать hash160 из твоего примера то получится -[ "00404371705fa9bd789a2fcd52d2c580b65d35549d" + первые 4 байта из (sha256(sha256("00404371705fa9bd789a2fcd52d2c580b65d35549d"))) ]. Результат переводим в base58, т.е в число с основанием 58. Здесь можешь посмотреть как это конвертируется.

 

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

 

По теме почитать на русском здесь.

Изменено пользователем Sorr0s
Ссылка на комментарий
Поделиться на другие сайты

Я понимаю где этот адрес находится в scriptPubKey и как его преобразовать в нормальный вид. Значит-ли это что scriptPubKey всегда имеет именно такой вид и что этот Hash160 находится только в данной позиции? Если так, я просто не понимаю зачем нужно было вообще вводить систему Script в биткоин если можно было обойтись просто фиксированными подписями.

Ссылка на комментарий
Поделиться на другие сайты

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

 

Эти слова, как по мне, означают что не понимаешь. Или я не понимаю тебя, и пытаюсь объяснить очевидные вещи.

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

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

Так... Т.е. получается что этот сценарий работает не в контексте одной транзакции, а в контексте выхода одной транзакции и входа другой?

 

И получается так, что "владение конкретным адресом" - это один из возможных фиксированных сценариев, для которых четко определен формат скриптов из которых мы и можем получить адрес назначения?

Ссылка на комментарий
Поделиться на другие сайты

Так... Т.е. получается что этот сценарий работает не в контексте одной транзакции, а в контексте выхода одной транзакции и входа другой?

 

Да, получается.

 

И получается так, что "владение конкретным адресом" - это один из возможных фиксированных сценариев, для которых четко определен формат скриптов из которых мы и можем получить адрес назначения?

 

Да.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...
Добрый день, участники форума.

Пересмотрел кучу ресурсов по описанию работы биткоина. 

Либо просто не понял среди прочитанного, либо еще не встретил ответ на итересующий меня вопрос. 

Каким образом делается проверка того что данная транзакция еще не использовалась ранее? 

Неужели при регистрации в блокчейн новой транзакции биткоин клиент при валидации транзакции шерстит все 20 ГБ блокчайна чтобы понять использовалась ли транзакция ранее или нет. Ответа еще не встречал, но мне кажется должен быть какой-то более простой вариант чтобы убедится что транзакция еще не использовалась. 

 

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

Ссылка на комментарий
Поделиться на другие сайты

 

 

Неужели при регистрации в блокчейн новой транзакции биткоин клиент при валидации транзакции шерстит все 20 ГБ блокчайна чтобы понять использовалась ли транзакция ранее или нет.

Шерстить все необходимости нет - есть отдельная табличка UTXO - непотраченные выходы.

Ссылка на комментарий
Поделиться на другие сайты

@Tomcat_MkII, более того, если это касается его собственных  адресов, то в валете еще все касающиеся их транзакции есть.

Ссылка на комментарий
Поделиться на другие сайты

Шерстить все необходимости нет - есть отдельная табличка UTXO - непотраченные выходы.

Спасибо.

Почитаю про эту сущность.

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    • Питер Шифф: «Транзакции в сети Биткоина слишком медленные и дорогие»

      Экономист, инвестор и сторонник инвестиций в золото раскритиковал сеть Биткоина за медленную скорость и высокую стоимость транзакций, а монету выставил нежизнеспособной. Питер Шифф (Peter Schiff) запостил твит о том, что для совершения транзакции в Биткоине от пользователей сейчас требуется платить около $128, а обработка транзакций занимает от 30 минут до часа.   The cost to complete a #Bitcoin transaction is now $128 and it takes a half hour to process. This is another reason why

      в Новости криптовалют

    • Обсуждение происходящего в Украине

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

      в Флейм

    • Сложные инвестиционные продукты на криптобиржах — обсуждение

      Пока (и если) эта тема не наполнится контентом в существенной степени, я сперва хотел вести ее во флейме. Иначе мои претензии объять необъятное показались бы особенно смешными. Чем если бы это было в разделе Стейкинг, Фарминг.   Но передумал. Ибо потом, после переноса, читателям надо было бы снова заново привыкать, к новому расположению — зачем это?  Итак, не судите строго, если заброшу, я и так много чего забросил.   Немного терминологии, про APR и APY (что еще добавить?).

      в Стейкинг, Фарминг

    • Юрист Билл Морган: «Транзакции Ripple ODL — не инвестиционные контракты»

      Австралийский юрист, защищающий интересы владельцев криптовалюты XRP, заявил, что транзакции с этой монетой через решение Ripple On-Demand Liquidity (ODL) не могут нарушать законы о ценных бумагах, как настаивают чиновники. Будучи активным сторонником криптовалюты Ripple, Билл Морган (Bill Morgan) считает, что если XRP используется для платежей в сервисе Ripple ODL, то эти транзакции не имеют ничего общего с инвестиционными контрактами. Клиентами ODL являются не инвесторы, а частные лица, к

      в Новости криптовалют

    • Национальное бюро расследований Финляндии отследило анонимные транзакции Monero

      Финский новостной канал MTV Uutiset сообщил, что Национальному бюро расследований Финляндии (KRP) удалось отследить транзакции с использованием конфиденциальной криптовалюты Monero (XMR). Журналисты рубрики MTV Crime Reporters канала MTV Uutiset сообщили со ссылкой на заявление регионального прокурора Паси Вайнио (Pasi Vainio), что экспертам KRP удалось отследить транзакции с использованием XMR, а также идентифицировать ее конечного получателя. До этого Monero считалась «неотслеживаемой кри

      в Новости криптовалют

×
×
  • Создать...