Генерация адресов

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

Для валюты bitcoin система использует официальный клиент bitcoin core. У данного клиента есть wallet.dat файл, в котором хранятся все приватные ключи и публичные адреса. У bitcoin core есть функция генерация большого количества запасных адресов с помощью функции keypoolrefill, что позволяет нам нагенерировать в файл большое количество ключей. Далее файл wallet.dat шифруется и передается разработчикам. Получив данный файл, разработчики видят только публичные адреса. Далее Bitcoin core выдает только публичные адреса при выполнении соответствующей команды на получение адреса. Фактически разработчики не имеют доступ к приватным ключам wallet.dat, все пополнения может тратить только владелец этого кошелька.

Есть ноды второго тип, такие как ethereum, neo и тд. В этих нодах не используется wallet.dat файл. При работе с такими нодами, система генерирует приватный ключ и публичный адрес, приватный ключ шифрует AES-256 с ключом, и затем сохраняет в базу данных. Так система работаем с нодами, где нельзя сгенерировать альтернативный wallet.dat файл. Про графу “доступ одобрен” будет рассказано позже.