Пакетная проверка Шнорра по

В недавнем стандартизации бип о Шнорра, в Питер Wuille представлен алгоритм для пакетной проверки. В моем понимании наиболее тяжелой операцией является умножение на скаляр: сделать пакетную проверку надежности мы должны умножить каждое государственное специальное случайным фактором, таким образом, мы вернемся в два умножения на подпись (плюс один). Я не понимаю, зачем там скорость вверх представлена на рисунке в начале бип. Может кто-нибудь помочь?

Заранее спасибо за ваши ответы!

+291
sathis 5 мая 2012 г., 2:14:52
16 ответов

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

Для лайткоинов с довольно высокой P2Pool вы оцените и низкий P2Pool вы блок разбрызгивание минимальная рекомендуемая мощность сети всегда кажется, чтобы быть очень высокой, в настоящее время около 2 МГН/С.

Теперь я пытаюсь выяснить, как это рассчитывается. Я знаю, что переменные, в настоящее время для лайткоин:

# Текущий снимок:
diff_block = 5895.581658 сложности сети (386M)
diff_share = 3.919712 # P2Pool Вы трудности акцию (257 тыс.)
hash_netwrk = 165000000000.0 сети мощности (165GH/с)
hash_p2pool = 1620000000.0 # P2Pool Вы личный (1.62 гр/с)
block_24hr = 5.51 # ожидаемой блоков в день
block_sprd = 3.0 # P2Pool вы блоки выплат распространяются

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

solve_time = block_sprd / block_24hr * 24ч
solve_time = 13.06715 # одна цель делиться каждые 13 часов

Теперь я знаю, что мне нужно найти одну акцию, по крайней мере, 257 тыс. трудность каждые 13 часов.

Но теперь я теряюсь. Как мне узнать, какой мощности мне нужно найти эту акцию на этот курс?

Чтобы найти 386M-поделитесь каждые 2,5 минуты мне нужно 165GH/С.

Сложности#; Blocktime; Личный
5895.581658; 150; 165000000000
3.919712; 47041.742; ???

Но сколько ч/с мне нужно найти одну 257 тыс.-поделитесь каждые 13 часов?

# Личный, чтобы найти блок каждые 13 часов
47041.742 / 150 = 313.612
165000000000 / 313.612 = 526128472

Чтобы найти 386M-поделитесь каждые 13 часов мне нужно 526MH/С.

# Личный, чтобы найти долю каждого 13 часов
5895.581658 / 3.919712 = 1504.085
526128472 / 1504.085 = 349799.597

Чтобы найти одну 257 тыс.-поделитесь каждые 13 часов мне нужно 350kH/с!? Это отличается от той ссылке, что я выложил выше фактор 5. Где здесь мой вопрос? Как сделать этот расчет правильный?

+828
MSREE733 03 февр. '09 в 4:24

Он заявил, что заголовок блока, совсем не содержат 'хэш' поле ( см. https://en.bitcoin.it/wiki/Block_hashing_algorithm или Antonopolous' освоение биткоин 2-е изд. ) В этом есть смысл, поскольку ассортимент такого поля будет самореферентных.

Однако, при допросе в блокчейне информация на определенный блок, например, через 'биткоин-Кинк getblock' сообщил 'хэш' поле:

{
 "хэш": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",
 "подтверждений": 534047,
 "strippedsize": 215,
.
.
.

Это "окрошка" поле что-то, что биткоин-кли' вычисляет и вставляет на месте в JSON для ознакомительных целей

Или

получается, что "хэш" поле >составляет< на самом деле часть заголовка и мое понимание этого аспекта является ошибочным?

+724
RM11 6 окт. 2013 г., 9:27:34

Двойные расходы-это просто подписание двух сделок, которые проводят один и тот же биткоин выход в два раза. Есть несколько способов сделать это.

Все, что вам нужно, это некоторый инструмент, который позволяет сделать операции вручную, например http://brainwallet.org/#txбиткоин-ядра сырых сделки ЭКП команды, или даже просто тестовый редактор и знание сделка формате. Можно создать транзакцию, которая проводит определенные мероприятия по какому-то адресу, как правило, контролируется себя, а также создавать различные операции проводить один или более одного выхода(с) Кому ты платишь. Он также может быть возможным без ручного создания сделки, если вы можете сделать ваш бумажник забудьте сделки, в этом случае он может создать двойной траты, что она просто не знает, что он делает.

+717
aka 7 апр. 2019 г., 18:11:51

Я пытаюсь создать свой собственный хэш-бытие, изменяя некоторые параметры жестко прописаны в main.cpp.

Она работала в предыдущей версии биткойн, но сейчас кажется, что "генератор бытие" была удалена.

Где находится "новое бытие хэш-генератор" кода в новый биткоин исходный код?

+620
Aleksandr 1983 9 окт. 2016 г., 12:54:59

Я не уверен, я очень хорошо понимаю биткоин. Я понимаю, что Биткоин-это из-за Сети.

Что произойдет, если сеть не работает по какой-либо причине?

Что произойдет, если Шахтер, который держит мои записи биткоин умрет или не хочет, чтобы снова открыть своем компьютере?

+567
Gopalakrishnan Subramanian 13 мая 2017 г., 22:42:01

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

+498
Danielwalsh100 2 апр. 2011 г., 23:36:23

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

Когда я скопировать и вставить строку типа char из файла в "импорт адресов и закрытых ключей" Электрум окно, он просто никогда не позволяет мне нажать "Далее".

Что я делаю не так? Есть ли другой способ?

+426
Addai 14 мар. 2015 г., 6:11:46

В настоящее время я пытаюсь создавать, подписывать сделки и трансляции биткоин через btcsuite. Для начала, у меня уже был адрес testnet3 и связанный закрытый ключ для тестирования. Однако, охота через пост и статей, как показано ниже:-

  1. здесь
  2. здесь
  3. здесь

Решение, предложенное выше, не полную, для первого, он распространяется только до момента подписания (я знал, что автор утверждает, что ее не касается всех, если вы предоставите utxo, которые я сделал если я не ошибаюсь), но когда попытался braodcast отлуп с сообщением

"Ошибка проверки операции: be9b294695bfb201a5cff32af074a4bf72b073e3c9dad1969111165bf118a622 сделки сирых, отсутствует ссылка f0c0d3b3eecf911ede996a74ceadc9366068791450c9e6bacee9ae202f3690d1."

Я понятия не имею, что происходит, и я подозреваю, что его сценарий-это несовместимо.

Итак, в сухом остатке я просто хочу работающий пример в биткоин testnet3, что показывает "с 1 адреса передачи некоторых биткоин на другие адреса", показывая процесс создания сырьевой сделки, подписывает его с помощью закрытого ключа, превратить его в сырьевой сделки в hex формат и транслировать его, используя что-то вроде https://live.blockcypher.com/btc/pushtx/ (БТЦ тестовом режиме)

в настоящее время мой код выглядит следующим образом:-

основной пакет 
импорт (
"дрм"
"кодирование/наговор"
"байт"
"github.com/btcsuite/btcutil"
 btcchain "github.com/btcsuite/btcd/chaincfg"
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/txscript"
"github.com/btcsuite/btcd/wire"
)
Функ txToHex(Техас *провода.MsgTx) строку {
 параметр buf := байт.NewBuffer(сделайте([]байт, 0, Техас.SerializeSize()))
Техас.Сериализовать(баф)
 возврат наговора.EncodeToString(баф.Байт())
}

stkbtc кнопку func(){
 pvkey := "cNjXNxcfawzyfGUxaG94rKqayAL2n7QWiokhckhbqsbrt7sbdygu"
 txHash := "e028b5bf030a24986a03b03b89dec037e8462ae32bc93679cb49d7c779685987"
 пункт назначения := "n2kRiAkW1xr5DVy7QKVGaYiZbwpS7j23jj"
 ВАР сумму в int64 = 100000000
 txFee := типа int64(500000)

 //попробуйте отправить БТЦ
 decodedwif,подстраховались := btcutil.DecodeWIF(pvkey)
 если индикатор ERR != шь {
 дрм.Функции printf("ошибка decodedwif: %в\п",подстраховаться)
}
 дрм.Функции printf("decodedwif : %в\п",decodedwif)

 addresspubkey, _ := btcutil.NewAddressPubKey(decodedwif.Привчной.По умолчанию().SerializeUncompressed(), &btcchain.TestNet3Params)
 sourceTx := провода.NewMsgTx(провода.TxVersion)
 sourceUtxoHash, _ := chainhash.NewHashFromStr(txHash)

 sourceUtxo := провода.NewOutPoint(sourceUtxoHash, 0)

 sourceTxIn := провода.NewTxIn(sourceUtxo, шь, шь)
 destinationAddress, _ := btcutil.DecodeAddress(место назначения &btcchain.TestNet3Params)

 sourceAddress, подстраховались := btcutil.DecodeAddress(addresspubkey.EncodeAddress(), &btcchain.TestNet3Params)
 если индикатор ERR != шь {
 дрм.Функции printf("sourceAddress ошибка: %в\п",подстраховаться)
}

 destinationPkScript, _ := txscript.PayToAddrScript(destinationAddress)

 sourcePkScript, _ := txscript.PayToAddrScript(sourceAddress)
 sourceTxOut := провода.NewTxOut(сумма, sourcePkScript)

sourceTx.AddTxIn(sourceTxIn)
sourceTx.AddTxOut(sourceTxOut)
 sourceTxHash := sourceTx.TxHash()

 redeemTx := провода.NewMsgTx(провода.TxVersion)
 prevOut := провода.NewOutPoint(&sourceTxHash, 0)
 redeemTxIn := провода.NewTxIn(prevOut, шь, шь)
redeemTx.AddTxIn(redeemTxIn)
 redeemTxOut := провода.NewTxOut((сумма - txFee), destinationPkScript)
redeemTx.AddTxOut(redeemTxOut)

 sigScript, подстраховались := txscript.SignatureScript(redeemTx, 0, sourceTx.TxOut[0].PkScript, txscript.SigHashAll, decodedwif.Привчной, ложные)
 если индикатор ERR != шь {
 дрм.Функции printf("sigScript ошибка: %в\п",подстраховаться)
}
 redeemTx.TxIn[0].SignatureScript = sigScript
 дрм.Функции printf("sigScript: %в\п", "сглаз".EncodeToString(sigScript))


 //Проверить подпись
 флаги := txscript.StandardVerifyFlags
 ВМ подстраховаться := txscript.NewEngine(sourceTx.TxOut[0].PkScript, redeemTx, 0, флаги, Нил, Нил, сумма)
 если индикатор ERR != шь {
 дрм.Функции printf("ошибка != Нил: %в\п",подстраховаться)
}
 если индикатор ERR := ВМ.Выполнить(); индикатор ERR != шь {
 дрм.Функции printf("ВМ.Выполнить > ррр != Нил: %в\п",подстраховаться)
}

 дрм.Функции printf("redeemTx: %в\п",txToHex(redeemTx))
}

главные Функ(){
stkbtc()
}

в txhash был от предыдущей сделки, где у меня в тестовом режиме с биткоин кран и ничего более..

  • Адрес отправителя: mpYGA8wRCArpGTs6aJMmZRWyUuPoZmeLjv
  • Открытый ключ отправителя: 02217deb8b3782236fa8214da94bd5a9338f2eeb3299c39c057fb68ada63d93df7
  • Отправителя, закрытый ключ: cNjXNxcfawzyfGUxaG94rKqayAL2n7QWiokhckhbqsbrt7sbdygu

  • Адрес назначения: n2kRiAkW1xr5DVy7QKVGaYiZbwpS7j23jj

Прошу совета, что не так с кодом выше, очень признателен, если кто-то может указать на это.

+366
Ranielyn Ignacio Ortega 8 июл. 2016 г., 7:00:43

Как я понял в следующем посте Как получить unspents на указанный биткойн адрес?, мы должны использовать listunspent только на адреса, которые принадлежат к нашей собственной кошелек, в противном случае вернет пустой.

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

  1. Как они могут иметь информацию от этого вновь созданный адрес?
  2. Как они могут перечислить неизрасходованные операций и текущее количество адрес, который "не в бумажнике"?
+320
slabak 1 дек. 2018 г., 13:40:52

Я разработчик, но в общей сложности о биткоин и блокчейн так что я, конечно, сказать что-то не так. Я знаю, что Bitcoin одобрить сделку через узлы (нормальные и полные узлы) и их распределение в мире Каждый может создать свой собственный узел или выключить его. Так...предположим, что этот сценарий фантазия. США управляют решили заблокировать все подключения к интернету из/в США, создавая гигантские “интранет” на один день. Все узлы США и всем “остальным миром” узлов будет продолжать работать? Для (низкий) уровень знаний у меня сейчас, я думаю, что они будут, и в этот момент два разных блокчейнами будут расходиться: одна с операции США и остальном мире сделки. Они помирятся, когда связь вернулась? Кроме того, что произойдет, если гражданин тратят все свои деньги в США, а затем найти секретный доступ к внешней сети и подключаясь к всемирной сети? Может в этом случае двойная потратить?

Я знаю, что эти “сценарии фентези”, но поможет мне лучше понять, как машина работает :-)

Спасибо

+295
Vroomfondel 6 февр. 2010 г., 8:32:16

Ядра биткоин в настоящее время не имеет внутренней функции, чтобы восстановить полный кошелек. Если ключ неизвестен (еще не созданный), биткоин-ядра не будет обнаруживать сделки для этого ключа/адрес. Кроме того, размер keypool не имеет значения на данный момент, средств прислали ключ keypool/адрес не обнаружены на данный момент.

Сейчас (ядра биткоин <= 0.14.0), если вы восстановите резервную копию, убедитесь, что вам выдаст кучу адресов, сквозной getnewaddress и убедиться, что вы генерировать 1000 (или больше?) ключи.

После того, как вы это сделали, перезагрузите ядра биткоин (Кварт/д) с -повторить поиск

Надеюсь, мы сможем добавить некоторые функции восстановления HD для основных 0.15.

+295
Ignatius Probo 13 дек. 2011 г., 14:14:31

Есть POS программное обеспечение для этого. Вот список: https://github.com/dsmurrell/awesome-bitcoin-cash#point-of-sale-systems

Если вы хотите использовать HD-кошелька, я предлагаю Pyxpub.

+291
Meet Doshi 30 июл. 2014 г., 6:49:07

Я использую cgminer и у меня ноутбук с NVIDIA GeForce для видеокарты GTX 680 видеокарта, что является лучшим интенсивности использования.

+233
user24090 11 мар. 2017 г., 14:14:31

Самый простой способ-просто отправить их из ядра биткоин кошелек по адресу в оружейной кошелек.

Другой вариант, потребуется вам использовать dumpprivkey на каждый адрес, а затем importprivkey на армори.

+226
oumu 25 авг. 2018 г., 1:40:07

Поставить в правильный адрес, и попробуйте снова.

+95
Martin Gross 28 нояб. 2017 г., 8:25:36

есть ли другой способ, чтобы восстановить его с Р С З ?

Какова цель частного ключа, если кто то сможет восстановить его от других данных?

можно ли восстановить закрытый ключ, используя случайные значения R ?

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

+18
asama 7 сент. 2015 г., 22:38:50

Показать вопросы с тегом