Author

Topic: Автоматическая пересылка биткойнов (Read 19681 times)

legendary
Activity: 1260
Merit: 1019
Уххх через "пустой" кошелек 50 бтц пролетело!!! А на следующий день 2 бтц  Grin Grin Grin
Да, я вот в этом топике уже описывал эту и другую историю.
https://bitcointalksearch.org/topic/m.11998544
member
Activity: 259
Merit: 47
Уххх через "пустой" кошелек 50 бтц пролетело!!! А на следующий день 2 бтц  Grin Grin Grin
legendary
Activity: 1260
Merit: 1019
так я чот не понял, сколько прога заработала?
только пожалуйста без сарказмаSmiley
Я вроде по-русски написал, не?
Ну, разве что филологический вопрос в том - я это сам заработал с помощью программы или программа, которую я написал заработала мне.
Чувствуете разницу?
Да, я повторяю: я не собираюсь выставлять сорцы на продажу. Объяснения выше по тексту.
legendary
Activity: 1330
Merit: 1012
Проработала моя программа на сервере azure больше года.
Заработала мне денег около 40 килобаксов.

так я чот не понял, сколько прога заработала?
только пожалуйста без сарказмаSmiley
legendary
Activity: 1260
Merit: 1019
прям кило баксовHuh
На фабрике партийное собрание:
Секретарь ячейки:
- Марья Ивановна! Как же так? Вы ведь у нас передовик производства, неоднократно становились ударником Коммунистического труда,
депутатом всех созывов, наставницей... Как же вы смогли стать валютной проституткой?!
Марья Ивановна:
- Ну что я могу сказать? Повезло..

Quote
зачем тогда закрывать?
Потому что не я один такой хитрожопый.
Количество халявы ограничено, а население растёт.

Quote
на Азуре цена поднялась примерно на 60% на хостинг  я тоже в убытке - но доходы то у меня вообще мизер - по сотне в месяц
Ничем не могу помочь. Советом разве что: бегите нахер от битка!


legendary
Activity: 1554
Merit: 1008
прям кило баксовHuh

зачем тогда закрывать?
на Азуре цена поднялась примерно на 60% на хостинг  я тоже в убытке - но доходы то у меня вообще мизер - по сотне в месяц
legendary
Activity: 1260
Merit: 1019
В связи с этим у меня возник вопрос - как бы мне своего бота, который тем же самым по идее заниматься должен тоже в интернет поместить?
Потому что держать программу включенной на домашнем компьютере - это несерьезно.
Я так понимаю, что мне нужно купить у какого-нибудь хостера VPS и там запустить моего бота, так?
Я с этими делами раньше совсем не занимался, так что совсем в этом вопросе нуб.
Даже с линуксом дела не имел по большому счету.
Уф.
Вот и год прошел, даже больше.
Смортю на письмо в почте
Quote
Жаль, что вы уходите! Ваша подписка "Оплата по мере использования{********-****-****-****-************}" и службы были отключены Sun, 14 Jun 2015 15:49:51 GMT, так как вы их отменили.
И немного печалюсь.
Проработала моя программа на сервере azure больше года.
Заработала мне денег около 40 килобаксов. Но... Всему хорошему приходит конец. И этому приключению - тоже.
В последние месяцы уже даже хостинг свой не отбивает. Вот я и грохнул её. Всему есть свой конец.
hero member
Activity: 708
Merit: 502
Quote
да, но как ты считаешь Z?

http://bitcoin.stackexchange.com/q/35799/12983
твой вопрос? гыыы... если нет (что я допускаю), то прикольно, что не только ты этим интересуешься

мой ))

мои навыки програмирования к сожалению далеки от совершенства, пытаюсь изучть с# на вот таком сложном примере )
да и вопросов много.
счас пока что на паузе - много дел - но буду задавать еще вопросы если не против )
legendary
Activity: 1260
Merit: 1019
Quote
да, но как ты считаешь Z?

http://bitcoin.stackexchange.com/q/35799/12983
твой вопрос? гыыы... если нет (что я допускаю), то прикольно, что не только ты этим интересуешься
legendary
Activity: 1260
Merit: 1019
Quote
да, но как ты считаешь Z?

а как ты подписываешь multisig-транзакции?
ведь в метод "сигн" как раз и передается этот самый z.
это же дайджест от подписываемых данных

hero member
Activity: 708
Merit: 502
Quote
возможно ли тоже самое для multisig?
разумеется, возможно
multisig - это операция в биткойн-скриптах
а математика ecdsa вообще никак с биткойном не связана
]

да, но как ты считаешь Z?
legendary
Activity: 1260
Merit: 1019
Quote
возможно ли тоже самое для multisig?
разумеется, возможно
multisig - это операция в биткойн-скриптах
а математика ecdsa вообще никак с биткойном не связана
hero member
Activity: 708
Merit: 502
Quote
был бы рад пообщаться - все пригодиться чем сможете поделится/подсказать  Wink
например интерсует расчет privk для одинаковых R для разных input если известен privk в одном из них.

не вопрос. Это я еще в топике https://bitcointalksearch.org/topic/ecdsa-math-876149 сам спрашивал

Code:
const MyKey32 MyKey32::getKvalue ( const MyKey32& r, const MyKey32& s, const MyKey32& z, const MyKey32& priv )
{
//k= (digest+r.privkey)/s
  const MyKey32 zp ( add ( mul ( r, priv ), z ) );
  const MyKey32 invs ( inv ( s ) );
  const MyKey32 k ( mul ( zp, invs ).normalize ( ) );
  return k;
}
суть должна быть понятна: объект MyKey32 - это 256-битное число, у разработчиков Bitcoin Core это называется uint256
add - сложение, mul - умножение, inv - инверсия
r, s - это два числа из сигнатуры
z - дайджест подписываемого сообщения
ну может стоит объяснить разве что такое normalize - дело в том что это уравнение имеет два зеркальных решения
я беру то, которое меньше
так я определяю k по известному priv и подписи [r,s]

Code:
static const MyKey32 order ( QByteArray::fromHex ( "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141" ) );
const MyKey32 MyKey32::getPrivateKey ( const MyKey32& r, const MyKey32& s, const MyKey32& k, const MyKey32& z, const MyKey20& addr )
{
  static MyKey20 addr1;
  static MyKey20 addr2;
  MyKey32 priv = mul ( sub ( mul ( s, k ), z ), inv ( r ) );
  priv.getKeys ( addr1, addr2 );
  if ( addr1 == addr || addr2 == addr )
    return priv;
  priv = mul ( sub ( mul ( s, sub ( order, k ) ), z ), inv ( r ) );
  priv.getKeys ( addr1, addr2 );
  if ( addr1 == addr || addr2 == addr )
    return priv;
  xassert ( false ); // это паранойя на всякий случай. вроде ни разу этот ассерт не выстрелил
}
А это нахождение приватного ключа по известному мне k
Здесь функция может тоже два ответа выдать, поэтому я передаю еще один параметр addr
и пересчитываю адреса найденных мною приватных ключей





возможно ли тоже самое для multisig?
legendary
Activity: 1260
Merit: 1019
Quote
был бы рад пообщаться - все пригодиться чем сможете поделится/подсказать  Wink
например интерсует расчет privk для одинаковых R для разных input если известен privk в одном из них.

не вопрос. Это я еще в топике https://bitcointalksearch.org/topic/ecdsa-math-876149 сам спрашивал

Code:
const MyKey32 MyKey32::getKvalue ( const MyKey32& r, const MyKey32& s, const MyKey32& z, const MyKey32& priv )
{
//k= (digest+r.privkey)/s
  const MyKey32 zp ( add ( mul ( r, priv ), z ) );
  const MyKey32 invs ( inv ( s ) );
  const MyKey32 k ( mul ( zp, invs ).normalize ( ) );
  return k;
}
суть должна быть понятна: объект MyKey32 - это 256-битное число, у разработчиков Bitcoin Core это называется uint256
add - сложение, mul - умножение, inv - инверсия
r, s - это два числа из сигнатуры
z - дайджест подписываемого сообщения
ну может стоит объяснить разве что такое normalize - дело в том что это уравнение имеет два зеркальных решения
я беру то, которое меньше
так я определяю k по известному priv и подписи [r,s]

Code:
static const MyKey32 order ( QByteArray::fromHex ( "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141" ) );
const MyKey32 MyKey32::getPrivateKey ( const MyKey32& r, const MyKey32& s, const MyKey32& k, const MyKey32& z, const MyKey20& addr )
{
  static MyKey20 addr1;
  static MyKey20 addr2;
  MyKey32 priv = mul ( sub ( mul ( s, k ), z ), inv ( r ) );
  priv.getKeys ( addr1, addr2 );
  if ( addr1 == addr || addr2 == addr )
    return priv;
  priv = mul ( sub ( mul ( s, sub ( order, k ) ), z ), inv ( r ) );
  priv.getKeys ( addr1, addr2 );
  if ( addr1 == addr || addr2 == addr )
    return priv;
  xassert ( false ); // это паранойя на всякий случай. вроде ни разу этот ассерт не выстрелил
}
А это нахождение приватного ключа по известному мне k
Здесь функция может тоже два ответа выдать, поэтому я передаю еще один параметр addr
и пересчитываю адреса найденных мною приватных ключей


hero member
Activity: 708
Merit: 502
Quote
сорцы на продаже? можно в личку.
в настоящее время - нет.
вероятнее всего время продажи не наступит никогда - если мне станет интересно это продать,
у вас к тому времени отпадет охота это купить

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

в общем, моя совесть подсказывает мне, что лучше не делать тут бизнес.
заработка тут большого не получить, а измазаться в грязи можно запросто.
нафига мне это?
я могу какие-то идеи рассказать или куски показать. но без сделок.

был бы рад пообщаться - все пригодиться чем сможете поделится/подсказать  Wink
например интерсует расчет privk для одинаковых R для разных input если известен privk в одном из них.
legendary
Activity: 1260
Merit: 1019
Quote
сорцы на продаже? можно в личку.
в настоящее время - нет.
вероятнее всего время продажи не наступит никогда - если мне станет интересно это продать,
у вас к тому времени отпадет охота это купить

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

в общем, моя совесть подсказывает мне, что лучше не делать тут бизнес.
заработка тут большого не получить, а измазаться в грязи можно запросто.
нафига мне это?
я могу какие-то идеи рассказать или куски показать. но без сделок.
hero member
Activity: 708
Merit: 502
Quote
а все потому, что вы используете для этих целей "виртуалочку за пять баксов" (утрируя), которая мало годится для интерактивных приложений.
пацаны запускающие подобный софт на норм железе, в большинстве случаев будут быстрее вас обрабатывать данные и быстрее генерировать транзакции.
Жаба моя меня душит - ведь не факт, что даже купив супер-пупер навороченную систему я буду успевать раньше.
Те пацаны тоже ведь не только на турбо-паскале простые числа умеют решетом эратосфена находить.
Quote
з.ы. забавно, но вся эта хрень тоже в каком-то роде майнинг напоманает Grin
ага. вообще-то в нашей жизни многие вещи похожи.
успеть раньше других, причем так чтобы доход был бы больше расхода

сорцы на продаже? можно в личку.
legendary
Activity: 1260
Merit: 1019
Quote
а все потому, что вы используете для этих целей "виртуалочку за пять баксов" (утрируя), которая мало годится для интерактивных приложений.
пацаны запускающие подобный софт на норм железе, в большинстве случаев будут быстрее вас обрабатывать данные и быстрее генерировать транзакции.
Жаба моя меня душит - ведь не факт, что даже купив супер-пупер навороченную систему я буду успевать раньше.
Те пацаны тоже ведь не только на турбо-паскале простые числа умеют решетом эратосфена находить.
Quote
з.ы. забавно, но вся эта хрень тоже в каком-то роде майнинг напоманает Grin
ага. вообще-то в нашей жизни многие вещи похожи.
успеть раньше других, причем так чтобы доход был бы больше расхода
newbie
Activity: 32
Merit: 0
а все потому, что вы используете для этих целей "виртуалочку за пять баксов" (утрируя), которая мало годится для интерактивных приложений.
пацаны запускающие подобный софт на норм железе, в большинстве случаев будут быстрее вас обрабатывать данные и быстрее генерировать транзакции.
з.ы. забавно, но вся эта хрень тоже в каком-то роде майнинг напоманает Grin
legendary
Activity: 1260
Merit: 1019
Сижу вчера вечером, никого не трогаю, примус починяю.
Вдруг на моих радарах в логах строчки

Code:
"-- [91.121.102.181] fast found spendables sent [ed798e4a51884709c7b7175addc62067f0d555796ffde3d5fc11d1f203575164]"
"  botted 46aadf410ebb6b538d55b52dc919da7fb8dd8d7fc30ff931b431e9cc3ce30e10:0 to 1LdUHTEVxWJhrhKfy4H3VuYDnTHQVjsdBn [4.99990000]"

Вкратце это означало следующее:
мой бот зафиксировал перевод на адрес с известным мне приватным ключом и сразу же создал транзакцию перевода на мой адрес
сразу после этого мой бот также зафиксировал, что владелец адреса 1LdUHTEVxWJhrhKfy4H3VuYDnTHQVjsdBn тоже сделал перевод на свой адрес.

Короче, кто-то опрометчиво вчера послал 5 btc транзакцией
https://blockchain.info/tx/4c8b5bc34471c3fa823c5d7f02e453a77aeaa26c5c2fe5a7bcd04f8d271f3f19
на адрес 1CgCMLupoVAnxFJwHTYTKrrRD3uoi3r1ag
А это брейнваллетовский адрес от строки "the"

Чорд! Его транзакция быстрее моей разошлась по сети (а может и создана была раньше).
И мне не достались халявные 5 btc - а это, на минуточку, полторы штуки баксов  Cry
Хнык  Grin
full member
Activity: 137
Merit: 113
Форма здесь https://www.f2pool.com/pushtx Код пока посоветовали использовать 8738a528132db142

И пары дней не прошло, как лавочку прикрыли  Smiley
legendary
Activity: 1260
Merit: 1019
На всякий случай сдублирую в "этот свой блог" то что я сегодня раскопал.
Ссылка на раскопки: https://bitcointalksearch.org/topic/miner-accepting-non-standard-txs-required-627218

Пул f2pool (насколько я понимаю - это тот пул, который также известен как Discus Fish, якобы китайцы) теперь майнит нестандартные транзакции.
Мою нестандартную транзакцию они получили из сети и смайнили.
Впрочем, у них теперь есть веб-форма, с помощью которой можно им запузырить транзакцию
Форма здесь https://www.f2pool.com/pushtx Код пока посоветовали использовать 8738a528132db142
(Ну понятно, в случае чего они его задизейблят, если народ начнет шалить)
legendary
Activity: 1260
Merit: 1019
Quote
Только один вопрос: для чего вменяемый человек в здравом уме станет это делать? Хоть одна теоретическая причина, которая сможет мотивировать кого-либо разбрасывать собственные деньги на людной базарной площади?...

Как ни странно - разбрасывают.
Кто-то создает приватные ключи брейнваллетами с паролем типа "123456"
Кто-то экспериментирует типа: а что будет если отправить биткойны на адрес опубликованный в интернете?
Кто-то просто ошибается при копи-пейсте.
Кто-то создает транзакции с нестандартными выходами.
Кто-то использует неправильные генераторы рандома.
Кто-то просто публикует зачем-то свои приватные ключи в публичном доступе.

Я уже в этом топике давал ссылку на то, как на адрес "chbs" перевели 10 биткойнов, что составляло больше $5k в тот момент
https://bitcointalksearch.org/topic/m.6894208

Кстати, вы в метро ездите? Никогда в детстве не запускали "копеечку" по эскалатору? Просто чтобы услышать как она будет звякать?
А в фонтан денежку никогда не кидали?
legendary
Activity: 1498
Merit: 1021
Was mich nicht umbringt macht mich stärker [F.N.]
Ну вот, например на странице https://en.bitcoin.it/wiki/WIF присутствует приватный ключ.
Ему соответствует адрес 1GAehh7TsJAHuUAeKZcXf5CnwuGuGgyX2S (можете проверить сами с помощью brainwallet.org)
Попробуйте на этот адрес кинуть 6001 сатоши - посмотрим что будет дальше.
Только один вопрос: для чего вменяемый человек в здравом уме станет это делать? Хоть одна теоретическая причина, которая сможет мотивировать кого-либо разбрасывать собственные деньги на людной базарной площади?...
legendary
Activity: 1260
Merit: 1019
amaclin, удалось допилить программу до стейбл релиза?
По мере знакомства с биткойном поменялась основная концепция программы.
Получился целый "пучок" программ для анализа блокчейна.
В разных вариантах - например база данных брейнваллетов из популярных слов и словосочетаний занимает у меня на домашнем компе несколько десятков гигов на SSD.
Разумеется, домашний комп под это не заставить работать 24/365
Поэтому еще разорился на VPS-хостинг.
Крутится бот, более-менее стабильный. Так как я VPS брал в "экономном варианте", то пришлось оптимизировать по памяти, уменьшить базу и прочее.

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

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

Опенсоурс отменяется. Кусками я могу показать и рассказать как биткойн работает, вместе - только за деньги.
full member
Activity: 137
Merit: 113
amaclin, удалось допилить программу до стейбл релиза?
legendary
Activity: 1260
Merit: 1019
кусок кода чего?
ну вот, например, я тут на англоязычном форуме объяснял как парсить транзакции
http://bitcoin.stackexchange.com/questions/29914/how-to-calculate-multisig-address
а вот тут как парсить blk-файлы
http://bitcoin.stackexchange.com/questions/25744/extracting-information-from-utxo-for-offline-processing
newbie
Activity: 10
Merit: 0
да не нужно сложных описаний - кусок кода в пример с приваткей и адресами и как разделяются или выделяются в коде
legendary
Activity: 1260
Merit: 1019
Привет всем.

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

Не понял вопроса. Это что-то из разряда "объясни как в математике пишутся цифры и операторы" - вам про сложение-вычитание со счетными палочками рассказывать или дифференциальное исчисление интересует? Задавайте вопрос более конкретно, хоть как-то определяйте что именно вы хотите сделать - тогда может быть смогу порассуждать на досуге
newbie
Activity: 10
Merit: 0
Привет всем.

amaclin обьясни хотя бы в кратце что и как обозначается в блокчейне.
как и чем разделяются адреса и как видно ключи , если не сложно на примере
legendary
Activity: 1260
Merit: 1019
Quote
Уточните. Вы про этот проект майкрософт. http://azure.microsoft.com
Мне было нетрудно догадаться, что про этот.
Кстати спасибо @icreator за наводку - я сперва немного попрошал у русских хостеров, те после произнесения слова "биткойн" говорят "до свидания"
С azure никаких проблем не возникло - взял виртуалку на тестовый бесплатный месяц.
Установил там Qt и запустил своего бота как на своей локальной тачке.
Кстати, несколько операций он уже провел. Конечно, на раздачу 5 килобаксов мы с ним опоздали, но мелочью поживились.
Не факт, что бот будет отбивать расходы на хостинг после истечения "бесплатного месяца", но я и особо не рассчитывал на это. Это фан, а не заработок.

Хотите больше информации? Могу продемонстрировать.
Я называю вам адрес, вы переводите на него немножко биткойнов (сейчас бот настроен на 6001 сатоши и больше)
И потом смотрите по блокчейну (удобнно смотреть на blockhain.info) что дальше произошло.
Не факт, что мой бот успеет первым (он все-таки не единственный, кто этим занимается), но легких решений мы же не ищем?

Ну вот, например на странице https://en.bitcoin.it/wiki/WIF присутствует приватный ключ.
Ему соответствует адрес 1GAehh7TsJAHuUAeKZcXf5CnwuGuGgyX2S (можете проверить сами с помощью brainwallet.org)
Попробуйте на этот адрес кинуть 6001 сатоши - посмотрим что будет дальше.
Если мой бот их "поймает" - я скажу спасибо (но не верну!). Возможно, кто-то другой, кто следит за этим скомпроментированным приватным ключом успеет быстрее - в любом случае эти биткойны будут на этом адресе считанные секунды.
hero member
Activity: 1050
Merit: 501
corion.io
asure.windows - 400р/мес за норм виндовс виртуалку - бкри без SQL, только голый ХР
Уточните. Вы про этот проект майкрософт. http://azure.microsoft.com
Или что то другое ?
legendary
Activity: 1554
Merit: 1008

1) Не возникнет ли вопросов у хостера, если я захочу разместить не "сайт к которому обращаются извне", а некоторую "программу, которая сама будет куда-то коннектиться"?
2) Какие вообще сейчас хостинги имеются? Я думаю, что меня устроит российский хостер, так как проект весьма экспериментальный - то стоимость играет роль, но я готов потратить деньги на эксперименты
3) Какие вообще инструменты у меня будут? Я ж не php-скрипты по ftp на хостинг заливать собираюсь - мне Qt-программу надо там скомпилировать и запустить (а также иметь возможность ее остановить, если что-то не так)
4) Что вообще по этому поводу можно еще сказать?
asure.windows - 400р/мес за норм виндовс виртуалку - бкри без SQL, только голый ХР
legendary
Activity: 1260
Merit: 1019
Прикольные вещи в мире творятся.
Сегодня кто-то провел транзакцию
https://blockchain.info/tx/0d01f00112b0e15620be99aebe6326e1398b3c022e43ceb26cf67717b039148f
Это перевод 10btc ( $5k  Shocked ) на адрес "correct horse battery staple"
Разумеется, куча ботов тут же подрались, но один, разумеется, оказался самым везучим и вывел это себе
https://blockchain.info/tx/31ff3dc5a0b490e0dc709a27fc50b1dc9c6d17a82b7bae36244293464352fb38

Павел Дуров (который разбрасывал 5-тысячные купюры из окна) нервно курит в стороне - тут 5 штук баксов кто-то выкинул в толпу

Подобрали в ту же секунду. Ну, по крайней мере так это появилось на блокчейн.инфо

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

1) Не возникнет ли вопросов у хостера, если я захочу разместить не "сайт к которому обращаются извне", а некоторую "программу, которая сама будет куда-то коннектиться"?
2) Какие вообще сейчас хостинги имеются? Я думаю, что меня устроит российский хостер, так как проект весьма экспериментальный - то стоимость играет роль, но я готов потратить деньги на эксперименты
3) Какие вообще инструменты у меня будут? Я ж не php-скрипты по ftp на хостинг заливать собираюсь - мне Qt-программу надо там скомпилировать и запустить (а также иметь возможность ее остановить, если что-то не так)
4) Что вообще по этому поводу можно еще сказать?
legendary
Activity: 1260
Merit: 1019
Немного поисследовал блокчейн - собрал все адреса, на который когда-либо переводились btc
Брал только PAY_TO_HASH160 и PAY_TO_PUBKEY выходы
Получилось что-то порядка 36-38 миллионов адресов (размер текстового файла ~1.2 гига)
Начало этого списка (это адреса которые были сгенерированы не из privateKey->publicKey->address, а из hash160 - поэтому исходящих платежей на этих адресах нет - я даже и проверять не стал)
Code:
1111111111111111111114oLvT2
11111111111111111111BZbvjr
11111111111111111111HeBAGj
11111111111111111111QekFQw
11111111111111111111UpYBrS
11111111111111111111g4hiWR
11111111111111111111jGyPM8
11111111111111111111o9FmEC
11111111111111111111ufYVpS
[...]
Конец списка
Code:
[...]
1zzzhyWYaWovr2BuxeNJ2GdrMWXaECibT
1zzznSSEfwR4A4XQeWqCvkXX3ona43ihY
1zzzo1gSe2mf3XBmPsqR6SSrhqr575r6a
1zzzybVFacrCPU63iLvWL4ejyjKa14Q7V
1zzzyn9AkqA2We8u4qqWVHzoMDSQBXg5D
Любопытно, что адрес 1zzzyn9AkqA2We8u4qqWVHzoMDSQBXg5D - вполне себе нормальный, то есть ванитиген никто не запускал с паттерном "1zzzzzz" чтобы получить адресок в конце
hero member
Activity: 1050
Merit: 501
corion.io
Интересные вещи описанны.
legendary
Activity: 1260
Merit: 1019
Развлекался вдоволь вчера, комбинируя "пыль" и выводя ее на собственный аккаунт.
Всю историю можно посмотреть тут
https://blockchain.info/ru/address/1ENnzep2ivWYqXjAodTueiZscT6kunAyYs
(смотреть входы за 2014-04-26 и позднее)
Разумеется, для создания транзакций использовался не стандартный клиент, а моя программулина.

"Прибыль" там копеечная - что-то в районе 0.04BTC - это 15-20 баксов вроде (лень считать), но на душе приятно, что технология работает, и выходы, которые могли быть "моими" стали реально моими.

Ну что можно сказать по результатам?
1. Майнеры с радостью берут транзакции 0.0001 за килобайт - это комиссия клиентов 0.8.х

2. Если комиссию уменьшать - то тогда транзакцию майнят только клиенты 0.9.х. Некоторые транзакции подвисают. Но в результате прошло все, что я отправлял. Ну, да что я вам очевидные вещи рассказываю? - Это же и так всем известно!

3. Порадовала транзакция
https://blockchain.info/ru/tx/9be140bed296b6b0d72dc235ffa777ad5916e71977118d801433d04a1361d699
которую я отправил в сеть позже транзакции
https://blockchain.info/ru/tx/20740da3d3d1a36e2e18897df27438cf2e200e71b39f43e43dff2ae6844d0417
и с меньшей комиссией. Но майнеры смайнили мою транзакцию. Вот так-то, вуаля.

4. Очередной раз хочется высказаться насчет пула Eligius. Я может быть неправильно понял слухи в интернете, но раньше я думал, что Eligius майнит любые транзакции, которые допустимы в протоколе. Ан, нет. У Люка хитрый план - он [возможно, я не проверял] майнит транзакции с нестандартными выходами, но не майнит транзакции с нестандартными входами. Ну то есть может и майнит, но сам и себе. Шлюз Элигиуса находится на 192.3.11.20. Но это не сам пул. Сам пул находится внутри евойной сети и снаружи недоступен. Пруф здесь https://bitcointalk.org/?topic=6667.100 (только айпишник сменился)
Quote
Do note that the public peer on my server is used for #bitcoin-watch, NOT the pool. For security reasons, the pool's node is not externally accessible at all, and only communicates with the #bitcoin-watch node.
В принципе, абсолютно логично. Я бы и сам так сделал.

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

На Элигиусе свой контроль транзакций - например, что меня особенно поразило - Элигиус не принимает мультисиг-транзакции! Вообще. Не знаю с чем это связано и какая возжа куда попала. Он таким образом "борется" со всякими фаусетами, игральными костями, и каунтерпарти-сервисами. Ну-ну. Коммиты тут:
https://gitorious.org/bitcoin/luke-jr-bitcoin/commits/5f8e7180c4b34d5f46c61a6dd2242f4249b5f79a
Судя по косвенным признакам - эти коммиты сейчас в бою.



 
legendary
Activity: 1260
Merit: 1019
Ну, в общем, я продвигаюсь все впердее и впердее.

На днях доделал-таки анализ блокчейна на предмет уязвимости, связанной с плохим генератором рандома. Более подробно смотрите тут
http://www.nilsschneider.net/2013/01/28/recovering-bitcoin-private-keys.html
и тут https://bitcointalksearch.org/topic/reused-r-values-again-581411

Да, именно вторая ссылка сподвигла меня на возвращение к этой теме - я уж думал, что на эти грабли больше никто не будет наступать - ан, нет! Опять наступили.
Теперь я счастливый обладатель приватных ключей от 285 адресов (включая те, которые засветились в 2013). Пыли (мелких неизрасходованных выходов) на них - дофигищи.

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

Code:
static struct FlawAddresses faddress [] =
{
  { "5JsYaHVGCUzuXaQ[xxxxxxxxxx]77sqzWkWuTMMjXsT", "1A8TY7dxURcsRtPBs7fP6bDVzAgpgP4962" },
  { "5JKkG6KXLCCPXN9[xxxxxxxxxx]YrLvn6d3nd8BLjjw", "1C8x2hqqgE2b3TZPQcFgas73xYWNh6TK9W" },
  { "5JSJG3nX6z1rsfZ[xxxxxxxxxx]PzGm7hPRazzrqYzA", "1HXSnvNGK8oYQCyLDkpHNZ2sWPvFsYQcFU" },
  { "5KJp7KEffR7HHFW[xxxxxxxxxx]X1AUzaSBHHFdKEpQ", "1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm" },
  { "5J2EKg7VP8ZpYQx[xxxxxxxxxx]uVqCA6r4cn187cZ4", "16mWzkk6iznyJQ3sKQRYxQ1Zr8xWpGMFWi" },
  { "5JxdYD6Hk2Wvaxh[xxxxxxxxxx]pSy5R8miM32TTiuy", "1JNC3iaxA95NbWrSro5me2BM27wohuucKD" },
  { "5K1McgzD9mcLLJ5[xxxxxxxxxx]pLS14tZCU7p6fQyw", "1GYRDPaCm3hrzUcgfT49w7mcvoQu2Y4MmX" },
  { "5KYiAKPs8Gmsj4u[xxxxxxxxxx]9bo1TD2aL34mNFVR", "17gDnz5TU8T16Pgzo93M7Dm1j5HS3UuS2Q" },
  { "5KTPQCaVdzFP4Js[xxxxxxxxxx]mLhQJidnEXGzUs6T", "1ECvZ9ojebv5TVWySf2roXRP4XyQb5rNCy" },
  { "5K6n63mFniuUp1R[xxxxxxxxxx]x7wUb1TkU25XHEmZ", "1FY4Ny2ZTvDGDHshB1Rpp5Di9x6Q9GVd5a" },
  { "5KFKxjL4b4yPzZp[xxxxxxxxxx]wjjADDE9UqNaeXq6", "1FxWoGvwzjWGKk69vFumyoBaUCqzsndVck" },
  { "5J4nQ9w35BBjsQA[xxxxxxxxxx]EKfZe5MHjrZtCLHG", "1kJwZbv3dhUowPyRHcxJMknoJpPYfwaGf" },
  { "5Jyc7MFobwB99qv[xxxxxxxxxx]jifGpA1gf1bwzPj4", "1E9ffsnXjMnZxmJaqCLXWhqWzKqx1sZXP9" },
  { "5KCoSxCcoHF7UoL[xxxxxxxxxx]6bMXLXaci9QLUPWP", "1Df8hDiS6RSeu9WDUqUtBpBmBoepzo24pD" },
  { "5HtrggVrwVxjVsJ[xxxxxxxxxx]nBhvatfJF9fgxU7i", "1NCRgUAgJnzBGcLNX7iQD1d9Cn9ZyKF2PC" },
  { "5J27SvZv6kBGgoP[xxxxxxxxxx]dDLqUKC8zT6UeXNK", "1GysfXJbf5FREeJetrwuANNZi8pcz4n1v6" },
  { "5KUL7hvHzmawne4[xxxxxxxxxx]A6YjESRW9z6YeARU", "1DcNJeexQV2kM78AdMKSzmsQ8DeNMHLTJ1" },
  { "5KKkMyBnSYD2vbX[xxxxxxxxxx]Vkv3JYECLdQdvijK", "1CozShbCQwFqa3iw2AUE3zn7Pp1f3HR3D" },
  { "5JdZ3aF32TDCyFX[xxxxxxxxxx]mEv886qqDoqWTuQg", "1Js2D8Fj1AWQ2aB7TMtmJ6rn4bYDFtcjgF" },
  { "5JdKDa5z6YCCoC1[xxxxxxxxxx]Ncyy1oeBaDSH5XL7", "1L8DFt7yYA3iZsr6RA3d1mpf4J7TgBsYF" },
  { "5JHwhGd9qcLyeTp[xxxxxxxxxx]TsVTnhPjUbhHmHc6", "13oCG1VNMAGtNp9RcAmUieRf8NayAJ7xj7" },
  { "5J4SHkqv3NNVsyJ[xxxxxxxxxx]UPy2ZauqrRhJzBsZ", "1FX2xLHNxcT77bxLZXHzet6e8kMSS53uDK" },
  { "5KHQEkcdMeRdTXf[xxxxxxxxxx]pgEx2PbCToj4vF4s", "1BRwmguCycCWSbueTcpn1vSJddMJXEhyjH" },
  { "5KcFUStuJjP5yXm[xxxxxxxxxx]CbB2i31yywpJc76A", "1PWTFonhiXCdTZ4Nd2J726rqWnNsTVeVMY" },
  { "5JnHw6UdcHPpoLz[xxxxxxxxxx]SvQf9bY3Juvnv6Wn", "1JZ5NjZCDrnj84mZnv2fuAmAb7w4v5LiEu" },
  { "5JQoMXfwqkY7XFW[xxxxxxxxxx]Z4NboACaUBFauNYx", "1ENrnLCxp9srcWCCE3kQFNqHRGDijespb9" },
  { "5KjWDFqmjdVCPh8[xxxxxxxxxx]bkguRkXDJg3PyPAs", "1Mjwi2LnE6oz3p8dNFXWgMpAPBs6ZpPPA2" },
  { "5JQS9G95Csx6SY2[xxxxxxxxxx]ungFrnzk8P6LmEyi", "1Dka5AAYwdZkrPJZHjKmdZkaVATnwYeSqG" },
  { "5HrkpbV6y9ewqQJ[xxxxxxxxxx]sYwdyNtwzo6eHSDB", "15E8CUjvHDVj8mBzhkNHErXtz4AeEHycpH" },
  { "5KeUPom4qX75wd6[xxxxxxxxxx]oL1NwJkBz7mLT5CX", "12ekVy8duhBMLGd1JhxcgxrTN1fchmVcTo" },
  { "5JYmVoQCeTQmUAj[xxxxxxxxxx]ytknTR26PmMNEP8J", "14RJsWTjq9q2a9tNQSdpxbMaViWoXxRbjt" },
  { "5JkSrtktkLsg9Bq[xxxxxxxxxx]MguNQqgbJoSn421J", "1JCMAUG9P8X4PHM7rF4ywDFHaAK2FMRrkN" },
  { "5HqQJcp6shKTeEi[xxxxxxxxxx]7znj54vXsS5FkEre", "138VcLyoAb5sdjo3cDw7d14fUGLKRwQ9VK" },
  { "5KbN1nuTTMfQpyN[xxxxxxxxxx]ScSWaksuGZqQKJGV", "12RFNoJK2MSiWfXt3fFG7F4urUpLGnTBxh" },
  { "5K4zfT7sUNosoys[xxxxxxxxxx]RZvkqSZaemBXARzx", "1CFVxqxX3i9L9dm6Gw2QKJ2fH18HSJ9H8k" },
  { "5JhpC1oHgirGCz7[xxxxxxxxxx]vDGFgfGUct67tMac", "1kMEr9W4YeAnzFcuSWwj3ShYGANdLHSxG" },
  { "5HvHVGQUsLRm2rV[xxxxxxxxxx]XUaSaGVEcS2MN1BX", "143CugrdSngLmDaLWoLrWJzb4AU1xLMqoY" },
  { "5HrRvSshqMuiq7i[xxxxxxxxxx]PYgkZqZVmjMtLXLK", "1NvfCyqRh6cuh8dCQDJmboriifg1eaYDnV" },
  { "5HpJF81ow4HSfro[xxxxxxxxxx]mLhPVwffseDaAezk", "1AnFEpvs8a41T3ZpfPtXBENvkL5oatQ64D" },
  { "5KYz2nUVLoLL2EL[xxxxxxxxxx]5cJ65QrWHANqEXNP", "1PXU5aD3fzgAm2E56o2VSaHpVe4bhe3d2m" },
  { "5JTqAVDfepXPBXA[xxxxxxxxxx]5y4YWd2TQoqBpk8M", "1szVke6ThJtfdUTi6Y5AAMDMePM4Ha8vK" },
  { "5K1tZT7zVsufn4s[xxxxxxxxxx]PM1FTQz4sC3oN31c", "1GjDS84eNBx6QQoo7dBddvgYArSttxLYdk" },
  { "5KcGs7DvWh2Z58P[xxxxxxxxxx]UiswsM2LJZ6ggR3Y", "1CNHzFKNCkCwYecVUfmahmqDFrn5uuRzsU" },
  { "5JGpo9YkYUT5AjT[xxxxxxxxxx]3qRmgg7UtVZR89Dj", "13ds2bCrxe68w8WD4R7bWSjGq4uK7XbzWH" },
  { "5JKrUaX9FXRrPXP[xxxxxxxxxx]mmgJSNqwYVtJP7fB", "16He3EDsvTKYRSQGsZeoooTbYAjy9fiLoQ" },
  { "5KQaFQeoF2UdCB7[xxxxxxxxxx]g2i6MwD6vTd3zFYa", "14FguDL7teNFCctazjUxCxCfZtssycq11h" },
  { "5Jq9FMjDhXdp4Hi[xxxxxxxxxx]K2bwTQ7xXQmKMdSx", "14reTqqg8r4qriHozsYoydugzLjYtpVoMZ" },
  { "5J4wdkmNnjECHrA[xxxxxxxxxx]bfq7J5mXTrGnTJor", "1yiQRuB3KRxZTrSHBNZK9NdjbyJskHiVs" },
  { "5JqAc6gL9L6n21u[xxxxxxxxxx]3E3yn9b7e3kJNW3E", "1FwbYs6UL2fzB9crvhWNCZyr9oqNjEXzcu" },
  { "5JxELeHA7CxFNG1[xxxxxxxxxx]uNvwocRJA67wGFqr", "1Lr9tUFz4mypFzc3PYitgGU1dTg21ubM9p" },
  { "5KR23rTYTcgFtbx[xxxxxxxxxx]C2kVGKzKxMbcJw71", "1K5CgovB1c4vX22MvUq8cfRsuctG86Jmx5" },
  { "5JNRXErReTy1sWK[xxxxxxxxxx]4iqTngSHzgq9WRCz", "18mmzMizs5CHtLJwchtPMuiYqVqWjw3rLe" },
  { "5K3tueCLd5NpYJ4[xxxxxxxxxx]uBodLQ2QyNRVgyEM", "19cRkXQfonjdJT9K8TMuDxV1PKLSdHZtPh" },
  { "5JQXdJ1kWo6NeyZ[xxxxxxxxxx]c4DXUvh3bPGDT2Wq", "1NEb41nDgxWwVzhHSsk4obURJ13KauJRsF" },
  { "5Hskm1JHJN5HavV[xxxxxxxxxx]mUwRzBNhUFHovQZr", "13CWujDi4g6DWB9bWDXT3TfRU635NPJdPF" },
  { "5JeHsrxefgpx6bJ[xxxxxxxxxx]XhFZ6RVtwEPQnW8w", "1G3BjSLWsWH6tbPYs29fYMYaz9k8EStQM" },
  { "5KJSL2GitJ2pU8j[xxxxxxxxxx]z1uNKEXr8w68FjxF", "1494Wwkf8QN4nC3gSYz3qjZVNuVZSHw2zi" },
  { "5Kd79NpUQih2BK7[xxxxxxxxxx]WBUMMhCQuDHBkbwN", "1C3G6y8Cyi7ECDaaDhG34sLzrv1dd7Xo33" },
  { "5JTZV56iqTTdUZm[xxxxxxxxxx]ukkUpLNQnrotdcMS", "1FYXLjfFJ1qsngiArLsrBVEGRaKkV15FGV" },
  { "5JAmoBuWXyQT5k1[xxxxxxxxxx]MXS3AwadFL3AbDoK", "1EFET6LSLabV5KR55XqRzzhQ1rBUGTD1SQ" },
  { "5KiMxPwd2Je1eLy[xxxxxxxxxx]LUzBJAhaSPdcXNfL", "1CRcBxVoXCqL7cEiq7b7rTYQyMhUrCu5Mf" },
  { "5Jbnrm5CknhWjU1[xxxxxxxxxx]kBgpa2oqHPgzvQnw", "1J8THH46JdkjiGYLQyPQDHVk4gtftahDUx" },
  { "5KAywENRb8U1AX7[xxxxxxxxxx]oDS4En69dmHiQZtH", "1JjcWuJDRNkw3XcMfE7khhRg1UCxU8eKua" },
  { "5JeQS35snQeniAg[xxxxxxxxxx]4RZnD1sugHGSi4c4", "1Fcj89eqk1xCe6PqkMpaUuWCaK7MUXeYbZ" },
  { "5JMoDkXPdzkVEbQ[xxxxxxxxxx]FHyznJ1DJPyToMAK", "12a7gpjZDQBDhVSknfQzL3ygcASNQcocnd" },
  { "5Je1enoTKb3UgHA[xxxxxxxxxx]b9zYqWieu8Ujsp3y", "196SL6bZEvBT8A9z46df54zE3rzZfXzwe8" },
  { "5KkhHxRh1HejM5o[xxxxxxxxxx]i6icMbMJP2dLebp8", "1JFMHv7ijwXDQYQrehhSxn6u9bTfkGCmK" },
  { "5KebRR6rJpcchcT[xxxxxxxxxx]7mdaDcF9swtidu6Q", "1M5edBFjjFJhQhgSuCUQnX3uytcskgnqQB" },
  { "5JaqQMbjeuQDeBi[xxxxxxxxxx]nmAXukFPhYMGpGb8", "19yCy4mFWJVsdJbgtG79VwHGxQpcx4uhcr" },
  { "5KBi17DWzaAgi9M[xxxxxxxxxx]hpkpKC9uSW4AJQRY", "1F9tB2p9NWsGEt1TjiGAa3WEEGs9Wc779R" },
  { "5HtP38JX69uXg4g[xxxxxxxxxx]33N9iTvUBpXpRXWb", "19DcmnrhqpLgn8L6Exay1sJiKZPtYUAw1Y" },
  { "5KcYpVftS8MAWs1[xxxxxxxxxx]yM9EJkxaYGmJDswq", "1B8vhS5umMNKvwQFHJ3Hgres4NJeoe8U7Y" },
  { "5KLFQNs17KiT81c[xxxxxxxxxx]RBBq2aURJ9AbYsS3", "13LRBbvgCSXsUs4JNmYhzHRo3re8vYVDid" },
  { "5JSo3p5BriTA2iw[xxxxxxxxxx]S1gofE6Kd5VE7hfQ", "16UkUnbqW8PXRrwgxRdb2UTivbgNnBYqwC" },
  { "5JFZ474U31xPa81[xxxxxxxxxx]AKgGgU2z8zy5aahi", "1N2aQiQ5LjNQ3C3cKCmHHnnq65RH3zRD9B" },
  { "5KTby5QPcjj19pR[xxxxxxxxxx]rp7n52dUs8gdtBm7", "1AyTNQRvz6fo7EvebGpKfJB7jJeppxY4yc" },
  { "5JW3QPJ16s5ixHY[xxxxxxxxxx]ZNyncnf3MfUoLD4M", "1JnqZ6Djhncs9YHe74CbkLaXXAbA1phsTU" },
  { "5Jwi2qgqeeckMbC[xxxxxxxxxx]2VNNYRo7E1U962BA", "1JmMcWWy1mFuubbsBRPuVXdjFdtM2ENJXE" },
  { "5HxJyb2CPzGxDGF[xxxxxxxxxx]rDhFcz76PevVrxtx", "17Vjk88w6fy5YRVUGD6Aa9w545UA6K4tYZ" },
  { "5HvSCXjzJDXVEnv[xxxxxxxxxx]NcHM1EhBbbF3Xz3o", "16NCxA48LPKdSr5fACPnrLxgkrFnDJAzLp" },
  { "5Jzj1iv5wYgZ1Jo[xxxxxxxxxx]RJ2BTkFaqYowuXvU", "1LKu5b7jUoM7MJzeuTCmvDWsJrBgBhcvhb" },
  { "5JcEeJpQZDdmC2K[xxxxxxxxxx]zewcNzi68vVGmY6U", "12CkZeZvwDwiTvFm5H8bABpEqQHXJ6gWc1" },
  { "5KM42aN2FBoU1NZ[xxxxxxxxxx]jXsXPTCS7VZn7qhG", "14ih1qxbcFmwLm8Hc7qTr3BhzdmWTWRmpC" },
  { "5JQSFQZSJtt1k8H[xxxxxxxxxx]7hhtfBwuFvuejnZt", "1Pbt1LGM2JNgMjtnEscEmntsSrcYofeaoa" },
  { "5JNUG1j7YHMKBA1[xxxxxxxxxx]dz25mgBgxT98xeHL", "18pqzCLA17hdnzxFnf5Cad2feA1RHKtW2P" },
  { "5K25cuEsCLepxck[xxxxxxxxxx]zddjcg9YAiFius3c", "17sDdDiW2dNRQvTu2NkwwCbfXNFxVCpbZW" },
  { "5JUSWNvZZG72P9u[xxxxxxxxxx]puupGtwGwfwKXc7g", "154nELZtftuW951oQY7erHnN4L196c98Wp" },
  { "5KJf3rFdYQ8txAs[xxxxxxxxxx]x9kVgTLcpNhCv6Uv", "15GieELLKTruUdzmTDVYP1TsjnzNRDg8Qa" },
  { "5JjXpAvawsovRHy[xxxxxxxxxx]cAtjsR24rLVx132z", "1NuSEboWF7YJ3bozo5H1JDpH5yc7zyHZm8" },
  { "5JWgFLFGk8KohMG[xxxxxxxxxx]cZcANU5PFt7JKjhX", "1LnBTt9TYRMt4aABcDYSoaMQ9jV8Qgajkx" },
  { "5JbrLHgKsB8bgt5[xxxxxxxxxx]SvRB2BYKV9xs3dyo", "1ALsXt19tBxMr29WfM2Zd7EU8HwzooLGHx" },
  { "5JKQK41aYxtSFi3[xxxxxxxxxx]8yqFe873cRQsPhGr", "13x6i5itrvR8Rf75xP8PZaPtNTNxZLReLe" },
  { "5JTAH3HD64g9JnA[xxxxxxxxxx]W9UqnPqzMwdeF4f2", "1PUv3XNWWCDmEK6o9VerPK81qVfo4Wtvv2" },
  { "5HzMswDtYdf2499[xxxxxxxxxx]WPJPtZvF9CqFT31R", "1AgVauV4U1tt3KbRiehht56NoZeKprLUXe" },
  { "5JUPVHBpUWpfcfV[xxxxxxxxxx]pDiepLk16piRff24", "1DQK1Xb1gKBRXLi4PEegWCZ1giELgBqhq7" },
  { "5JGvCvGHpnHWkv8[xxxxxxxxxx]EWAi2fq5HvuTDcPN", "1FPgs8ZaxXUAp61jkd53U7zWj9NQq8yM34" },
  { "5JpUvdK686yrB7d[xxxxxxxxxx]UYsowG3U3TQ1B38w", "16SchApeKZEc86CVJCc1vLQ17TEJCRJNef" },
  { "5JcApKYshEnHjX5[xxxxxxxxxx]VFtnJ7yePjGQGY7J", "1Pde4CbEitkdPiwwKvd6s3znWw7EXZMYjD" },
  { "5KQw1TFyvi9tSNh[xxxxxxxxxx]crfhF8WCDXERyxKi", "1HWEyVbuyPmXfR9eBnrh4v2Npjnp9UJQCw" },
  { "5Ht8oYJEHMHsEVb[xxxxxxxxxx]48Qz6tQs6LEzWPeq", "121Zna8Dy9W2qDvsJEH2ALeHQkteXaeGng" },
  { "5JzpHFpHsPnVSxT[xxxxxxxxxx]BGdqjjKE5exQSUCL", "13GXRxeyR9UTDQojZYv9NZ1j3VA6Butc9U" },
  { "5K6tETYwDQXvS8U[xxxxxxxxxx]eUrM7rzy1ZLJ4XeW", "12c1XuVdjQwyftTbqnWMT94CYW6vKFknwm" },
  { "5JQus1HXzTkUnVs[xxxxxxxxxx]5YTDuAFGWhzSHF4w", "1CqEdApNprZzgqUsuyLocXKH5yMdFTnTJQ" },
  { "5JQQLrdjkHiuYi6[xxxxxxxxxx]LvNvqgD9ByifVsuH", "1HWYEGYNgVc7bc28RCAa8mCJPv9eEnHieR" },
  { "5JDVho8F6A3q4ez[xxxxxxxxxx]bgaG65Xgiv5W6HuU", "1F48AGnDGLBbDr5Uk7DfUhrhe8U14eHKaH" },
  { "5JBnar5iQz7omsH[xxxxxxxxxx]dGBsnXyzpq9KrJUz", "1ZBRXLZEzSukVDEDDJjtHYmrpkEGH94nS" },
  { "5KePtfsvzr6Nmoo[xxxxxxxxxx]ckNrCfbPYmKF3oJp", "1EUDdSvFGmZCa5zUXSXFSQD7r2qBZaSWJU" },
  { "5KXSzPynbroVPJY[xxxxxxxxxx]FLsgPDUNsMf2jtg3", "18KZdcnGaqaXnHiRPb8rVGCztyA4jJPKtS" },
  { "5JDFCngKnKrF22B[xxxxxxxxxx]W6tuV4tEeWzmtWec", "1GUqD7UATGzbEBrMjweP5GCTQeU51TsZbj" },
  { "5J29oQaShAyCMqd[xxxxxxxxxx]1PhKHFjqJDTMNTnN", "12WhvZTWMv9XLfyM2g7XFSUgpwzuQUX5Mq" },
  { "5HsSHcR5xQ3HhS7[xxxxxxxxxx]7uN7wPehMdgQAD9Y", "1G4TqNcKTRRuQ3brQSv85Fohf3jQiaGAbL" },
  { "5KeWghpuyGzjuuJ[xxxxxxxxxx]ck7CyE2ZnDg2zzUx", "1CxZGXpNLDmr7eDmgMiGc1n1gAyE6LKBig" },
  { "5KYKYvVXtb4FnkW[xxxxxxxxxx]8HznNQPq5v5nvd87", "1DWhHeTnoZAFPehoM1W6S37hn7nVjZLrQN" },
  { "5KDohvrgPsxTa9c[xxxxxxxxxx]hPvS7wgtVF8euF7L", "1LfuyRkm9MrEXTz72hzpPsL46mzHEXfqWj" },
  { "5KjAGideqiyn4Gi[xxxxxxxxxx]2sG9inPW77SfnfS3", "1BvQyALiTSgKwVYzDL3ANoqmdWaoyRZazS" },
  { "5J4mLigDrYhaN58[xxxxxxxxxx]TU1er3RYHWQ1RWCe", "1DY5YvRxSwomrK7nELDZzAidQQ6ktjRR9A" },
  { "5JtqNJTmqMwKbjS[xxxxxxxxxx]NJGCDJ6RE1Nxs54h", "1YWwSaXTESKgDpitb6Rp8bteXzUR6hjDg" },
  { "5J3X6UKWxDTZqKi[xxxxxxxxxx]6cCzqxSsCvTzCFxb", "1LspNcTjkzFQRrsr4iGGxD5RSKehB5fHnA" },
  { "5HvVFYToth7aeic[xxxxxxxxxx]evAMqkB6GtJwcYZL", "18yDksipyvWEX14KTd4DHvj6ZDcXvNqtpB" },
  { "5KdZ8ojjzpPbWXT[xxxxxxxxxx]Si2GQR3NQT2kotKj", "17Lq1nrktyEFV3AVPAbsbDXWuWoUNMhws8" },
  { "5KewxLZvjuYGSm8[xxxxxxxxxx]jC1quaRmiyFQBAsB", "1E67dSKMyrEoqfAjSsE1SNpeeau4pmyc5j" },
  { "5KMNJqvfCGAq7gW[xxxxxxxxxx]iuZXzYvWVYPHNsdj", "1rPAkJSXWgnLFEiCzv3APUFLsi8Kzv3pX" },
  { "5JzAjHb8oNscRZd[xxxxxxxxxx]M1Z9UvYFE98Dhucx", "1HmJh2b8iS64WgX5snSzKYrNXqbnKkuBvE" },
  { "5HrKmwgavwzxPuL[xxxxxxxxxx]dpbZYGu1oA1ZSaoK", "1JNMvqdUYP9eDR3mEkxxCne4BYabc93Nwh" },
  { "5K3xJNW7f2z1nin[xxxxxxxxxx]CC9b6GrKYZStYJjv", "13fZF8aZcSjpxhukHkyVtHsLnPnVszQaLm" },
  { "5HueeeKb7Pg13Qb[xxxxxxxxxx]CNTaycN32aibsKTL", "1NSLj5xdCyRmMYVtM7bwZxZarYLm6EGZJf" },
  { "5JGrFo9QQGgVXmU[xxxxxxxxxx]DQ3hnpx28KcbUVnH", "1BMzWp77j7x3GKDYNbCP3df7YG3UEw1vVE" },
  { "5J8DDsRSp9mfpPD[xxxxxxxxxx]ANMPXCtauYdXZxQR", "15p65cNbtB3bQYf9GB78edRo5Ppux3uaU3" },
  { "5KQ6wxqM12YXNuW[xxxxxxxxxx]skDv8CgqyqYguLeS", "1GTFFqbHGp6xwcKVmLkbLqHiauUbKT7jxs" },
  { "5KY4dKpmpVYhp7L[xxxxxxxxxx]KqP4d7vTsTcfByko", "1NRtYCGVo2vR7WmYVussK6sVva2wZsYTep" },
  { "5KGtcRX68Y2HRfd[xxxxxxxxxx]kxTC7xUquexDoF6h", "1DHmu7BvzjpQQxbKEuqTU2zSvZmgZBBrne" },
  { "5J1P2QZtcBEL9gL[xxxxxxxxxx]ekPW2LjBAZduMuFj", "1Pq6Ygv3kdMVX2TdNhUSPadxaShiGJUAoS" },
  { "5HzaRcBnxbNK8UP[xxxxxxxxxx]aMSMBmbgZbPtsX8x", "1EPXZfTX6TD3L7TQdRu2nqMT8mrAAPSTST" },
  { "5KdiuPbQGp8mb5M[xxxxxxxxxx]iXp8hVnwhPdZPsJq", "16y2wAieZE9VknMK29J7EAhC8fmRtdLy8p" },
  { "5KNBQwrR3yWFzKa[xxxxxxxxxx]wwHriWUHZ1vzXRwJ", "1L9a8dXMgq2xWV1zaDUGje2FAbzCG18QQh" },
  { "5HrE9sgmeWu6mWg[xxxxxxxxxx]5sFNz5rwP78rWACp", "16io8zfbhStqe9WVdHN3JLzc29D73okaoy" },
  { "5HyvaVM2ZVzjtGA[xxxxxxxxxx]RFvejTdyNZDVduRk", "1KSFgqcm6mc4Aaq6EsR6Awfr65S6RmVeHh" },
  { "5K9bJaz57cn76oF[xxxxxxxxxx]VbsD4cGTr5HbXxuF", "12JDjmk2fGMPRK9GaT98vBFDc3MDHoPV9r" },
  { "5HvmWn77We9UADm[xxxxxxxxxx]Gc1kpEmQALkJD8RU", "1FPSVbypWa7rBWbciKHJ983YWcucBn7aUQ" },
  { "5KaYBsozDmAj3kh[xxxxxxxxxx]4SUcmxRgNUkkDGvL", "17HHdLh4oXncuTejALwC6fgArVqPUxh2Sr" },
  { "5J1NY2JhiThzCiJ[xxxxxxxxxx]yqVkaraqp4St94z3", "19qnLpn9it7csR9sEay1XrFyfAmUNoXYk4" },
  { "5JCrNXXAGQLXA5b[xxxxxxxxxx]Y49hwgwnh59iFUUF", "17AHXAodFQ33A4DqFENVHCG59qiaRNbhcq" },
  { "5JD3nQJAJUPpLhr[xxxxxxxxxx]gaVeQbL1v79HDkZA", "1NSnZPRR32mrfAADxNJcPRP647gseqEMyj" },
  { "5J4oAioSL12VGcg[xxxxxxxxxx]cozJd757hyBwtGWY", "1PCrHhXxS8ZotDvgSA5WxpmtC1qNQchrPr" },
  { "5KF8LAfjhrV4BNB[xxxxxxxxxx]DBoUPYCHFmcsV82E", "1P3wCaQNk438cXKsC2YYvpecWa6kZKGCKC" },
  { "5J1wu9ABPkR6LNf[xxxxxxxxxx]eq1vE2vZJvMHciu3", "12RqykuRC9esWxtJL3T9WiwsPb8gdPpdDR" },
  { "5JNiQy1MnKNfik2[xxxxxxxxxx]shwdqXpFCQPm24qf", "1M7UUR1QhTMwoEiVVWf88Dy4in23RjYdic" },
  { "5JphBT1QuytxvEB[xxxxxxxxxx]LWcfqEwdBAK2scrB", "1HgRa96fuHCde6Rie4nwhaz1hZR694X4wj" },
  { "5Hsfbs7i5G3iGWp[xxxxxxxxxx]XhZFY4vi2TRqctzf", "19SnxcsSYsXHeZ1NLDKHfuFddU7kLiZKmE" },
  { "5HtNbNMAmdyXFcm[xxxxxxxxxx]5eVJFhhpdRCBphS1", "1D76ha9QoxkUPLxufDoZVEzx6hH3uVJvnZ" },
  { "5K25pvDXPxD9MUC[xxxxxxxxxx]XRYvSEcPuQTqZQcQ", "1Bn1n2N9Z3Xhnxd3b6ViNMstg7oGjh8XAa" },
  { "5Jogq4p3vm6Bv5S[xxxxxxxxxx]DwnNdkoCHcuCoara", "16khUbFwUK6X7U5X919RJeWyfBHSLfJMda" },
  { "5JC7WRHkvifba3B[xxxxxxxxxx]FZYAyedzp4phbewK", "199EPbUzU6mBr7dP61ihWsicuJyeYbJviS" },
  { "5JZHgyx1fN5kjaq[xxxxxxxxxx]VzdKwuh7b1f2KmPV", "12sisxXmNPmFTpekBKEqZCELYXESPYUHCB" },
  { "5KiXxodm3ueqWQq[xxxxxxxxxx]Ks6Jho4AeJEEbGCE", "1NeAtszct9Uav81CEr1FGhV4KAaXahdsVF" },
  { "5KNpkuXSWfZ28qw[xxxxxxxxxx]Cyj45sumAkzcnmjU", "1QDB2W1VFqinxu5zm4qMGecQTfviBjk3JA" },
  { "5KQ2qbgwnCr5ZGg[xxxxxxxxxx]L5dQNTU11EN2Np96", "112KZ24UgNndZqdnu2cXwXStSjtY78ZRUh" },
  { "5JdEBk5GcqmWBML[xxxxxxxxxx]2bdKgEhUeWPJNV4Y", "1EMkFrY86siasW3F9zC2bS1ZcSuTdaiJqj" },
  { "5Jn1o7fde4YCbsm[xxxxxxxxxx]9CXs7dFXmWtjvrGi", "1FSmh8gSuPkZTqx6LeH6Jic4iZ1A8BsZ2L" },
  { "5Ke6HG6aVa8YDvZ[xxxxxxxxxx]Dthdcv3khGWEaBeF", "1QBYgXMTqEQNgoVotQN2iP1sPhHRPEoDHb" },
  { "5KE6rSkdvtuB4u7[xxxxxxxxxx]WCvxKCzHx2jYrzfE", "19vokfKSJJMwHAqQ3Kehk8Gq5drXhi7wzU" },
  { "5KDzdPhM9kq6dxp[xxxxxxxxxx]bHvDxoNyVh3nD6iq", "1CjKefUiRhK5hWf79MoJqccHC1ohye7SWr" },
  { "5Ki4URUmNdMaw7Y[xxxxxxxxxx]4QcGE8LjchEFgwy2", "1BwrmTmhnp6K6Shbq5zQQqGqnsfXsunsqE" },
  { "5KRFkEufd2rYUsf[xxxxxxxxxx]cyWfionEaztvoAK8", "14Bgi1c11HBcj7krN5tRepMdL3SPghEaMM" },
  { "5KSdRSc4kywYRGN[xxxxxxxxxx]iuj5bf5BCfi8VaWs", "1599DB5Tb1RWDPYMuU3YJT3jRwyyoPZa1B" },
  { "5JYLQxxAMDBPkr8[xxxxxxxxxx]79JSs9H6vXLwC3rq", "1Hu5wfuk9nHuYDpdX6FjQrU1NYvpUS8r6t" },
  { "5K5REe8CWJNk9hH[xxxxxxxxxx]cQs9Xbd7i6SJGRdm", "1681LkMDLNw6CCjUrMojRKC8BaiwQ2LTFt" },
  { "5KXuBjZfDijAX5U[xxxxxxxxxx]WdZZbN9kwYSARQUp", "1PEAu3bS7t6ZYKGX77ZJsEKSupGzdR5Kpj" },
  { "5KQmBBF4AYScJtW[xxxxxxxxxx]GuGPabPpHRm2HDub", "18mEp3aKQ9thp3H72rrzHAfW719YmHq2f7" },
  { "5JkLdFdc75czcaA[xxxxxxxxxx]33bt7pJQ8fuoJimb", "1KiAVfFJH9EU29C9H9p2SBnrkfzrgrRRCe" },
  { "5K3FabCgmxdHvo9[xxxxxxxxxx]WeeKPCA5og1ozck7", "1EGok6kAbJRrzryXAGyCHRq5c649rhzwJ3" },
  { "5KgrdtCzikdHYhX[xxxxxxxxxx]KxRKYJCUiKGiZ8pP", "13ikC8398HhciFWkqPCrRHWUBASGxhBY4m" },
  { "5JFgUnLSQ9td428[xxxxxxxxxx]3nMCeQQCjR6boJz5", "17quWZhtGikUcTUpExchL6UdFga6Z8hME9" },
  { "5KSjW5TEydHa8Xt[xxxxxxxxxx]NQt8wX9fz3w3KeoF", "1K3iZPSqMCxtMd5o5hw4gfpFq3i9zqL61o" },
  { "5JGZ8hhzGsoMBF6[xxxxxxxxxx]4YgNNnHeavbCS2AC", "1vdbVPC6Ts9d5WhRDriPdndvvCwmCbKCj" },
  { "5JokpScCMpqYPXE[xxxxxxxxxx]cfwgh1A1yaByYLiQ", "1B9FoQWdPift6CUXUs6K82TZxaTyHpTUnC" },
  { "5Kfix8JeLfEuUud[xxxxxxxxxx]c3JZhoanaBVeZCeg", "14kaXa47cUcMpvKnCa8zr38C9v7sVPxSta" },
  { "5KgYPnLPHH4AKh5[xxxxxxxxxx]5amg226mUNUoH2Rd", "1EkkAMw1K6HKGiou5vNrLBffDtjVAC5HW3" },
  { "5J1iqtKhM7z2QUU[xxxxxxxxxx]yMibQSkUpQ1orLME", "1KpxMLLmEhaqoUXN1hfq8fci4z7p593HsV" },
  { "5JySu978wieS2xd[xxxxxxxxxx]HJMd644YLW5RirtN", "19Ey6feEfARgzcNRmUxBZNQFYSmwgsU9Wc" },
  { "5JAxBAqTM3Fkp5m[xxxxxxxxxx]h9gBnPS8UU9n8uEA", "1C4YepY3K1gDrRiQ5E9rgaJuXvrawxXMJG" },
  { "5JmQtgL7ezBNqgm[xxxxxxxxxx]3333NsjektmvrKoJ", "1LrUd8tr5TD3UvD4KZaiNcAxmFveCw5h27" },
  { "5KFsPuzfvzGfcd9[xxxxxxxxxx]Pp6cHuxQXpE265n5", "1NR7Bw4XWK3oic9HvgWFProGVzp5jKeqCw" },
  { "5JuaWBRQtFBHTRr[xxxxxxxxxx]uRuBHjLe6q7fLLhf", "1LKumxgbfSycQVaAwagpyZRSy71wXC2zhF" },
  { "5JmwyLFyPZ5pw5j[xxxxxxxxxx]agRThBvvwT1TkatC", "1DL21hg5FBLC4h9mXwx9XDbHmUK3BZFCQe" },
  { "5JuJADpNAbbdKDi[xxxxxxxxxx]koUkb5KbpEWFNnt5", "16vHYDZCLZiD97TucWr5Wht9zBA7JJmuF5" },
  { "5JJbFSMNkq6NjKZ[xxxxxxxxxx]rETZmM6aJ6gX4U72", "1KojFMcdHzDndhfqPxb5CnXeB1R5u9nnxG" },
  { "5JaatSnt2KKNAHP[xxxxxxxxxx]7TdJguAkkvCpxGSp", "1HAEJNWN7johTEiooRau7F6NFvHnBDXHzh" },
  { "5JaoaH71JowCcZ2[xxxxxxxxxx]pzUFJ9EMj8C4iLcm", "1AFZ8j6Mm6EphAFJbHyzCxKpKm9si8Vt3v" },
  { "5KcVnVikKBeYSGS[xxxxxxxxxx]Wz8d1oYvXx1UKG9R", "1NWXH2DE5DTfKWAwABAvFesGXKkyKBUoiN" },
  { "5JbGTr54aiy9ruJ[xxxxxxxxxx]iPbQQCLJs67xtyRN", "16NMGWRavnYG5bhWzY8GAXWiTZLytpT4v7" },
  { "5JXnKXmYKwVH5ZX[xxxxxxxxxx]a4DXVmoxGhgq5iUp", "1KS7abb8CrqrSizfyPXkcRocYejZQ332xM" },
  { "5JxQMcJ7dQc5Qwd[xxxxxxxxxx]NMkSgZpLxnzSUgk8", "1MX1fSzSvTuw3yNgPNE3Ni31kT1DSdeUPC" },
  { "5JcwU4p3hDu2xm3[xxxxxxxxxx]iJsgMxW6yiYG9Gcn", "18U2grD3VwFa626tkTnabXSY2nVQAvmf3U" },
  { "5KN3roGNWhNfz5F[xxxxxxxxxx]jBbvqWrouptPVhAn", "1NAddQ2XhM96aGn4yK9naRzxTxe7BbNTLG" },
  { "5KeabkPtTub2Gsp[xxxxxxxxxx]mxVMpRutE3Txmx9q", "1JHL7mbGq64heFnJA8i2QVm18p4TQ1kf9M" },
  { "5Kfhwqt96Bduiwz[xxxxxxxxxx]nSLWEYTxYhEYtkJn", "1JX7Z9Si6tUQgFa4PLNTtJ8bC9WrfMDvLb" },
  { "5JxuG5u6a3jhY8c[xxxxxxxxxx]uMKwQsgRC5QqXHS5", "12ZXAga2nRxBECsMDjFypWuL9UkKEaS4Z3" },
  { "5KTy4nRgki6ScKL[xxxxxxxxxx]eq82B9iyMFAsQuyY", "1FMhAUpVgU2H3n576vUe7vQp94zCkRPnf6" },
  { "5KVHcjZWyh6cWRq[xxxxxxxxxx]DCH3Vqt28URNfGpH", "1AGCK1JM7pEu5r4g5yRiezXhn83TPGaWEh" },
  { "5J5KXDxmBL6fWdE[xxxxxxxxxx]9URswhBwYDpuiSJQ", "1BDMV3Yb6Pp2ycB94UsruXgPWAWBJhBuKL" },
  { "5JNBsAHyKKc8G5k[xxxxxxxxxx]qKAJYLgwHnPmTkLz", "1PQwoVNRCiK2J5GNumfpT3qk7KnhKPJ6Ph" },
  { "5JWWpEFtUXh4jUd[xxxxxxxxxx]H1zPUDerSW5GC8h2", "1AX5hvrNXTs8KnDVBSRwHPHg5iQ5fyb8rs" },
  { "5HzufvXS2o89DU3[xxxxxxxxxx]KuWFS9pCn8yCTHzV", "1FyQtBr9ub8FhKGDcgW2uAbU6cHYuNmBk3" },
  { "5Jzm1gQBQVFGsgG[xxxxxxxxxx]E93m6KDC6eD3uKUo", "1MmJk1peLVmycqY8Hq6WyZfrK4u1oTvkER" },
  { "5KHGjSjw9LWmb6J[xxxxxxxxxx]cLKYAtUxKrXe3m7L", "1K8fu7jfjuKS28YrA2rSCy7fkZhNvcab5p" },
  { "5K5JDZVrdfK6Dub[xxxxxxxxxx]zdC3NrnrVKLabVia", "1NjGEKWWrupvbzvEivnfXJpdNdXK5xzdDb" },
  { "5KLjy34bwxaZ1tH[xxxxxxxxxx]tHJgB2L2iQLsCYFR", "1M7hSnVZniAXrre2SH9qaHvfxgXRAjpMVk" },
  { "5KWpgc2GK5jMQvA[xxxxxxxxxx]pgLT3YfHdQLN8y1N", "1GNvTWNZM48QA44QmbVjxXhQ7hmJDicxec" },
  { "5KB59Rj7RUMkAHh[xxxxxxxxxx]CkuDd8z5L2fQYN7V", "1CPzjQTH5vNADXQGeCfHtRgX8S5xMLGMr4" },
  { "5HrV3PC8ipgnitP[xxxxxxxxxx]wKk9T3q9BKjuTiMJ", "1Cbw9MZ8Vrfkzv1FxuJS5JBySbypuMARQj" },
  { "5JN7M1WH6dmVqkd[xxxxxxxxxx]4KGUq8ZFukNPMFAU", "19usDGaGtwHfMoJKAJEJd3KcfZFWj5zocV" },
  { "5KQ6fq7ELBPEiEv[xxxxxxxxxx]qkJMRr9tApm9menB", "1E1rbpZitcZ73JQoLYXB18pDm8BTHVqxtk" },
  { "5JbJNmE6Xi8tdHh[xxxxxxxxxx]XpQTUHUerZjwTHJg", "15mcUhVMi3KmoWvP6Y8NpVaXaPVGCWztgL" },
  { "5JtJnAiZV8euMYk[xxxxxxxxxx]sUBf9296s2q8AZFc", "1EZtDBBkqkHxRXNSBwTV7HhBbPVvqC8Rte" },
  { "5JCBuAXLhg4NcRT[xxxxxxxxxx]cLrze5TgfJ1aGbqg", "1sgNrgAnjMVSzyeMDTeVsKN7FuZy34U5t" },
  { "5JJVK2pD4nmbFBs[xxxxxxxxxx]X9oibQ2mrdqbio4J", "1EqBqwtfJMZERvyckvexLJLuSrqYewCaE3" },
  { "5J1HkJEFQCVCUg1[xxxxxxxxxx]kiyujiL2CJrMgHX7", "1KJERjQwXx8ojrKRSPFKwkCct1aAkyHgnF" },
  { "5JUJCSJko2McVXN[xxxxxxxxxx]9iwqonLB9eBFNTTL", "18RecXQxH8xuqS1zNgrukvPybDtc3Mn4br" },
  { "5JEcHNKyumDgNeR[xxxxxxxxxx]vm9eMkoEx9YQAWgp", "1AsbDvSw2rzEa39erkCrMW6KTr4tDHGSAH" },
  { "5JuqmU22bDETX3z[xxxxxxxxxx]E1dvEkgPvCBy5awB", "17Vxv31VfpFY6tWBBB93tcSgP4SYeqzTTb" },
  { "5JQRq5bkTt4zSCW[xxxxxxxxxx]nRyRiYB3Rm3EbTHv", "1NkYPP3Eix9shAvU47xJtnL4Ggd2ScAbcD" },
  { "5JR6DUQmR4SJFYt[xxxxxxxxxx]RrAa6tk34n2xpvW3", "1MMMpX4AKhf9JTviWuU7fwnZuTdW78G2Mf" },
  { "5KD8eY4HcayX6V7[xxxxxxxxxx]vHspCSQtiBZtRtzX", "1PNa9dZ3P3fVhx1uMCqJ4sEYmyhxnQNy3M" },
  { "5KW8qM6PvfN5MM6[xxxxxxxxxx]JSSo3yn6NETwi16q", "1BYuQ21smrF1hKfmHPsDnJkWZZdEpBFLZo" },
  { "5JfayJ1oC1nBr2X[xxxxxxxxxx]nWzjZ1xPyvNfzV6x", "14uS988CkkfTs7Ckre8nkVedSQF9v4CqrM" },
  { "5Jes3dgVoN9J6QF[xxxxxxxxxx]jEGyCSrw3EkjkBnS", "1M52izWFApBEuRMqMx4gbr8prABCA9Q9tv" },
  { "5Jxi1N4i6R2bnzc[xxxxxxxxxx]srPTC3npcQfB5SLK", "1AKE18rv9BUPpxciQziTjQzwNQoMSrvQaV" },
  { "5K2k9nV1XBcR5NX[xxxxxxxxxx]uEbqTZTcds6ajGio", "1HW45VWikPEoijyKtguggMEJ5CnsS78ESf" },
  { "5JhzCw1abNwWdux[xxxxxxxxxx]FEvVADrn3opQBbLJ", "1HfjrpJLP5SaPRFzYUxrzhppw6xv6GXZ6f" },
  { "5KRTiZDTBaEkVcH[xxxxxxxxxx]wbobA48yLFvTLS2C", "1CAsRJ5Z9CXdhBwxrCVrf8kJNPBxYQJiH1" },
  { "5K8zCn5D6Gna76A[xxxxxxxxxx]UKS5hTEAohE9FKav", "139YrtXS2J1KiD8pf2R3RtKRPr8sLwLuiq" },
  { "5HzbGzxnVaJDC4E[xxxxxxxxxx]uaqBagheaxLwVSjA", "1AsEhnbniTP4YSA8L1Xa1uQjfSfHbb8tzJ" },
  { "5K5Ge91a7JeJKTZ[xxxxxxxxxx]BvCaQ8LiRckfkEGX", "1DkCk3S98BCwPP8wdmxqQKcQoH4WJthvMR" },
  { "5KeGQrKzHtNDpyo[xxxxxxxxxx]zMbdYCvxdFGZM5DU", "1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB" },
  { "5Hq8BLXtreUWdCc[xxxxxxxxxx]SYdcSgKi63KE8reU", "1CgEzXmF7SeNr8rd2AfyN1DQNJpprVxWmW" },
  { "5KDMa4yY3qz9ANC[xxxxxxxxxx]EHBmkM2BG1rqEPxt", "1GvhZ6FewuuyYwZ9cPWd614Gu6UhWacrDY" },
  { "5KLmP4zEGtVdDFv[xxxxxxxxxx]hzqB5U6qgp9KnJgb", "18djF84ZNVURvFUX2ZAVaFqV9MerjJkQtE" },
  { "5KE9gCAf2SphAP1[xxxxxxxxxx]DZZBhZJoNwSszkrx", "1Asfz56unNm1c527p3ENavRqecShQyxHeN" },
  { "5JDRtL3i2uSXvGp[xxxxxxxxxx]pZxiiamcwdaHdGa3", "1HMYjeeZf4qq9L9WZRaBKnNjsP1bSLsuMs" },
  { "5Je22MvY7iF2xHP[xxxxxxxxxx]gT6Rdor6iVswjao6", "1EMxjb3667se6LuqkhRsrBaAScGsx5DMFq" },
  { "5JTKi4hCxT45o23[xxxxxxxxxx]ArjPdNapwbMHBzLn", "1Kzf3YptWEMwDHF1nmVpMbs3jSvWjWdSbR" },
  { "5JPTBRnNq9qYVtL[xxxxxxxxxx]CQxWgV2DvbbuLmL9", "1KvvnDBRtHFZdE9ngqGWV5VGznFgXuF1fd" },
  { "5Jt9jHync9VqqM4[xxxxxxxxxx]i9iDE3Ex3a8uZfBF", "1CpV2F9YASreNrBGf1E8QgFgKdqYQopzGH" },
  { "5JUnVaB2tKUNTxC[xxxxxxxxxx]YzkhAA4CbbEDrC8y", "1LhA9wbU4enUCT8EVorxeJegQtkZcyr7m6" },
  { "5KhYqvR9QbQjBHT[xxxxxxxxxx]4oupyKRQhQwMmeDA", "1HSUdtBoNbexP3ordhnSZ2jfHCGVvAbGt" },
  { "5HySpxNfqrwbe3o[xxxxxxxxxx]VnvjPC76dumUyFDn", "1NLbWbTczixoA3sCgQg5NLpsExqRPJiA3H" },
  { "5KCgzeZ3XcbSve7[xxxxxxxxxx]TQrAsZUTPweMkNHK", "1AApKu3su7VT9K1hgyxp3pcp2DSNC5V9s3" },
  { "5Hz6Ms88yfNjtK7[xxxxxxxxxx]mh6M18PXXvCJL65p", "16LEKMzhabDoTghR2no3a59SJQC6MJp2aM" },
  { "5Jc3bKmSHzrWDVb[xxxxxxxxxx]X9t2p5zQLJy1kQvf", "1RfEM5WPtboTNnjHN3HR889FyuUx6T14D" },
  { "5Js4G5L5rQ5aQP6[xxxxxxxxxx]Gh5nvbdbdSCp3QXk", "1ArJ9vRaQcoQ29mTWZH768AmRwzb6Zif1z" },
  { "5K5k4BXcZCTLrra[xxxxxxxxxx]ZSYYTN1LfgeRqGGD", "1LWDzisQtETsxk6N8QNa1KuUSiYtmmfa5A" },
  { "5KPCuy49WwkrCiV[xxxxxxxxxx]knnQKM8x2aTqkELR", "1P5anXJVbPeXsw4wExuQ8SCBRevRPe8syQ" },
  { "5KY9S8S8h84VoQC[xxxxxxxxxx]D3nev9qJd1DWryMK", "181ErGfBCT7twckweWJgoDMGXNepvb4qnp" },
  { "5KWsCiZu8M4RD85[xxxxxxxxxx]iJobtLvputGwq2RZ", "18SEPGaZ3xdHiH2hkSdPgkYdnvzPr6PZYS" },
  { "5JX5PMN6GpCST2Y[xxxxxxxxxx]diu4XAM5ZQhTVbcX", "1iuC1ovtbMJQLniEiJtR5obbWvVkmTjiE" },
  { "5HrGYnPQcQgHH2L[xxxxxxxxxx]7cuB588w7Le2aq7u", "1HDGRnafT7ogCaMuHx9csBGvGeYc441tQ4" },
  { "5JuzCU6JasuHZPo[xxxxxxxxxx]fhrGNvMsmopPxhZF", "17SP6Qc3fP3zUWFkfRrwY3TF3a6eQ3NsZr" },
  { "5KeF1HKC8STj5jT[xxxxxxxxxx]DhhZHjjfGjVe5PdW", "1L2Bcohuf1qyHykTdP8rD74K6HQSsTaTE" },
  { "5JbVY39VKswNXGg[xxxxxxxxxx]UtQi2YsX2RrYXVDw", "1PVHbRqh1eYsGCVZ7t18UCQ6oPzXFR3HQz" },
  { "5HyKswWEefG4fJB[xxxxxxxxxx]sP5ibjqs2bHMANLN", "1Dsoi4eggJhipmYZtFGPGBxLX8nguYxiGh" },
  { "5HzCVQxjAfSGgiw[xxxxxxxxxx]tCHrJPhpJhnbS3jt", "1ZaRiG4qLj336tKFMZCGPpySoRQsReivv" },
  { "5Joa5g5Gp9m4T3V[xxxxxxxxxx]PexuZeEFv428vRwT", "13GSuGxtMZyE6SDA8XJyuWsHYpXZyNQTAn" },
  { "5KJNQaHTFBbr4iK[xxxxxxxxxx]Qw8ue2nd3BsheCV7", "1LCnNsa2pxbZCsVdRoNqLGFcULbrEFL4i1" },
  { "5HprJw9kTe1gPJb[xxxxxxxxxx]d8JpH8Eey52Dtmym", "17xnTfrWYiLMhEQmW55VCa5cVhSZMVUak6" },
  { "5KPAcwk3NYJ1uNj[xxxxxxxxxx]NNoFwLfch6YcPGAb", "187TT5PpAKGHRBGjdaKDZsgBH1s8yNCtS4" },
  { "5JmqxZp5bZ77xoa[xxxxxxxxxx]RHieqddxsnY9qoBa", "14qF25Rg3hJaYFHwE6ST2rr1cnBS3DPYNe" },
  { "5JNkFgWyg8ubv2v[xxxxxxxxxx]SsUbzGLkQxpjPBwf", "15Ew6Sen8hVhTfLmXvAEEqGfX58iYWqEV5" },
  { "5JG39XCyLWS4s9w[xxxxxxxxxx]9nubDibfzJ4AeXEu", "1DpyhFtQs3yVM4gSf3KiD9GBxcPaxuQRDT" },
  { "5HziYK8LhaLJo5F[xxxxxxxxxx]mdxG1TiACAdKAHJd", "185YGf4EoVfgqFBSAAUf1wDte9KVwmdHMy" },
  { "5KkWyZxQ2MYBmuY[xxxxxxxxxx]vFMdjB3VpyECSz5t", "1DqXkT8KR25q56sAerfSg875KaJ6o3f3mi" },
  { "5Kase7VPyr97GTH[xxxxxxxxxx]Wz3xn4bMgM6Umwd3", "1DEsbC42Je7psYeaE2mbWNUpSEFTL9aQUs" },
  { "5KMApuYkUtqYF5A[xxxxxxxxxx]9PtZ4j6AYgsxQttH", "13tRCNGCGuVN4gYyf6CpfYckhM3qrJy9YX" },
  { "5JfHyHMd2RevK1e[xxxxxxxxxx]LnoiLU7VCk8BzbrP", "1CtgapxmS4CRLCNFGTbidAqfk9WNdR2kdn" },
  { "5J32i3MwoW1MWg4[xxxxxxxxxx]sujxMPkAzvWE73Cb", "18W9kV7SqNPnvcbZRzM34aE14m5tFmAuz5" },
  { "5K4v97LMkAYjeEG[xxxxxxxxxx]q2dWw82Ax7XnTAXv", "1CLfNqGBb949bBbMgefRPkDVgpgyEgWRF" },
  { "5JCKbPdCC4YnFGY[xxxxxxxxxx]ASnaiXpJJwwPkzvy", "1MLQDQQsaHPSPQwp3TJ5YSbffm2EHneaU9" },
  { "5KG2YTjhf7qnVmc[xxxxxxxxxx]moRqBih4C1V3cnsK", "1Es37FWCT3xDCrQM2NEJLajRPYNbk7jUaH" },
  { "5HrGnaAn12GmFCp[xxxxxxxxxx]xcDfdaRaBnruA5VK", "1NMb6g4rQXHmsaHaiy1iV2Wmn4bTGwxyLT" },
  { "5K3w1ZPBL5Yjq3R[xxxxxxxxxx]wHyRUH3drD6krjSP", "1JmY6KZxoMjMaFKLVSMAr7BdsAAWASMR7d" },
  { "5JkqMDR3PEEZQPk[xxxxxxxxxx]L2kRvQrfeX6N1Cdb", "1EKJUnK4EE83LdGsCnFPZxgkybyFiTdbMk" },
  { "5KCRpA4ooYGfqT9[xxxxxxxxxx]euvaZ4gkyBhyttni", "1ptDzNsRy3CtGm8bGEfqx58PfGERmXCgs" },
  { "5JnXmtRocKfd3kQ[xxxxxxxxxx]bda5HkAyKsbS2uRG", "1LKVE8ys5rep3LbELC3fhfCRWXQiEi7hpv" },
  { "5JQnwUbf2TJVhVW[xxxxxxxxxx]Q6P1q9XQ4oRgvyFx", "1AjwULXBv9TeVjADC3khcP69USBGRXYUpd" },
  { "5HwPWNZ4uMZiiQu[xxxxxxxxxx]1wnJdgwkPUsYw2mT", "19UyTaFsvbXdqfmigR1iaCCfFBP9Uw3vDo" },
};


legendary
Activity: 1260
Merit: 1019
Прям даже не знаю - может предложить каким-нибудь "нашим" пулам сделать возможность включать в блок нестандартные транзакции?
Это вообще-то не нарушает традиций (заветов) оставленных нам вдохновителем (гуру, мессиром) Накамото. Всегда должна быть "альтернатива".
legendary
Activity: 1260
Merit: 1019
В общем, чем дальше, тем груще и грустнее.
Легенда о том, что Eligius-пул принимает и обрабатывает нестандартные транзакции оказалась мифом - у Eligius свои собственные настройки, какие транзакции принимать, а какие игнорировать.
Eligius практически не принимает в свои блоки транзакции без комиссии, комиссия у них по ходу дела 0.0001 за килобайт (хотя в 0.9 изменили) и самое прикольное - в этом клиенте уже существуют "черные списки адресов", транзакции "на" и "с которых" пулом не принимаются.
https://gitorious.org/bitcoin/luke-jr-bitcoin/source/7da290756fafb61369994f736f238ed990c3a45c:src/script.cpp#L1740

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

Но в этом случае вывод нестандартных output-ов и output-ов с скомпроментированных адресов (CHBS=correct horse battery staple) становится проблемой - под каждого соседа я должен "подстраиваться". Одному нельзя отправлять транзакции с одними условиями, другому - с другими... Я, честно говоря, разочарован. Думал, что "Eligius" разрешает абсолютно все и единственным тормозом будет являться комиссия за транзакцию.

Да. И вот еще что. Не очень понятно как извлечь transaction-pool c Eligius-node. Это мне нужно, чтобы сформировать транзакцию которая бы расходовала инпуты, но не конфликтовала бы с теми транзакциями, которые ждут своей очереди в пуле. Я просто не смог найти IP-адрес Eligius-пула ! Вполне возможно, что он находится за серьезным firewall-ом во внутренней сети Люка и в таком случае получить его пул транзакций совершенно невозможно - он не слушает входящие соединения, а инициирует соединения к случайным или доверенным узлам сам. Не уверен, что стоит пытаться расспрашивать владельцев - я бы на их месте какого-то кульного хацкера из Северной Нигерии просто бы послал в жопу. Вот тут я еще примерно эту же тему обсуждаю: https://bitcointalksearch.org/topic/do-pending-transactions-live-forever-on-eligius-mempool-571229
legendary
Activity: 1260
Merit: 1019
Разумеется, ловить чужие транзакции с нестандартными выходами и посылать свои транзакции с нестандартными входами (дайте мне кривой молоток забивать кривые гвозди) надо именно приконнектившись к Eliguis, а не к своему локалхосту. Во всех остальных местах рыбы нет - ловить нечего. Даже если существуют имплементации, которые пересылают нестандартные транзакции - как их найти среди всех узлов сети? Перебирать все узлы сети и проверять по юзер-агенту? Бесполезно. Лучше как контролер на "конечной остановке" стоять и "проверять билетики". Понятно, что надо успеть раньше, чем это сделает кто-то другой. Ну и если кто-то посылает транзакцию с нестандартным выходом и сразу вслед за ней сам выводит это себе - то тут мой шанс "вклиниться" нулевой.

Пришлось сегодня взяться за серьезную переделку кода - надо более корректно строить основную цепочку блоков (сперва читаю с диска blk***.dat, потом прозрачно для других частей ядра переключаюсь на получение данных по сети с одного или нескольких пиров) с возможностью "отката" на несколько блоков назад если находится более длинное продолжение. В общем, на словах все понятно. Но чувствую себя как собака - всё понимаю, а выразить словами не могу.
full member
Activity: 216
Merit: 100
В принципе, как раз возможен ответ на мой вопрос - почему мои raw-транзакции не проходят через веб-форму на eligius.st - они не проходят валидацию, потому что пул их справедливо считает double-spending-ом транзакций из мемори-пула.
Скорее всего да, вроде распространяемые double-spend транзакции в bitcoin-qt отбрасываются, что логично. В общем, кто первый до Eligius добежит, тот и молодец Smiley Кстати, в этом плане такая архитектура:
Софтина прожевывает существующий блокчейн, потом коннектится к пиру (пиром пока выступает запущенный на моей же тачке Bitcoin-Qt в тестовом режиме), и парсит все что от пира приходит.

Если приходит что-то "интересное" - может выполнить какое-то действие, например сразу перевести биткойны "снежным комом" в другое место.
может не дать желаемого эффекта — в момент, когда что-то "интересное" придёт к софтине, оно же в неизменённом виде одновременно придёт и к Eligius'у, а изменённую транзакцию он не пропустит как double-spend.
sr. member
Activity: 326
Merit: 250
Global Risk Exchange - gref.io
половину слов не понимаю, но читать очень интересно Smiley
спасибо
legendary
Activity: 1260
Merit: 1019
Кажется, я таки нашел пул Eligius  Grin
По крайней мере нечто очень похожее на него
Запрашиваю у этого хоста командой mempool список его транзакций и получаю в ответ транзакции 1Enjoy & 1Sochi

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

В принципе, как раз возможен ответ на мой вопрос - почему мои raw-транзакции не проходят через веб-форму на eligius.st - они не проходят валидацию, потому что пул их справедливо считает double-spending-ом транзакций из мемори-пула.
legendary
Activity: 1260
Merit: 1019
Ну вы как хотите, а я двигаюсь потихоньку.
В общем, вот что вырисовывается: у меня получается в некотором роде собственная реализация bitcoin-core.
Работает она так: на вход ей дается
1) существующие на диске blk***-файлы
2) приватные ключи (пока я не морочил голову как их хранить секурно)
3) ну и сообщается куда коннектиться (пока 127.0.0.1:18333)
Софтина прожевывает существующий блокчейн, потом коннектится к пиру (пиром пока выступает запущенный на моей же тачке Bitcoin-Qt в тестовом режиме), и парсит все что от пира приходит.

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

Где эту софтину использовать и как - это я еще не придумал. Может быть оформить именно как ядро и потом уже наворачивать какую-то кастомную функциональность? Пока не знаю. С нестандартными транзакциями полная жопа. Не нашел ip-адреса eligius-пула, да и ен факт, что они тоже возьмутся их обрабатывать.
legendary
Activity: 1260
Merit: 1019
как оказалось, мультисиг-выход 16-of-16 - это еще не самый жирный пример
вот тут
https://blockchain.info/tx/c4aaf7fbec7a9a079e670e50f6a672315451c7618814494ab1f89cf3fd97b3bb
выход 20-of-20  Grin Причем его ухитрились потратить. Так что ограничение на размер scriptSig - не протокольное, а реферального клиента
full member
Activity: 216
Merit: 100
Я еще не разбирался с мультисиг, по-моему там существует ограничение - стандартными считаются транзакции с не более чем тремя подписями. Так?
Да. Точнее, не транзакции, а адреса — в m-of-n адресах n не может быть больше 3. По крайней мере пока. В самой же транзакции подписей может быть больше за счёт других входов.

Чуть-чуть пошукал еще. Нашел во что:
https://blockchain.info/ru/tx-index/112996485
Эта (или подобная) транзакция попала в мемори-пул на blockchain.info и висит в этом пуле аж с 13 февраля - уже неделю как! Майнеры ее не майнят, blockchain.info ее не выбрасывает, а просто ждет когда ее подтвердит кто-нибудь.

Надо попробовать ее "снежным комом" попробовать выколупать.
Не взлетит. Опять же — пока. Текущее ограничение на размер scriptSig (из одного входа) — 500 байт.

main.cpp, функция IsStandardTx:
Code:
   BOOST_FOREACH(const CTxIn& txin, tx.vin)
    {
        // Biggest 'standard' txin is a 3-signature 3-of-3 CHECKMULTISIG
        // pay-to-script-hash, which is 3 ~80-byte signatures, 3
        // ~65-byte public keys, plus a few script ops.
        if (txin.scriptSig.size() > 500) {
            reason = "scriptsig-size";
            return false;
        }
        if (!txin.scriptSig.IsPushOnly()) {
            reason = "scriptsig-not-pushonly";
            return false;
        }
    }

P.S. Только сообразил — если мультисиг реализован без redeemScript (не pay-to-script-hash, а просто ключи указаны непосредственно в scriptPubKey), как в приведённом случае, то ограничений на n и m нет, но вот ограничение в 500 байт остаётся.
legendary
Activity: 1260
Merit: 1019
Вот еще любопытность нашел.
Сперва читаем тут http://thomas.bitwasp.co/?p=22
В двух словах - мультисиг транзакция, которая выводится владельцем ключа "correct horse..."
Автор попытался ее вывести, но... Не вышло. Я еще не разбирался с мультисиг, по-моему там существует ограничение - стандартными считаются транзакции с не более чем тремя подписями. Так?

Чуть-чуть пошукал еще. Нашел во что:
https://blockchain.info/ru/tx-index/112996485
Эта (или подобная) транзакция попала в мемори-пул на blockchain.info и висит в этом пуле аж с 13 февраля - уже неделю как! Майнеры ее не майнят, blockchain.info ее не выбрасывает, а просто ждет когда ее подтвердит кто-нибудь.

Надо попробовать ее "снежным комом" попробовать выколупать.
legendary
Activity: 1260
Merit: 1019
Значит входящая транзакция и исходящая транзакция на пришедшую сумму возможны в одном блоке ?
Протокол вроде не запрещает любое количество транзакций наследующихся друг от друга в одном блоке. Вопрос в том - должны ли они в блоке располагаться в "правильном порядке"? Не проверял. Наверно.

Можно проверить простым способом - делаете перевод, потом еще перевод (средства для него возьмутся из сдачи первого перевода), потом еще перевод (из сдачи второго перевода)... и так далее - по идее все переводы попадут в один блок.
newbie
Activity: 13
Merit: 0
Значит входящая транзакция и исходящая транзакция на пришедшую сумму возможны в одном блоке ?
legendary
Activity: 1260
Merit: 1019
Quote
Какие программы ты используешь для обработки данных?
Да всё пока самописное. Открываю по-очереди blk***.dat - там формат очень простой

Quote
Значит ктото парсит такие адреса уже на уровне memory pool и сразу вывод средств организует ?

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

blockchain.info указывает время транзакции, когда эта транзакция именно на blockchain.info прилетела.
newbie
Activity: 13
Merit: 0
Понаблюдал за одним скомпрометированным адресом и вижу, что исходящаа транзакция прошла через 2 секунды после входящей. И обе оказались в одном блоке.
Значит ктото парсит такие адреса уже на уровне memory pool и сразу вывод средств организует ?

full member
Activity: 285
Merit: 100
Quote from: amaclin
Сперва пришлось просканировать 15 гигабайт блокчейна и разобраться с транзакциями, вернее с их выходами.

Какие программы ты используешь для обработки данных?
full member
Activity: 216
Merit: 100
а как для винды такое запустить - в инете не нашел - все под убунту
Дальнейшее решение этого вопроса здесь будет оффтопом, поэтому переходим обратно:
https://bitcointalksearch.org/topic/m.5189801
legendary
Activity: 1554
Merit: 1008
а как для винды такое запустить - в инете не нашел - все под убунту
full member
Activity: 216
Merit: 100
а как удалить транзакцию из wallet.dat ??

I dumped the wallet.dat using
$ db4.8_dump ~/.bitcoin/wallet.dat > dumpfile

The really hard thing was to find the transaction there! I was almost going crazy until i found out that you have to reverse the the transaction-id (=read from right to left)! Then it was simply (carefully) deleting the right two lines from the dump and importing again with db4.8_load.

Сделать бэкап wallet.dat (два: один, если что-то пойдёт не так, другой для модификации), затем дамп
Code:
$ db4.8_dump wallet.temp.dat > dumpfile
потом найти транзакцию в дампе (имейте в виду — txid там записан в обратном порядке следования байт, т.е. если ваш txid начинается с "01234567", то искать надо "67452301"), удалить найденную и следующую за ней строку, загрузить дамп обратно в wallet.temp.dat
Code:
$ db4.8_load -f dumpfile wallet.temp.dat
остановить bitcoin-qt (bitcoind), записать wallet.temp.dat на место wallet.dat, перезапустить клиент.
full member
Activity: 216
Merit: 100
Вообще-то вставление "костылей" подобного рода в алгоритм - странный прецендент.
В какой-то момент разработчики предложат считать последовательность
"OP_DUP OP_HASH160 OP_0 OP_EQUALVERIFY OP_CHECKSIG" тоже "особой" и таким образом "поднимут из небытия" биткойны, которые уплыли в Лету ( см. https://bitcointalksearch.org/topic/a-lot-of-btc-just-destroyed-block-150951-50232 )
Это вряд ли. Одной из целей такого «костыля», насколько я понимаю, было сокращение размера scriptPubKey. В будущем, когда мультисигнатурные адреса будут часто использовать на практике и когда блокчейн разрастётся до неприличных размеров, большинство узлов (в т.ч. условно-полноценных) будут хранить только последние блоки и список непотраченных выходов. И вот тогда будет разница, хранить
https://blockchain.info/tx/4005d6bea3a93fb72f006d23e2685b85069d270cb57d15f0c057ef2d5e3f78d2
Почему "весёлая"? Потому что те майнеры, которые не проапгрейдились и работали по "старым" правилам включали её в свои блоки, а 51% сети в том числе и 51% новых майнеров эти блоки считали невалидными и, разумеется, орфанили их Smiley
Мораль - надо вовремя апгрейдиться Smiley
Это да, последний майнер попытался её включить в блок аж через полгода, в октябре Smiley Насколько я понял тот скрипт, по новым правилам там нужно перед redeemScript'ом добавить подпись приватным ключом, соответствующим публичному "029c7187ecea7f09146820075c3a8de5d33ffbc293b63228ea1667c8d3796aff3f" (соответственно, адресу "1GgPeoTkagdppaZ1TbeCSPcihFhr4HRue2").
legendary
Activity: 1554
Merit: 1008
а как удалить транзакцию из wallet.dat ??
legendary
Activity: 1260
Merit: 1019
Смотрю внимательно пока что их себя представляет BIP-16
Пока нашел "весёлую транзакцию", которая была валидной по "старым правилам", но перестала быть валидной по "новым правилам".
https://blockchain.info/tx/4005d6bea3a93fb72f006d23e2685b85069d270cb57d15f0c057ef2d5e3f78d2
Почему "весёлая"? Потому что те майнеры, которые не проапгрейдились и работали по "старым" правилам включали её в свои блоки, а 51% сети в том числе и 51% новых майнеров эти блоки считали невалидными и, разумеется, орфанили их Smiley
Мораль - надо вовремя апгрейдиться Smiley
legendary
Activity: 1260
Merit: 1019
Quote
«Снежным комом» пробовали? По крайней мере приоритет выше будет. Рекомендую подождать пару дней, если не пройдёт — удалить транзакцию из wallet.dat и повторить с одним крупным инпутом (кстати, вы в курсе, что транзакцию можно подписывать последовательно в разных кошельках и таким образом избежать засвечивания приватных ключей с большим балансом?).
Нет, еще не пробовал. Рисковать на mainnet "живыми" деньгами немного ссыкотно. Да и "большого баланса" как такового у меня нет. Я ж говорю - биткойном заинтересовался только в конце прошлого года. Я даже могу сказать почему до этого это было вне сферы моих интересов - когда я впервые увидел публикации несколько лет назад там были слова что-то типа "...позволяет пересылать на IP-адрес..." - это я счел потенциальной уязвимостью (а это она и есть, так как все идет по открытым каналам и легко перехватывается) и не обратил внимание на технологию в целом.

Quote
Тут проблема в том, что для новых транзакций (после 1 апреля 2012) такая последовательность ("OP_HASH160 OP_EQUAL") считается особой и обрабатывается отдельно.
Говорила мне мама: "Учи английский"

Вообще-то вставление "костылей" подобного рода в алгоритм - странный прецендент.
В какой-то момент разработчики предложат считать последовательность
"OP_DUP OP_HASH160 OP_0 OP_EQUALVERIFY OP_CHECKSIG" тоже "особой" и таким образом "поднимут из небытия" биткойны, которые уплыли в Лету ( см. https://bitcointalksearch.org/topic/a-lot-of-btc-just-destroyed-block-150951-50232 ) Большинство пользователей просто скачает новый клиент, тем самым проголосовав "за" изменение в алгоритме.
full member
Activity: 216
Merit: 100
legendary
Activity: 1260
Merit: 1019
Я немного в предыдущем моем сообщении мог запутать вас.
Ссылку вам дал на транзакцию
http://webbtc.com/tx/9e15fb351d034b76ecab5a2d9839a115cc43094321c3bbb6cbc650bb4ea41593
а ввыводить моя raw-транзакция будет из
http://webbtc.com/tx/a4a37355d598e0d09ecbe93592d1cfcd83a591dd595d6a2be7a333ec66f73957
там точно такой же неизрасходованный OP_HASH160 fe441065b6532231de2fac563152205ec4f59c74 OP_EQUAL

В общем, у меня пока нашлось поиском по блокчейну 7 таких неизрасходованных выходов суммой аж цельных BTC0.03  Grin
На тестнете прекрасно все выводится на свой адрес, на мейннете проблемы с нестандартными транзакциями - обычные клиенты их не пересылают, так что для добавления транзакции в блок после "патченья" клиента надо еще как утверждает вики соединиться с Elegius
https://en.bitcoin.it/wiki/Free_transaction_relay_policy

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

Вопрос по приведенному мной скрипту 51 01 81 08 6E 87 91 69 90 7C 90 87
Кладем в стек +1, кладем в стек -1, кладем в стек "6E 87 91 69 90 7C 90 87"
С какой стати после этого надо выполнять top-элемент стека как скрипт?

Да, кстати. Если кому-то нужны BTC на тестовой сети - могу дать. За время экспериментов на тестнете я себе "напереводил" достаточно много - могу поделиться бесплатно, то есть даром
full member
Activity: 216
Merit: 100
Собственно скрипт 51 01 81 08 6E 87 91 69 90 7C 90 87 - не так уж важно что он делает, раз это сработало

Теперь смотрим на транзакцию
http://webbtc.com/tx/9e15fb351d034b76ecab5a2d9839a115cc43094321c3bbb6cbc650bb4ea41593
Обращаем внимание, что у этой транзакции такой же самый скрипт выхода:
OP_HASH160 fe441065b6532231de2fac563152205ec4f59c74 OP_EQUAL
Но он не израсходован.

По идее она должна сработать, если отправить ее на Eligius.st
В данном конкретном случае — да, scriptSig ("51 01 81 08 6E 87 91 69 90 7C 90 87") соответствует такой последовательности команд:
51OP_1"push 1"
01 81"push -1"
08 6E 87 91 69 90 7C 90 87redeemScript"push 6E 87 91 69 90 7C 90 87"
Хэш redeemScript'а — это, собственно, и есть fe441065b6532231de2fac563152205ec4f59c74
Теперь сам redeemScript:
6EOP_2DUP
87OP_EQUAL
91OP_NOT
69OP_VERIFY
90OP_ABS
7COP_SWAP
90OP_ABS
87OP_EQUAL
Т.е. redeemScript требует, чтобы положенные в стек числа (1 и -1 в нашем случае) были равны по модулю и противоположны по знаку. Эксперимента ради их можно поменять на 2 и -2, например. Реальные redeemScript'ы с некопеечными балансами обычно заканчиваются командой OP_CHECKMULTISIG (как в примере), простым копированием scriptSig'а оттуда монеты не снять.

P.S. Да, сама по себе приведённая вами транзакция (txid==7540ae6c483d904488da765294f5d36994a042f44a4d5bc2c84c034cbfd35da3) не будет принята, ибо минимальная комиссия здесь равна размеру переводимых средств Smiley Только «снежным комом».
legendary
Activity: 1260
Merit: 1019
Ладно, еще сегодня-завтра поковыряюсь с нестандартными транзакциями
Потом, наверно, вернусь к основной цели
Вот смотрите что получается

транзакция
http://webbtc.com/tx/6e058c1d413cb5c5a42b24960bdbc746c02dc817dace651c03fbbcbb90da8cf1
(удобно использовать webbtc - позволяет сохранить в bin-формате)
выход #2 : OP_HASH160 fe441065b6532231de2fac563152205ec4f59c74 OP_EQUAL - израсходован

смотрим как его израсходовали. транзакция
http://webbtc.com/tx/567a53d1ce19ce3d07711885168484439965501536d0d0294c5d46d46c10e53b


0000000000: 01 00 00 00-01-F1 8C DA  90 BB BC FB 03 1C 65 CE
0000000010: DA 17 C8 2D C0 46 C7 DB  0B 96 24 2B A4 C5 B5 3C
0000000020: 41 1D 8C 05 6E-02 00 00  00-0C 51 01 81 08 6E 87
0000000030: 91 69 90 7C 90 87 FF FF  FF FF-01-A0 BB 0D 00 00
0000000040: 00 00 00-19-76 A9 14 9B  C0 BB DD 30 24 DA 4D 0C
0000000050: 38 ED 1A EC F5 C6 8D D1  D3 FA 12 88 AC-00 00 00
0000000060: 00


Я уже научился читать дампы просто глядя на них.
Версия транзакции 1
Инпутов 1
Дальше хеш F18C...056E - в другом порядке байт
Выход #2
Длина скрипта 0x0C
Собственно скрипт 51 01 81 08 6E 87 91 69 90 7C 90 87 - не так уж важно что он делает, раз это сработало
Sequence = -1
Выходов = 1
Amount= 0x0dbba0 (little-endian)
Дальше ничем непримечательный скрипт длиной 0x19 - перевод на хеш пубкея
lock = 0

Теперь смотрим на транзакцию
http://webbtc.com/tx/9e15fb351d034b76ecab5a2d9839a115cc43094321c3bbb6cbc650bb4ea41593
Обращаем внимание, что у этой транзакции такой же самый скрипт выхода:
OP_HASH160 fe441065b6532231de2fac563152205ec4f59c74 OP_EQUAL
Но он не израсходован.

Формирую raw-транзакцию
Code:
01 00 00 00 -01-57 39 f7  66 ec 33 a3  e7 2b 6a 5d
59 dd 91 a5  83 cd cf d1  92 35 e9 cb  9e d0 e0 98
d5 55 73 a3  a4-01 00 00  00-0c-51 01  81 08 6e 87
91 69 90 7c  90 87-ff ff  ff ff-01-50  a3 00 00 00
00 00 00-19  76 a9 14 92  b8 c3 a5 6f  ac 12 1d dc
df fb c8 5b  02 fb 9e f6  81 03 8a 88  ac-00 00 00
00

По идее она должна сработать, если отправить ее на Eligius.st



sendrawtransaction 01000000015739f766ec33a3e72b6a5d59dd91a583cdcfd19235e9cb9ed0e098d55573a3a401000 0000c510181086e879169907c9087ffffffff0150a30000000000001976a91492b8c3a56fac121d dcdffbc85b02fb9ef681038a88ac00000000

7540ae6c483d904488da765294f5d36994a042f44a4d5bc2c84c034cbfd35da3
full member
Activity: 216
Merit: 100
Я удивлен (впрочем не очень сильно) зачем нужен тестнет, который по функциональности отличается от основы.
Обкатка новых технологий.
Для "снежного кома" (это пока моя цель) надо подписывать транзакции ключем, на котором не "dust"-количество денег. И так как это делать надо автоматически (то есть не ждать подтверждения пользователя, когда он подойдет к компу и введет свой пароль на wallet.dat) - то это будет весьма уязвимая (для троянов и прочего) часть программы.
Мда, слона-то я и не приметил. Впрочем, если очень беспокоитесь за свои монеты, можно сделать так: заранее подписать транзакцию с одним входом и одним выходом 1BTC→0.99BTC (со своего на свой адрес) с использованием sighash=SINGLE|ANYONECANPAY, не передавая её в сеть; когда на одном из наблюдаемых адресов появятся монеты, дорисовать вход и выход к подготовленной транзакции (например, если появилось 0.001BTC, то получится транзакция 1BTC+0.001BTC→0.99BTC+0.011BTC) и подписать новый вход с любым sighash. Увести смогут максимум 0.01BTC
Вчера попытался вывести себе какую-то мелочь с P2SH-выходов

В-третьих, не факт действительно, что даже у Eligius не стоят серьезные проверки на "нестандартность" транзакций.
Отпишитесь по результатам. Мне почему-то кажется, что не получится — если в scriptSig передано только одно значение, соответствующее хэшу в scriptPubKey'ном "OP_HASH160 OP_EQUAL", то это не нестандартная, а некорректная транзакция, разве что этим значением не закодирован тривиальный скрипт, разрешающий тратить монеты кому попало.
legendary
Activity: 1554
Merit: 1008
legendary
Activity: 1260
Merit: 1019
Quote
В общем, не факт, что эти ненулевые балансы можно будет вообще извлечь.

Да, пока у меня получилось это сделать только на тестнете
Я удивлен (впрочем не очень сильно) зачем нужен тестнет, который по функциональности отличается от основы.

Quote
P.S. Да, чуть не забыл — стандартный клиент умеет делать перевод без подтверждений, надо только пользоваться createrawtransaction/signrawtransaction/sendrawtransaction.

Для "снежного кома" (это пока моя цель) надо подписывать транзакции ключем, на котором не "dust"-количество денег. И так как это делать надо автоматически (то есть не ждать подтверждения пользователя, когда он подойдет к компу и введет свой пароль на wallet.dat) - то это будет весьма уязвимая (для троянов и прочего) часть программы.

Вчера попытался вывести себе какую-то мелочь с P2SH-выходов
Пришлось немного запатчить дефалтовый клиент, а то он не хотел принимать нестандартно оформленные транзакции. Потом долго искал IP пула Eligius - вроде бы единственные майнеры, которые включают нестандартные транзакции в свои блоки. Нашел вот этот адрес -connect=68.168.105.168 , но во-первых у меня нет полной уверенности, что это Eligius (хотя по тому, что в логах много хлама при коннекте именно к этому IP - это он), во-вторых, я не уверен, что мой патченный клиент пересылает им мои самосформированные транзакции (надо снифить мой исходящий сетевой трафик). В-третьих, не факт действительно, что даже у Eligius не стоят серьезные проверки на "нестандартность" транзакций.

full member
Activity: 216
Merit: 100
Quote
so hackers can collectively try multiple trillions of passwords every second in the privacy of their own homes with the very same equipment they use for mining bitcoins (in the usual sense). Your bank might tell you that a 10 character password with uppercase, lowercase, numbers and symbols is a strong password, but it is not strong enough to secure a brainwallet. A password that might be strong enough for traditional banking or a social website is typically unacceptable for a brainwallet.

Поэтому стоит ли игра свеч ? Все украдено до нас.
С такой же вероятностью можно просто генерить коллизии адресов. 10^45 не так уж много )
Если под "very same equipment" имеются в виду sha256-майнинговые ASICи, то это ни разу не так. Впрочем, речь в топике не о поиске адресов, соответствующих слабым паролям, а о слежении за уже скомпрометированными — вдруг кто прикола ради на них битки переведёт.
newbie
Activity: 13
Merit: 0
Вот что пишет Wiki про Brainwallett

Quote
so hackers can collectively try multiple trillions of passwords every second in the privacy of their own homes with the very same equipment they use for mining bitcoins (in the usual sense). Your bank might tell you that a 10 character password with uppercase, lowercase, numbers and symbols is a strong password, but it is not strong enough to secure a brainwallet. A password that might be strong enough for traditional banking or a social website is typically unacceptable for a brainwallet.

Поэтому стоит ли игра свеч ? Все украдено до нас.
С такой же вероятностью можно просто генерить коллизии адресов. 10^45 не так уж много )
full member
Activity: 216
Merit: 100
legendary
Activity: 1260
Merit: 1019
Т.е., патчить bitcoind. Посмотрите на последние зачисления и списания на этом адресе — интервал между ними всего несколько секунд, явно кто-то уже постарался с таким патчем.
Как вы по времени между транзакциями определяете тип клиента который это отправил?  Shocked

Я не вижу смысла завязываться на bitcoind.
Тягаться с кем-то ради трех рублей отправленных на 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T смысла нет - меня интересует скорее технология, а е результат. Собрать биткойн из его сорцов я даже и не пытался - у меня нет всех нужных компонентов, а загромождать машитну всякими бустами я не хотел. Пока что достаточно иметь стандартный комплект Qt и в дополнение к нему OpenSSL.

Схема у меня пока приблизительно такая - мой "клиент" (будущий) сам работает по протоколу https://en.bitcoin.it/wiki/Protocol_specification , виден с других узлов сети как обычный узел. При поступлении транзакции он, как и обычный клиент, ее анализирует и при совпадении каких-то условий формирует, подписывает и отправляет в сеть новую транзакцию. Да, для подписи транзакции моему клиенту нужны все приватные ключи и он будет вынужден их хранить в практически незащищенном виде (у обычного клиента при включении шифрации wallet.dat приватные ключи защищены пользовательским паролем). Это действительно самое слабое место, что "левая программа" знает все ваши "приватные ключи" и хранит их несекьюрно. Но для меня эта программа не "левая", и как по-другому сделать я не представляю пока.

Вообще-то я больше склоняюсь к тому, чтобы сделать следующий вариант: на компьютере запущен стандартный bitcoind, а мой клиент соединяется с 127.0.0.1:8333 (то есть не тратит лишний сетевой трафик). Раз в мой клиент поступают только те данные, которые проверил и отрелеил стандартный ктиент - я могу этим данным доверять и практически не проверять - они и так корректны. Обратная сторона медали - если я отправляю нестандартную транзакцию - мне надо чтобы она дошла до пула, а скорее всего она даже не попадет в сеть - ее зарубит за нестандартность bitcoind. Но об этом позже. Сегодня я обещал рассказать о P2SH

Итак, "OP_HASH160 OP_EQUAL"
Сразу скажу, я могу лажать с терминологией, я так и не понял что называется какими словами.
Так что по-деревенски.
Если мы видим в сети перевод типа указанного, а мы хотим перевести эти биткойны дальше, мы должны сформировать такой скрипт, который положит в стек такое значение, hash160 от которого равен указанному

Понятно я выражаюсь? Если непонятно - повторю еще раз

Все транзакции в биткойне похожи на телевизионную игру, где сперва называют ответы, а потом надо к этим ответам придумать вопросы. Или вспомните Дугласа Адамса и его окончательный ответ на Главный Вопрос Жизни, Вселенной и Всего Такого. У нас есть ответ, но нет вопроса.

Путь перебирать все возможные варианты паттернов, брать от них hash160 - это бессмысленно. 2^160 степени - криптографически надежно. Пойдем с другой стороны. - возьмем hash160 от пустого массива байт, потом возьмем hash160 от всех однобайтных массивов, потом 65536 раз от двубайтных, от трехбайтных... ну дальше будет сложнее, придется остановиться на этом. И посмотрим - нет ли в блокчейне таких хешей. Самое любопытное - они есть! И на некоторых из них даже непотраченные ненулевые балансы!

Заинтриговал? Продолжение следует. Задавайте наводящие вопросы.
full member
Activity: 216
Merit: 100
legendary
Activity: 1260
Merit: 1019
Quote
createrawtransaction
Да, но у этой команды весьма ограниченное применение. ну либо я не разобрался
В общем, я планировал обойтись без RPC-JSON вообще и без bitcoind
Ну или свести по минимуму работу с ними

Quote
p.s. я так понимаю, это основывается на том что транзакции без комиссии обрабатываются с большим приоритетом если они большие по монетам?
Это скорее связано с ограничением на транзакции без комиссии.
Логика стандартного клиента примерно такая: умножаем пересылаемую сумму в биткойнах на количество дней сколько эти биткойты лежали без движения. Если получилось больше единицы - можно отправить без комиссии, если меньше - надо заплатить комиссию. На приоритеты я особенно не обращал внимания. Может быть потом еще вернусь к этому вопросу

Quote
Только профит, по-моему, от всей этой затеи более чем сомнительный.
Когда я пару месяцев назад начинал это - то у меня были весьма смутные понятия как все работает. Так что профит в том, что я чего-то достиг. Может быть не того, чего хотел в начале. Сейчас делюсь знаниями.

Сперва пришлось просканировать 15 гигабайт блокчейна и разобраться с транзакциями, вернее с их выходами.
Сделал свою "классификацию выходов"

1) перевод на публичный ключ. бывает два варианта - обычный и компрессированный
Скрипт, соответственно, " OP_CHECKSIG" либо " OP_CHECKSIG"
По слухам, Сатоши Накамото не знал про то, что можно использовать компрессированный вариант, это уже позднее в клиенте имплементировали. Потратить такой выход (перевести биткойны себе) можно только если мы имеем соответствующий приватный ключ

2) перевод на хэш публичного ключа - это то что мы обычно используем. важно понимать, что у классического и у сокращенного варианта публичного ключа разные хэши. Например, у "correct horse battery staple" обычный адрес 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T , а адрес из компрессированного ключа 1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8
Условия траты те же самые

3) перевод на хэш скрипта (P2SH) - имеет вид "OP_HASH160 OP_EQUAL"
В блокчейне может быть вы видели переводы на адреса, которые начинаются не на 1, а на 3 - так вот это оно самое
Чуть ниже буду рассказывать подробнее.

4) мультисиг-выходы. Нашел несколько разных вариантов - скрипт заканчивается командой "OP_CHECKMULTISIG"
Вообще не занимался пока ими.

5) все остальные транзакции, которые условно можно назвать нестандартными по выходам. вот тут много всяких вариантов.
я насчитал около 40 разных вариантов output-скриптов, которые опять же можно разделить на категории

5а) unspendable - выход сделан таким образом, что никто и никогда не сможет перевести биткойны. ярким (но не единственным) примером является блок 150951 описание тут: https://bitcointalksearch.org/topic/a-lot-of-btc-just-destroyed-block-150951-50232
из-за ошибки чьего-то самописного софта 2609 BTC были просто отправлены в небытие (не путайте с комиссией)

5б) anyone-can-spend - вот это было самое интересное - скрипт оформлен таким образом, что биткойны может перевести дальше любой желающий, кто сможет написать соответствующий инпут. К моему сожалению, все такие выходы уже потратили до меня. Не удивлен. Но в программе, которую я пишу надо реализовать обработку таких скриптов - вдруг еще кто по ошибке или специально пошлет такое

5в) потратить теоретически можно, но непонятно как.

Продолжение следует. Завтра расскажу немного про P2SH-выходы


legendary
Activity: 3556
Merit: 1100
Я уже порядком задолбался писать эту программу. Решил написать в форум, чтоб какой-то стимул появился.
Знакомое состояние... Smiley

Только профит, по-моему, от всей этой затеи более чем сомнительный.
legendary
Activity: 1120
Merit: 1069
createrawtransaction

p.s. я так понимаю, это основывается на том что транзакции без комиссии обрабатываются с большим приоритетом если они большие по монетам?
legendary
Activity: 1260
Merit: 1019
Я с биткойном познакомился недавно, к конце прошлого года.
Как и многие другие новички задавался вопросом - "есть ли халява?"
В общем, пришлось углубиться в программирование и прояснить для себя кое-что.
Сразу скажу - халявы нет. Но бывают интересные моменты

Суть вот в чем. Есть "скомпроментированные" приватные ключи, на биткойн-адреса которых иногда поступают какие-то небольшие суммы. Самый известный такой адрес это
https://blockchain.info/address/1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
соответствующий дефалтовому примеру "correct horse battery staple" в брейнваллете
Анализ сделок показывает - что как только кто-то кредитует этот адрес - сразу же кто-то другой оттуда выводит. Некоторые такие выводы делаются с комиссией, а некоторые - по принципу "снежного кома"

Допустим, у меня есть личный (нескомпроментированный) аккаунт ХХХ, на котором лежит 1 BTC.
Я отслеживаю все транзакции в сети, и как только вижу транзакцию перевода на 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T (допустим 0.001 BTC) то еще до включения этой транзакции в блокчейн формирую транзакцию с двумя входами - первый вход: 1.0 BTC с моего аккаунта, второй вход 0.001 с "correct horse". В результате, если я успеваю это сделать до того, как это сделает кто-то другой - на моем аккаунте оказывается 1.001 Это я и называю "снежным комом", когда мы к большому куску "наматываем" еще

Стандартный клиент для этого не подходит - во-первых, он не даст сделать перевод без подтверждений, во-вторых нужно следить за трафиком, и самое плохое - попытка в него импортировать ключ типа "correct horse" вызывает рост wallet.dat и жуткие тормоза.

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

Я уже порядком задолбался писать эту программу. Решил написать в форум, чтоб какой-то стимул появился.
Буду тут если вы не против описывать детали протокола и степень готовности программы.
Разумеется, опенсорс, разумеется все на виду у всех.
Jump to: