Pages:
Author

Topic: Замусоривание блокчейна - page 4. (Read 875 times)

sr. member
Activity: 770
Merit: 305
Да, были. Full-RBF появился (в 24 версии, кажется), теперь на нодах, где он включен, транзакции даблспендятся и без rbf-флага.
Премного благодарен за подсказку что и где искать. Теперь буду смотреть как это реализовано и как помешать даблспенду. Единственная идея - подмешивать в транзакцию инпут, который нельзя просто так взять и заменить. Но не факт, что даблспенд не возможен от части транзакции. Надо пробовать.
Еще обратил внимание что мой клиент (Core, разумеется у меня версия базы полная, без пруне) в списке узлов теперь некоторые пиры показывает тип: "полный ретранслятор" или "ретранслятор блоков"
У меня вопрос если знаете ответ. Вопрос из двух частей
1) если узел "ретранслятор блоков" то есть смысл к нему коннектиться для отправки транзакций? Или он только блоки ретранслирует? И смысла нет
2) я для максимального распространения моей транзакции запустил клиента с опцией -maxconnections=50 . И что? И них#я! он показывает коннект к 10 пирам через час работы. Баг? Или я что-то неправильно понимаю?
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
А в чем смысл было городить огород с ограничением размера блока? Чтобы не было спама? Ну так нашли способ, как в столитровую бочку наливать 400 литров не меняя правила. А кто-то и цистерну на три тонны налил (спасибо за ссылку на хитрую транзакцию, потом гляну повнимательнее).
Эти inscriptions стали возможным благодаря тапруту, а не сегвиту. Недосмотрели что-то там разрабы, ну теперь уж поздно, джина выпустили из бутылки.

Какие-то изменения в RBF последнее время были? Может я не учел этого? Раньше как-то транзакция успевала разойтись и даблспенднуть ее было не так просто.
Да, были. Full-RBF появился (в 24 версии, кажется), теперь на нодах, где он включен, транзакции даблспендятся и без rbf-флага.
sr. member
Activity: 770
Merit: 305
Не, ну обидно немного.
Вот стараюсь я, посылаю хитрую транзакцию
А по дороге ее перехватывает какой-то Робин Гуд (на него я уже обращал внимание), увеличивает в ней комиссию на децл и отправляет себе
https://www.blockchain.com/explorer/transactions/btc/17ff2104878f430fd7e16d9bc77f109392b830f11ead924ff8bd458b44995da0
Просто подарил ему 700 баксов честно найденные в блокчейне! Грр! (тут нужен злобный смайлик)
Какие-то изменения в RBF последнее время были? Может я не учел этого? Раньше как-то транзакция успевала разойтись и даблспенднуть ее было не так просто.
Придется как-то извращаться.
sr. member
Activity: 770
Merit: 305
У майнера, конечно, больше возможностей, чем у простого юзера, но всё-таки правила он нарушать не может, тут вы немного преувеличили ).
Есть правила, а есть полиси. Правила никто не может нарушать. Ну вернее все просто проигнорируют это нарушение, как будто человек и не делал ничего. Поэтому мы и не видим нарушений - караван идет дальше, кто нарушил -- тот просто отстал.

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

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

Теоретически, есть возможность расширения биткойн-блока до бесконечности, причем он по-прежнему останется "мегабайт в старом исчислении".
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Вообщем-то да, если майнеру хорошо заплатить да ещё и мимо кассы, то он может любой муссор/транзакцию в блок засунуть с нарушением всех норм и правил. Вот пример такой транзакции https://mempool.space/tx/0301e0480b374b32851a9462db29dc19fe830a7f7d7a88b81612b9d42099c0ae
У майнера, конечно, больше возможностей, чем у простого юзера, но всё-таки правила он нарушать не может, тут вы немного преувеличили ).

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

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

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

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

По факту, консенсус соблюден. Ничего не нарушено с 2009 года. Но это формально. По сути дела куча геморроя связанная с обратной совместимостью. И если в концепции Сатоши как-то подразумевалось "ну почти каждый может проверить используя популярные, общедоступные и стандартизированные средства", то сейчас уже это мало кому доступно. Идея потерялась. Осталась только вера в вечный туземун Smiley
legendary
Activity: 2338
Merit: 1775
Catalog Websites
hero member
Activity: 714
Merit: 1298


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

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


Просто подобные  ходы майнеров сильно не афишируются и мы мало о них знаем.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Сатоши нам что завещал? Типа каждый может проверить клиента и правильность алгоритма. Сейчас проверить алгоритм самого блокчейна -- это задача со многими звездочками.
Вот здесь мне непонятно, что вы имеете в виду. Если раньше для проверки блокчейна нужно было посчитать хеш транзакций в блоке, затем дерево Меркла, и, наконец, хеш заголовка блока, то с появлением сегвита работы стало в два раза больше по объему (дополнительно надо посчитать хеш witness, их дерево и сравнить с значением в op_return коинбейз-транзакции), но не по сложности. То есть те, кто раньше мог такое сделать, те и сейчас могут.
sr. member
Activity: 770
Merit: 305
Интересно было бы ознакомиться с популярным изложением (для не особо грамотных) работы подписей Шнорра.
Совсем уж на пальцах не могу пока внятно сам объяснить. Но в целом там разработчики избавились от каких-то конструкций, связанных с "стандартизацией". То есть там теперь нет завязок на "лишние" байтики. Приватный ключ - 32 байта (так и раньше было). Публичный ключ - 32 байта (было 33 или 65), подпись - 32+32 байта (раньше было переменной длины около 72 байтов). Крутим-вертим-хешируем -- если ответ сошелся -- значит подпись верная. А вот понять почему -- это пипец непонятно. Как там работают эллиптические кривые и почему вот такое умножение и сложение в группе -- это я пока не осилил. Должно улежаться в голове. Я, конечно, дискретную математику люблю. Первое знакомство еще в 9-ом классе было. Но эллиптические кривые -- это все-таки не школьная программа. Мы и в университетах это не проходили.
Quote
А сейчас уже нужна "третья сторона"? Алгоритм немного изменился, но в чем его ущербность?
Не совсем так, конечно. Сатоши нам что завещал? Типа каждый может проверить клиента и правильность алгоритма. Сейчас проверить алгоритм самого блокчейна -- это задача со многими звездочками. Думаю, считанное число людей в мире могут это. Остальным приходится полагаться просто на то, что клиент работает правильно. Мы все равно ушли от концепции "каждый сам себе банк"
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Вот посвятил прошлую неделю изучению Schnorr-алгоритмов. Интересно аж жуть. Могу теперь на пальцах рассказать.
Интересно было бы ознакомиться с популярным изложением (для не особо грамотных) работы подписей Шнорра.
Quote
Сатоши использовал алгоритмы ECDSA, он банально тупо подключил в свой код OpenSSL-библиотеку. Он, возможно и про компрессированные публичные ключи не знал, потому что использовал классические. Ну да ладно, его код прекрасно продолжил работу когда все стали использовать короткий вариант публичного ключа. Я не об этом.
Когда сделали сегвит -- это позволило весь консенсус-код забыть нахрен. Ща обьясню логику.
Основной принцип биткойна от Накамото: "вот вам алгоритм проверки и теперь пока у сети будет консенсус (общее мнение участников), то для операций не нужна третья сторона". Разработчики биткойна холили и лелеяли этот тезис (хотя в гениальности этого тезиса я сомневаюсь). Они не меняли принцип (в отличие от разработчиков хард-форков). Но теперь с помощью сегвита и тапрута вся идеология поменялась. Транзакции теперь из разряда "anyone-can-spend" (с точки зрения оригинального клиента 10-летней давности), а вся логика написана в скриптах внутри витнесс-части. То есть консенсус-соглашение вроде как не нарушено. Но на низком уровне всё изменилось.
А сейчас уже нужна "третья сторона"? Алгоритм немного изменился, но в чем его ущербность?
Quote
Как вам объяснить это? Ну представьте, в каком-то городе по какой-то причине решили что "можно ездить на телегах, а на автомобилях нельзя, потому что ДВС загрязняет воздух". Но умельцы внутрь телеги засунули ракетный двигатель. По факту - телега осталась телегой. И ДВС нет. Никто закон не нарушает. Но логика полностью перевернута.
Сомневаюсь, что это адекватная аналогия.
sr. member
Activity: 770
Merit: 305
Поскольку экономического смысла в этих транзакциях нет, значит присутствуют некие послания.
Да выяснили, что это некий побочный продукт реализации лайтнинга. У нас ведь как? Типа лайтнинг сделан был для того, чтобы не замусоривать блокчейн. Но что-то пошло не так  Grin.
Quote
Амаклин вроде биткойн-скептиком быть перестал или это ложное ощущение?
Ощущение ложное. Я по-прежнему считаю, что это дело на#бнется рано или поздно по объективной причине того, что поддерживать безопасность блокчейна слишком дорогое удовольствие. Но эта уверенность не мешает мне исследовать как всё это внутри работает. И в принципе, даже использование биткойнов я для себя не исключаю -- в наше страшное время другие способы перевода денег пропадают.
Вот посвятил прошлую неделю изучению Schnorr-алгоритмов. Интересно аж жуть. Могу теперь на пальцах рассказать. Сатоши использовал алгоритмы ECDSA, он банально тупо подключил в свой код OpenSSL-библиотеку. Он, возможно и про компрессированные публичные ключи не знал, потому что использовал классические. Ну да ладно, его код прекрасно продолжил работу когда все стали использовать короткий вариант публичного ключа. Я не об этом.
Когда сделали сегвит -- это позволило весь консенсус-код забыть нахрен. Ща обьясню логику.
Основной принцип биткойна от Накамото: "вот вам алгоритм проверки и теперь пока у сети будет консенсус (общее мнение участников), то для операций не нужна третья сторона". Разработчики биткойна холили и лелеяли этот тезис (хотя в гениальности этого тезиса я сомневаюсь). Они не меняли принцип (в отличие от разработчиков хард-форков). Но теперь с помощью сегвита и тапрута вся идеология поменялась. Транзакции теперь из разряда "anyone-can-spend" (с точки зрения оригинального клиента 10-летней давности), а вся логика написана в скриптах внутри витнесс-части. То есть консенсус-соглашение вроде как не нарушено. Но на низком уровне всё изменилось.
Как вам объяснить это? Ну представьте, в каком-то городе по какой-то причине решили что "можно ездить на телегах, а на автомобилях нельзя, потому что ДВС загрязняет воздух". Но умельцы внутрь телеги засунули ракетный двигатель. По факту - телега осталась телегой. И ДВС нет. Никто закон не нарушает. Но логика полностью перевернута.
legendary
Activity: 2534
Merit: 3373
Quote
Экономического смысла точно нет. Конечно, может кто-то верит, что такого рода действия вынуждают остальных юзеров платить больше комиссий и вообще нахваливать прекрасное будущее и туземун. А как вы думаете?
Одно время по этому поводу читал одну конспирологическую теорию (может даже не совсем бредовую), что это, мол, некто посылает некие знаки свои респондентам. А в этих рассылках, якобы, зашифрованы тайные послания по управлению ценой. Поскольку экономического смысла в этих транзакциях нет, значит присутствуют некие послания. Хотя также нельзя исключить что какие-то долбаёбы небедные пользователи забавляются  созданием головоломок для аналитиков блокчейна.
--------
Амаклин вроде биткойн-скептиком быть перестал или это ложное ощущение? Grin Grin Grin
sr. member
Activity: 770
Merit: 305
Но это и не надо знать, достаточно знать, сколько весит utxo на выходе моей транзакции, и сколько вбайтов займет доказательство его владения в следующей чужой. И сумму вбайт выхода и входа
Когда на пуле майнер выбирает из пула еще неподтвержденных в блок транзакций те, которые ему хочется включить в свой блок -- он не парится подсчетами сколько весят входы и выходы. Он просто отсеивает "нестандартные" транзакции. А в коде где-то зашит алгоритм (приблизительно) "если это сегвит-выход, минимальным допустимым пересылаемым значением является 330, если OP_RETURN ноль, все остальное 546". (Код клиента смотреть лень, меня от него тошнить начинает, но если хотите -- проверим вместе).

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

Всякие вопросы "сколько будут весить входы" беспокоят лишь создателей транзакций, если они трясутся над каждым сатоши комиссии. Всем остальным по#уй.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
В момент записи в блокчейн никто не знает сколько байтов займет потом тратящая транзакция.
Не знает, потому что неизвестны выходы тратящей транзакции, так как она в общем случае чужая. Но это и не надо знать, достаточно знать, сколько весит utxo на выходе моей транзакции, и сколько вбайтов займет доказательство его владения в следующей чужой. И сумму вбайт выхода и входа потом умножить на константу DUST_RELAY_TX_FEE, которая равна 3 sat/vb (интересно, кстати, почему выбрали 3, а не 2 или 5?).
Quote
Quote
Не понял, при чем тут CPFP
я имел в виду, что штатная надобность в этом выходе может заключаться в том, что закрывающая лайтнинг-канал сторона может воспользоваться этой добавочкой, так как в отличие от всего мира знает redeem-script сразу же.
Более-менее понятно, спасибо.
sr. member
Activity: 770
Merit: 305
Хотя тут входы нетипичные, без подписей, поэтому весят только 51.75vbytes, но видимо меньше 330 сат нельзя для p2wsh в любом случае, не знаю.
В момент записи в блокчейн никто не знает сколько байтов займет потом тратящая транзакция. 546 байтов было выбрано когда 95% транзакций были p2pkh и для p2sh выходов (про которые я говорил выше) цифра уже не подходит. Видимо, на заре сегвита кто-то решил выпендриться и закинул в код другую константу
Quote
Не понял, при чем тут CPFP
я имел в виду, что штатная надобность в этом выходе может заключаться в том, что закрывающая лайтнинг-канал сторона может воспользоваться этой добавочкой, так как в отличие от всего мира знает redeem-script сразу же. Почему в блокчейне так в результате лайтнинга намусорили? Видимо, иначе в тот момент не придумали.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
здесь выбор магического числа 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
И каждый желающий может собственноручно проверить, что ни один сатоши не был эмитирован лишним и никто не нарушил правила. Но сколько людей на планете могут реально сделать это сами, а не надеяться на других?
Столько, сколько сможет прочитать и понять исходники биткоина. Наверное, не слишком много, но, надеюсь, достаточно.
sr. member
Activity: 770
Merit: 305
А зачем отправлять в мемпулы раньше времени? Дождаться 1 сат/вб, а потом уж броадкастить, и тогда, может быть, никто не украдет Smiley
Я ещё сам не всё понял, здесь выбор магического числа 330 сатоши как-то связан с закрытием каналов в лайтнинге. Это, скажем так, побочный эффект. Не бага, но непреднамеренная фича возросших в какой-то момент комиссий. Извините, я только сегодня про это узнал, даже на пальцах объяснить не могу. Даже не уверен в правильности.
Quote
До меня теперь дошло, почему в тех транзакциях с консолидацией utxo по 330 сат была выбрана именно такая комиссия - чтобы ботами не сторожить транзу, потому что никто не будет ее воровать, так как добавив 1 сат/вб (а меньше нельзя) всё уйдет на комсу, - нет смысла.
Вроденет, это что-то связанное с CPFP — сторона закрывающая контракт получает небольшой бонус, который можно использовать для проталкивания. Пока это никому не требовалось — никто и не парился.
Quote
Мне не хватает знаний, чтобы постичь, где он там что-то тырит. Не вижу ничего криминального.
В блокчейне по определению нет ничего криминального. Всё проверено алгоритмом. Каждый пользователь биткойна соглашается работать по правилам, которые в данный конкретный момент записаны к коде клиента. К чести разработчиков оригинального биткойна — они ни разу с 2009 года не отступили от этого (в отличие от авторов хард-форков). Опять же, я не оцениваю это в терминах хорошо/плохо. Тащить за собой в коде концепцию 15-летней давности — так себе удовольствие.

Я просто философствую. Все согласились в первоначальным вайт-пейпером. Формально, биткойн продолжает выполнять все условия. И каждый желающий может собственноручно проверить, что ни один сатоши не был эмитирован лишним и никто не нарушил правила. Но сколько людей на планете могут реально сделать это сами, а не надеяться на других?
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Будешь ждать вывода по 1 сатоши -- так найдется кто-то, кто выведет себе заплатив 2 сатоши за байт.
А зачем отправлять в мемпулы раньше времени? Дождаться 1 сат/вб, а потом уж броадкастить, и тогда, может быть, никто не украдет Smiley. До меня теперь дошло, почему в тех транзакциях с консолидацией utxo по 330 сат была выбрана именно такая комиссия - чтобы ботами не сторожить транзу, потому что никто не будет ее воровать, так как добавив 1 сат/вб (а меньше нельзя) всё уйдет на комсу, - нет смысла.
Quote
Любопытно.
Можете сами посмотреть приходы на адрес 1K8Q1PwgHrCTFGMrrrm7XaxCcn6JTc5YBX
Он даже с TapRoot что-то умеет тырить, тоже наверное, просто копирует. Но тут надо понимать что можно скопировать, а что нельзя.
Мне не хватает знаний, чтобы постичь, где он там что-то тырит. Не вижу ничего криминального.
sr. member
Activity: 770
Merit: 305
сжечь ненужные utxo, пока это не так убыточно.
Ну, тут рассуждать о логике трудно. Будешь ждать вывода по 1 сатоши -- так найдется кто-то, кто выведет себе заплатив 2 сатоши за байт. Я гляжу -- технологии совершенствуются: я на скорую руку сделал транзакцию из такого рода "потеряшек", поставил ей комиссию 5 сатоши и запузырил. Что бы вы думали? Правильно! Кто-то поменял в транзакции выход (без требования подписей это несложно сделать) увеличил комсу до 6 сатоши и забрал мелочёвку себе. Ну а что еще можно было ожидать? Я когда-то сам такими вещами баловался. Респект и уважуха. На пуле это сделать совсем просто, но теоретически можно и в диком виде перехватить и надеяться что никто другой не перехватит.
https://www.blockchain.com/explorer/transactions/btc/610c656da4f7f2698856b9b505414f625f6d3223da282baa0b94455577393c0d
Любопытно.
Можете сами посмотреть приходы на адрес 1K8Q1PwgHrCTFGMrrrm7XaxCcn6JTc5YBX
Он даже с TapRoot что-то умеет тырить, тоже наверное, просто копирует. Но тут надо понимать что можно скопировать, а что нельзя.
Pages:
Jump to: