Size: a a a

2019 June 03

VA

Vladimir Abovyan in ББ-чат
Evgeny Marchenko
в битке используется utxo модель. грубо говоря, все битки лежат к отдельных одноразовых конвертах (utxo). можно распечатать один или несколько конвертов и положить вынутые битки в новые конверты (это транзакция). по правила блокчейна каждый utxo может быть потрачен лишь однажды. поэтому майнеры включат только либо A->B, либо A->C транзакцию
Получается такую аферу сделать получится? И что значит распечатать конверт? Когда он распечатывается? Когдапопадает в блок или мемпул?
источник

AS

Andrey Sobol in ББ-чат
Evgeny Marchenko
Андрей, ты то ли набрасываешь, то ли задаёшь куда более глубокий вопрос
ну я не набрасываю. Я знаю как это устроено в битке, но очень условно понимаю как это сделано в эфириуме. Хочу послушать детали
источник

AS

Andrey Sobol in ББ-чат
То есть я понимаю что в эфириуме есть nonce, но детали работы с nonce я не знаю.
источник

RS

Ruslan Salikhov in ББ-чат
Vladimir Abovyan
Приветствую. вопрос следующий:
отправитель переводит средства с адреса A получателю на адрес B
В момент когда транза неподтверждена, если отправитель попытается обмануть получателя и транслирует транзу A - C (самому себе) с большей комиссией. То что произойдет? Интуитивно чувствую, что такая афера не удастся, но хочу понять за счет чего?

Правильно ли я понимаю, что A-B попадет в мемпул и как только появится транза A-C, то узлы сети ее отклонят так как уже была транза, которая тратит входы А

Прокомментируйте пожалуйста
Удастся. Не разбирался в деталях, но в биткоине есть https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki
т.е. отправитель дейсвительно может создать A->C. Поэтому и стоит подождать подстверждения.

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

RS

Ruslan Salikhov in ББ-чат
Судя по https://kb.myetherwallet.com/posts/transactions/checking-or-replacing-a-tx-after-sending/ (не нашел документации в эфириуме с точным описанием). Так же можно сделать и в эфире.
источник

EM

Evgeny Marchenko in ББ-чат
Vladimir Abovyan
Получается такую аферу сделать получится? И что значит распечатать конверт? Когда он распечатывается? Когдапопадает в блок или мемпул?
как написал Руслан, отправить такие транзакции можно. но в блок (в историю) может быть включена лишь одна. поэтому если получатель жлдет несколько подтверждений, то он будет точно знать, ушли ли битки на адрес B или C
источник

RS

Ruslan Salikhov in ББ-чат
т.е. использую большую комсу (с тем же nonce) - можно послать транзакцию - где можно именить to, сумму,  data.
источник

VA

Vladimir Abovyan in ББ-чат
Ruslan Salikhov
Удастся. Не разбирался в деталях, но в биткоине есть https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki
т.е. отправитель дейсвительно может создать A->C. Поэтому и стоит подождать подстверждения.

Бавали даже такие хаки (уверен было много, но некоторые освещались в сми). Как например обман казино, которое не ждало подтверждений. Человек отправлял депозит, дожидался пока начислится сумма на аккаунте и отправлял RBF транзакцию.
RBF это замена комиссии, но транзакция остается той же. Или нет?
источник

VA

Vladimir Abovyan in ББ-чат
охренеть) то есть, я правильно понимаю, что я могу продать биток человеку с комиссией 1 сат/байт. Потом сказать, что сори мне очень надо ехать и спокойно спустя пару часов транслировать еще одну транзу с большей комиссией и таким образом обмануть человека? Кто-то проверял это на практике?

Я ни в коем случае так бы не сделал, просто рассуждаю теоретически.
источник

AS

Andrey Sobol in ББ-чат
Ruslan Salikhov
Удастся. Не разбирался в деталях, но в биткоине есть https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki
т.е. отправитель дейсвительно может создать A->C. Поэтому и стоит подождать подстверждения.

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

AS

Andrey Sobol in ББ-чат
Тут конечно я могу наврать так как разбирался весьма давно в этом
источник

AS

Andrey Sobol in ББ-чат
Но детали работы мемпула весьма сложны
источник

VA

Vladimir Abovyan in ББ-чат
Andrey Sobol
Там все сложнее, (я так понимаю) не каждая транза может быть заменена (по моему там есть флаг специальный если я не ошибаюсь), и заменятся транза может только особым образом может
насколько я знаю, чтобы можно было применить RBF необходим специальное значение в атрибуте SEQUENCE. Не все транзы можно RBFить
источник

AS

Andrey Sobol in ББ-чат
Vladimir Abovyan
насколько я знаю, чтобы можно было применить RBF необходим специальное значение в атрибуте SEQUENCE. Не все транзы можно RBFить
да, я тоже что-то подобное помню
источник

EM

Evgeny Marchenko in ББ-чат
Andrey Sobol
ну я не набрасываю. Я знаю как это устроено в битке, но очень условно понимаю как это сделано в эфириуме. Хочу послушать детали
В эфириуме используется модель балансов - каждый эфир привязак к какому-то адресу. у адреса еще есть nonce - счетчик отправленных транзакций. nonce есть и у отправляемых транзакций.
Когда майнер включает транзакции в блок, он может брать только те транзакции от адреса, у которых nonce на единицу больше, чем текущий nonce адреса отправителя. т.е. если у адреса nonce == 3, и майнер видит транзакцию с nonce == 5, то он ничего не может с ней сделать, пока не появится тразакция с nonce == 4 (тогда майнер сможет включить обе эти транзакции в порядке `nonce`).
Если есть несколько транзакций с одинаковым nonce, то майнер может включить в блок любую из них, но только одну. обычно - ту у которой выше gasprice. за счет этого можно пытаться отменять или подталкивать транзакции - отправляя новую транзу с тем же nonce и большим gasprice, возможно с другими данными.
источник

RS

Ruslan Salikhov in ББ-чат
Andrey Sobol
Там все сложнее, (я так понимаю) не каждая транза может быть заменена (по моему там есть флаг специальный если я не ошибаюсь), и заменятся транза может только особым образом может
да, флаг есть (однажда понадобилось мне протолкнуть и не смог, т.к. отправлял с отключенной опцией). Но не уверен что это не ограничение клиента. т.к. майнерам будет логичнее выбрать транзакцию с большим fee для максимизации дохода.
источник

RS

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

VA

Vladimir Abovyan in ББ-чат
Evgeny Marchenko
В эфириуме используется модель балансов - каждый эфир привязак к какому-то адресу. у адреса еще есть nonce - счетчик отправленных транзакций. nonce есть и у отправляемых транзакций.
Когда майнер включает транзакции в блок, он может брать только те транзакции от адреса, у которых nonce на единицу больше, чем текущий nonce адреса отправителя. т.е. если у адреса nonce == 3, и майнер видит транзакцию с nonce == 5, то он ничего не может с ней сделать, пока не появится тразакция с nonce == 4 (тогда майнер сможет включить обе эти транзакции в порядке `nonce`).
Если есть несколько транзакций с одинаковым nonce, то майнер может включить в блок любую из них, но только одну. обычно - ту у которой выше gasprice. за счет этого можно пытаться отменять или подталкивать транзакции - отправляя новую транзу с тем же nonce и большим gasprice, возможно с другими данными.
класс, спасибо!
источник

AS

Andrey Sobol in ББ-чат
Ruslan Salikhov
да, флаг есть (однажда понадобилось мне протолкнуть и не смог, т.к. отправлял с отключенной опцией). Но не уверен что это не ограничение клиента. т.к. майнерам будет логичнее выбрать транзакцию с большим fee для максимизации дохода.
без этого флага попытка заменить транзакцию стандартным клиентом рассматривается как дабл спенд, и мемпул клиента соответствующим образом реагирует
источник

AS

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