Pages:
Author

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

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?
Вы слишком хорошего мнения о моей памяти. Детали я не помню. Можно поискать на форуме. Здесь это было
Pages:
Jump to: