Bitcoin Forum

Local => Кодеры => Topic started by: dawnkellr on December 26, 2012, 07:54:54 PM



Title: вопрос по командам в консоли
Post by: dawnkellr on December 26, 2012, 07:54:54 PM
listaccounts
{
"" : -13.00,
"mmm" : 30.00,
"nnn" : 1.00
}
getbalance
18.00

почему в кошельках присутствует отрицательный баланс?


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on December 26, 2012, 07:58:49 PM
dumpprivkey пабликкейХ
выдал приваткейХ

создаю новый wallet.dat
importprivkey приваткейХ
validateaddress пабликкейХ

второй вопрос
приваткейХ виден в новом wallet.dat, но нет баланса на нем


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on December 27, 2012, 06:22:15 PM
может кто объяснить по моим вопросам?


Title: Re: вопрос по командам в консоли
Post by: naima53 on December 27, 2012, 06:31:00 PM
Завтра проверьте, они не все онлайн


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on December 27, 2012, 07:05:28 PM
ошибся чутка в скрипте, вместо пабликкейХ, необходимо написать хэш(пабликкейХ)

dumpprivkey хэш(пабликкейХ)
выдал приваткейХ

создаю новый wallet.dat
importprivkey приваткейХ
validateaddress хэш(пабликкейХ)

второй вопрос
приваткейХ виден в новом wallet.dat, но нет баланса на нем

также появился вопрос, как новый wallet.dat то узнает пабликкейХ, если мы сообщили токо хэш(пабликкейХ)


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on December 27, 2012, 07:19:40 PM
последний вопрос снимается, т.к. в транзах есть следующая инфа:
<sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
т.е. пабликкейХ можно находить в транзах, а если я ни разу не выполнял транзы с данной парой ключей?


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on December 28, 2012, 01:04:31 PM
есть тут народ, кто разбирается в работе койнов? проясните связь между транзой, парой ключей и хэшем паблик ключа. есть конкретные вопросы, писал выше.


Title: Re: вопрос по командам в консоли
Post by: somenick on January 04, 2013, 04:11:33 AM
все кто знают думают что чем меньше другие знают тем им лучше ))

зы если чё я не знаю


Title: Re: вопрос по командам в консоли
Post by: loga on January 04, 2013, 04:50:56 AM
Quote
почему в кошельках присутствует отрицательный баланс?
Потому что с этих кошельков было отправлено больше денег чем переведено на них.


Title: Re: вопрос по командам в консоли
Post by: O01eg on January 04, 2013, 09:02:24 AM
Quote
почему в кошельках присутствует отрицательный баланс?
Потому что с этих кошельков было отправлено больше денег чем переведено на них.
А давно это стало возможным?


Title: Re: вопрос по командам в консоли
Post by: loga on January 04, 2013, 09:21:44 AM
А давно это стало возможным?
Давно, в 0.3 этот функционал уже был.


Title: Re: вопрос по командам в консоли
Post by: naima53 on January 04, 2013, 03:23:14 PM
А давно это стало возможным?
Давно, в 0.3 этот функционал уже был.
;D Так он сразу все изучит сам  ;D


Title: Re: вопрос по командам в консоли
Post by: O01eg on January 04, 2013, 03:41:00 PM
А давно это стало возможным?
Давно, в 0.3 этот функционал уже был.
Хм, странно. Впервые слышу про возможность уходить в минус в BTC. Разве транзакции, когда отправляешь больше, чем есть, не должны отбраковываться?


Title: Re: вопрос по командам в консоли
Post by: loga on January 04, 2013, 04:18:03 PM
Хм, странно. Впервые слышу про возможность уходить в минус в BTC. Разве транзакции, когда отправляешь больше, чем есть, не должны отбраковываться?
Уходить в минус можно по отдельным аккаунтам, но не по кошельку в целом. Просто транзакция произойдет с использованием адресов, принадлежащих другим аккаунтам.


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 04, 2013, 08:52:55 PM
Хм, странно. Впервые слышу про возможность уходить в минус в BTC. Разве транзакции, когда отправляешь больше, чем есть, не должны отбраковываться?
Уходить в минус можно по отдельным аккаунтам, но не по кошельку в целом. Просто транзакция произойдет с использованием адресов, принадлежащих другим аккаунтам.

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


Title: Re: вопрос по командам в консоли
Post by: loga on January 05, 2013, 05:03:36 AM
а где связь между адресами биткойнов хранится? где в паблике указывается, что они принадлежат одному wallet.dat?
Клиент умеет работать только с одним wallet.dat.


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 05, 2013, 01:57:52 PM
могу ли я передвигать пару ключей между разными wallet.dat?
где можно почитать о связи один ко многим между wallet.dat и парами ключей?


Title: Re: вопрос по командам в консоли
Post by: loga on January 05, 2013, 02:06:08 PM
могу ли я передвигать пару ключей между разными wallet.dat?
dumpprivkey и importprivkey предназначены как раз для этого.


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 05, 2013, 02:14:10 PM
могу ли я передвигать пару ключей между разными wallet.dat?
dumpprivkey и importprivkey предназначены как раз для этого.

а если привкей в минуса ушел, то как он переведется в другой кошель?


Title: Re: вопрос по командам в консоли
Post by: loga on January 05, 2013, 02:50:57 PM
а если привкей в минуса ушел, то как он переведется в другой кошель?
Привкей в минуса не может уйти. При недостатки средств на адресах аккаунта, с которого отправляются средства, средства отправляются с адресов, принадлежащих другим аккаунтам.


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 05, 2013, 03:05:53 PM
а если привкей в минуса ушел, то как он переведется в другой кошель?
Привкей в минуса не может уйти. При недостатки средств на адресах аккаунта, с которого отправляются средства, средства отправляются с адресов, принадлежащих другим аккаунтам.

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

Quote
dumpprivkey хэш(пабликкейХ)
выдал приваткейХ

создаю новый wallet.dat
importprivkey приваткейХ
validateaddress хэш(пабликкейХ)


Title: Re: вопрос по командам в консоли
Post by: O01eg on January 07, 2013, 08:12:27 AM
Хм, странно. Впервые слышу про возможность уходить в минус в BTC. Разве транзакции, когда отправляешь больше, чем есть, не должны отбраковываться?
Уходить в минус можно по отдельным аккаунтам, но не по кошельку в целом. Просто транзакция произойдет с использованием адресов, принадлежащих другим аккаунтам.

Под кошельком понимается весь wallet.dat, а под аккаунтами отдельные адреса? Тогда что мне помешает удалить из wallet.dat адреса с отрицательной суммой?


Title: Re: вопрос по командам в консоли
Post by: loga on January 07, 2013, 08:30:52 AM
Под кошельком понимается весь wallet.dat
Да.

а под аккаунтами отдельные адреса?
Нет, под аккаунтами понимается accounts в bitcoind, что-то вроде виртуальных кошельков в пределах одного wallet.dat.

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


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 07, 2013, 01:28:22 PM
а может ли быть пара ключей привязана к обоим кошелям?
я вот переносил пару ключей от одного к другому wallet.dat, но баланс не поменялся, видать чото делаю неправильно и спросиьт не у кого-(


Title: Re: вопрос по командам в консоли
Post by: loga on January 07, 2013, 02:36:09 PM
а может ли быть пара ключей привязана к обоим кошелям?
я вот переносил пару ключей от одного к другому wallet.dat, но баланс не поменялся, видать чото делаю неправильно и спросиьт не у кого-(
Может. При переносе ключ не удаляется, так что баланс донорского кошелька меняться и не должен.


Title: Отрицательный баланс
Post by: Yurock on January 07, 2013, 03:55:26 PM
Монеты отправляются с неизрасходованных "выходов" прошлых транзакций. При отправке монет bitcoind выбирает, из каких транзакций брать монеты. При этом не учитывается, с какого экаунта отправляются монеты.
sendfrom набирает нужную сумму монет из неизрасходованных выходов и вычитает её из баланса указанного экаунта. Если на балансе меньше указанной суммы, bitcoind отказывает.
sendtoaddress набирает нужную сумму монет из неизрасходованных выходов и вычитает её из баланса главного экаунта ("").

В результате следующих операций баланс экаунта может стать отрицательным:
  • Тратим монеты с экаунта; используем setaccount для переноса адреса, на который ранее были получены монеты, в другой экаунт. При этом вся сума, полученная когда-то на этот адрес повторно вычитается из баланса экаунта.
  • Получаем монеты на адрес экаунта, отправляем их с помощью sendtoaddress. Сумма будет вычтена из баланса главного экаунта, который не увеличивался при получении монет.
  • Отправляем всю сумму с экаунта и добавляем комиссионные. Комиссионные не учитываются при принятии решения о допустимости транзакции, но вычитаются из баланса.

https://en.bitcoin.it/wiki/Accounts_explained

Quote
setaccount changes the account associated with an existing address. Coins previously received on that address (if any) will be debited from the previous account's balance and credited to the address' new account. Note that doing so may make the previous account's balance negative.

Quote
The sendfrom method sends coins and debits the specified account. It does **not** change Bitcoin's algorithm for selecting which coins in the wallet are sent-- you should think of the coins in the wallet as being mixed together when they are received. There is no way to ask Bitcoin to "create a payment transaction using the coins received from these previously received transactions."

The sendtoaddress method works like sendfrom, but always debits the default account.


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 07, 2013, 05:01:58 PM
все это я затеял, чтобы сохранить пару ключей в минимальном размере, положить в контейнер трукрипта, распечатать на бумаге и в банковскую ячейку, также контейнер сохранить на нескольких флешках и тоже в ячейку, пасс от контейнера дать самым близким.
правильным ли пошел путем, решив сохранять в контейнере токо пару ключей, или все таки правильней хранить полный wallet.dat?


Title: Re: вопрос по командам в консоли
Post by: loga on January 07, 2013, 05:55:29 PM
все это я затеял, чтобы сохранить пару ключей в минимальном размере, положить в контейнер трукрипта, распечатать на бумаге и в банковскую ячейку, также контейнер сохранить на нескольких флешках и тоже в ячейку, пасс от контейнера дать самым близким.
правильным ли пошел путем, решив сохранять в контейнере токо пару ключей, или все таки правильней хранить полный wallet.dat?
Лучше хранить полный wallet.dat, переодически его обновляя по мере генерации ключей, поскольку клиент при транзакции сдачу бросает каждый раз на новый адрес.


Title: Хранение битков вне компа
Post by: Yurock on January 07, 2013, 07:15:06 PM
Генерировать ключи можно без использования Bitcoin. Насколько я понимаю, секретный ключ – это просто случайное число. Генерируем случайное число Kpriv от 1 до 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 любым способом (можно хоть монетку подбрасывать).

Вариант: создаём новый wallet.dat, создаём новый адрес A и экспортируем соответствующий ключ Kwif, затем удаляем wallet.dat. Плохо, если ключ останется на диске после удаления файла. Лучше создавать файл на виртуальном диске (в оперативной памяти).

Вариант: используем Vanitygen (https://bitcointalk.org/index.php?topic=25804), получаем A и Kwif.

Вариант: используем любой генеретор случайных чисел, генерируем Kpriv. Из Kpriv получаем соответствующий открытый ключ Kpub. Из Kpub получаем соответствующий адрес A. Можно также конвертировать Kpriv в формат, пригодный для импорта в Bitcoin (Kwif).

Сохраняем адрес A. Не сохраняем Kpriv и Kwif на компе в незашифрованном виде! Записываем секретный ключ на носители: диски, бумажки, флешки. На бумаге можно печатать секретные ключи в виде чисел, строк WIF, QR-кодов, штрих-кодов. Перемещаем носители в места хранения. Высылаем сбережения на адрес A.

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

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

P.S. У меня есть подозрение, что секретный ключ можно как-то считать с принтера, на котором его распечатали. Или хотя бы часть ключа, а остальное – сбрутить.


Title: Re: Хранение битков вне компа
Post by: dawnkellr on January 08, 2013, 08:35:10 PM
Генерировать ключи можно без использования Bitcoin. Насколько я понимаю, секретный ключ – это просто случайное число. Генерируем случайное число Kpriv от 1 до 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 любым способом (можно хоть монетку подбрасывать).

Вариант: создаём новый wallet.dat, создаём новый адрес A и экспортируем соответствующий ключ Kwif, затем удаляем wallet.dat. Плохо, если ключ останется на диске после удаления файла. Лучше создавать файл на виртуальном диске (в оперативной памяти).

Вариант: используем Vanitygen (https://bitcointalk.org/index.php?topic=25804), получаем A и Kwif.

Вариант: используем любой генеретор случайных чисел, генерируем Kpriv. Из Kpriv получаем соответствующий открытый ключ Kpub. Из Kpub получаем соответствующий адрес A. Можно также конвертировать Kpriv в формат, пригодный для импорта в Bitcoin (Kwif).

Сохраняем адрес A. Не сохраняем Kpriv и Kwif на компе в незашифрованном виде! Записываем секретный ключ на носители: диски, бумажки, флешки. На бумаге можно печатать секретные ключи в виде чисел, строк WIF, QR-кодов, штрих-кодов. Перемещаем носители в места хранения. Высылаем сбережения на адрес A.

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

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

P.S. У меня есть подозрение, что секретный ключ можно как-то считать с принтера, на котором его распечатали. Или хотя бы часть ключа, а остальное – сбрутить.

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


Title: Re: вопрос по командам в консоли
Post by: dawnkellr on January 08, 2013, 08:37:22 PM
все это я затеял, чтобы сохранить пару ключей в минимальном размере, положить в контейнер трукрипта, распечатать на бумаге и в банковскую ячейку, также контейнер сохранить на нескольких флешках и тоже в ячейку, пасс от контейнера дать самым близким.
правильным ли пошел путем, решив сохранять в контейнере токо пару ключей, или все таки правильней хранить полный wallet.dat?
Лучше хранить полный wallet.dat, переодически его обновляя по мере генерации ключей, поскольку клиент при транзакции сдачу бросает каждый раз на новый адрес.
планирую кругленькие суммы запечатать в нескольких контенейрах трукрипта, причем запечатать надолгое время без совершения транзакций


Title: Re: Хранение битков вне компа
Post by: Yurock on July 21, 2013, 04:20:31 PM
также можно не волноваться за компрометацию кея, сохраненного на диске в открытом виде, т.к. можно забить этот файл нулями, и исходное его состояние уже не восстановить (я могу ошибаться, подправьте)
Есть шанс, что часть инфы, затёртой нулями, можно восстановить с помощью специального микроскопа. Оставшуюся часть можно сбрутить. Например, если удастся восстановить 220 из 256 битов ключа, то надо будет перебрать в среднем 235 вариантов. Для затруднения восстановления информации обычно применяется многократное затирание всего раздела рандомными битами. Также следует учесть, что контроллер диска может решить записать новую инфу в другое физическое место на диске, а исходная инфа останется нетронутой.