Перейти к публикации
fxseminar

Возможно ли в Биткойне совместное создание транзакции?

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

Господа, по-моему, по всем ссылкам, которые вы приводите, рассказывается о том, как производится проверка на валидность ОДНОГО конкретного входа транзакции САМОГО ПО СЕБЕ. 

 

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

 

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

Поделиться сообщением


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

Вот, в  здесь, в "Bitcoin and Cryptocurrency Technologies от Принстонский университет", прямо в самых азах, говорится (и на картинке изображается), что

 

//10:08

10:37

Second, that the consumed coins were not already consumed in some previous transaction, this is not a double-spend. Third, that the total value of the coins that come out of this transaction is equal to the total value of the coins that went in. And finally that the transaction is validly signed by the owners of all of the consumed coins. If all of those things are true then this PayCoins transaction is valid.//

 

-- владелЬЦЫ ("owners" -- во множественном числе!) всех использованных (consumed) в транзакции монет должны подписать эту (всю целиком) транзакцию.

 

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

post-59202-0-15519000-1504731522_thumb.jpg

Поделиться сообщением


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

-- владелЬЦЫ ("owners" -- во множественном числе!) всех использованных (consumed) в транзакции монет должны подписать эту (всю целиком) транзакцию.

 

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

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

 

Вопрос возник потому, что в одной статье (легко находится яндексом) я сегодня прочитал дословно:

 

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

 

-- получается, "Дорит Рон, Ади Шамир. Кафедра компьютерных наук и прикладной математики Института Вейцмана" глупость написали?

Поделиться сообщением


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

Вот этой последовательности действий:

 

 

 

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

 

я вчера не прочитал. Возможно, подслеповат.

Поделиться сообщением


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

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

Млять... А потом наверное еще друг друга пустить по кругу и подписать акт, что это произошло?

Это полная чушь, а не последовательность действий или неверный вольный перевод.

 

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

А если вы хотите потратить просто 2 разных входа и подписать 2 разными приватными ключами - то и это не проблема.

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

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

Поделиться сообщением


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

 

 

вы составляете одну транзакцию, включаете туда все нужные входы

 

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

интересная тема, получается гарантом при сделке может быть половина входа?

Поделиться сообщением


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

то есть вот это (в книге "Mastering Bitcoin"  https://www.bitcoinbook.info/translations/ru/book.pdf ):

 

//Как вы могли заметить, транзакция содержит пустой scriptSig, так как мы ее еще не подписали. Без подписи транзакция не имеет смысла; мы пока еще не доказали, что владеем адресом, из которого используется неизрасходованный выход. Подписывая, мы снимаем блокировку на выходе и доказываем права владения выходом, а значит можем потратить. Для того, чтобы подписать транзакцию мы используем команду signrawtransaction. Она принимает сырую шестнадцатеричную строку транзакции в качестве параметра://

 

-- тоже, вообще говоря, лажа? Потому что суть подписи не (только) в том, что "мы снимаем блокировку на выходе и доказываем права владения выходом", а в том, что мы "верифицируем" ВСЮ транзакцию ЦЕЛИКОМ?

 

И то, что этот scriptSig (пустой, пока не вызвана команда signrawtransaction) в JSON-формате транзакции отображается в разделе "vin" -- это такая ловушка для простаков?

__________________________

 

И команда signrawtransaction не сбойнёт, если в неё пихнуть транзакцию, для одного из входов которой на ноде нет приватного ключа?

Изменено пользователем fxseminar

Поделиться сообщением


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

И когда другие ноды получают готовую транзакцию и проверяют её валидность, то они этот scriptSig используют не только для  проверки "обоснованности" конкретного input-а (как пишут во всех учебниках), а в качестве цифровой подписи всей транзакции целиком?

 

То есть цифровая подпись всей транзакции в JSON-формате отображается глубоко внутри одного из разделов, как какой-то задрипаный параметр? Ну не великолепно ли!

Изменено пользователем fxseminar

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×