Author

Topic: Замусоривание блокчейна (Read 997 times)

hero member
Activity: 714
Merit: 1298
October 08, 2024, 05:01:54 AM
#95
Вчера зарелизили 28.0 версию с примечанием, что количество транзакций с P2A выходами пока будет ограничено до тех пор, пока в сети не появится достаточное количество нод, поддерживающих этот новый тип скрипта.
Немного неточная формулировка. Можно подумать, что "Мы выпустили клиент с временным ограничением, а потом его снимем".
(По крайней мере я, прочитав, понял так)

Никогда бы не подумал, что кто-то мог так подумать.   Embarrassed



Я может покажусь старым занудой, но ни разу ни в одной программе не полагался на вот эти самые каталоги по умолчанию.
Меня очень напрягает, когда программа пытается своим домашним каталогом назначить какую-то глубоко закопанную на диске C: папку, к которой еще доступ по симлинкам. У меня рабочий диск вовсе не C: и первым делом что я делаю -- настраиваю пути. В частности биткойн запускается только с параметром -datadir= и никак иначе.


Да у меня тоже рабочий диск внешний, путь к которому прописан в bitcoin.conf но большинство пользователей полагаются на дефолтные пути.



б) что такое JSON-RPC 2.0 и опять же в чем преимущества/недостатки/отличия?

JSON-RPC 2.0 Specification и JSON-RPC 1.0 Specification


Как можно понять во 2-й версии для спецификации протокола добавлено поле jsonrpc (думают о будущем, наверное) а также структурирован  механизм обработки ошибок


что очевидно  является плюсом.

Ну и ещё кое-что.
sr. member
Activity: 770
Merit: 305
Вчера зарелизили 28.0 версию с примечанием, что количество транзакций с P2A выходами пока будет ограничено до тех пор, пока в сети не появится достаточное количество нод, поддерживающих этот новый тип скрипта.
Немного неточная формулировка. Можно подумать, что "Мы выпустили клиент с временным ограничением, а потом его снимем".
(По крайней мере я, прочитав, понял так)
Если включить режим занудства, то это надо понимать так: "Увы, все предыдущие версии клиента не будут релеить подобные транзакции. Поэтому пока в сети не будет достаточного количества проапгрейженых до последней версии узлов, шансы на то что транзакция с такими выходами и входами дойдет до майнера и будет подтверждена в блоке малы"
Quote
В частности те пользователи, которые используют Windows должны узнать, что с ним data директория изменена
Я может покажусь старым занудой, но ни разу ни в одной программе не полагался на вот эти самые каталоги по умолчанию.
Меня очень напрягает, когда программа пытается своим домашним каталогом назначить какую-то глубоко закопанную на диске C: папку, к которой еще доступ по симлинкам. У меня рабочий диск вовсе не C: и первым делом что я делаю -- настраиваю пути. В частности биткойн запускается только с параметром -datadir= и никак иначе.

А по новой версии меня заинтересовало две вещи:
а) какие изменения в поведении клиента будут у транзакций версии 3?
б) что такое JSON-RPC 2.0 и опять же в чем преимущества/недостатки/отличия?
hero member
Activity: 714
Merit: 1298

Они вводят новый стандартный тип адреса в клиенте Satoshi:28


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


Кроме этого новый релиз принёс  достаточно много изменений, на которые стоит обратить своё внимание. В частности те пользователи, которые используют Windows должны узнать, что с ним data директория изменена с C:\Users\Username\AppData\Roaming\Bitcoin  (было в версиях <  28.0 ) на C:\Users\Username\AppData\Local\Bitcoin . Но при апгрейде, если существует старая директория (C:\Users\Username\AppData\Roaming\Bitcoin ), Коре продолжит использовать эту старую для того, чтобы обеспечить совместимость

sr. member
Activity: 770
Merit: 305
Почитал про этот P2A скрипт. Как я понял потенциально  опасная вещь, так как оставляет выходы не подписанными, отдавая их на откуп  любому желающему.
А три последних года было что-то иначе?  Grin
Любых желающих заниматься выходами по 330 сатоши на всей Земле дай бог пять человек за три года набралось.
Quote
Какова ещё цель таких скриптов?
Я хз.
Там какая-то непонятная мне тема. Вернее, понятная только в самых общих чертах.
При функционировании лайтнинг-канала мы в каждый момент времени с момента создания канала должны помнить, что
а) наш контрагент спит и видит как нас наебать
б) наш контрагент имеет право захотеть закрыть канал в любую секунду
в) наш контрагент имеет право не согласиться на предложение о закрытии канала с каким-то обоюдным распределением комиссии за транзакцию
г) комиссии в сети в моменте времени могут быть достаточно высокие

Короче, весь сыр-бор не про свадьбу, а про развод и сопряженный с ним раздел имущества в канале.
Так что заранее резервируется некая сумма на непредвиденные расходы. Причем таким образом, что другого штатного варианта без резервирования вроде как и нет.
hero member
Activity: 714
Merit: 1298
Теперь у нас новый тип стандартного скрипта будет: P2A (pay-to-anchor)
Причем под этот новый паттерн попадает... вы удивитесь... барабанная дробь... один адрес!
https://mempool.space/address/bc1pfeessrawgf



Почитал про этот P2A скрипт. Как я понял потенциально  опасная вещь, так как оставляет выходы не подписанными, отдавая их на откуп  любому желающему.  Будут в основном  использоваться в проблематичных LN  каналах ( хотя может быть и не так понял с первого взгляда их предназначение). Какова ещё цель таких скриптов?
sr. member
Activity: 770
Merit: 305
Немного поколупался ещё
Оказывается, это началось еще три года назад (может еще раньше)
Вот https://www.blockchain.com/explorer/addresses/btc/bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr
330 сатоши приехали на адрес bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr ещё в феврале 2021 года, а были консолидированы (~700 входов у транзакции в 143 килобайта) в январе 2022
Но тогда комиссии были еще божеские.
Интересно, кто же это делает? Я докопаюсь! Меня любопытство гложет!
Стоит отметить, что разработчеги озаботились этой проблемой.
Причем примерно в то же самое время, что и я.
В августе. А мой пост был в июле.
Только они канителились три года, а я эту проблему нашел через месяц после того, как включил свой новый компьютер и с нуля переписал (на это как раз месяц и ушёл) анализатор интересностей в блокчейне.
Они вводят новый стандартный тип адреса в клиенте Satoshi:28
Раньше у нас были P2PK, P2PKH, P2SH и так далее. Десяток уже набралось или около того.
Теперь у нас новый тип стандартного скрипта будет: P2A (pay-to-anchor)
Причем под этот новый паттерн попадает... вы удивитесь... барабанная дробь... один адрес!
https://mempool.space/address/bc1pfeessrawgf

legendary
Activity: 1610
Merit: 2026
Мы, наверное, о разных реализациях говорим. Если покажете пример этого самого Greenlight -- я смогу прокомментировать.
Я говорю о том, что я вижу своими глазами.
а) При закрытии канала создаются два хвостика (бывают исключения, но я сейчас о самом распространенном кейсе)
б) Эти хвостики имеют вполне определенный скрипт для траты
<публичный ключ ноды> OP_CHECKSIG OP_IFDUP OP_NOTIF OP_16 OP_CSV OP_ENDIF
Да, это совсем другая история. У Гринлайта, конечно, такого нет.
sr. member
Activity: 770
Merit: 305
Greenlight не позволяет стороне канала напрямую распоряжаться выходом транзакции его закрытия.
Мы, наверное, о разных реализациях говорим. Если покажете пример этого самого Greenlight -- я смогу прокомментировать.
Я говорю о том, что я вижу своими глазами.
а) При закрытии канала создаются два хвостика (бывают исключения, но я сейчас о самом распространенном кейсе)
б) Эти хвостики имеют вполне определенный скрипт для траты
<публичный ключ ноды> OP_CHECKSIG OP_IFDUP OP_NOTIF OP_16 OP_CSV OP_ENDIF
в) особенность этого utxo в том, что его может потратить (то есть отправить транзакцию траты) только владелец этого публичного ключа/ноды сразу же после опубликования транзакции закрытия канала в сети либо любой желающий после 16 подтверждений транзакции закрытия канала
г) за несколько лет в блокчейне накопилось дох#я таких хвостиков, а какой-то перец настроил себе робота и каждый день ~ в 9 утра по московскому времени забирал себе невостребованные хозяевами хвостики за последние сутки (разумеется, никакой гео-привязки я не имею, может он японец и для него это вечер)
д) я прошерстил блокчейн за последние несколько лет, теперь там такой халявы не осталось. А владелец этого утреннего робота-пылесоса на меня обиделся, что я покусился на его каждодневный профит и теперь отправляет все хвостики в OP_RETURN исходя из известного принципа "так не доставайся же ты никому"
legendary
Activity: 1610
Merit: 2026
В то же самое время есть транзакции закрытия каналов, которые из-за недостатка комиссии никак не могут попасть в блок.
Такое может быть при закрытии канала нодой Greenlight.

Greenlight не позволяет стороне канала напрямую распоряжаться выходом транзакции его закрытия. Там нужно отдельной операцией запросить у сервера Greenlight перевод выхода на подконтрольный тебе адрес. Поэтому при недостатке комиссии некому протолкнуть транзакцию. Только сервер Greenlight может это сделать. Но для этого ему придётся волюнтаристски распорядиться чужими деньгами, временно попавшими под его контроль. А тут могут возникнуть юридические проблемы.
sr. member
Activity: 770
Merit: 305
В то же самое время есть транзакции закрытия каналов, которые из-за недостатка комиссии никак не могут попасть в блок.
И висят они в мемпуле, как будто владельцы забыли про них. Причем, суммы достаточно ощутимые
https://mempool.space/ru/tx/eb7447df1615a81ba383899e51428556a3e38b43cdd8294893ffe8c8aca1db89 3 недели назад
https://mempool.space/ru/tx/5fbb28f57807b2c3bdb1cafbb507bb0ab0b428974fcdf77b99a3ee3c490625b8 4 месяца назад
https://mempool.space/ru/tx/30d086deb442cd464643f3110b068c7e7ff183a4c7288ea83ee8e3b1d9a7848a 7 месяцев назад
(это не все, я нашел больше)
sr. member
Activity: 770
Merit: 305
Закрытие канала
Картинка со страницы https://mempool.space/ru/tx/54ce1cb7d23ba80d058a66cdfe16cbafb9fc55af6d591e975499fb1f7174d3d2
Синим и красным я выделил публичные ключи нод и стрелочками обозначил подписи (обычный мультисиг 2-из-2)


Трата первого "хвостика"
Картинка со страницы https://mempool.space/ru/tx/589e55cb488303fcd03f5dd8ae379f19de0ba6771c347bd54b1d7e3f1ba08234#vin=1


Трата второго "хвостика"
Картинка со страницы https://mempool.space/ru/tx/182c924ab48c61eff1073b94238028d00ed9e2c577601af971606d8640670ada#vin=0

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
sr. member
Activity: 770
Merit: 305
Мне не очень понятно, зачем эти дополнительные utxo, особенно два. Если они принадлежат пользователям канала, то почему бы пользователю в случае зависона просто не сделать cpfp своего основного выхода? А если принадлежат посреднику, то хватило бы и одного дополнительного. Может, там какая-то другая задумка?
Они принадлежат именно владельцам нод -- там внутри у них (при трате) публичный ключ ноды.
(Если посоветуете мне хостинг картинок -- я вам тогда на картинках смогу показывать, imgur почему-то у меня не работает в связке с bct)
Да, этот вопрос меня самого в тупик ставит -- если одной из сторон канала надо пропихнуть транзакцию -- значит у неё есть баблосы на выходе. А значит из этих баблосов можно организовать CPFP. А если канал закрывается "в одну сторону", то другая сторона (та которая пустая в результате) в закрытии канала и не заинтересована вовсе. Гори оно всё синим пламенем.

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

Может там логика "если сторона А попытается на#бать сторону Б, то сторона Б (используя все имеющиеся у нее возможности, в том числе хвостик) сможет наказать сторону А рублем по самые гланды"
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Не, ну разработчики лайтнинга -- странные люди.
Вроде бы лайтнинг был создан для того, чтобы уменьшить расходы и освободить другим место для транзакций в блокчейне.
На деле же херня творится.
Почему? Расходы уменьшаются, место в блокчейне экономится. Если, конечно, лайтнинг-канал открывается не ради одного-двух платежей.
Quote
Возьмем транзакцию https://mempool.space/ru/tx/54ce1cb7d23ba80d058a66cdfe16cbafb9fc55af6d591e975499fb1f7174d3d2
Это закрытие канала между (ну, короче сами посмотрите, там все написано)
После закрытия канала часть бабла ушла одному концу канала, часть другому. Тут всё понятно
И ещё эта транзакция закрытия канала создала два выхода по 330 сатоши. Для чего, спросите вы?
А для того, чтобы, если эта транзакция закрытия каналов зависла бы из-за недостатка комиссии в момент загруженности сети, то каждый из "концов" этого канала смог бы, используя эти "довески" её попытаться пропихнуть.
Мне не очень понятно, зачем эти дополнительные utxo, особенно два. Если они принадлежат пользователям канала, то почему бы пользователю в случае зависона просто не сделать cpfp своего основного выхода? А если принадлежат посреднику, то хватило бы и одного дополнительного. Может, там какая-то другая задумка?
sr. member
Activity: 770
Merit: 305
Не, ну разработчики лайтнинга -- странные люди.
Вроде бы лайтнинг был создан для того, чтобы уменьшить расходы и освободить другим место для транзакций в блокчейне.
На деле же херня творится. Могу вам рассказать с примерами и пояснениями.

Итак.
Возьмем транзакцию https://mempool.space/ru/tx/54ce1cb7d23ba80d058a66cdfe16cbafb9fc55af6d591e975499fb1f7174d3d2
Это закрытие канала между (ну, короче сами посмотрите, там все написано)
После закрытия канала часть бабла ушла одному концу канала, часть другому. Тут всё понятно
И ещё эта транзакция закрытия канала создала два выхода по 330 сатоши. Для чего, спросите вы?
А для того, чтобы, если эта транзакция закрытия каналов зависла бы из-за недостатка комиссии в момент загруженности сети, то каждый из "концов" этого канала смог бы, используя эти "довески" её попытаться пропихнуть.
Но! Что мы видим? Всё и так прошло штатно (на момент написания мною этого текста транзакция имеет 3 подтверждения, а в блок она попала всего-навсего ожидая 13 минут -- это нормально)
Довески не понадобились, а использовать их сперва могут только "стороны этого канала".
И что? Кто-то будет париться из-за одинокого utxo в 330 сатоши? Человек точно не будет. Однако, и та, и другая сторона решили утилизировать эти "хвостики", соответственно в транзакциях
https://mempool.space/ru/tx/589e55cb488303fcd03f5dd8ae379f19de0ba6771c347bd54b1d7e3f1ba08234
https://mempool.space/ru/tx/182c924ab48c61eff1073b94238028d00ed9e2c577601af971606d8640670ada
Повторюсь, эти две транзакции появились в сети после того, как транзакция закрытия канала была помещена в блок.

А смысл? Первый заплатил 1785 сатоши за 330 сатоши, второй ещё круче -- заплатил 4529 сатоши за 330 сатоши
Плюс две лишние транзакции в блокчейне.

Я не верю, что это делалось руками, скорее всего лайтнинг-клиент сам решает "а давай-ка я сделаю CPFP для транзакции, несмотря на то, что она уже подтверждена в блоке, мне похуй на хозяйские деньги"

Update: единственное разумное объяснение, это то что канал был в некотором роде "тестовый" (он действительно просуществовал недолго) и стороны не парились особо над расходами и комиссиями. Но об этом должны париться разработчики клиента!
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Возможно, когда вы будете читать это -- то у неё будет еще "история вперёд".
Можно просто смотреть историю адреса https://mempool.space/ru/address/bc1qgdq67upw5909ctmm3t54zpk4xcz8ncm5ggafcr
Класс Grin. Да, уже пошло дальше на несколько поколений ).
Не, ну то, что он там что-то для себя важное в op_return пихает - это понятно и банально. Но зачем сотни раз отправлять  в космос в общем-то немалую сумму (причем все время одинаковую), да еще по два раза на транзакцию - это никак объяснить не могу.
sr. member
Activity: 770
Merit: 305
Впрочем, замусоривание замусориванию -- рознь.
Или как говорит одна моя подружка: "У богатых свои причуды"
Вот возьмем транзакцию https://mempool.space/ru/tx/367cd6257323990320b66507da0719f956d8aa0d388caeeed2ef370ab44f6266
На момент, когда я это пишу, она ещё не подтверждена, так что можете посмотреть только "историю назад"
Возможно, когда вы будете читать это -- то у неё будет еще "история вперёд".
Можно просто смотреть историю адреса https://mempool.space/ru/address/bc1qgdq67upw5909ctmm3t54zpk4xcz8ncm5ggafcr
sr. member
Activity: 770
Merit: 305
А не тестирует ли тут кто-то  free-relay атаки
А в чем атака-то? Засрать пропускную мощность сети, заставив обрабатываться транзакции, которые вряд ли будут намайнены? Ну так для этого не надо много ума. А трафик у нод как правило безлимитный. Получить какой-то профит? Тоже не пахнет. Транзакции без подтверждений только ССЗБ принимают.
Пост-фактум по истории транзакций в блокчейне понять "а не было ли тут подобного действия?" практически невозможно.
А делать реал-тайм следилку? Ну, если объясните мне, как из этого можно извлечь выгоду -- я могу подумать.

Я вот что сегодня придумал к будущим экспериментам. Допустим, для вас стоит проблема консолидации выходов. (Для меня лично не стоит, мне наоборот моих 11 мало, хорошо бы штук 50 иметь, но и большему числу порадуюсь, подайте бывшему депутату государственной думы). Так вот. Тратиться на комиссию при консолидации не хочется, если есть возможность подождать и хочется сэкономить. Допускаю, что в сегодняшний век автоматизации существуют роботы на крупных биржах или ещё в каких-то сервисах, которые автоматом консолидируют свои выходы. Что если коряво написанный такой бот возьмется консолидировать и "как-бы случайно" сделает моей транзакции CPFP? Я готов отправить 546 сатоши. Ну а не выйдет, так и бог с ним, я ничего не потеряю. Найти такого бота (если, конечно, такие есть) мне вполне по силам, понаблюдав за транзакциями (разумеется, не глазами, а программой) в течение недельки-двух

Если хотите -- вот вам логическая задачка:
Как даблспенднуть транзакцию, не поднимая значение комиссии вообще в принципе!
Думаете это невозможно? Ловите, и не говорите, что не видели:
https://mempool.space/ru/tx/03d34248926b742e43c18fbe90bc9922fc2f0933fc4fe9ea256c5d13b9594093
hero member
Activity: 714
Merit: 1298

Вот только зачем это было сделано? Две недели назад нормальный человек не стал бы отправлять с минимальной комиссией. Не стал бы и полгода назад. Зачем нам этот "навес", или можно сказать "андеррайдинг"?



А не тестирует ли тут кто-то  free-relay атаки  ( а может быть и реально их и проводит), возможность которых была недавнно раскрыта для сообщества разработчиков Питером Тоддом за счёт различия в RBF полиси майнеров ( большинство которых активировали full-RBF ) и нодами обычных пользователей Bitcoin Core (которых интересует только его часть, связанная с кошелькои и вовсе не интересует нода, которая действует исключительно  как релейная нода  и у которой эта опция не активирована)?











sr. member
Activity: 770
Merit: 305
Да, это так выглядит со   стороны нод, которые приняли  Full-RBF полиси, т.е. для таких нод любая транзакция ( в не зависимости от того, просигнализировала ли она или не  не просигнализировала о своей готовности быть замененной на другую согласно BIP 125) имеет право быть замещена  с более высокой оплатой.
Это более логично, чем все пляски с бубном. Нода имеет право сказать "а я не видела первую транзакцию, поэтому вполне себе акцептила вторую и меня ниипёт, что у вы считаете это наглым даблспендом"
hero member
Activity: 714
Merit: 1298
как  я понимаю Full-RBF  позвоkяет заменить исходящую транзакцию транзакцией, в которой изменено буквально всё, адреса назначения, отправляемые суммы, платa майнерам, а не не только комиссия  как это позволено в opt-in RBF. Собственно поэтому и слово full.
Как я понимаю, full-rbf позволяет заменять транзакцию независимо от установки rbf-флага, то есть отменяет "финализирование" транзакции.

Да, это так выглядит со   стороны нод, которые приняли  Full-RBF полиси, т.е. для таких нод любая транзакция ( в не зависимости от того, просигнализировала ли она или не  не просигнализировала о своей готовности быть замененной на другую согласно BIP 125) имеет право быть замещена  с более высокой оплатой.
sr. member
Activity: 770
Merit: 305
Достаточно любопытно.
В глобальном мемпуле (я все-таки настроил себе скачивание всего и вся с mempool.space) достаточно много "неприоритетных цепочек"
Что такое "неприоритетная цепочка"? Это я только что сам такой термин придумал.
Вот транзакция:
https://mempool.space/ru/tx/a6443bd2580018d7e5293bbb3e7551cb6577cad6e98765406fb6bd5c7389b616
она же есть тут:
https://www.blockchain.com/explorer/transactions/btc/a6443bd2580018d7e5293bbb3e7551cb6577cad6e98765406fb6bd5c7389b616
Замечена две недели назад (хотя если она ребродкастилась -- то может быть она и полгода назад создана, а сайты имеют срок протухания две недели)

Это пример, там такого говнища полно. Посылаем транзакцию с комиссией 1 сатоши за вбайт. Сдачу отправляем второй транзакцией с комиссией 1 сатоши за вбайт. И так пока клиент не взвоет от длины цепочки. Пусть вас не смущает, что в транзакциях присутствуют какие-то данные в OP_RETURN -- скорее всего это просто мусор, потому что трудно представить, что одно и то же значение (а оно одно и то же во всей цепочке) несёт смысл.

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

Update:
Видимо, никто не чистит мемпул раз в две недели, как мне показалось
https://mempool.space/ru/tx/a4e1db454435e4e662aac6792184323e99ca902ccd1daf78d15832bb3ccc5318
Честно говорит -- семь месяцев назад
Эта же транзакция на другом сайте
https://www.blockchain.com/ru/explorer/transactions/btc/a4e1db454435e4e662aac6792184323e99ca902ccd1daf78d15832bb3ccc5318

sr. member
Activity: 770
Merit: 305
Сейчас уже не редкость - транзакция хоть и вылетает через две недели из большинства мемпулов, но вскоре кем-нибудь ребродкастится, и так по кругу, в этой фиче уже по сути и смысла нет.
В таком случае у давно запущенных нод мемпул должен на 99% совпадать
Но https://jochen-hoenicke.de/queue/#BTC,24h,count показывает 200к транзакций в мемпуле
А https://mempool.space/ru/docs/api/rest#get-mempool 220к (разница небольшая, но есть)
У меня локальный клиент, который я перезапускал вчера (и, кажется, при этом грохнул мемпул) сейчас показывает 71к транзакций
Ну что же... Придется терпеть пока не сравняюсь. Но я за NAT-ом сижу, я же обычный юзер, а не сервер с открытым портом. Долго буду ждать...
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
раньше, по-моему, у транзакций в мемпуле был срок годности. (Сейчас не знаю, есть ли. Может тоже есть. Но, допустим, другой.)
То есть проходит месяц-два-три... да фиг с ним, три дня транзакция не подтвердилась - нода её выкидывает из мемпула как мусор.
Раньше как раз три дня и было, блок-эксплорер blockchain.com, возможно, и до сих пор на три дня настроен (год-два назад такое замечал). А сейчас (последних лет 7-8, наверное) этот срок по умолчанию составляет две недели.
Quote
Возможно, были ноды которые изредка перепосылали свой мемпул соседям, но это была редкость скорее (если была).
Сейчас уже не редкость - транзакция хоть и вылетает через две недели из большинства мемпулов, но вскоре кем-нибудь ребродкастится, и так по кругу, в этой фиче уже по сути и смысла нет.
sr. member
Activity: 770
Merit: 305
тоже позволял заменить всё, вплоть до набора utxo
Здесь еще вот что может быть: раньше, по-моему, у транзакций в мемпуле был срок годности. (Сейчас не знаю, есть ли. Может тоже есть. Но, допустим, другой.)
То есть проходит месяц-два-три... да фиг с ним, три дня транзакция не подтвердилась - нода её выкидывает из мемпула как мусор. (В те времена еще без комиссий вообще можно было посылать при определенных условиях). И готова получить RBF. Возможно, были ноды которые изредка перепосылали свой мемпул соседям, но это была редкость скорее (если была). То есть через какое-то время про транзакцию помнил только кошелек-отправитель и там еще осталась в клиенте опция -walletbroadcast при запуске.

Сегодня просто так чистить свой мемпул пулам (каламбур, однако) не выгодно. Ну то есть разница копеечная, но кому это надо? Я тут решил покопаться в старых транзакциях, которые месяцами лежат в мемпуле неподтвержденными. У сайта mempool.space даже есть апи для скачивания мемпула по одной транзакции. Блин, сделали бы они запрос "дай мемпул целиком или хотя бы жирный его кусок", потому что 200 тысяч запросов к rest-api напрягут любой анти-ддос фильтр. Меня сегодня mempool.space уже два раза зобанил на час. А у всех обычных нод команда протокола "mempool" задизейблена по дефолту.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
как  я понимаю Full-RBF  позвоkяет заменить исходящую транзакцию транзакцией, в которой изменено буквально всё, адреса назначения, отправляемые суммы, платa майнерам, а не не только комиссия  как это позволено в opt-in RBF. Собственно поэтому и слово full.
Как я понимаю, full-rbf позволяет заменять транзакцию независимо от установки rbf-флага, то есть отменяет "финализирование" транзакции. А тот opt-in rbf, с которым мы жили много лет, тоже позволял заменить всё, вплоть до набора utxo. Я даже когда-то здесь тему делал, как заменить транзакцию в Электруме (позже она стала неактуальной).
hero member
Activity: 714
Merit: 1298
Full-RBF сработал (я пока не вникал, как он работает, не знаю).

как  я понимаю Full-RBF  позвоkяет заменить исходящую транзакцию транзакцией, в которой изменено буквально всё, адреса назначения, отправляемые суммы, платa майнерам, а не не только комиссия  как это позволено в opt-in RBF. Собственно поэтому и слово full.

Интересно, что Full-RBF в виде эксклюзивной опции появилась ещё в версии 0.8.6, потом её убрали и возродили в 24.0.

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Вы сейчас про какую транзакцию? На которую я ссылку дал или про ту, которую Вы рассказываете?
Я больше про свою. Но и ваша тоже под это подходит (если тут дело не в full-rbf).
Quote
В принципе, у разных версий клиентов могут быть разные полиси по пересылке транзакций.
Да, скорее всего дело было в том, что нода coinb.in (именно через этот сайт тогда делался даблспенд) имела не случайную связь с какими-то рандомными узлами, а непосредственно соединялась с нодами майнеров,
sr. member
Activity: 770
Merit: 305
но если немного подумать, то получается, что майнеру такая замена выгодна - из-за полного мемпула он наберет недостающие 0.009 другими транзакциями с хорошим feerate.
Именно так!
Quote
Но странно, что транзакция дошла до майнера.
Вы сейчас про какую транзакцию? На которую я ссылку дал или про ту, которую Вы рассказываете? Я пока думаю и курю сорцы. В принципе, у разных версий клиентов могут быть разные полиси по пересылке транзакций. А для пула выгоднее ловить как можно больше транзакций из сети. Конечно, разница там копеечная, но и копейка рубль бережет

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
либо тут уже как-то недавно появившийся Full-RBF сработал (я пока не вникал, как он работает, не знаю).
Логика тут понятная: при любом RBF если мы увеличиваем feerate то транзакция с большей комиссией (в пересчете на размер) выгоднее майнерам и они возьмут её.
Ну да, логично. Как-то был свидетелем на форуме такой ситуации: скамер угнал сиды нескольких сотен лохов и одной транзакцией отправил эти utxo на свой адрес, комиссия за транзакцию была 0.01 btc; один из пострадавших пришел на форум за помощью и в итоге смог сделать успешный даблспенд своего utxo (дав шанс и остальным несчастным спасти свои монетки), заплатив комиссией всего 0.001 btc, feerate его транзакции был выше оригинальной. Я был уверен, что такой даблспенд не пройдет, что комиссия должна быть больше 0.01, но если немного подумать, то получается, что майнеру такая замена выгодна - из-за полного мемпула он наберет недостающие 0.009 другими транзакциями с хорошим feerate. Но странно, что транзакция дошла до майнера.
sr. member
Activity: 770
Merit: 305
либо тут уже как-то недавно появившийся Full-RBF сработал (я пока не вникал, как он работает, не знаю).
Логика тут понятная: при любом RBF если мы увеличиваем feerate то транзакция с большей комиссией (в пересчете на размер) выгоднее майнерам и они возьмут её. Все пляски пятилетней давности "вот эти транзакции можно вышибать другими, а вот эти нельзя" -- это всё какая-то гнилая идея была. Другое дело, что при пересчете "выгодности" надо принимать во внимание ещё CPFP -- то есть если транзакция А пытается RBF-нуть транзакцию Б, но к транзакции Б уже налипли богатенькие чайлды В1, B2 (бедненькие не считаются) -- то надо пересчитывать feerate c учетом её "descendants" (это английское слово нашёл в коде, не знаю что оно значит, я языками не особо владею)

Всякие константы в коде типа "как минимум на 1 сатоши за вбайт больше, а иначе нахер" -- это такая попытка разработчиков как-то снизить трафик в сети в случае злоумышленника, который пошлет свою транзакцию на 100 килобайт с минимальной комиссией, а потом каждую секунду будет посылать её копии, увеличивая комиссию (за счет уменьшения сдачи) на один сатоши. Ему это не будет стоить практически ничего, но вся сеть будет прилично нагружена верификацией и пересчетом.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Насколько я понимаю, никаких препятствий нет дабдспенднуть и один utxo, лишь бы абсолютное значение комиссии было больше, чем в  заменяемой транзакции (и более, чем на 1 сат/вб).
В порядке информации:
RBF работает и при меньшем увеличении комиссии. Точнее как? Иногда работает, иногда не работает.
Вот вам пример удачного RBF при увеличении на 0.2 сатоши за вбайт:
https://mempool.space/ru/tx/416cef876a24808fda3fdbf83d1de2f44aaa628aef15af0a46b521a2d52d6f82
Заменяемая транзакция тут вообще была без RBF-флага, так что здесь никакие rbf-условности даже не рассматривались. Видимо, заменяющая транзакция доехала до майнера каким-то блатным путем, либо тут уже как-то недавно появившийся Full-RBF сработал (я пока не вникал, как он работает, не знаю). Но я помню достаточно подобных даблспендов (почему-то в coinb.in они часто удавались, в отличие от, например, Электрума).
sr. member
Activity: 770
Merit: 305
Насколько я понимаю, никаких препятствий нет дабдспенднуть и один utxo, лишь бы абсолютное значение комиссии было больше, чем в  заменяемой транзакции (и более, чем на 1 сат/вб).
В порядке информации:
RBF работает и при меньшем увеличении комиссии. Точнее как? Иногда работает, иногда не работает.
Вот вам пример удачного RBF при увеличении на 0.2 сатоши за вбайт:
https://mempool.space/ru/tx/416cef876a24808fda3fdbf83d1de2f44aaa628aef15af0a46b521a2d52d6f82
С чем это связано -- я пока не могу сказать.
Возможно, клиент как-то коряво считает, возможно округление влияет, возможно сам mempool.space глючит.
В конце концов сайт-эксплорер блокчейна может принимать все транзакции для статистики и наглядного показа.
Да и в код клиента (даже если используется штатный клиент) никто не мешает залезть и поправить константу. Это не консенсусное правило.
Можно даже предположить, что у пула стоит ограничение feerate на транзакции и первую транзакцию он отбросил, а вторую решил взять.
Вот только какой долгой дорогой она к нему ехала?
sr. member
Activity: 770
Merit: 305
например, в 853690-м блоке текст 853690.bitmap. В чем смысл - я не знаю, но наверное он для кого-то есть
я не вполне уверен, что в транзакции содержится именно этот номер. Несмотря на очень щедрую комиссию, транзакция запущенная в сеть, может не попасть в ближайший блок. Скорее всего, это эксплорер которым пользуетесь Вы, если не может однозначно определить тип вложенных данных, просто показывает «чота в блоке таком-то»

Вопрос, собственно в другом. Я повторю: есть ли какое-то «активное» использование этих инскрипшенов? «Пассивное использование» — это владеть и в часы депрессии пересчитывать на сайте в интернете сколько у тебя фантиков. При этом подрачивая. «Активное использование» — это обменивать, торговать или хотя бы обсуждать с такими же балбесами
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Теперь раз в 10 минут (не по времени, а по появлению нового блока в сети) появляется транзакция, которая переводит по одному выходу на другой адрес
и содержит в себе текст вида номер_блока.bitmap, то есть, например, в 853690-м блоке текст 853690.bitmap. В чем смысл - я не знаю, но наверное он для кого-то есть ).
Quote
В момент, когда я пишу эти строки уже примерно половина из 2000 выходов переведена
Например на адресе https://mempool.space/ru/address/bc1qrvuhj7adkdpjjnkaxac4es7vt3zvcasg5wk2n8 уже набралось 752 входа по 294 сатоши
Каким-то образом консолидировать эту пыль в обозримое время не удастся.
Почему не удастся? Ее можно хоть сейчас консолидировать, как раз этих 294 сат хватит на комиссию 4 с хвостиком сат/вб.
sr. member
Activity: 770
Merit: 305
А расскажите мне для чего люди делают эти инскрипшены?
Может на этом какие-то бизнесы и сервисы строятся?
Типа "заплати сто рублей и мы твои данные запихнем в блокчейн"
Или какая-то биржа по обмену этими фантиками?

Я объясню почему я заинтересовался этим.
Допустим, возьмем вот эту транзакцию от 16 июля:
https://mempool.space/ru/tx/ba2d8de3de84d6a103c3981676ec667056513d8308e9e957d3a54372c9e1b3cc
Кто-то рассыпал ‎0,11478759 btc на 2000 адресов по 2500 сатоши
Теперь раз в 10 минут (не по времени, а по появлению нового блока в сети) появляется транзакция, которая переводит по одному выходу на другой адрес
В момент, когда я пишу эти строки уже примерно половина из 2000 выходов переведена
Например на адресе https://mempool.space/ru/address/bc1qrvuhj7adkdpjjnkaxac4es7vt3zvcasg5wk2n8 уже набралось 752 входа по 294 сатоши
Каким-то образом консолидировать эту пыль в обозримое время не удастся.

Я не понимаю в чем смысл? Потратить из своего кармана несколько тысяч баксов и увеличить при этом базу данных Биткойна на 2000 utxo? Чтобы что? Чтобы в какой-то рейтинг на каком-то сайте попасть? Как "самый большой дурак с самым большим количеством фантиков"?

Ну я понимаю, были какие-то сервисы которые вставляли свои данные в блокчейн, чтобы "сохранилось на века". Но это-то зачем?
legendary
Activity: 2317
Merit: 2318
А давно в клиенте запретили importprivkey в "кошельки нового формата"?
Кошелёк нового формата - дескрипторный, в него можно импортировать только дескрипторы. А уже в дескриптор можно засунуть всё что угодно, в том числе, приватный ключ. Пример. 
sr. member
Activity: 770
Merit: 305
А давно в клиенте запретили importprivkey в "кошельки нового формата"?
Логику разработчиков понять можно, там и так адище в коде, ведь как раз формат кошелька не менялся очень давно.
Я-то в принципе, разберусь и без кошелька
Но что-то мало криков в интернете вижу на тему "а как же мы будем жить теперь, у нас приватные ключи хранились на бумажке в сейфе!"
sr. member
Activity: 770
Merit: 305
Почему так не делают? И есть ли эффективные методы противодействия таким злоупотреблениям?
Потому что договориться не могут.
А если бы они смогли бы -- то вы бы этого не заметили. И сеть бы этого не заметила. Это заметил бы админ пострадавшего пула, типа его десять блоков подряд не вошли в основную цепочку.
Кстати. По-моему как раз в момент введения p2sh это и происходило. Тогда еще мой любимый bc.i хранил какое-то время орфан-блоки.
Сеть постоянно орфанила какого-то одинокого майнера, который проебал момент апгрейда, брал в свой блок транзакцию которая лично ему казалась валидной, но для 51% сети была невалидной. И вот эту транзакцию bc.i показывал как "включенная в блок такой-то, такой-то, такой-то". А все эти блоки были орфанами.
Сейчас мы и эту транзакцию не найдем и адрес не вспомним. Если он был создан после принятия bip-16 - то с него нет выводов , но он ничем не выделяется среди других адресов. Ребят, десять лет прошло. В памяти смутные события только.
sr. member
Activity: 770
Merit: 305
Тем не менее, реально был ли такой прецедент, чтобы выход стало невозможно потратить после изменений правил (не полиси)? И вообще, правила когда-нибудь менялись без соблюдения обратной совместимости? До сих пор я был уверен, что нет, но может вы откроете мне глаза ).
А для вас так важно "правила или полиси" мешают вам потратить ваши сатошики?
Вам не похуй от кого получать пиздюлей - от росгвардии или от полиции?
Когда вам банк блокирует карту -- какая в моменте разница это сделано по закону принятому думой или по воле менеджера отдела финмониторинга?
Конечно, разработчики биткойна всегда придерживались либертарианских идей.
Никаких "а давайте заблокируем в коде вот этот адрес мошенника" у них не было (а в эфириуме было).
Но код приходилось причесывать. Потому что какие-то вещи в оригинальном варианте были корявые и багнутые.
Много проблем было с кодом OP_CHECKMULTISIG - в реализации изначально была бага, что при выполнении команды брался один лишний элемент из стека.
Он до сих пор берется. Поэтому redeem-скрипт при мультисиге всегда начинается с OP_0 -- это теперь обязательное требование, потому что иначе половина транзакций P2SH была бы подвержена проблеме malleability

Кое-какие вещи сделали более жесткими, например в оригинальном клиенте публичный ключ и подпись просто "скармливались" в OpenSSL библиотеку как в черный ящик. Функция вернула 1 - окей, сигнатура валидна. Функция вернула 0 - невалидна. Зависимость от такого поведения могла точно привести к форку - если бы у половины клиентов была бы одна версия OpenSSL, а у половины другая, где разработчики (ни сном ни духом не слышавшие о биткойне) что-то бы поменяли.
Так вот. В какой-то момент стандартизовали правило: публичный ключ должен быть 33 байта и начинаться только с 02/03 ну или 65 байтов и начинаться с 04.
Всё остальное - идет лесом. В результате 33iPUoNLd53AuRunuwUqDDa4nwaaxGHwQu стал навеки невыводимым. Не помню что я там экспериментировал, наверное казино какое-то облапошивал. Пока они считали, что транзакция с этого адреса валидна и скоро попадет в блок, я успевал отправить даблспенд других выходов. Если же ставка выигрывала -- надо было просто терпеливо сидеть и ждать майнера который тоже еще не перешел на новую версию софта
legendary
Activity: 2317
Merit: 2318
Если так можно, то 90% майнеров могут тупо выдавить с рынка оставшиеся 10%
Диктатура майнинговых мощностей - это ключевой принцип функционирования PoW-криптовалют. Если большинство майнеров придерживаются единых правил, цепочка блоков получается устойчивой, не подверженной значительным реорганизациям.

Почему так не делают?
Из-за репутационных рисков для Биткойна. Этот вопрос находится не в технической области, а в социальной.
legendary
Activity: 1610
Merit: 2026
Цепочка блоков 10% майнеров будет короче цепочки блоков 90% майнеров. Алгоритм выбора цепочки на любой отдельно взятой ноде отвергнет слабую (короткую) цепочку в пользу сильной (длинной) цепочки. В таком алгоритме есть смысл: в более длинную цепочку вложено больше работы, следовательно, она лучше защищена от перезаписи.
Правильно ли я понимаю, что майнер в своей деятельности имеет возможность
а). не принимать в расчёт транзакции, обладающие определёнными признаками,
б). не принимать в расчёт блоки, обладающие определёнными признаками?

Про первое я знал, а второе - это для меня открытие. Если так можно, то 90% майнеров могут тупо выдавить с рынка оставшиеся 10%, майня блоки той же высоты, какую имеют свежедобытые блоки, подписанные неугодными десятью процентами. Причём без всякого цензурирования транзакций, то есть без каких-либо неудобств для пользователей.

Почему так не делают? И есть ли эффективные методы противодействия таким злоупотреблениям?
sr. member
Activity: 770
Merit: 305
А какие вы видите перспективы Биткоина в связи с развитием ИИ?
А у ИИ есть перспективы?
Ребята, это из серии как безногий, безрукий, глухой и слепой решили создать стартап Smiley))
sr. member
Activity: 770
Merit: 305
Что заставит их впоследствии перезаписать такой блок, поставив на его место другой, добытый позже кем-то из сговорившихся майнеров? 
Потому что цепочка блоков не содержащих "транзакций кратных 17" будет расти быстрее.
Ноды в сети сперва включат этот блок себе. Через 10 минут в сети будет два блока высотой H - один содержащий все транзакции, другой хитровыебанный.
Через 20 минут "хитровыебанная цепочка" перегонит честную и "честный" блок останется в воспоминаниях.
Физически эти данные биткойн-клиент хранит в .dat файлах, но по сути дела это уже мусор
legendary
Activity: 2338
Merit: 1775
Catalog Websites
legendary
Activity: 2317
Merit: 2318
Что заставит их впоследствии перезаписать такой блок, поставив на его место другой, добытый позже кем-то из сговорившихся майнеров?
Цепочка блоков 10% майнеров будет короче цепочки блоков 90% майнеров. Алгоритм выбора цепочки на любой отдельно взятой ноде отвергнет слабую (короткую) цепочку в пользу сильной (длинной) цепочки. В таком алгоритме есть смысл: в более длинную цепочку вложено больше работы, следовательно, она лучше защищена от перезаписи.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
legendary
Activity: 1610
Merit: 2026
Вот, допустим, 90% майнеров (мы говорим об 90% мощности) решили внести в свой клиент изменение "а с 3 сентября не включаем в блок транзакции если txid делится на 17". Вы не увидите хардфорк. С точки зрения вас, как обозревателя сети -- ничего не изменится, только 10% блоков будут орфаниться (ну то есть перезаписываться).
А почему так?

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

Что заставит их впоследствии перезаписать такой блок, поставив на его место другой, добытый позже кем-то из сговорившихся майнеров? 
sr. member
Activity: 770
Merit: 305
А раз хардфорка не было, то и поверить в невозможность потратить старые utxo
Нуу... Это религиозные войны сторонников и противников на вас так подействовали?
Хард-форк это в первую очередь разделение сети на две, например в случае если какая-то транзакция становится невыводимой по изменившимся правилам консенсуса.
А что если такая транзакция не случится? Изменения правил есть, а видимого взгляду хардфорка нет.
А как она может случиться, если произошли изменения правил?
Вот, допустим, 90% майнеров (мы говорим об 90% мощности) решили внести в свой клиент изменение "а с 3 сентября не включаем в блок транзакции если txid делится на 17". Вы не увидите хардфорк. С точки зрения вас, как обозревателя сети -- ничего не изменится, только 10% блоков будут орфаниться (ну то есть перезаписываться). Но вы и так орфаны не видите никогда, если не смотрите в логи. С точки зрения клиента - малая часть ваших транзакций будет висеть неподтвержденными в некоторых эксплорерах. И вы не будете понимать почему. А с точки зрения 10% отвалившейся мощности будет крик "ааа! мы теряем бабло, скорее меняем алгоритм и работаем как все." Но хардфорка не случится. Даже 10% честных нод будут спокойно соглашаться с той цепочкой блоков, где нет кратных 17 транзакций.
В целом, 51% мощности всегда правы, могут и правила менять. А оставшиеся могут делать что хочут. Шерифа проблемы индейцев не тревожат


legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Такой выход сейчас нельзя было бы потратить, или я неправильно понял?
Сейчас можно. Но нужна подпись от указанного публичного ключа. А в то время это трактовалось как просто набор байтиков.
Я не понимаю. Указанного публичного ключа где? В redeem-скрипте? А если этот скрипт без ключей, а там только что-то вроде 5357, тогда что будет?
Quote
Quote
Я не вижу принципиального отличия от той, в скриптсиге тоже нет подписи, а просто число 5357.
А там не надо. 5357 это OP_3 OP_7 - то есть скрипт кладет в стек два числа.
Понятно. Тут может быть, что угодно, дающее hash160=433ec2ac1ffa1b7b7d027f564529c57197f9ae88.
Quote
Но вот беда! Сегодняшний протокол биткойна требует чтобы после выполнения скрипта в стеке оставалось бы одно ненулевое значение. А их там остается два! Значит транзакция траты с этого адреса по сегодняшним правилам не включается в блок и отторгается майнерами. Не помню точно, это жесткое консенсусное правило или полиси. Можно на тестовой сети поотключать все запреты и попытаться самому смайнить блок. Это будет быстрее чем курить все сорцы.
Спасибо. Плохо уже помню, но лет 5 назад я игрался со скриптами типа 5+3=8, то есть без ключей-подписей. В тестнете они принимались и работали. А вообще, мне представляется, что любое новое правило, отменяющее старое - это хардфорк. А раз хардфорка не было, то и поверить в невозможность потратить старые utxo (хотя бы майнеру) без пруфов я не могу. Ну а в полиси, наверное, может быть.
sr. member
Activity: 770
Merit: 305
Такой выход сейчас нельзя было бы потратить, или я неправильно понял?
Сейчас можно. Но нужна подпись от указанного публичного ключа. А в то время это трактовалось как просто набор байтиков.
Quote
Я не вижу принципиального отличия от той, в скриптсиге тоже нет подписи, а просто число 5357.
А там не надо. 5357 это OP_3 OP_7 - то есть скрипт кладет в стек два числа.
Но вот беда! Сегодняшний протокол биткойна требует чтобы после выполнения скрипта в стеке оставалось бы одно ненулевое значение. А их там остается два! Значит транзакция траты с этого адреса по сегодняшним правилам не включается в блок и отторгается майнерами. Не помню точно, это жесткое консенсусное правило или полиси. Можно на тестовой сети поотключать все запреты и попытаться самому смайнить блок. Это будет быстрее чем курить все сорцы.
Quote
Там не тот случай, основатель пула Ocean - известный биткоин-разраб Luke Dashjr.
Как же не помнить старика Крупского! Помним-помним его Eligius. У меня в коде программы зашиты ip-адреса Eligius-пула. Там как раз были отключены многие проверки.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange

Пожалуйста, вот он: 342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey
Поясню, а то не все поймут. До внесения изменений BIP-16 (это когда появились адреса начинающиеся с "3" ) это был нестандартный скрипт в выходе OP_HASH160 OP_DATA OP_EQUAL потратить который было можно престо предоставив данные, хэш которых совпадал бы с заданным значением
Вот фундинг:
https://www.blockchain.com/explorer/transactions/btc/9c08a4d78931342b37fd5f72900fb9983087e6f46c4a097d8a1f52c74e28eaf6
"address": "342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey",
"pkscript": "a91419a7d869032368fd1f1e26e5e73a4ad0e474960e87"


Вот спендинг:
https://www.blockchain.com/explorer/transactions/btc/6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192
"sigscript": "255121029b6d2c97b8b7c718c325d7be3ac30f7c9d67651bce0c929f55ee77ce58efcf8451ae"
На тот момент достаточно было хэш от синих данных равнялся бы красным. Данные могли не быть скриптом и не выполнялись (а иначе мы увидели бы подпись в scriptsig)
Спасибо. Это, вроде, был первый адрес на тройку. А что потом изменилось? Такой выход сейчас нельзя было бы потратить, или я неправильно понял? Вот, например, транзакция месяц спустя, уже после активации софтфорка BIP16: https://mempool.space/tx/e5779b9e78f9650debc2893fd9636d827b26b4ddfa6a8172fe8708c924f5c39d#vin=0. Я не вижу принципиального отличия от той, в скриптсиге тоже нет подписи, а просто число 5357.
Quote
Quote
Да, но это теория, голосование провалится.
Вы недооцениваете роль агитации. Грубо говоря, если разработчики убедят майнеров, что тем это будет выгодно, майнеры проголосуют за что угодно.
Наверно, если аргументы будут убедительными ).
Quote
А майнеры -- это не владельцы асиков, а админы пулов. Вот один (с ваших слов) уже самоубедился.
Там не тот случай, основатель пула Ocean - известный биткоин-разраб Luke Dashjr.
sr. member
Activity: 770
Merit: 305
А как вы, на настоящий момент, оцениваете стандарт адреса (которые начинаются не с bc1), а с 3 или 1.
Видите ли какое дело...
Тут просто так долго отвечать, причем надо рассматривать несколько аспектов

1. Если мы видим адрес 1xxx -- это не всегда pay-to-public-key-hash. Все блокэксплореры показывают скрипты pay-to-public-key как pay-to-public-key-hash. Ну это для удобства и чтобы не путать новичков которые захотят послать донаты самому Сатоши Накамото найдя его адрес в генезиз-блоке

2.Под "3" может скрываться как pay-to-scrpt-hash, так и его сегвит-продолжение

3. Под адресом bc1.. может быть P2WPKH (он покороче) так и P2WSH (он подлиннее) так и P2TR

Как оценивать? Я никогда не писал адрес от руки. А копи-пейстить мышкой мне пофиг сколько буковок. Так как я начинал еще лет 10 назад, то свои адреса на 1 и на 3 я кое-как запомнил и переучивать свой мозг ради трех копеек не собираюсь. Мне лично формат "старых" адресов на "1" и "3" нравится больше, но это сила привычки.

Quote
Насколько они по вашему опасны для тех, кто держит на них сатоши и насколько оперативно с них нужно переводить денежные средства на сегвит адреса (bc1)?
Нисколько не опасны. Вы сэкономите немного, если будете пользоваться этими вот bc1-адресами, но надо еще понимать что там у них под капотом. Моё мнение - если проблемы и возникнут -- формат адреса в этот момент роли уже не сыграет.
sr. member
Activity: 770
Merit: 305
Если не трудно, найдите, любопытно.
Пожалуйста, вот он: 342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey
Поясню, а то не все поймут. До внесения изменений BIP-16 (это когда появились адреса начинающиеся с "3" ) это был нестандартный скрипт в выходе OP_HASH160 OP_DATA OP_EQUAL потратить который было можно престо предоставив данные, хэш которых совпадал бы с заданным значением
Вот фундинг:
https://www.blockchain.com/explorer/transactions/btc/9c08a4d78931342b37fd5f72900fb9983087e6f46c4a097d8a1f52c74e28eaf6
"address": "342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey",
"pkscript": "a91419a7d869032368fd1f1e26e5e73a4ad0e474960e87"


Вот спендинг:
https://www.blockchain.com/explorer/transactions/btc/6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192
"sigscript": "255121029b6d2c97b8b7c718c325d7be3ac30f7c9d67651bce0c929f55ee77ce58efcf8451ae"
На тот момент достаточно было хэш от синих данных равнялся бы красным. Данные могли не быть скриптом и не выполнялись (а иначе мы увидели бы подпись в scriptsig)
Странно, я думал, что первым таким адресом как раз был пример, когда это не было скриптом. Наверное это в тестнете было.
Quote
Да, но это теория, голосование провалится.
Вы недооцениваете роль агитации. Грубо говоря, если разработчики убедят майнеров, что тем это будет выгодно, майнеры проголосуют за что угодно. А майнеры -- это не владельцы асиков, а админы пулов. Вот один (с ваших слов) уже самоубедился.
legendary
Activity: 2338
Merit: 1775
Catalog Websites
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Эти inscriptions стали возможным благодаря тапруту, а не сегвиту. Недосмотрели что-то там разрабы, ну теперь уж поздно, джина выпустили из бутылки.
Теоретически, не поздно.
Можно накатить какой-нибудь новый BIP который загонит джина обратно в бутылку.
А что BIP? BIP - еще не закон, загнать джина в бутылку, по моему разумению, возможно только форком (может, и софтфорка хватит, не знаю), но на это никто не пойдет.
Quote
Вопрос философский. Когда мы говорим о консенсусе биткойна, то консенсус какого года от рождества блокчейна мы имеем в виду?
Если консенсус 2009 года -- то он по сути дела по-прежнему действует. Можно отменить сегвит и тапрут вообще, откатиться на тот консенсус который был до BIP-16 и сказать "а чё такова?".

Разумеется, это теоретизирования.
Ну вот именно, к практике не имеет отношения.
Quote
Но усиливать ограничения в следующих версиях протокола теоретически можно.
Хардфорком можно ).
Quote
У кого-то останутся бетховены на адресе, с которого сегодня можно вывести, а завтра нельзя? Ну так такие изменения уже фактически были. Еще когда появился BIP-16 (теоретически), потому что до ввода p2sh-адресов в блокчейне был только один такой выход и то без сатошиков на нем. Хотите найду?
Если не трудно, найдите, любопытно.
Quote
Я к чему это веду?
Изменения протокола могут приводить по факту к тому, что кто-то останется без возможности перевести бетховены со своего адреса. Потому что это решается голосованием.
Да, но это теория, голосование провалится.
Quote
Теоретически, можно порекомендовать пулам пессимизиовать такого рода спам. Но пулы в этом не заинтересованы.
Уже есть такой пул, Ocean называется.
sr. member
Activity: 770
Merit: 305
Эти inscriptions стали возможным благодаря тапруту, а не сегвиту. Недосмотрели что-то там разрабы, ну теперь уж поздно, джина выпустили из бутылки.
Теоретически, не поздно.
Можно накатить какой-нибудь новый BIP который загонит джина обратно в бутылку.
Вопрос философский. Когда мы говорим о консенсусе биткойна, то консенсус какого года от рождества блокчейна мы имеем в виду?
Если консенсус 2009 года -- то он по сути дела по-прежнему действует. Можно отменить сегвит и тапрут вообще, откатиться на тот консенсус который был до BIP-16 и сказать "а чё такова?".

Разумеется, это теоретизирования. Но усиливать ограничения в следующих версиях протокола теоретически можно. У кого-то останутся бетховены на адресе, с которого сегодня можно вывести, а завтра нельзя? Ну так такие изменения уже фактически были. Еще когда появился BIP-16 (теоретически), потому что до ввода p2sh-адресов в блокчейне был только один такой выход и то без сатошиков на нем. Хотите найду?

Я к чему это веду?
Изменения протокола могут приводить по факту к тому, что кто-то останется без возможности перевести бетховены со своего адреса. Потому что это решается голосованием. Теоретически, можно порекомендовать пулам пессимизиовать такого рода спам. Но пулы в этом не заинтересованы. Да и ёмкость UTXO начнет стремительно расти (хотя она и так стремительно выросла).

Вопрос, кого это колебёт в принципе? Никого, по-моему
sr. member
Activity: 770
Merit: 305
На самом деле, в списке нод "ретранслятор блоков" - это не тип ноды, а тип соединения к ноде
Спасибо. Приятно, когда на вопросы находятся ответы. И приятно, что есть люди, которые хорошо разбираются в вопросе. Тип ноды или тип соединения - это в условиях сети пофиг. Грубо говоря есть соседи с которыми я общаюсь держа телефон в левой руке, а есть те с которыми в правой. Кто там на другом конце провода (слово "провод" в контексте связи ещё используют?) человек или рептилоид -- я не знаю и выяснять это бессмысленно. Кто определяет правила общения? Да в целом тоже уже не интересно
Quote
maxconnections задаёт максимальное кол-во исходящих + входящих соединений
В целом, уже мне это неактуально. В прошлом вероятность того, что транзакцию кто-то перехватит и даблспендит зависела от скорости распространения транзакции по сети (чем быстрее она дойдет до майнеров, тем лучше) то сейчас это практически пофиг стало. Если транзакцию кто-то может "переписать на себя" -- то её перепишут на себя. Особенно весело наблюдать "битву ботов", каждый из которых даблспендит чужую транзакцию, повышая в ней комиссию, и, соответственно, уменьшая свой профит. В конце концов "победитель" в этой "битве гигантов" получает ~330 сатоши.
legendary
Activity: 2317
Merit: 2318
1) если узел "ретранслятор блоков" то есть смысл к нему коннектиться для отправки транзакций? Или он только блоки ретранслирует? И смысла нет
На самом деле, в списке нод "ретранслятор блоков" - это не тип ноды, а тип соединения к ноде, и по-нормальному он называется "block-relay-only connection" (подробнее о типах соединения тут). Тип соединения ничего не говорит о функционале ноды, а наличие функционала ретрансляции транзакций нужно смотреть в информации о ноде (Ретранслятор транзакций - Да/Нет).

2) я для максимального распространения моей транзакции запустил клиента с опцией -maxconnections=50 . И что? И них#я! он показывает коннект к 10 пирам через час работы. Баг? Или я что-то неправильно понимаю?
maxconnections задаёт максимальное кол-во исходящих + входящих соединений (по-умолчанию - 125 соединений). Если порт 8333 на роутере не проброшен, есть только исходящие соединения с лимитом в 10 штук. А лимит этот задан константами MAX_OUTBOUND_FULL_RELAY_CONNECTIONS и MAX_BLOCK_RELAY_ONLY_CONNECTIONS в файле net.h.
sr. member
Activity: 770
Merit: 305
Казино Satoshidice и пул 50btc?
Вы слишком хорошего мнения о моей памяти. Детали я не помню. Можно поискать на форуме. Здесь это было
member
Activity: 35
Merit: 4
Мне больше интересно, почему клиенты пула, рядовые майнеры подобное терпят, ведь пул их, получается, нагло обкрадывает?
А что им, революцию устраивать? Ну один-два обидятся. Остальным пох. Они не заморачиваются.
В своё время (уже больше 10 лет назад) когда были он-чейн казино один админ пула в случае проигрыша ставки (а результат определялся в момент публикации транзакции в сети, а не в момент включения транзакции в блок) заменял в своем пуле транзакцию на даблспенд. В случае если его пул майнил следующий блок -- его ставка не проигрывала. Таким образом он доводил процент выигрышей до "чаще 50%" и по сути дела играл в казино в плюс. Ну пожурили его на форуме, сказали "ай-яй-яй". А по факту в мире биткойна он ничего не нарушил.
Казино Satoshidice и пул 50btc?
sr. member
Activity: 770
Merit: 305
Мне больше интересно, почему клиенты пула, рядовые майнеры подобное терпят, ведь пул их, получается, нагло обкрадывает?
А что им, революцию устраивать? Ну один-два обидятся. Остальным пох. Они не заморачиваются.
В своё время (уже больше 10 лет назад) когда были он-чейн казино один админ пула в случае проигрыша ставки (а результат определялся в момент публикации транзакции в сети, а не в момент включения транзакции в блок) заменял в своем пуле транзакцию на даблспенд. В случае если его пул майнил следующий блок -- его ставка не проигрывала. Таким образом он доводил процент выигрышей до "чаще 50%" и по сути дела играл в казино в плюс. Ну пожурили его на форуме, сказали "ай-яй-яй". А по факту в мире биткойна он ничего не нарушил.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Ну да, изменить правила, действующие на уровне протокола он конечно не может, но вот принять плату вне блокчейна (кэшем например)за  нестандартную транзакцию транзакцию, которая не соответствует дефолтным настройкам ноды, да ещё и не обнародовать эту транзакцию перед её включением в блок,  он оказывается может. Это то, что я имел ввиду.
Понятно. Тут для меня новости нет, майнер может и комиссию нулевую ставить, и транзакции больше 100 вкб отправлять, и свой мемпул никому не показывать. Да и деньги за услуги может брать, кто ему помешает? Мне больше интересно, почему клиенты пула, рядовые майнеры подобное терпят, ведь пул их, получается, нагло обкрадывает?
hero member
Activity: 714
Merit: 1298
Вообщем-то да, если майнеру хорошо заплатить да ещё и мимо кассы, то он может любой муссор/транзакцию в блок засунуть с нарушением всех норм и правил. Вот пример такой транзакции https://mempool.space/tx/0301e0480b374b32851a9462db29dc19fe830a7f7d7a88b81612b9d42099c0ae
У майнера, конечно, больше возможностей, чем у простого юзера, но всё-таки правила он нарушать не может, тут вы немного преувеличили ).


Ну да, изменить правила, действующие на уровне протокола он конечно не может, но вот принять плату вне блокчейна (кэшем например)за  нестандартную транзакцию транзакцию, которая не соответствует дефолтным настройкам ноды, да ещё и не обнародовать эту транзакцию перед её включением в блок,  он оказывается может. Это то, что я имел ввиду.
sr. member
Activity: 770
Merit: 305
У меня только мысль, что нода из сети не видна (обычно за провайдерским натом без тора), но, полагаю, вы должны знать об этом. Других идей пока нет.
Опять же премного благодарен за подсказку. Я не знаю насчет топологии провайдера, думал, что он и исходящих соединений сделает писят. А так я всегда в батничек вставляю -listen=0 . Но вощем, надо против Робин Гуда бороться его же методами!
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Теперь буду смотреть как это реализовано и как помешать даблспенду. Единственная идея - подмешивать в транзакцию инпут, который нельзя просто так взять и заменить. Но не факт, что даблспенд не возможен от части транзакции. Надо пробовать.
Насколько я понимаю, никаких препятствий нет дабдспенднуть и один utxo, лишь бы абсолютное значение комиссии было больше, чем в  заменяемой транзакции (и более, чем на 1 сат/вб).
Quote
Еще обратил внимание что мой клиент (Core, разумеется у меня версия базы полная, без пруне) в списке узлов теперь некоторые пиры показывает тип: "полный ретранслятор" или "ретранслятор блоков"
У меня вопрос если знаете ответ. Вопрос из двух частей
1) если узел "ретранслятор блоков" то есть смысл к нему коннектиться для отправки транзакций? Или он только блоки ретранслирует? И смысла нет
Не знаю.
Quote
2) я для максимального распространения моей транзакции запустил клиента с опцией -maxconnections=50 . И что? И них#я! он показывает коннект к 10 пирам через час работы. Баг? Или я что-то неправильно понимаю?
У меня только мысль, что нода из сети не видна (обычно за провайдерским натом без тора), но, полагаю, вы должны знать об этом. Других идей пока нет.
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: 2562
Merit: 3477
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 что-то умеет тырить, тоже наверное, просто копирует. Но тут надо понимать что можно скопировать, а что нельзя.
sr. member
Activity: 770
Merit: 305
Если посмотреть эту транзакцию в более продвинутом эксплорере mempool.space, то входы там помечены как "Swept Lightning Anchor".
Ну вот, общими усилиями и прояснили. Далее гуглим и находим https://github.com/lightningnetwork/lnd/issues/6652
Я сам ещё не посмотрел что там написано, но премного благодарен за наводку.
Quote
Это не ванити-адрес (черта с два такой подберешь), просто нарисовали текст и чексумму в конце дописали.
Ну, я это и имел в виду. Просто неправильно назвал. Забыл многое пока от дел криптовалютных отходил. Там внутри в UTF-8 какой-то текст на русском про киевскую русь и славян. Спам, однозначно
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Немного поколупался ещё
Оказывается, это началось еще три года назад (может еще раньше)
Вот 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
Это не ванити-адрес (черта с два такой подберешь), просто нарисовали текст и чексумму в конце дописали.
sr. member
Activity: 770
Merit: 305
Вот вам ещё на эту тему
Транзакция https://www.blockchain.com/explorer/transactions/btc/3bca3123e26dcd350729739998682140c9a3b06c1e68be33d3f86fb980737990
рассылает по 540 сатоши на обычные адреса, на каждом из которых уже по три бакса накопилось
Причем вывести с них теоретически можно, но комиссий придется в несколько раз больше заплатить.
Но всё-таки автор этой херни один раз это сделал
https://www.blockchain.com/explorer/transactions/btc/73deed5e356440b27de957ab505dc6d1d46355eb71b793ec217129fbd6c291b2
Потратил на комиссии больше, чем в итоге получил
Обращаем внимание на ванити-адрес 1READxxxSiGSCRiPTxxxTEXTxxxuoXKG1
Для этого идём в другой блокэксплорер
https://btc.com/btc/transaction/73deed5e356440b27de957ab505dc6d1d46355eb71b793ec217129fbd6c291b2
Ну и там понятно что за хрень засунули в блокчейн.
sr. member
Activity: 770
Merit: 305
Немного поколупался ещё
Оказывается, это началось еще три года назад (может еще раньше)
Вот https://www.blockchain.com/explorer/addresses/btc/bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr
330 сатоши приехали на адрес bc1qtwpslpqq63ynhtpc5xjhj8t0f09gnw592aqzyet5vxtgnm2zekrsvvyvdr ещё в феврале 2021 года, а были консолидированы (~700 входов у транзакции в 143 килобайта) в январе 2022
Но тогда комиссии были еще божеские.
Интересно, кто же это делает? Я докопаюсь! Меня любопытство гложет!


sr. member
Activity: 770
Merit: 305
Это же p2wsh транзакции, причем не мультисиг, для чего-то эти скрипты нужны.
Да, это нуль-сиг. То есть для вывода не нужно ничего подписывать. Но нужно знать что там скрыто, ибо мы видим только -sh, а сам скрипт узнаем только в момент публикации транзакции.
В то, что в этом есть какой-то "другой" не экономический смысл -- не верю. Даже при использовании блокчейна есть более дешевые и технологичные способы

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

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

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

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

Начал тут смотреть что там в TapRoot накрутили. Точно без поллитры не разобраться. От оригинального биткойна вообще мало что осталось. Опять же, прошу обратить внимание -- это не нытьё, что раньше было лучше и понятнее. Это лишь констатация факта. 90% мануалов по биткойнам можно смело выкидывать. Особенно я повеселился заглянув в англо-ветку. Они там обсуждают p2pkh, msig и прочие p2pk адреса, которые уже практически по факту вышли из употребления
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Экономического смысла точно нет. Конечно, может кто-то верит, что такого рода действия вынуждают остальных юзеров платить больше комиссий и вообще нахваливать прекрасное будущее и туземун. А как вы думаете?

Полагаю, транзакции с выходами по 330 сат - это "служебные" транзакции какого-то сервиса вроде Robosats, необходимые для работы свопов. Это же p2wsh транзакции, причем не мультисиг, для чего-то эти скрипты нужны. По крайней мере это не банальный спам, как 10 лет назад.
А насчет недавних консолидаций, то согласен, можно было подождать до 1 сат/вб. Видимо, дело не в экономическом смысле, а просто решили навести порядок в своем хозяйстве - сжечь ненужные utxo, пока это не так убыточно.
copper member
Activity: 2100
Merit: 903
White Russian
sr. member
Activity: 770
Merit: 305
Привет всем. Давно не виделись, да?

Я тут снова заинтересовался исследованием блокчейна. Любопытные детали выясняются по ходу дела. Лет десять назад, когда я только начинал это, как раз во время олимпиады были какие-то спамеры, которые отправили кучу транзакций по 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 сатоши

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