22 сентября 2011, 2:21:17 AM   # 1
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я хотел бы сделать серьезный визит к предложению я сделал в другом потоке, некоторое время назад, и это предложить модификацию OP_CHECKSIG.

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

  • Пользователи могут генерировать адрес Bitcoin, что при получении Bitcoins, автоматически обремененные на 2 закрытых ключей, или ключевой стратегии 2-в-3 - непосредственно уменьшая риск людей получать свои монеты потерянные или украденные.
  • Новые Bitcoin адреса может быть сгенерирован надежно половинок на двух разных машинах, где ни машины (ни тот, кто коренится его) имеет достаточно закрытый ключ материал, чтобы тратить средства.
  • Все адреса Bitcoin, полученные в этих двух схем будет полностью обратно совместимы и хорошо сформированные, и никто не должен был бы изменить их взаимодействия с bitcoind для размещения исходящих платежей по этим адресам

И позвольте мне описать, как все эти замечательные выгоды могут быть достигнуты.

  • Одно простое изменение команды OP_CHECKSIG.
  • Да, это потребовало бы вилку блока цепи, но это не должно быть сделано сейчас, в ближайшее время, или когда-либо, только для одной этой цели.
  • Просто поместите код в настоящее время и оставить его выключенным через блок 250000 по производственной цепочке, пока некоторые другие внешние силы вызывают нас не раскошелиться блок цепь по какой-то другой причине. К тому времени, текущие версии, безусловно, будет вымершие динозавры, и если блок цепь вилка была когда-нибудь произойдет раньше, номер блока может быть легко перемещен, только как объединенная добыча namecoin пошло от 25000 до 19200, когда случай представился.

А теперь позвольте мне описать то, что изменение.

  • Измените команду OP_CHECKSIG, поэтому там, где он теперь занимает ОДИН Публичные и одна подписи, это будет необязательно принимать бинарное-сериализованное логическое выражение п pubkeys вместо одной Публичных и п подписи подписать против pubkeys, некоторые из которых может быть или не может присутствовать в любом данной транзакции.
  • Прямо сейчас, адрес Bitcoin кодирует хэш Публичных. С этим Кроме того, адрес Bitcoin может кодировать хэш всего двоичного сериализованном выражения. (The OP_HASH160 будет по-прежнему работать так же, как это было раньше, это будет просто хэширования больше байт).
  • Для того, чтобы тратить деньги, то транжира должны были бы обеспечить все выражение вместо Публичных. Все выражение равно будет один комком байт в стеке сценариев просто как Публичная, но будет просто немного больше

Так вот пример. Как это работает сейчас, я посылаю биткоен на адрес X. излучающего Моего клиента:
Код:
OP_DUP OP_HASH160 hashofpubkeyofX OP_EQUALVERIFY OP_CHECKSIG
И когда X идет тратить их, он испускает scriptsig из:
Код:
signatureforX pubkeyofX

С этой модификации, адрес Х может быть основан на хэш небольшой сценарий, который фактически содержит три pubkeys, расположенные в виде (А и В) или С. Поскольку адрес Bitcoin представляет собой хэш, а хэш берется на каплю байты, ничего не говорит о том, что капля байт не может быть сценарием, а не один открытым ключом. Клиент будет по-прежнему излучает тот же сценарий:
Код:
OP_DUP OP_HASH160 hashofpubkeyofthewholescript OP_EQUALVERIFY OP_CHECKSIG

И если X хочет провести их, и у него есть личные ключи для А и В, он будет излучать:
Код:
signatureforA + signatureforB + пустой сценарий: (pubkeyforA И pubkeyforB) ИЛИ pubkeyforC
OP_CHECKSIG будет проходить, потому что сценарий может быть удовлетворен только два из трех подписей.

И если X хочет провести их и он только имеет закрытый ключ для C, он будет испускать:
Код:
нуль + нуль + signatureforC сценарий: (pubkeyforA И pubkeyforB) или pubkeyforC

Теперь, как безопасное поколение Bitcoin адрес будет работать:

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

Он генерирует один ECDSA ключей на его вирусом заражены ПК с помощью кейлоггера и удаленного просмотра трояна контролируется кем-то в Румынии.

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

Он записывает как частные ключи.

С любым из этих компьютеров, он создает один Bitcoin адрес путем хэширования два его открытых ключей вместе. Если он не использует две машины и Позор тем же злоумышленником, или два атакующие имеют какой-то способ, чтобы найти друг друга и сделать "показать вам мой, если вы показать мне ваши"Он в значительной степени защищены от атак, потому что ни один из его противников знает другой секретный ключ, и оба необходимы, чтобы тратить средства. Не дай бог, он генерирует один из этих ключей с использованием устройства, которое не имеет подключения к Интернету, и нет никакого способа, он сможет получить его Bitcoins украден.
casascius сейчас офлайн Пожаловаться на casascius   Ответить с цитированием Мультицитирование сообщения от casascius Быстрый ответ на сообщение casascius


Как заработать Биткоины?
Без вложений. Не майнинг.


22 сентября 2011, 2:40:22 AM   # 2
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Получил 1806 Биткоинов
Реальная история.





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

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

Хочу отметить, что все pubkeys используемого в Bitcoin в настоящее время начинается с 0x04. 0x04 может быть переориентирован в OP_CHECKSIG означает "следующие 64 байт являются Публичных", Так что все существующие подписи будут хорошо сформированные checksig сценарии.

А потом байты, кроме 0x04 может представлять собой очень небольшую часть логических операций с булевой стека, например:

0x00 = PUSHfalse
0x01 = PUSHtrue
0x02 = верхний элемент DUP
0x03 = исключающее ИЛИ
0x04 = Публичных, оценить его и, если не нажать верно, если подпись хорошо, ложь
0x05 = И
0x06 = ИЛИ
0x07 = исключающее ИЛИ
0x08 = AND3 (выскакивает 3 элемента, толкает верно, если все 3 элемента должны быть истинными)
0x09 = AND23 (выскакивает 3 элемента, толкает верно, если по крайней мере, 2 являются истинными)

Таким образом, (А и В) или С просто будет представлена ​​в байтах, как:

04 04 05 04 06

casascius сейчас офлайн Пожаловаться на casascius   Ответить с цитированием Мультицитирование сообщения от casascius Быстрый ответ на сообщение casascius

22 сентября 2011, 7:10:56 AM   # 3
 
 
Сообщения: 2282
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Это форк blockchain. Более полезные изменения были сохранены-вне-до-позже по этой причине.
Люк-младший сейчас офлайн Пожаловаться на Luke-Jr   Ответить с цитированием Мультицитирование сообщения от Luke-Jr Быстрый ответ на сообщение Luke-Jr

22 сентября 2011, 8:36:55 AM   # 4
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

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

Видеть https://github.com/bitcoin/bitcoin/pull/319
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

22 сентября 2011, 8:44:30 AM   # 5
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Мне нравится эта идея.

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

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

Просто поместите код в настоящее время и оставить его выключенным через блок 250000 по производственной цепочке, пока некоторые другие внешние силы вызывают нас не раскошелиться блок цепь по какой-то другой причине. К тому времени, текущие версии, безусловно, будет вымершие динозавры, и если блок цепь вилка была когда-нибудь произойдет раньше, номер блока может быть легко перемещен, только как объединенная добыча namecoin пошло от 25000 до 19200, когда случай представился.

Установка некоторой фиксированной точки обновления, а затем не следует через бы ужасно, потому что вы все еще есть часть сети, используя запланированные правила.
theymos сейчас офлайн Пожаловаться на theymos   Ответить с цитированием Мультицитирование сообщения от theymos Быстрый ответ на сообщение theymos

22 сентября 2011, 1:29:43 PM   # 6
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

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

Видеть https://github.com/bitcoin/bitcoin/pull/319

Да, это полезно, и мое предложение делает что-то другое, которое по своей природе практично. Это позволяет нормальный адрес Bitcoin быть выдан и получать денежные средства, а также для тех средств, которые будут защищены более безопасные схемы адреса в момент отправки, без нагрузки на отправителей.

Так что я мог бы дать мой адрес Bitcoin, как обычно, но что Bitcoin адрес может потребоваться более 1 ключа, чтобы тратить свои деньги. Это позволит, например, будущий клиент, который надежно поддерживает 2 из 3 схемы ключа. Privkey 1 удерживается клиентом. Privkey 2 удерживается моей службы защиты бумажник, который проверяет мой тратит на SMS, прежде чем позволить им случиться, и privkey 3 заперта в сейфе только в случае, если поставщик с ключом № 2 идет вверх брюхом. Эти средства будут требовать (k1 и k2) ИЛИ k3.

Для кого-то, чтобы создать сложную операцию 2of3 или другой прямо сейчас, они должны создать его таким образом на цели - что требует от них, чтобы знать весь сценарий тратить и все pubkeys для того, чтобы испустить сценарий. Что-то MtGox вряд ли добавит в ближайшее время их вывести страницу. С этим предложением я могу выдавать нормальные адреса Bitcoin, что надетые средства в порядке, я считаю безопасным для меня, в момент их поступления, без нагрузки на отправителя для отправки Сделок специальным образом.

casascius сейчас офлайн Пожаловаться на casascius   Ответить с цитированием Мультицитирование сообщения от casascius Быстрый ответ на сообщение casascius

22 сентября 2011, 1:36:14 PM   # 7
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

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

Это уже можно закодировать произвольные логические выражения над проверкой подписи в сценариях, при условии, что они могут пройти тест IsStandard (). Это звучит как гораздо лучшее решение для меня, чем пытаться упаковать все в код OP_CHECKSIG: он нарушает обратную совместимость, и гораздо менее гибким.
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

22 сентября 2011, 2:44:10 PM   # 8
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

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

Это уже можно закодировать произвольные логические выражения над проверкой подписи в сценариях, при условии, что они могут пройти тест IsStandard (). Это звучит как гораздо лучшее решение для меня, чем пытаться упаковать все в код OP_CHECKSIG: он нарушает обратную совместимость, и гораздо менее гибким.

Вы абсолютно правы в том, что функциональность уже существует вне OP_CHECKSIG. То, что я хочу подчеркнуть, что для того, чтобы быть полезным в качестве функции безопасности, она требует специальных человеческих действий со стороны разработчиков каждого сайта, который предлагает снять или отправить Bitcoins особенность быть любого практического использования. Подумайте об этом на минуту ... что никогда не случится, пожалуйста, дайте мне показать, почему нет.

Даже если произвольные булевы выражения можно, как будет что безопасно помочь мне взять деньги из MtGox или где-нибудь еще? то ли MtGox необходимо реализовать "логическое выражение отзывать" функция для того, чтобы воспользоваться этим? Являются ли они когда-нибудь? Как можно объяснить, что для среднего пользователя Джо? А как насчет людей, которые хотят, чтобы отправить мне деньги, которые не понимают "логическое выражение транзакции"? Или те, кто глумятся, что им нужно в настоящее время ввода 3 адреса для меня (или один очень длинный один), чтобы отправить мне деньги. Забудьте положить мой Bitcoin адрес на моей визитной карточке, как это сейчас должно быть QR-кодом размера соленого крекера, чтобы быть полезным! знак равно

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

Да, я понимаю, blockchain вилка не то, чтобы принимать всерьез, и я не предлагаю один. Я также один для чистого, лаконичного кода и не свертка осуществления в отношении абстрактного дизайна, и я в полной мере оценить, не желая "переопределить" OP_CHECKSIG (хотя опкод может быть чисто переименована OP_CHECKSIGEX, где EX = выражение).

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

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

Вряд ли можно держать биткойны безопасности на вашем компьютере сегодня без использования либо Linux или посвящая компьютер для Bitcoin или оба, которые просто не будет работать для большинства стран мира, который использует ОС Windows и Mac. Это предложение добавить практическую пользу безопасности для каждого будущего Джо чмо Bitcoin пользователя, который не будет зависеть от обязательного сотрудничества со стороны всех отправителей и операторов веб-сайтов.

Я считаю, что бремя кода будет небольшим. Вот код для этого опкода переименованного OP_CHECKSIGEX с моей идеей карандашной в качестве псевдо-коды (мои дополнения в CAPS): http://pastebin.com/5aR9EGcn


casascius сейчас офлайн Пожаловаться на casascius   Ответить с цитированием Мультицитирование сообщения от casascius Быстрый ответ на сообщение casascius

2 октября 2011, 12:26:42 AM   # 9
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

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

... но вот некоторые новоиспеченные мысли:

: DUP HASH160 <гашиш> EQUALVERIFY, что мы в настоящее время используют хэш в 65-байтовый открытый ключ в Bitcoin адрес в 20 байт может быть обобщена на что-то вроде:

п DIGEST160 <гашиш> EQUALVERIFY: создать безопасный 160-битный хэш от элементы в стеке, убедитесь, что он соответствует заданной хэш.

Это было бы очень полезно для создания multisignature транзакции, где <гашиш> действительно некоторая произвольная комбинация открытых ключей.

Но это было бы действительно Spiffy если сложная сделка может быть в ScriptSig (указывается, когда монеты тратятся), а не на ScriptPubKey (так что отправитель не должен знать, какие сделки они финансируют). Может быть что-то вроде:

ScriptPubKey: END_DIGEST160 <гашиш> EQUAL

... и общий ScriptSig будет:

<сиг1> <сиг2> ... <сигN> BEGIN_DIGEST160 ... произвольный сценарий с открытыми ключами и CHECKSIGs и прочее ....

BEGIN ... END_DIGEST160 бы создать безопасный хэш для всех опкодов и данных между начальным и конечным.

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

ScriptSig:  <подпись>  BEGIN_DIGEST160 CHECKSIGVERIFY
ScriptPubKey: END_DIGEST160 <гашиш> EQUAL

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

Если мы будем планировать blockchain раскол поддержать новый материал, что-то вроде этого, кажется, как правильно делать.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

2 октября 2011, 12:46:51 AM   # 10
 
 
Сообщения: 1372
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

ScriptSig:  <подпись>  BEGIN_DIGEST160 CHECKSIGVERIFY
ScriptPubKey: END_DIGEST160 <гашиш> EQUAL

Мне это нравится. Было бы сделать то же самое, не добавляя излишней сложности.
casascius сейчас офлайн Пожаловаться на casascius   Ответить с цитированием Мультицитирование сообщения от casascius Быстрый ответ на сообщение casascius

2 октября 2011, 3:48:38 PM   # 11
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Я разделил OP_EVAL пост и followups ByteCoin в в его собственном потоке.
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

3 октября 2011, 4:10:10 AM   # 12
 
 
Сообщений: 56
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Порог криптография позволяет это «п т» функциональность быть реализована исключительно в клиентах - ни один скрипт не изменяет необходимости каких-либо изменений формата адреса не требуется.
Саймон Барбер сейчас офлайн Пожаловаться на Саймон Barber   Ответить с цитированием Мультицитирование сообщения от Simon Barber Быстрый ответ на сообщение Simon Barber

3 октября 2011, 3:20:06 PM   # 13
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Предложение для изменения OP_CHECKSIG

Порог криптография позволяет это «п т» функциональность быть реализована исключительно в клиентах - ни один скрипт не изменяет необходимости каких-либо изменений формата адреса не требуется.

Нет, не совсем. Вы все еще должны иметь доверенную часть, чтобы удерживать результирующий полученный ключ. Значение вы не можете использовать 2 из 3 по адресу  "одна из моих машин скомпрометирована, но я не знаю, какой" так как если вы восстанавливаете полный ключ на скомпрометированной машине вы влипли.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW