Bitcoin Forum

Local => Oбcyждeниe Bitcoin => Topic started by: amaclin1 on July 07, 2024, 10:01:01 AM



Title: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 10:01:01 AM
Привет всем. Давно не виделись, да?

Я тут снова заинтересовался исследованием блокчейна. Любопытные детали выясняются по ходу дела. Лет десять назад, когда я только начинал это, как раз во время олимпиады были какие-то спамеры, которые отправили кучу транзакций по 100 сатоши на адрес 1Sochixxx (точно не помню)

Что я вижу через 10 лет? Стоимость биткойна выросла в 50 раз, а используется он так же. Пять лет назад ходили какие-то разговоры про лайтнинг, еще что-то... А я смотрю -- в блокчейне по-прежнему спам и мусор

Показываю на примерах:
Возьмем транзакцию https://www.blockchain.com/explorer/transactions/btc/16bf9f1dcbebcf962de97d43cff8249eadc0e8219a82465c65964108b60f8baa
Что мы видим: год назад еще где-то в марте 2023 года (я не пытался найти точную дату начала этой спам-атаки) кто-то разослал по 330 сатоши на туеву хучу разных адресов. Туева хуча -- это как минимум 80000. И с тех пор этот кто-то обратно собирает в кучку эти разбросанные копейки. Ну как сказать копейки? На комиссии уходит 90%
Вот вам транзакция недельной давности
https://www.blockchain.com/explorer/transactions/btc/8fbb9355c40490631ded413b455e48c7c2dcf1d1721b95de18757881e6cddf35
Пересылаем 19 баксов с комиссией 16 баксов. Получаем 3 бакса. Обалденный профит! И обращаю внимание, в этой транзакции 100 входов. А посчитайте сколько места в блокчейне занимают 80000 (может и больше, я не занимался подсчетом, тем более, что адреса разные)  таких ошметков по 330 сатоши

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


Title: Re: Замусоривание блокчейна
Post by: be.open on July 07, 2024, 10:34:52 AM
Привет всем. Давно не виделись, да?

Я тут снова заинтересовался исследованием блокчейна. Любопытные детали выясняются по ходу дела. Лет десять назад, когда я только начинал это, как раз во время олимпиады были какие-то спамеры, которые отправили кучу транзакций по 100 сатоши на адрес 1Sochixxx (точно не помню)

Что я вижу через 10 лет? Стоимость биткойна выросла в 50 раз, а используется он так же. Пять лет назад ходили какие-то разговоры про лайтнинг, еще что-то... А я смотрю -- в блокчейне по-прежнему спам и мусор

Показываю на примерах:
Возьмем транзакцию https://www.blockchain.com/explorer/transactions/btc/16bf9f1dcbebcf962de97d43cff8249eadc0e8219a82465c65964108b60f8baa
Что мы видим: год назад еще где-то в марте 2023 года (я не пытался найти точную дату начала этой спам-атаки) кто-то разослал по 330 сатоши на туеву хучу разных адресов. Туева хуча -- это как минимум 80000. И с тех пор этот кто-то обратно собирает в кучку эти разбросанные копейки. Ну как сказать копейки? На комиссии уходит 90%
Вот вам транзакция недельной давности
https://www.blockchain.com/explorer/transactions/btc/8fbb9355c40490631ded413b455e48c7c2dcf1d1721b95de18757881e6cddf35
Пересылаем 19 баксов с комиссией 16 баксов. Получаем 3 бакса. Обалденный профит! И обращаю внимание, в этой транзакции 100 входов. А посчитайте сколько места в блокчейне занимают 80000 (может и больше, я не занимался подсчетом, тем более, что адреса разные)  таких ошметков по 330 сатоши

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

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


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 07, 2024, 10:51:46 AM
Экономического смысла точно нет. Конечно, может кто-то верит, что такого рода действия вынуждают остальных юзеров платить больше комиссий и вообще нахваливать прекрасное будущее и туземун. А как вы думаете?

Полагаю, транзакции с выходами по 330 сат - это "служебные" транзакции какого-то сервиса вроде Robosats, необходимые для работы свопов. Это же p2wsh транзакции, причем не мультисиг, для чего-то эти скрипты нужны. По крайней мере это не банальный спам, как 10 лет назад.
А насчет недавних консолидаций, то согласен, можно было подождать до 1 сат/вб. Видимо, дело не в экономическом смысле, а просто решили навести порядок в своем хозяйстве - сжечь ненужные utxo, пока это не так убыточно.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 11:15:38 AM
До тех пор, пока отправители платят за комиссию конкурентноспособную цену - это не спам и не мусор
Я немного не об этом.

Я обратил внимание, что в Лаосе в последнее время любое высказывание расценивается как "мне это не нравится, я хочу это изменить". Ну то есть если человек говорит о маршруте автобусов или о помидорах, то с 99% вероятностью можно утверждать что что-то тут не так, а разговор в публичном поле он завел чтобы предложить свое мнение по улучшению маршрута или обратить внимание на неадекватность цен.

Так вот, я не в Лаосе. Я просто пытаюсь программными/статистическими/аналитическими методами исследовать поведение пользователей. Но насчет "платы за мусор" я бы поспорил. Без фанатизма. Если человек купил килограмм конфет, он не имеет морального права разбрасывать фантики. Так как он заплатил определенным людям, а последствия разгребают все. У Сатоши были размышления на эту тему, но он достаточно скомкано свалил всё за закон Мура, мол объемы памяти на дисках удваиваются каждые не-помню-сколько лет и никакой беды в этом не будет. Ну и многие из вас теперь могут похвастаться тем, что самостоятельно проверили достоверность блокчейна? Или все хранят битки на биржах? Но в таком случае чем технически это отличается от банковской системы? Живет не в государственной системе, а в параллельной.

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

Начал тут смотреть что там в TapRoot накрутили. Точно без поллитры не разобраться. От оригинального биткойна вообще мало что осталось. Опять же, прошу обратить внимание -- это не нытьё, что раньше было лучше и понятнее. Это лишь констатация факта. 90% мануалов по биткойнам можно смело выкидывать. Особенно я повеселился заглянув в англо-ветку. Они там обсуждают p2pkh, msig и прочие p2pk адреса, которые уже практически по факту вышли из употребления


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 11:22:57 AM
Это же p2wsh транзакции, причем не мультисиг, для чего-то эти скрипты нужны.
Да, это нуль-сиг. То есть для вывода не нужно ничего подписывать. Но нужно знать что там скрыто, ибо мы видим только -sh, а сам скрипт узнаем только в момент публикации транзакции.
В то, что в этом есть какой-то "другой" не экономический смысл -- не верю. Даже при использовании блокчейна есть более дешевые и технологичные способы

Update: а что такое Robosats? Я покурил, подумал, может действительно некоторый корявый смысл в данном действии имелся. В скриптах присутствует публичный ключ, но чей он и откуда берется? Если узнать это, можно пару-тройку баксов тоже "насобирать" (если там еще что-то осталось)


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 11:56:39 AM
Немного поколупался ещё
Оказывается, это началось еще три года назад (может еще раньше)
Вот https://www.blockchain.com/explorer/addresses/btc/bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr
330 сатоши приехали на адрес bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr ещё в феврале 2021 года, а были консолидированы (~700 входов у транзакции в 143 килобайта) в январе 2022
Но тогда комиссии были еще божеские.
Интересно, кто же это делает? Я докопаюсь! Меня любопытство гложет!




Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 12:26:55 PM
Вот вам ещё на эту тему
Транзакция https://www.blockchain.com/explorer/transactions/btc/3bca3123e26dcd350729739998682140c9a3b06c1e68be33d3f86fb980737990
рассылает по 540 сатоши на обычные адреса, на каждом из которых уже по три бакса накопилось
Причем вывести с них теоретически можно, но комиссий придется в несколько раз больше заплатить.
Но всё-таки автор этой херни один раз это сделал
https://www.blockchain.com/explorer/transactions/btc/73deed5e356440b27de957ab505dc6d1d46355eb71b793ec217129fbd6c291b2
Потратил на комиссии больше, чем в итоге получил
Обращаем внимание на ванити-адрес 1READxxxSiGSCRiPTxxxTEXTxxxuoXKG1
Для этого идём в другой блокэксплорер
https://btc.com/btc/transaction/73deed5e356440b27de957ab505dc6d1d46355eb71b793ec217129fbd6c291b2
Ну и там понятно что за хрень засунули в блокчейн.


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 07, 2024, 12:42:09 PM
Немного поколупался ещё
Оказывается, это началось еще три года назад (может еще раньше)
Вот https://www.blockchain.com/explorer/addresses/btc/bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr
330 сатоши приехали на адрес bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr ещё в феврале 2021 года, а были консолидированы (~700 входов у транзакции в 143 килобайта) в январе 2022
Но тогда комиссии были еще божеские.
Интересно, кто же это делает? Я докопаюсь! Меня любопытство гложет!
Если посмотреть эту транзакцию в более продвинутом эксплорере mempool.space, то входы там помечены как "Swept Lightning Anchor".

Вот вам ещё на эту тему
Транзакция https://www.blockchain.com/explorer/transactions/btc/3bca3123e26dcd350729739998682140c9a3b06c1e68be33d3f86fb980737990
рассылает по 540 сатоши на обычные адреса
Там 11 практически одинаковых транзакций с одним и тем же набором адресов на выходе.
Quote
Обращаем внимание на ванити-адрес 1READxxxSiGSCRiPTxxxTEXTxxxuoXKG1
Это не ванити-адрес (черта с два такой подберешь), просто нарисовали текст и чексумму в конце дописали.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 01:06:46 PM
Если посмотреть эту транзакцию в более продвинутом эксплорере mempool.space, то входы там помечены как "Swept Lightning Anchor".
Ну вот, общими усилиями и прояснили. Далее гуглим и находим https://github.com/lightningnetwork/lnd/issues/6652
Я сам ещё не посмотрел что там написано, но премного благодарен за наводку.
Quote
Это не ванити-адрес (черта с два такой подберешь), просто нарисовали текст и чексумму в конце дописали.
Ну, я это и имел в виду. Просто неправильно назвал. Забыл многое пока от дел криптовалютных отходил. Там внутри в UTF-8 какой-то текст на русском про киевскую русь и славян. Спам, однозначно


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 05:49:32 PM
сжечь ненужные utxo, пока это не так убыточно.
Ну, тут рассуждать о логике трудно. Будешь ждать вывода по 1 сатоши -- так найдется кто-то, кто выведет себе заплатив 2 сатоши за байт. Я гляжу -- технологии совершенствуются: я на скорую руку сделал транзакцию из такого рода "потеряшек", поставил ей комиссию 5 сатоши и запузырил. Что бы вы думали? Правильно! Кто-то поменял в транзакции выход (без требования подписей это несложно сделать) увеличил комсу до 6 сатоши и забрал мелочёвку себе. Ну а что еще можно было ожидать? Я когда-то сам такими вещами баловался. Респект и уважуха. На пуле это сделать совсем просто, но теоретически можно и в диком виде перехватить и надеяться что никто другой не перехватит.
https://www.blockchain.com/explorer/transactions/btc/610c656da4f7f2698856b9b505414f625f6d3223da282baa0b94455577393c0d
Любопытно.
Можете сами посмотреть приходы на адрес 1K8Q1PwgHrCTFGMrrrm7XaxCcn6JTc5YBX
Он даже с TapRoot что-то умеет тырить, тоже наверное, просто копирует. Но тут надо понимать что можно скопировать, а что нельзя.


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 07, 2024, 06:49:00 PM
Будешь ждать вывода по 1 сатоши -- так найдется кто-то, кто выведет себе заплатив 2 сатоши за байт.
А зачем отправлять в мемпулы раньше времени? Дождаться 1 сат/вб, а потом уж броадкастить, и тогда, может быть, никто не украдет :). До меня теперь дошло, почему в тех транзакциях с консолидацией utxo по 330 сат была выбрана именно такая комиссия - чтобы ботами не сторожить транзу, потому что никто не будет ее воровать, так как добавив 1 сат/вб (а меньше нельзя) всё уйдет на комсу, - нет смысла.
Quote
Любопытно.
Можете сами посмотреть приходы на адрес 1K8Q1PwgHrCTFGMrrrm7XaxCcn6JTc5YBX
Он даже с TapRoot что-то умеет тырить, тоже наверное, просто копирует. Но тут надо понимать что можно скопировать, а что нельзя.
Мне не хватает знаний, чтобы постичь, где он там что-то тырит. Не вижу ничего криминального.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 07, 2024, 07:38:06 PM
А зачем отправлять в мемпулы раньше времени? Дождаться 1 сат/вб, а потом уж броадкастить, и тогда, может быть, никто не украдет :)
Я ещё сам не всё понял, здесь выбор магического числа 330 сатоши как-то связан с закрытием каналов в лайтнинге. Это, скажем так, побочный эффект. Не бага, но непреднамеренная фича возросших в какой-то момент комиссий. Извините, я только сегодня про это узнал, даже на пальцах объяснить не могу. Даже не уверен в правильности.
Quote
До меня теперь дошло, почему в тех транзакциях с консолидацией utxo по 330 сат была выбрана именно такая комиссия - чтобы ботами не сторожить транзу, потому что никто не будет ее воровать, так как добавив 1 сат/вб (а меньше нельзя) всё уйдет на комсу, - нет смысла.
Вроденет, это что-то связанное с CPFP — сторона закрывающая контракт получает небольшой бонус, который можно использовать для проталкивания. Пока это никому не требовалось — никто и не парился.
Quote
Мне не хватает знаний, чтобы постичь, где он там что-то тырит. Не вижу ничего криминального.
В блокчейне по определению нет ничего криминального. Всё проверено алгоритмом. Каждый пользователь биткойна соглашается работать по правилам, которые в данный конкретный момент записаны к коде клиента. К чести разработчиков оригинального биткойна — они ни разу с 2009 года не отступили от этого (в отличие от авторов хард-форков). Опять же, я не оцениваю это в терминах хорошо/плохо. Тащить за собой в коде концепцию 15-летней давности — так себе удовольствие.

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


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 08, 2024, 03:38:20 AM
здесь выбор магического числа 330 сатоши как-то связан с закрытием каналов в лайтнинге
Почему 330 - это понятно, цифра стандартная - минимальный размер utxo для p2wsh: (67vb вход+43vb выход)*3. Так же, как и для p2pkh магическая цифра 546=(148+34)*3, а для p2wpkh 294=(67+31)*3. Хотя тут входы нетипичные, без подписей, поэтому весят только 51.75vbytes, но видимо меньше 330 сат нельзя для p2wsh в любом случае, не знаю.
Quote
Quote
До меня теперь дошло, почему в тех транзакциях с консолидацией utxo по 330 сат была выбрана именно такая комиссия - чтобы ботами не сторожить транзу, потому что никто не будет ее воровать, так как добавив 1 сат/вб (а меньше нельзя) всё уйдет на комсу, - нет смысла.
Вроденет, это что-то связанное с CPFP — сторона закрывающая контракт получает небольшой бонус, который можно использовать для проталкивания. Пока это никому не требовалось — никто и не парился.
Не понял, при чем тут CPFP. А я как рассуждал? Потрачено было 330 sat * 238 входов = 78540 sat, что по тарифу 5.355478 sat/vb стоило 66183 sat комиссии. Если тариф увеличить до 6.355478 sat/vb, то получается 66183*6.355478/5.355478 = 78541 sat, что всего на 1 сатоши больше потраченной сумме. Полагаю, это не совпадение, а так и было задумано.
Quote
И каждый желающий может собственноручно проверить, что ни один сатоши не был эмитирован лишним и никто не нарушил правила. Но сколько людей на планете могут реально сделать это сами, а не надеяться на других?
Столько, сколько сможет прочитать и понять исходники биткоина. Наверное, не слишком много, но, надеюсь, достаточно.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 08, 2024, 03:53:56 AM
Хотя тут входы нетипичные, без подписей, поэтому весят только 51.75vbytes, но видимо меньше 330 сат нельзя для p2wsh в любом случае, не знаю.
В момент записи в блокчейн никто не знает сколько байтов займет потом тратящая транзакция. 546 байтов было выбрано когда 95% транзакций были p2pkh и для p2sh выходов (про которые я говорил выше) цифра уже не подходит. Видимо, на заре сегвита кто-то решил выпендриться и закинул в код другую константу
Quote
Не понял, при чем тут CPFP
я имел в виду, что штатная надобность в этом выходе может заключаться в том, что закрывающая лайтнинг-канал сторона может воспользоваться этой добавочкой, так как в отличие от всего мира знает redeem-script сразу же. Почему в блокчейне так в результате лайтнинга намусорили? Видимо, иначе в тот момент не придумали.


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 08, 2024, 04:15:33 AM
В момент записи в блокчейн никто не знает сколько байтов займет потом тратящая транзакция.
Не знает, потому что неизвестны выходы тратящей транзакции, так как она в общем случае чужая. Но это и не надо знать, достаточно знать, сколько весит utxo на выходе моей транзакции, и сколько вбайтов займет доказательство его владения в следующей чужой. И сумму вбайт выхода и входа потом умножить на константу DUST_RELAY_TX_FEE, которая равна 3 sat/vb (интересно, кстати, почему выбрали 3, а не 2 или 5?).
Quote
Quote
Не понял, при чем тут CPFP
я имел в виду, что штатная надобность в этом выходе может заключаться в том, что закрывающая лайтнинг-канал сторона может воспользоваться этой добавочкой, так как в отличие от всего мира знает redeem-script сразу же.
Более-менее понятно, спасибо.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 08, 2024, 05:53:51 AM
Но это и не надо знать, достаточно знать, сколько весит utxo на выходе моей транзакции, и сколько вбайтов займет доказательство его владения в следующей чужой. И сумму вбайт выхода и входа
Когда на пуле майнер выбирает из пула еще неподтвержденных в блок транзакций те, которые ему хочется включить в свой блок -- он не парится подсчетами сколько весят входы и выходы. Он просто отсеивает "нестандартные" транзакции. А в коде где-то зашит алгоритм (приблизительно) "если это сегвит-выход, минимальным допустимым пересылаемым значением является 330, если OP_RETURN ноль, все остальное 546". (Код клиента смотреть лень, меня от него тошнить начинает, но если хотите -- проверим вместе).

Тот же самый фильтр "стандартная/нестандартная" применяют узлы при пересылке транзакций, поэтому до пула нестандартные транзакции и не добираются.

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


Title: Re: Замусоривание блокчейна
Post by: Julien_Olynpic on July 13, 2024, 04:12:57 AM
Quote
Экономического смысла точно нет. Конечно, может кто-то верит, что такого рода действия вынуждают остальных юзеров платить больше комиссий и вообще нахваливать прекрасное будущее и туземун. А как вы думаете?
Одно время по этому поводу читал одну конспирологическую теорию (может даже не совсем бредовую), что это, мол, некто посылает некие знаки свои респондентам. А в этих рассылках, якобы, зашифрованы тайные послания по управлению ценой. Поскольку экономического смысла в этих транзакциях нет, значит присутствуют некие послания. Хотя также нельзя исключить что какие-то долбаёбы небедные пользователи забавляются  созданием головоломок для аналитиков блокчейна.
--------
Амаклин вроде биткойн-скептиком быть перестал или это ложное ощущение? ;D ;D ;D


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 06:15:39 AM
Поскольку экономического смысла в этих транзакциях нет, значит присутствуют некие послания.
Да выяснили, что это некий побочный продукт реализации лайтнинга. У нас ведь как? Типа лайтнинг сделан был для того, чтобы не замусоривать блокчейн. Но что-то пошло не так  ;D.
Quote
Амаклин вроде биткойн-скептиком быть перестал или это ложное ощущение?
Ощущение ложное. Я по-прежнему считаю, что это дело на#бнется рано или поздно по объективной причине того, что поддерживать безопасность блокчейна слишком дорогое удовольствие. Но эта уверенность не мешает мне исследовать как всё это внутри работает. И в принципе, даже использование биткойнов я для себя не исключаю -- в наше страшное время другие способы перевода денег пропадают.
Вот посвятил прошлую неделю изучению Schnorr-алгоритмов. Интересно аж жуть. Могу теперь на пальцах рассказать. Сатоши использовал алгоритмы ECDSA, он банально тупо подключил в свой код OpenSSL-библиотеку. Он, возможно и про компрессированные публичные ключи не знал, потому что использовал классические. Ну да ладно, его код прекрасно продолжил работу когда все стали использовать короткий вариант публичного ключа. Я не об этом.
Когда сделали сегвит -- это позволило весь консенсус-код забыть нахрен. Ща обьясню логику.
Основной принцип биткойна от Накамото: "вот вам алгоритм проверки и теперь пока у сети будет консенсус (общее мнение участников), то для операций не нужна третья сторона". Разработчики биткойна холили и лелеяли этот тезис (хотя в гениальности этого тезиса я сомневаюсь). Они не меняли принцип (в отличие от разработчиков хард-форков). Но теперь с помощью сегвита и тапрута вся идеология поменялась. Транзакции теперь из разряда "anyone-can-spend" (с точки зрения оригинального клиента 10-летней давности), а вся логика написана в скриптах внутри витнесс-части. То есть консенсус-соглашение вроде как не нарушено. Но на низком уровне всё изменилось.
Как вам объяснить это? Ну представьте, в каком-то городе по какой-то причине решили что "можно ездить на телегах, а на автомобилях нельзя, потому что ДВС загрязняет воздух". Но умельцы внутрь телеги засунули ракетный двигатель. По факту - телега осталась телегой. И ДВС нет. Никто закон не нарушает. Но логика полностью перевернута.


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 13, 2024, 08:31:12 AM
Вот посвятил прошлую неделю изучению Schnorr-алгоритмов. Интересно аж жуть. Могу теперь на пальцах рассказать.
Интересно было бы ознакомиться с популярным изложением (для не особо грамотных) работы подписей Шнорра.
Quote
Сатоши использовал алгоритмы ECDSA, он банально тупо подключил в свой код OpenSSL-библиотеку. Он, возможно и про компрессированные публичные ключи не знал, потому что использовал классические. Ну да ладно, его код прекрасно продолжил работу когда все стали использовать короткий вариант публичного ключа. Я не об этом.
Когда сделали сегвит -- это позволило весь консенсус-код забыть нахрен. Ща обьясню логику.
Основной принцип биткойна от Накамото: "вот вам алгоритм проверки и теперь пока у сети будет консенсус (общее мнение участников), то для операций не нужна третья сторона". Разработчики биткойна холили и лелеяли этот тезис (хотя в гениальности этого тезиса я сомневаюсь). Они не меняли принцип (в отличие от разработчиков хард-форков). Но теперь с помощью сегвита и тапрута вся идеология поменялась. Транзакции теперь из разряда "anyone-can-spend" (с точки зрения оригинального клиента 10-летней давности), а вся логика написана в скриптах внутри витнесс-части. То есть консенсус-соглашение вроде как не нарушено. Но на низком уровне всё изменилось.
А сейчас уже нужна "третья сторона"? Алгоритм немного изменился, но в чем его ущербность?
Quote
Как вам объяснить это? Ну представьте, в каком-то городе по какой-то причине решили что "можно ездить на телегах, а на автомобилях нельзя, потому что ДВС загрязняет воздух". Но умельцы внутрь телеги засунули ракетный двигатель. По факту - телега осталась телегой. И ДВС нет. Никто закон не нарушает. Но логика полностью перевернута.
Сомневаюсь, что это адекватная аналогия.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 11:29:54 AM
Интересно было бы ознакомиться с популярным изложением (для не особо грамотных) работы подписей Шнорра.
Совсем уж на пальцах не могу пока внятно сам объяснить. Но в целом там разработчики избавились от каких-то конструкций, связанных с "стандартизацией". То есть там теперь нет завязок на "лишние" байтики. Приватный ключ - 32 байта (так и раньше было). Публичный ключ - 32 байта (было 33 или 65), подпись - 32+32 байта (раньше было переменной длины около 72 байтов). Крутим-вертим-хешируем -- если ответ сошелся -- значит подпись верная. А вот понять почему -- это пипец непонятно. Как там работают эллиптические кривые и почему вот такое умножение и сложение в группе -- это я пока не осилил. Должно улежаться в голове. Я, конечно, дискретную математику люблю. Первое знакомство еще в 9-ом классе было. Но эллиптические кривые -- это все-таки не школьная программа. Мы и в университетах это не проходили.
Quote
А сейчас уже нужна "третья сторона"? Алгоритм немного изменился, но в чем его ущербность?
Не совсем так, конечно. Сатоши нам что завещал? Типа каждый может проверить клиента и правильность алгоритма. Сейчас проверить алгоритм самого блокчейна -- это задача со многими звездочками. Думаю, считанное число людей в мире могут это. Остальным приходится полагаться просто на то, что клиент работает правильно. Мы все равно ушли от концепции "каждый сам себе банк"


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 13, 2024, 12:05:02 PM
Сатоши нам что завещал? Типа каждый может проверить клиента и правильность алгоритма. Сейчас проверить алгоритм самого блокчейна -- это задача со многими звездочками.
Вот здесь мне непонятно, что вы имеете в виду. Если раньше для проверки блокчейна нужно было посчитать хеш транзакций в блоке, затем дерево Меркла, и, наконец, хеш заголовка блока, то с появлением сегвита работы стало в два раза больше по объему (дополнительно надо посчитать хеш witness, их дерево и сравнить с значением в op_return коинбейз-транзакции), но не по сложности. То есть те, кто раньше мог такое сделать, те и сейчас могут.


Title: Re: Замусоривание блокчейна
Post by: satscraper on July 13, 2024, 12:34:53 PM


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

Вообщем-то да, если майнеру хорошо заплатить да ещё и мимо кассы, то он может любой муссор/транзакцию в блок засунуть с нарушением всех норм и правил. Вот пример такой транзакции https://mempool.space/tx/0301e0480b374b32851a9462db29dc19fe830a7f7d7a88b81612b9d42099c0ae


Просто подобные  ходы майнеров сильно не афишируются и мы мало о них знаем.


Title: Re: Замусоривание блокчейна
Post by: Smartprofit on July 13, 2024, 12:39:50 PM
Интересно было бы ознакомиться с популярным изложением (для не особо грамотных) работы подписей Шнорра.
Совсем уж на пальцах не могу пока внятно сам объяснить. Но в целом там разработчики избавились от каких-то конструкций, связанных с "стандартизацией". То есть там теперь нет завязок на "лишние" байтики. Приватный ключ - 32 байта (так и раньше было). Публичный ключ - 32 байта (было 33 или 65), подпись - 32+32 байта (раньше было переменной длины около 72 байтов). Крутим-вертим-хешируем -- если ответ сошелся -- значит подпись верная. А вот понять почему -- это пипец непонятно. Как там работают эллиптические кривые и почему вот такое умножение и сложение в группе -- это я пока не осилил. Должно улежаться в голове. Я, конечно, дискретную математику люблю. Первое знакомство еще в 9-ом классе было. Но эллиптические кривые -- это все-таки не школьная программа. Мы и в университетах это не проходили.
Quote
А сейчас уже нужна "третья сторона"? Алгоритм немного изменился, но в чем его ущербность?
Не совсем так, конечно. Сатоши нам что завещал? Типа каждый может проверить клиента и правильность алгоритма. Сейчас проверить алгоритм самого блокчейна -- это задача со многими звездочками. Думаю, считанное число людей в мире могут это. Остальным приходится полагаться просто на то, что клиент работает правильно. Мы все равно ушли от концепции "каждый сам себе банк"

Я помню Сатоши Накамото писал, что не все пользователи Биткоина будут использовать полные ноды, некоторым достаточно и лёгкого клиента (вроде сегодняшнего криптовалютного кошелька Electrum).
То есть он предполагал, что в будущем пользователи будут дифференцироваться (хотя бы по технической квалификации и по применяемому оборудованию / Electrum же можно и со смартфона использовать /).
Поэтому концепция "Каждый сам себе банк" - она же осталась. Просто частные банки (они же любители Биткоина) стали больше ориентироваться на работу с поставщиками и подрядчиками (а не все делать сами).
Возможно этого избежать невозможно - внешние вызовы приводят к усложнению системы.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 12:59:48 PM
Если раньше для проверки блокчейна нужно было посчитать хеш транзакций в блоке, затем...
Прежде всего этого надо было проверить что транзакция сама по себе валидна.

Напомню: "выходы" и "входы" - это "загадка" и "разгадка"
Самые первые транзакции были P2PK, когда загадкой было "вот публичный ключ, дай подпись"  и разгадкой собственно "на тебе подпись этим ключом, проверяй!"
Потом появились P2PKH, загадка стала "вот хэш публичного ключа, предъяви его самого и подпиши им". Эти адреса мы знаем как 1ххххх
Потом появились P2SH, загадка стала "вот хеш загадки, предъяви загадку, и дай разгадку к ней, разумеется". Это 3ххххххх
Теперь в Segwit-V0 и Taproot загадка звучит "да пофиг, угадал", а всё остальная проверка вынесена в witness-часть. То есть scriptSig тоже пустой, ибо это самый простой ответ на такую загадку. А сама загадка, условно говоря, на китайском языке.

По факту, консенсус соблюден. Ничего не нарушено с 2009 года. Но это формально. По сути дела куча геморроя связанная с обратной совместимостью. И если в концепции Сатоши как-то подразумевалось "ну почти каждый может проверить используя популярные, общедоступные и стандартизированные средства", то сейчас уже это мало кому доступно. Идея потерялась. Осталась только вера в вечный туземун :)


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 13, 2024, 01:23:32 PM
Вообщем-то да, если майнеру хорошо заплатить да ещё и мимо кассы, то он может любой муссор/транзакцию в блок засунуть с нарушением всех норм и правил. Вот пример такой транзакции https://mempool.space/tx/0301e0480b374b32851a9462db29dc19fe830a7f7d7a88b81612b9d42099c0ae
У майнера, конечно, больше возможностей, чем у простого юзера, но всё-таки правила он нарушать не может, тут вы немного преувеличили ).

Я помню Сатоши Накамото писал, что не все пользователи Биткоина будут использовать полные ноды, некоторым достаточно и лёгкого клиента (вроде сегодняшнего криптовалютного кошелька Electrum).
Electrum не совсем SPV-кошелек, о котором писал Сатоши, лишь отчасти.

Теперь в Segwit-V0 и Taproot загадка звучит "да пофиг, угадал", а всё остальная проверка вынесена в witness-часть. То есть scriptSig тоже пустой, ибо это самый простой ответ на такую загадку. А сама загадка, условно говоря, на китайском языке.

По факту, консенсус соблюден. Ничего не нарушено с 2009 года. Но это формально. По сути дела куча геморроя связанная с обратной совместимостью. И если в концепции Сатоши как-то подразумевалось "ну почти каждый может проверить используя популярные, общедоступные и стандартизированные средства", то сейчас уже это мало кому доступно. Идея потерялась. Осталась только вера в вечный туземун :)
На китайском потому, что сатошин клиент его не понимает? Ну а как иначе прогрессировать? Да и сколько их осталось, тех древних нод? В общем, не вижу проблемы в переносе скриптов/подписей в witness-часть, по большому счету это ничего не меняет в плане проверяемости транзакций. Наверное, недостаточно глубоко понимаю предмет.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 02:11:23 PM
У майнера, конечно, больше возможностей, чем у простого юзера, но всё-таки правила он нарушать не может, тут вы немного преувеличили ).
Есть правила, а есть полиси. Правила никто не может нарушать. Ну вернее все просто проигнорируют это нарушение, как будто человек и не делал ничего. Поэтому мы и не видим нарушений - караван идет дальше, кто нарушил -- тот просто отстал.

Quote
На китайском потому, что сатошин клиент его не понимает? Ну а как иначе прогрессировать? Да и сколько их осталось, тех древних нод? В общем, не вижу проблемы в переносе скриптов/подписей в witness-часть, по большому счету это ничего не меняет в плане проверяемости транзакций. Наверное, недостаточно глубоко понимаю предмет.
Отлично понимаете. Старому клиенту (если такие остались) просто показывают без витнес-части. А там всё гладко. Все загадки "да?", все разгадки "ну да!"

А в чем смысл было городить огород с ограничением размера блока? Чтобы не было спама? Ну так нашли способ, как в столитровую бочку наливать 400 литров не меняя правила. А кто-то и цистерну на три тонны налил (спасибо за ссылку на хитрую транзакцию, потом гляну повнимательнее).

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


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 02:57:23 PM
Не, ну обидно немного.
Вот стараюсь я, посылаю хитрую транзакцию
А по дороге ее перехватывает какой-то Робин Гуд (на него я уже обращал внимание), увеличивает в ней комиссию на децл и отправляет себе
https://www.blockchain.com/explorer/transactions/btc/17ff2104878f430fd7e16d9bc77f109392b830f11ead924ff8bd458b44995da0
Просто подарил ему 700 баксов честно найденные в блокчейне! Грр! (тут нужен злобный смайлик)
Какие-то изменения в RBF последнее время были? Может я не учел этого? Раньше как-то транзакция успевала разойтись и даблспенднуть ее было не так просто.
Придется как-то извращаться.


Title: Re: Замусоривание блокчейна
Post by: igor72 on July 13, 2024, 03:09:45 PM
А в чем смысл было городить огород с ограничением размера блока? Чтобы не было спама? Ну так нашли способ, как в столитровую бочку наливать 400 литров не меняя правила. А кто-то и цистерну на три тонны налил (спасибо за ссылку на хитрую транзакцию, потом гляну повнимательнее).
Эти inscriptions стали возможным благодаря тапруту, а не сегвиту. Недосмотрели что-то там разрабы, ну теперь уж поздно, джина выпустили из бутылки.

Какие-то изменения в RBF последнее время были? Может я не учел этого? Раньше как-то транзакция успевала разойтись и даблспенднуть ее было не так просто.
Да, были. Full-RBF появился (в 24 версии, кажется), теперь на нодах, где он включен, транзакции даблспендятся и без rbf-флага.


Title: Re: Замусоривание блокчейна
Post by: amaclin1 on July 13, 2024, 03:38:29 PM
Да, были. Full-RBF появился (в 24 версии, кажется), теперь на нодах, где он включен, транзакции даблспендятся и без rbf-флага.
Премного благодарен за подсказку что и где искать. Теперь буду смотреть как это реализовано и как помешать даблспенду. Единственная идея - подмешивать в транзакцию инпут, который нельзя просто так взять и заменить. Но не факт, что даблспенд не возможен от части транзакции. Надо пробовать.
Еще обратил внимание что мой клиент (Core, разумеется у меня версия базы полная, без пруне) в списке узлов теперь некоторые пиры показывает тип: "полный ретранслятор" или "ретранслятор блоков"
У меня вопрос если знаете ответ. Вопрос из двух частей
1) если узел "ретранслятор блоков" то есть смысл к нему коннектиться для отправки транзакций? Или он только блоки ретранслирует? И смысла нет
2) я для максимального распространения моей транзакции запустил клиента с опцией -maxconnections=50 . И что? И них#я! он показывает коннект к 10 пирам через час работы. Баг? Или я что-то неправильно понимаю?