Bitcoinj - создать временный кошелек

Я новичок в биткойнах.

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

Какие-либо предложения?


person Aventes    schedule 27.09.2016    source источник
comment
Можете ли вы описать свой вариант использования? Возможно, есть и другие способы достижения ваших целей.   -  person Leon Cullens    schedule 27.09.2016
comment
Также попробуйте опубликовать это на bitcoin.stackexchange.com.   -  person Leon Cullens    schedule 27.09.2016


Ответы (1)


«Кошелька» на самом деле не существует. Все это представляет собой набор закрытых ключей (или только один закрытый ключ, который можно использовать для получения других ключей, как это делают кошельки HD). Эти закрытые ключи позволяют вам потратить неизрасходованный вывод (UTXO), тем самым совершив транзакцию.

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

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


При этом вы можете заглянуть в HD-кошельки. Вы можете сделать что-то вроде этого (см. BIP44):

m / purpose' / coin_type' / account' / change / address_index

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

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

person Leon Cullens    schedule 27.09.2016
comment
Спасибо за предложение. Действительно полезный комментарий. Я использовал систему с несколькими кошельками для своего приложения. - person Aventes; 07.10.2016