Pages:
Author

Topic: Цепочка блоков (Read 2895 times)

newbie
Activity: 14
Merit: 0
October 31, 2016, 05:13:54 AM
#50
Да, и ещё, вот такой вопрос интересен.
Как получить публичный ключ биткоин из приватного на эллиптической кривой, математически?
умножение на G
http://bitcoin.stackexchange.com/questions/25024/how-do-you-get-a-bitcoin-public-key-from-a-private-key
но там не простое умножение, которое в школе проходят, а умножение на эллиптической кривой

А есть операция, обратная удвоению, чтобы найти пол точки?
k = 3x^2 * ((2y)^-1 mod p) mod p;
2x = (k * k) - 2 * x mod p;
2y = ((x - Rx) * k) - y mod p;
newbie
Activity: 14
Merit: 0
October 28, 2016, 01:05:02 AM
#49
умножение на G
http://bitcoin.stackexchange.com/questions/25024/how-do-you-get-a-bitcoin-public-key-from-a-private-key
но там не простое умножение, которое в школе проходят, а умножение на эллиптической кривой
Понял, уже готово.
100500G (101816950638124313904973605100560533252361743933737213833523739281647048689969,
78598442034195021184659696539822905501095501203773743829894485136115869628863)
Decimal координаты.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 11:47:08 PM
#48
Да, и ещё, вот такой вопрос интересен.
Как получить публичный ключ биткоин из приватного на эллиптической кривой, математически?
умножение на G
http://bitcoin.stackexchange.com/questions/25024/how-do-you-get-a-bitcoin-public-key-from-a-private-key
но там не простое умножение, которое в школе проходят, а умножение на эллиптической кривой
newbie
Activity: 14
Merit: 0
October 27, 2016, 08:22:42 PM
#47
Да, и ещё, вот такой вопрос интересен.
Как получить публичный ключ биткоин из приватного на эллиптической кривой, математически?

Я знаю 2 операции с точками на эллиптической кривой.
Удвоение и сложение.
Умножение - это комбинация умножения и сложения в соответствии со значением бит в числовой константе приватного ключа, на который умножается генераторная точка G.
newbie
Activity: 14
Merit: 0
October 27, 2016, 06:00:08 PM
#46
а зачем вам этот список валют?
вы их все майнить собираетесь? или сервис по отправке транзакций делать?
ну учтите, что в некоторых есть существенные отличия от биткойна.
Интересен был бы именно майнинг. Без пулов. В режиме соло. Даже не столько сам процесс, сколько его настройка.
Чтобы понять так-сказать, тонкости технологии.
Но не просто майнинг а майнинг такой валюты, на которую ещё ASIC не понаподключали, и чтобы получалось часто, без закачек всяких.
Какой-то закрытой, малоизвестной, находящейся в дебрях "Тихого дома". Как пройти в Тихий Дом вы все и так сами прекрасно знаете.

А вот сервис по отправке транзакций в сеть, хорошая идея, но там нужен дедикейтед сервер
и прямые руки с нанотехнологичными извилинами заодно.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 04:31:36 PM
#45
А смотри, что у меня:
нет, я в сортах говна не разбираюсь.
а зачем вам этот список валют?
вы их все майнить собираетесь? или сервис по отправке транзакций делать?
ну учтите, что в некоторых есть существенные отличия от биткойна.
newbie
Activity: 14
Merit: 0
October 27, 2016, 04:22:36 PM
#44
Это вопрос или утверждение? Если вопрос - то, нет. Я не понял эту блок-схему.
Если утверждение - то позвольте вас поздравить.
Это тупо картинка, которую удалось найти по запросу ECDSA ScriptSig Bitcoin в картинках гугл.
А повесил я её для красоты, поняв аж нихуя при этом.

Господи, да что ж вас так блоки-то беспокоят?
Ну лежит 100 гигабайт говна на винте. Жрать не просят. Когда попросят - сотру нахер.
А транзакции можно и в лайт-клиентах создавать вроде бы.

А смотри, что у меня:
42coin, Acoin, Alphacoin, Animecoin, Anoncoin, Apexcoin, Auroracoin, BBQcoin, Bitcoin, BitcoinDark,
Birdcoin, Blackcoin, BlackJack, BunnyCoin, CanadaeCoin, CannabisCoin, Capricoin, CassubianDetk,
CashCoin, Catcoin, Corgicoin, CryptoBullion, CryptoClub, Cryptoescudo, Dash, DeafDollars, Devcoin,
Digitalcoin, Dogecoin, DogecoinDark, eGulden, eKrona, Emercoin, EnergyCoin, Fastcoin, Feathercoin,
Fibre, Fluttercoin, Freicoin, FUDcoin, Fuelcoin, Fujicoin, GabenCoin, GlobalBoost, Goodcoin,
GridcoinResearch, Gulden, Guncoin, HamRadioCoin, HTML5Coin, HyperStake, ImperiumCoin, IncognitoCoin,
Influxcoin, IridiumCoin, iCash, iXcoin, Judgecoin, Jumbucks, Latium, Litecoin, LiteDoge, MagicInternetMoney,
Magicoin, Marscoin, MarteXcoin, MasterDoge, Mazacoin, Megacoin, MobiusCoin, MonetaryUnit, Monocle,
MoonCoin, Myriadcoin, NameCoin, Neoscoin, Novacoin, Nubits, Ocupy, Omnicoin, Onyxcoin, Paycoin,
Pandacoin, ParkByte, Pesetacoin, PHCoin, PhoenixCoin, Peercoin, Potcoin, Primecoin, Quark, Reddcoin,
Riecoin, Rimbit, Rubycoin, Sambacoin, SecKCoin, SibCoin, SongCoin, SpreadCoin, StealthCoin, Syscoin,
Titcoin, TittieCoin, Topcoin, TransferCoin, TreasureHuntCoin, Unobtanium, USDe, Vertcoin, Viacoin,
VikingCoin, W2Coin, WankCoin, WeAreSatoshiCoin, WorldCoin, Zetacoin, и Ethereum ещё.

Интересно сколько же места надо выделить на винте, под все эти блоки? =)
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 03:54:24 PM
#43
Понял:

Это вопрос или утверждение? Если вопрос - то, нет. Я не понял эту блок-схему.
Если утверждение - то позвольте вас поздравить.

Quote
Просто тут не надо блоки, лучше принцип видно, ну и свести всё это можно просто к вводу адреса получателя, и суммы.
Ну и транзакций нагенерить в оффлайне, а потом отправить пачкой при подключении к сети.
Господи, да что ж вас так блоки-то беспокоят?
Ну лежит 100 гигабайт говна на винте. Жрать не просят. Когда попросят - сотру нахер.
А транзакции можно и в лайт-клиентах создавать вроде бы.
newbie
Activity: 14
Merit: 0
October 27, 2016, 03:43:54 PM
#42
Что есть первое, а что второе?
У самой типичной транзакции scriptSig состоит из ECDSA-сигнатуры
3045022100eaef1cf04e8691decf20fcd0b2f50e02cbe30e07b4dc7c3bbecd44d5dc5a82de02201 c855a9e169cb8c665a5fc0b34a1cf33024daddf888504043856642d1f0e635301
И публичного ключа
0268f18c4366abe0556c34dd9dd90ff7f37a317b649534c38f3ee09a2ddcba6901
Понял:
https://bitcoin.org/img/dev/en-signing-output-to-spend.svg

Вот это я и называю "трахаться стоя, в гамаке и в скафандрах". Зачем столько действий делать руками если их за тебя сделает программа?
Просто тут не надо блоки, лучше принцип видно, ну и свести всё это можно просто к вводу адреса получателя, и суммы.
Ну и транзакций нагенерить в оффлайне, а потом отправить пачкой при подключении к сети.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 03:18:49 PM
#41
С первым - понятно. Со вторым - нет. Как формируется - тоже не ясно. Такие дела.
Что есть первое, а что второе?
У самой типичной транзакции scriptSig состоит из ECDSA-сигнатуры
3045022100eaef1cf04e8691decf20fcd0b2f50e02cbe30e07b4dc7c3bbecd44d5dc5a82de02201 c855a9e169cb8c665a5fc0b34a1cf33024daddf888504043856642d1f0e635301
И публичного ключа
0268f18c4366abe0556c34dd9dd90ff7f37a317b649534c38f3ee09a2ddcba6901

Quote
А я тебя помню, кажись. И ты это сюда принёс? Или отсюда это и выдернули?
Не понимаю о чем ты. Думаю я просто аллегорию ту же самую придумал, что и какой-то твой знакомый

Quote
Ну смотри: brainwallet -> transactions -> privkey -> данные -> re-sign -> raw-transaction -> https://blockchain.info/ru/pushtx
И всё. И никаких синхронизаций блоков в Qt.
Вот это я и называю "трахаться стоя, в гамаке и в скафандрах"
Зачем столько действий делать руками если их за тебя сделает программа?
newbie
Activity: 14
Merit: 0
October 27, 2016, 02:43:21 PM
#40
у всех транзакций есть scriptSig
scriptSig - это половинка "колечка" которое связывает транзакции в цепочку
но у coinbase-транзакции нет предыдущего звена, поэтому в scriptSig можно класть
всё что угодно (ну почти всё, кое-какие правила там таки есть)
Input Scripts у рандомной транзакции имеет два значения, например вот:
https://blockchain.info/tx/20fe5d9c2733c4a8bc7c747d970abbb0013ee072b6ab92e7d0b8d54ae8fea38b

Input Scripts:
3045022100eaef1cf04e8691decf20fcd0b2f50e02cbe30e07b4dc7c3bbecd44d5dc5a82de02201 c855a9e169cb8c665a5fc0b34a1cf33024daddf888504043856642d1f0e6353010268f18c4366ab e0556c34dd9dd90ff7f37a317b649534c38f3ee09a2ddcba6901

С первым - понятно. Со вторым - нет. Как формируется - тоже не ясно. Такие дела.

Мсье хочет ездить на формуле-1, а для начала освоить управление велосипедом отказывается?
Ну ок, может кто-то и так может.
А я тебя помню, кажись. И ты это сюда принёс? Или отсюда это и выдернули?
И формула1, и езда на велосипеде у меня была кстати, мне их замутили когда малый был, лол.

Ну смотри: brainwallet -> transactions -> privkey -> данные -> re-sign -> raw-transaction -> https://blockchain.info/ru/pushtx
И всё. И никаких синхронизаций блоков в Qt.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 02:05:09 PM
#39
В упор не видел - теперь вижу.
Значит, самая первая транзакция с отправителем "No Inputs (Newly Generated Coins)" - это coinbase-транзакция,
и только у неё есть scriptSig, а у других транзакций в блоке - scriptSig нет.
Знать бы как она формируется. Вижу в decoded - формате, в большинстве своём названия пулов фигурируют.
у всех транзакций есть scriptSig
scriptSig - это половинка "колечка" которое связывает транзакции в цепочку
но у coinbase-транзакции нет предыдущего звена, поэтому в scriptSig можно класть
всё что угодно (ну почти всё, кое-какие правила там таки есть)

Quote
Чтоб не таскать с собой QT.
Мсье хочет ездить на формуле-1, а для начала освоить управление велосипедом отказывается?
Ну ок, может кто-то и так может.
newbie
Activity: 14
Merit: 0
October 27, 2016, 01:57:00 PM
#38
Жмякните по ссылке [Show scripts & coinbase] не будьте ламером, который пользуется сайтом bc.i в упрощенном режиме

Quote
то я имею в виду полнофункциональный brainwallet.github.io, мёртвый уже, но работающий тут:
http://wallet-2sx53n.sakurity.com/ и конечно же, локально в JS.
Ну и зачем вам это?
В упор не видел - теперь вижу.
Значит, самая первая транзакция с отправителем "No Inputs (Newly Generated Coins)" - это coinbase-транзакция,
и только у неё есть scriptSig, а у других транзакций в блоке - scriptSig нет.
Знать бы как она формируется. Вижу в decoded - формате, в большинстве своём названия пулов фигурируют.

Ну и зачем вам это?
Чтоб не таскать с собой QT, а просто priv, js, браузер и сеть.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 01:49:10 PM
#37
Хочу понять где просмотреть scriptSig, и как именно она формируется.
По ссылке - нет указанной строчки.
Жмякните по ссылке [Show scripts & coinbase] не будьте ламером, который пользуется сайтом bc.i в упрощенном режиме

Quote
то я имею в виду полнофункциональный brainwallet.github.io, мёртвый уже, но работающий тут:
http://wallet-2sx53n.sakurity.com/ и конечно же, локально в JS.
Ну и зачем вам это?
newbie
Activity: 14
Merit: 0
October 27, 2016, 01:02:16 PM
#36
В целом читать тут: https://en.bitcoin.it/wiki/Category:Technical
Ок.
Quote
Где взять scriptSig?
Я не понимаю вопрос. Вам для нового блока надо придумать scriptSig или посмотреть
какие scriptSig в имеющихся блоках уже используются?
Ну открываете coinbase-транзакцию
https://blockchain.info/tx/0143ffa829782d6a7585dc47a3026ca89b40e35a4aff09ead41953991aa9a162
и строчка 03c3a7060004d13a1258046b48f7150c3ac41758250a0100000000000a636b706f6f6c182f42697 4436c7562204e6574776f726b2f5345475749542f
и будет scriptSig этой транзакции (это шестнадцатеричное представление)
Хочу понять где просмотреть scriptSig, и как именно она формируется.
По ссылке - нет указанной строчки.

Quote
А RAW-транзакцию можно в brainwallet'e создать.
Вообще-то под словом brainwallet всегда имеют в виду несколько другое.
Если имеется в виду адрес из пароля
(получаемый из privkey являющимся sha256-хешем от passphrase вида "correct horse battery staple",
умноженному на генераторную точку на эллиптической кривой y^2 = x^3 + 7;
в виде base58check ripemd'a160 от sha256 "точки-произведения" с двумя координатами или одной x, если compressed),
то я имею в виду полнофункциональный brainwallet.github.io, мёртвый уже, но работающий тут:
http://wallet-2sx53n.sakurity.com/ и конечно же, локально в JS.

Сеть биткойна представляет из себя связанные по бинарному биткойн-протоколу компы
https://en.bitcoin.it/wiki/Protocol_rules
Ок.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 12:40:54 PM
#35
N фиксировано, или ограничено объемом информации в блоке?
Главное (но не единственное ограничение) - не больше мегабайта,

Quote
Как получить список транзакций требующих включения в блоки в ближайшее время?
Из сети. Каждый кто хочет отправить транзакцию - отправляет её в сеть.
Майнер выбирает те, которые не противоречат всем правилам
В целом читать тут: https://en.bitcoin.it/wiki/Category:Technical

Quote
Где взять scriptSig?
Я не понимаю вопрос. Вам для нового блока надо придумать scriptSig или посмотреть
какие scriptSig в имеющихся блоках уже используются?
Ну открываете coinbase-транзакцию
https://blockchain.info/tx/0143ffa829782d6a7585dc47a3026ca89b40e35a4aff09ead41953991aa9a162
и строчка 03c3a7060004d13a1258046b48f7150c3ac41758250a0100000000000a636b706f6f6c182f42697 4436c7562204e6574776f726b2f5345475749542f
и будет scriptSig этой транзакции (это шестнадцатеричное представление)

Quote
А RAW-транзакцию можно в brainwallet'e создать.
Вообще-то под словом brainwallet всегда имеют в виду несколько другое.

Quote
Куда именно? Знаю, есть https://blockchain.info/ru/pushtx, но тут - транзакции.
Сеть биткойна представляет из себя связанные по бинарному биткойн-протоколу компы
https://en.bitcoin.it/wiki/Protocol_rules
newbie
Activity: 14
Merit: 0
October 27, 2016, 12:14:59 PM
#34
Бля, я картинку я для кого прикрепил? Не видно что ли?
Картинка - не ссылка.

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

В блоке есть заголовок размером 80 байт.
6 компонентов.
http://i.kinja-img.com/gawker-media/image/upload/t_original/pyct6nxbj4j5gxe3jxrm.png

а) Сперва майнер собирает N валидных транзакций, которые можно включить в блок
N фиксировано, или ограничено объемом информации в блоке?
Как получить список транзакций требующих включения в блоки в ближайшее время?
б) Добавляет к ним coinbase-транзакцию в scriptSig которой помещает какую-нибудь лабуду типа "вася пупкин сдесь был"
Где взять scriptSig?
в) считает от получившегося merkle-hash
Я видел только Merkle Root.
г) формирует все поля заголовка блока из имеющихся у него данных - то есть заполняет 76 из 80 байт. структуру заголовка гуглите самостоятельно
Понятно: http://img.bitexperts.com/MTE1Nw==-bitcoin-block-header-size-is-81-byte.png
д) пересчитывает sha256d ()  от заголовка перебирая все возможные варианты оставшегося 32-битового числа
Вот такое вот, нашёл:
"Hello, world!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
"Hello, world!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
"Hello, world!2" => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7
...
"Hello, world!4248" => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965
"Hello, world!4249" => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6
"Hello, world!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
Nonce = 4250
е) если повезло - бросает блок в сеть и начинает работу заново с пункта (а), если не повезло - начинает работу заново с пункта (а), изменяя что-нибудь в пункте (б)
Куда именно? Знаю, есть https://blockchain.info/ru/pushtx, но тут - транзакции.
А RAW-транзакцию можно в brainwallet'e создать.

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

P.S: Вот brainwallet c конвертером в JS. На github'e его нет, поэтому rghost: http://rgho.st/6LCyRbn5L
Архив распаковывается в папку и index.html в браузер.
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 11:40:45 AM
#33
А где его просмотреть этот extra-nonce? Есть ссылка?
Бля, я картинку я для кого прикрепил? Не видно что ли?

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

Итак. Тезисно.
По сети гуляют транзакции пока не включенные в блоки. Ноды их друг другу пересылают.
Задача майнера состоит в том, чтобы собрать правильный блок из этих транзакций.
(Здесь и далее я под майнером буду иметь в виду клиента с функцией майнинга)
В блоке есть заголовок размером 80 байт.
а) Сперва майнер собирает N валидных транзакций, которые можно включить в блок
б) Добавляет к ним coinbase-транзакцию в scriptSig которой помещает какую-нибудь лабуду типа "вася пупкин сдесь был"
в) считает от получившегося merkle-hash
г) формирует все поля заголовка блока из имеющихся у него данных - то есть заполняет 76 из 80 байт. структуру заголовка гуглите самостоятельно
д) пересчитывает sha256d ()  от заголовка перебирая все возможные варианты оставшегося 32-битового числа
е) если повезло - бросает блок в сеть и начинает работу заново с пункта (а), если не повезло - начинает работу заново с пункта (а), изменяя что-нибудь в пункте (б)
ж) если пока мы все это делаем пришел от кого-то следующий блок - проверяем его и начинаем заново с пункта (а)
newbie
Activity: 14
Merit: 0
October 27, 2016, 11:19:12 AM
#32
На дваче будешь так общаться, мамкин повар)
Ха, просёк. У меня там, "Криптовалют тред." в /cc =)

getblocktemplate на клиенте.
Консоль:
Запрос: getblocktemplate
Ответ: Bitcoin is downloading blocks... (code -10)
клиента можно запустить с опцией -detachbd тогда блоки качаться не будут
Всё-равно блоки тащатся с сети. В символах не напутал?

меняют так называемый extra-nonce - то
есть scriptSig у coinbase-транзакции, в который можно записать всяких рандомных
байтиков
https://i.imgur.com/BJ2FHgp.png
А где его просмотреть этот extra-nonce? Есть ссылка?

Если пул получил блок (чужой или свой - неважно), то для его обработки и создания темплейта следующего
блока нужно определенное время. Чтобы майнеры подключившиеся в этот момент к пулу не проставивали зря
им пул раздает задание майнить блок-пустышку.
Я так понимаю, откуда-то валят новые транзакции (откуда же?), а майнеры конкурируют за то,
кто быстрее подберет нонс для блока, хеш которого будет содержать достаточное количество нулей и куда транзакции входят эти транзакции (или их часть).
И кто быстрее это сделает при помощи этих своих петахешей, тот и выиграл.
При этом транзакции могут менятся местами как угодно, или вообще исключаться, и ещё и extra-nonce менять можно. Так?
legendary
Activity: 1260
Merit: 1019
October 27, 2016, 03:07:37 AM
#31
Я вот, гляжу на 436042-й блок
https://blockchain.info/block/0000000000000000028603f405c303c1711f22ffa1c31ffee89397b90099cb42
с его Nonce 1106733466, которую можно было бы перебрать в соло за 6.14851926 секунд на моей видеокарте, у которой 180Мh/s
Проблема в том, что поле 'nonce' 32-разрядное и перебрать все его значения на современном
оборудовании действительно не составляет труда. Но что если мы перебрали все его
4 миллиарда значений, а хэш блока с нужным количеством лидирующих нулей не нашелся?
Тогда надо что-то поменять в самом блоке, например поменять транзакции местами
и начать перебор заново.
На самом деле транзакции местами не меняют, а меняют так называемый extra-nonce - то
есть scriptSig у coinbase-транзакции, в который можно записать всяких рандомных
байтиков

Pages:
Jump to: