Jump to content
sankopolo

[завершен] Конкурс: дважды последний: до 25 марта. Призовой фонд 0.010btc

Recommended Posts

Конкурс завершён. Итоги первой части, итоги второй части.

 

Всем привет.
В прошлый раз отдать 0.010btc не получилось (победитель не забрал приз), но я не теряю надежды.

Цель - отправить транзакцию, которая будет включена в какой-либо блок последней. Будет два победителя: тот, кто сделает это первым и тот, кто сделает это последним (но до 18:00 25 марта МСК).

 

Правила:
1. Участвуют все транзакции, у которых есть выход на адрес
1GZaDcDTBbSHq3URfUn9gitqD6TFoLcd27. Сумма никакого значения не имеет - хоть 1 сатоши. Все эти транзакции будут видны в блокчейне в реальном времени!
2. Если транзакция подходит под (1) и стала последней в каком-либо блоке - это претендент на победу. Порядок транзакций в блоке можно смотреть, например, тут:
https://bitaps.com/567610.
3. Из всех претендентов призы получают двое: первый по номеру блока и последний по номеру блока. Последний блок должен быть создан до 18:00 25 марта МСК (15:00 UTC). Первый победитель получает 0.005 btc, а последний - 0.005btc + приватный ключ от 1GZaDcDTBbSHq3URfUn9gitqD6TFoLcd27.
4. Победители как-нибудь докажут, что транзакции их.

 

Идея конкурса предложена amaclin1. Правила таковы, что и новичок может победить, хотя знания увеличат ваши шансы.

 

Тема на bitcointalk

Edited by sankopolo

Share this post


Link to post
Share on other sites
1 минуту назад, sankopolo сказал:

4. Победители как-нибудь докажут, что транзакции их.

Идея конкурса предложена amaclin1. Правила таковы, что и новичок может победить, хотя знания увеличат ваши шансы.

 

Как-нибудь доказать владельца транзакции легко - добавить в нее OP_RETURN, например, чем потом доказывать владение приватным ключом.

 

А вот @sankopolo или @amaclin сможет потом продемонстрировать то же самое и включить свою транзакцию в блок последней?   В тот же самый диапазон времени. 

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

 

Или можно проспамить и получить приз?

 

Share this post


Link to post
Share on other sites
5 minutes ago, e46btc said:

Как-нибудь доказать владельца транзакции легко - добавить в нее OP_RETURN, например, чем потом доказывать владение приватным ключом.

Да, так можно. Но способ любой - как победителю будет удобнее.

6 minutes ago, e46btc said:

сможет потом продемонстрировать то же самое и включить свою транзакцию в блок последней?   В тот же самый диапазон времени. 

На этот вопрос я отвечу после окончания конкурса.

Share this post


Link to post
Share on other sites
13 минут назад, sankopolo сказал:

На этот вопрос я отвечу после окончания конкурса. 

Можно не отвечать на вопрос, неважно кто как думает,  важно показать что это технически возможно.  

Показать заранее, например сейчас, на любом блоке и на любой транзакции.  И предсказуемо это повторить.

 

Когда нужно сделать, например, двойную трату, CPFP, найти приватный ключ, спрятанный каким либо образом - в этих заданиях есть конкретное и заранее известное (организатору) решение, конкретный алгоритм действий, это решаемая задача.

 

Добавить транзакцию в блок последней это просто лотерея, где нет никакого конкретного решения. 

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

 

Для общего понимания, давайте определимся, это конкурс или лотерея?  

Если это конкурс, то нужно знать решение самому и заранее.  А если это лотерея, то вопросов нет вообще.

 

 

9 минут назад, e46btc сказал:

Если это конкурс, то нужно знать решение самому и заранее. 

Ну и собственно я не прошу его озвучивать.

Достаточно написать:  "да, я знаю конкретное решение этой задачи заранее, оно будет озвучено после окончания конкурса".

В таком случае конкурс имеет смысл, так как задача имеет решение.  И тогда это именно конкурс.

Share this post


Link to post
Share on other sites

@e46btc  а я вот сижу читаю и думаю, блин не уже такое возможно... спасибо  за подтверждение мыслей, что это лотерея..

Share this post


Link to post
Share on other sites

@scopus я могу ошибаться, на уточняющие вопросы ответов нет.  На биткойнтолке витиеватые ответы про "множество способов решения".

Подождем какого-либо ответа организаторов.

Share this post


Link to post
Share on other sites

@scopus @e46btc Любой свой комментарий на эту тему до окончания конкурса я считаю подсказкой. Подсказывать не хочу.

Share this post


Link to post
Share on other sites

Вот первый приз и нашел хозяина:
Транзакция-победитель стала последней в блоке 567888.
В качестве доказательства он отправил эту транзакцию, которая использует выход транзакции-победителя как вход и содержит выход OP_RETURN с сообщением:

Quote

jLNKonkurs forum.bits.media, REWARD TO bc1qhkjryuc2zw0vgnmgkq9dvcq8uufvp72zaeyaf4

Награду отправил. Поздравляю первого победителя.

 

Edited by sankopolo

Share this post


Link to post
Share on other sites

Участников стало больше (кое-кто посмеётся здесь). На текущий момеет преуспели:
567888    transaction
message №1:

Quote

jLNKonkurs forum.bits.media, REWARD TO bc1qhkjryuc2zw0vgnmgkq9dvcq8uufvp72zaeyaf4


message №2:

Quote

let's have some more fun 🙂


568032    transaction
568038    transaction
message:

Quote

yay! REWARD TO bc1qgnh8ss9narxmp3slumrgyhyprlqlhvr4fljh4z

UPD:
568254 transaction - текущий кандидат на второй приз

Edited by sankopolo

Share this post


Link to post
Share on other sites

Новые последние транзакции:
568716 transaction
568732 transaction

Конкурс завершен!

Победила транзакция  93a1c4dbcdecbdf45a3c55e87f9749cca2d47631f41ea1588986688af2b15b4f.

Поздравляю победителя и жду от него сообщение!

Если за сутки не откликнется, переведу приз на его адрес bc1qxj6x782u2tzrejh3qztspyer7kp26apcc2p8dc

Edited by sankopolo

Share this post


Link to post
Share on other sites
18.03.2019 в 23:52, sankopolo сказал:

Любой свой комментарий на эту тему до окончания конкурса я считаю подсказкой. Подсказывать не хочу.

 

Любопытно, будет ли анализ, выводы или правильный ответ?

Share this post


Link to post
Share on other sites
3 minutes ago, e46btc said:

Любопытно, будет ли анализ, выводы или правильный ответ?

Да, скоро напишу. Ты участвовал?

Share this post


Link to post
Share on other sites

Ну ок. Мои выводы такие:

  •  это лотерея
  • удалось выиграть 6 из 384 транзакций на адрес,  то есть фактические шансы получились 1 из 64
  •  единственная возможность совершенно случайно выиграть в нее новичку - это просто отправить транзакцию вообще в любой момент времени, безо всякого анализа , у новичка нет даже таких шансов
  •  затраты времени не-новичка для участия в этом конкурсе совершенно несопоставимы с величиной приза, думаю поэтому участников и не было, нужно потратить около  0.1 BTC (в часах затраченного времени) чтобы выиграть 0.01 BTC, впрочем у каждого своя стоимость времени
  •  мне результат был известен заранее, но тем не менее, чтобы не быть голословным,  я показал все варианты которые смог придумать,  их 6 или 7, все можно увидеть на адресе  1GZaDcDTBbSHq3URfUn9gitqD6TFoLcd27 , но повторять их никто не захотел
  • комментировать каждый мне не хочется, пояснять почему отправлены такие, с такой суммой и комиссией, и столько транзакций, в такое время, и т.п.  - можно посмотреть и сделать какие-то выводы, но вряд ли от этого есть польза без практического применения
  •  других участников не было, это игра в одно лицо, впрочем это предсказуемо - с такой величиной приза (никаких претензий!) и такой сложностью и затратами времени это абсолютно иррационально, иными словами дрочьба в присядку 🙂

mempool-mon-4-sm.thumb.PNG.7133b662e2b44f4447107d369a05f7e2.PNG

 

message:

93a1c4dbcdecbdf45a3c55e87f9749cca2d47631f41ea1588986688af2b15b4f

address:

bc1qxj6x782u2tzrejh3qztspyer7kp26apcc2p8dc

signature:

IElqEOJ7QEApaik4nsCePfnEebJq00N5GrUhjlfertBbdjbrrRjuhtWrrqm5kKD9BlbZgJpvez1J50qzmFNMK5I=

 

Думаю подписывать всеми остальными адресами нет необходимости, у меня нет задачи что-то кому-то доказать.

Но спасибо за конкурс, допилил кое-какие тулзы, до улучшения которых не доходили руки ранее.

Share this post


Link to post
Share on other sites

@e46btc теперь мой взгляд на эту проблему:

В каком порядке и какие транзакции включаются в блок?

Грубо говоря, включается топ мемпула по убыванию комиссии. Но есть несколько исключений и дополнений:

  1. Если у нескольких транзакции в мемпуле абсолютно одинаковая комиссия, то они сортируются по времени (не уверен, но вроде бы получения транзакции первый раз нужной нодой). Со временем всё сложно - напрямую мы его не контролируем, но можем слегка использовать в своих целях (см стратегии 3,4).
  2. Если в блоке помещается 2000 первых транзакций, а 2001ая не помещается, то может быть взята 2002ая, 2003я и т д. Таким образом, чем меньше транзакция - тем выше её шансы стать последней. Одной этой идеи мало. См стратегию 5.
  3. Работа механизма CPFP - тогда дети и родители стоят рядом, сначала родители. Стоят в месте, соответствующем их средней (с учетом их размеров) комиссии. Как использовать в этом конкурсе - у меня не получилось придумать.
  4. И наконец - ручное изменение приоритета на пуле.

Какие бывают блоки?

Для нас важно - заполнен ли блок полностью или же в нём ещё есть место. Если пустое место есть - значит, мемпул пуст. Можно пытаться попадать в полные блоки (стратегии 1, 2, 5), а можно - в неполные (стратегии 3,4).

 

Стратегия 1. Самая простая стратегия - слать транзакции как попало. Вероятность стать последней - около 0.05% - очень мало.

Стратегия 2. При созданиии транзакции выбрать комиссию так, чтобы попасть ровно в нужное место сортированного мемпула. Вроде неплохо, но через секунду появится какая-нибудь чужая транзакция и мы окажемся чуть ниже. Конечно, можно в таком случае отправить вторую, третью, ...потом можно будет сделать replace-by-fee у первой..., второй и так далее. На глаз - тут нужно около сотни транзакций и написать много кода. Комиссию придётся ставить не очень маленькую, а подтвердятся в итоге все эти транзакции. Выходит дорого, но (это моё ощущение) можно добиться очень большой вероятности (50-90%) попадания именно в любой нужный блок. Если бы призовой фонд был в сто раз больше - стоило бы делать так.

Стратегия 3. Слать транзакции с минимальной возможной комиссией 1 сат/байт с тем, чтобы встать в самом конце мемпула и войти последним в неполный блок. Стратегия очень простая и доступна новичкам - можно делать вручную. В то же время уже приемлимые шансы на попадание одной транзакцией - где-то 2-5%. Тут важно не пытаться увеличить шансы одновременной отправкой нескольких транзаций - см пункт про сортировку по времени. Если хочется увеличить шансы отправкой нескольких транзакций - это надо делать через некоторое время - или (и это ещё лучше) после того, как транзакцию с такой же комиссией отправит кто-то другой. Победитель одно время слал просто раз в 5-10 секунд.

Стратегия 4. Можно развить эту идею дальше: в момент появления неполного блока мемпул обнуляется и быть там последним [в пустом мемпуле] очень легко: комиссия 1 сат/байт. Будем отправлять транзакцию в этот момент. Пока в мемпуле нет больше транзакций с 1 сат/байт - мы в очень хорошем положении - если появится блок - мы победим. Пока их там мало - шансы тоже очень хорошие. Дальше можно либо ждать следующего такого момента, либо переходить к стратегии 3. Шансы (оценка на глаз) - около 10% с одной транзакции.

Стратегия 5. Периодически кто-то выгружает в мемпул много транзакций разом. Допустим, что все они имеют размер хотя бы в 220 vbyte, одинаковую комиссию и их объём на блок или больше. Тогда мы можем послать свою транзакцию размером в 110 vbyte (практически минимальный размер) с комиссией чуть меньше или ровно такой же, с тем, чтобы использовать в свою пользу пункт 2. Когда какой-то блок набьют доверху этими транзакциями, есть шанс около 50%, что в блоке останется ешё 110-220 vbyte места. Все оставшиеся транзакции этой серии будут пропущены, а наша - войдёт последней. Если не войдёт - она ещё останется в мемпуле вместе с остатками той пачки - и у неё будет ещё и вторая такая попытка. Шансы очень большие - на глаз 60-90% у одной транзакции. Конечно, тут всё зависит от параметров пачки - а их реальные параметры я не изучал.

 

Когда проверял решаемость задачи сам - использовал вручную гибрид стратегий 3 и 4 - попал где-то с десятой попытки, времени ушло 2-3 часа при околопустом мемпуле.

 

Конкурс это или лотерея?

На мой взгляд, конкурс. Но можно его воспринимать и как лотерею и использовать соответствующие стратегии. А можно - как конкурс и использовать что-то вроде стратегии 5 (теоретические шансы больше половины с одной попытки). К сожалению, что-то подобное никто не сделал. Решение, которое я проверял сам - даёт шансы 5-10% с одной попытки.

 

3 hours ago, e46btc said:

других участников не было, это игра в одно лицо, впрочем это предсказуемо - с такой величиной приза (никаких претензий!) и такой сложностью и затратами времени это абсолютно иррационально

Да, это всё так, увы. Только я немного удивлён, что никто не использовал стратегию 3 или 4 в первые же сутки - программировать не надо, просто чуток подумать и отправить немного транзакций.

3 hours ago, e46btc said:

IElqEOJ7QEApaik4nsCePfnEebJq00N5GrUhjlfertBbdjbrrRjuhtWrrqm5kKD9BlbZgJpvez1J50qzmFNMK5I=

Хм. Bitcoin core и electrum не понимают подписей от bech32. Чем можно подписать/проверить?

 

И ещё - поздравляю!

Edited by sankopolo
опечатки

Share this post


Link to post
Share on other sites
57 минут назад, sankopolo сказал:

Грубо говоря, включается топ мемпула по убыванию комиссии. Но есть несколько исключений и дополнений: 

Это не так.  В мемпуле транзакции никак не сортируются, вообще никак, просто идут по порядку поступления.   Про мемпул - это getrawmempool , там все видно.

Транзакции которые будут включены в блок хранятся совершенно в отдельной структуре памяти, и в самом простом случае это уже про getblocktemplate

 

Все правила 1-4 также не соответствуют действительности.  Можно посмотреть все транзакции на адрес ...Lcd27  и увидеть, что крайняя отправленная мной транзакция стоит перед более старой транзакций бОльшего размера с такой же комиссией в sat/b.

 

Разные способы которые я использовал работают (на самом деле не работают) в разных условиях и в разных состояниях мемпула.   На полупустом мемпуле это одна ситуация, на заполненном мемпуле это другая ситуация.  Самый предсказуемый и самый реальный (не считая спама) но и самый дорогой вариант - 4d54599f0e3b0eceb97a421b0c94692191fec996d96a9aab88d80cd65bece5bd

После чего дождаться подтверждения этой транзакции, CPFP тут как раз не нужен, он только мешает.

 

Далее при заполненном мемпуле  размером в несколько мегабайт при определенном уровне комиссий в нужный момент времени отправить сразу транзакции , таким образом в мемпуле будет достаточно транзакций с комиссиями  от (в данном примере)  3 до 1 сатоши с шагом около 0.01 , в реальности это уменьшение комиссии на 1 сатоши с каждой новой транзакцией, именно то что видно на скрине выше.   Транзакции нужно отправить одновременно до нахождения нового блока, иначе есть все шансы что придется начинать заново.

 

Размер транзакции на практике для данной конкретной задачи не дает преимуществ, потому что есть много других элементов рандома, по факту P2WPKH только для  целей экономии.   Опять же это видно по расположению транзакций в блоке.

 

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

 

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

 

Ну а транзакция 4d54599f0e3b0eceb97a421b0c94692191fec996d96a9aab88d80cd65bece5bd была подготовлена заранее и до последних часов конкурса не использовалась именно для того, что могли быть другие участники  и мог быть заполненный мемпул и дешевые способы не сработали бы,  так и вышло.

 

57 минут назад, sankopolo сказал:

Чем можно подписать/проверить? 

image.thumb.png.8cc67da16f47eac444b1bfda5e44a58f.png

 

 

Какую пользу извлечь из этого конкурса?   Можно использовать его для создания честной* (условно-честной) лотереи, так как нет ни единого способа однозначно выиграть, не имея своего пула.   Даже если воспользоваться способом отправки одновременных транзакций с динамической комиссией скажем от 5 до 1 sat/b с шагом в 0.01 сатоши, то одновременно этим способом могут воспользоваться несколько участников и ни один из них не может гарантировать себе победу.

 

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

57 минут назад, sankopolo сказал:

И ещё - поздравляю!

Отличная шутка 🙂  Но спасибо 🙂

Поиграть самому с собой, потратить кучу времени и "выиграть" 🙂

 

Здесь еще много нераскрытых вопросов для любознательных, почему нельзя отправить "хоть 1 сатоши"

18.03.2019 в 16:05, sankopolo сказал:

Сумма никакого значения не имеет - хоть 1 сатоши

, а так же зачем нужны промежуточные транзакции, почему здесь не работает и полностью бесполезен RBF и т.п.  Но опять же это для пытливых умов. Каждый может повторить это своими силами и сделать выводы.

Share this post


Link to post
Share on other sites

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

Этот конкурс - удел пары гиков с наличием кучи времени, чтобы "поковыряться" в сети. У меня не хватило терпения .

Share this post


Link to post
Share on other sites

@rammendo 

4 часа назад, e46btc сказал:

иными словами дрочьба в присядку 🙂

 

 

3 минуты назад, rammendo сказал:

чтобы "поковыряться" в сети

Именно так, только если есть какие-то другие цели, например, самообразование.

Те кто это понимает и умеет - не будут участвовать, цель не оправдывает средства,  а для обычного пользователя это оверкилл.

Share this post


Link to post
Share on other sites

@e46btc приватный ключ от 1GZa... в личке, остальное на bc1qxj6x782u2tzrejh3qztspyer7kp26apcc2p8dc ?

Share this post


Link to post
Share on other sites
20 минут назад, e46btc сказал:

Те кто это понимает и умеет - не будут участвовать, цель не оправдывает средства,  а для обычного пользователя это оверкилл. 

Я думаю, есть польза от таких конкурсов. Заставляет напрячь мозги и гугл. Это в любом случае полезно.

Share this post


Link to post
Share on other sites

Приз отправил. 

44 minutes ago, e46btc said:

Все правила 1-4 также не соответствуют действительности. 

Это ж надо такое сказать. Но спорить не буду - спишем на эмоции.

51 minutes ago, e46btc said:

  Самый предсказуемый и самый реальный (не считая спама) но и самый дорогой вариант - 4d54599f0e3b0eceb97a421b0c94692191fec996d96a9aab88d80cd65bece5bd

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

1 hour ago, e46btc said:

Отличная шутка 🙂  Но спасибо 🙂

Поиграть самому с собой, потратить кучу времени и "выиграть" 🙂

Не шутка. Но распугать участников ты сам тоже помог, когда написал, что это сделать невозможно. Впрочем, на bitcointalk люди тоже постарались (amaclin1 там написал, что недели будет мало).

1 hour ago, e46btc said:

 

Здесь еще много нераскрытых вопросов для любознательных, почему нельзя отправить "хоть 1 сатоши" 

Да, я решил не писать реальные dust-лимиты, чтобы не распугивать людей ещё больше.

19 minutes ago, polym0rph said:

Я думаю, есть польза от таких конкурсов. Заставляет напрячь мозги и гугл. Это в любом случае полезно.

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

Share this post


Link to post
Share on other sites

@sankopolo @e46btc ну вы даете !

не удержался, вот вам новый простой конкурс !

 https://www.blockchain.com/ru/btc/address/3QSQnexKggdEwvjW8wWf5gyhyhECZ67Bkg

Думать - максимум одну минуту. Получить приз намного сложнее.

 

PS. Ну вот и все, даже не интересно. Хотя, наоборот, интересно, это почти на 100% дело рук робота.

Может, кто-нибудь попробует перебить транзакцию дабл спендом? Время есть пара часов, наверное

5KYbTzUb1eSnrhPyzj8nvipuksBYM2x65FjRXsyeLugA2Cmd95a

Edited by rammendo

Share this post


Link to post
Share on other sites
2 минуты назад, sankopolo сказал:

Это ж надо такое сказать. Но спорить не буду - спишем на эмоции. 

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

 

От каких эмоций меня распирает?   От выигрыша 0.01 BTC?   Пойду куплю доширак. 

 

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

 

Когда тебе было предложено ответить на вопрос про "правильный ответ" самому до окончания конкурса, ты сослался якобы на "подсказки". Кому и в чем подсказывать?   Здесь со всеми подсказками просто так эту задачу предсказуемо не решить, только наугад отправляя транзакция с расчетом на везение.    А после проведения конкурса осталось просто рассказать о том что увидел, да и то неправильно, все эти пафосно озвученные стратегии нерабочие в реальности.

 

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

У меня пожелание только одно  - не пудрить другим людям мозги своей недостоверной и неправильной информацией и представлением о работе сети.  "Это работает вот так, но это не точно".  Это не работает вот так.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...