Блог им. trader_95

Как устроен кошелек Electrum

Ответ в топик:
smart-lab.ru/blog/440722.php
Не знаю за что, но у этого товарища я в бане… не мог там ответить, а ведь интересуется народ.


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

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

Т.е. потерялся допустим кошелек, сломался хард или украли. Остался где-то распечатанный seed.
Введя seed при восстановлении кошелька, мы опять задаем ту же начальную точку для генератора приватных/публичных ключей и адресов. Получаем потерянные приватные/публичные ключи и адреса.

И вуаля, опросив публичные сервера по этим адресам у нас отображаются лимиты в кошельке по адресам.

Гениально, просто и безопасно.

Дополнительно есть опция мультиподписи транзакций через 2FA подтверждение.
★10
14 комментариев
Спасибо. Хороший ликбез для начинающих.
avatar
Если кошелек украли, наврядли в нем что-то будет храниться, до того момента как владелец проснется )

В этом и отличие реальной банковской и платежной системы, что хотябы какой-то контроль есть над транзакциями, от этих виртуальных игрушек )
avatar
ChixUK, если файл кошелька украли, то без пароля его не открыть.
а если еще и 2FA подключено, надо будет кроме пароля еще украсть и смартфон, украсть пароль от смартфона или одолжить палец, в случае iphone x фейс жертвы)
проще паяльником орудовать))
avatar
trader_95, да если там кого-то интересующая сумма, впереди масса пострадавших от ожегов паяльником ))

Опять же возьмите в противовес реальный финансовый сектор )
avatar
ChixUK, полагаю, если криптокошелек открывается только паяльником, то он прекрасно защищен.
паяльником ведь не только криптокошельки открываются)
avatar
trader_95, ну так все гениальное просто )

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

Сравните это хотя бы с обычным банковским вкладом или брокерским счетом, цепочка на много усложняется.
avatar
ChixUK, зачем для этого владельцы криптокошельков. Останови любого владельца внедорожника от 5 млн. Как правило, денег у него больше чем у среднего владельца криптокошелька. И отследить проще.
Нет… смысла нет заморачиваться
avatar
electrum хранит приватные ключи на диске, так же как и фразу для инициализации рандом сида.
avatar
Сергей Андреев, только импортированные приватные ключи, так как они не связаны с сидом, а так же комментарии, адреса.
Это все, разумеется, зашифровано.
avatar
trader_95, пока сырцы не глянешь, точности не будет. Cейчас
качнул сырцы, навскидку пробежался по коду:

если такая функция convert_wallet_type()

seed = self.get('seed')
xpubs = self.get('master_public_keys')
xprvs = self.get('master_private_keys', {})
mpk = self.get('master_public_key')
keypairs = self.get('keypairs')
key_type = self.get('key_type')
...
elif wallet_type in ['xpub', 'standard']:

xpub = xpubs[«x/»]
xprv = xprvs.get(«x/»)
d = {
'type': 'bip32',
'xpub': xpub,
'xprv': xprv,
'seed': seed,
}
self.put('wallet_type', 'standard')
self.put('keystore', d)

class Simple_Wallet(Abstract_Wallet):
def save_keystore(self):
self.storage.put('keystore', self.keystore.dump())

чтобы понять как и что там работает, нужно дебажить, без этого однозначные мнения, что никто ничего не хранит не работают.

avatar
Сергей Андреев, по правде говоря так детально не вникал, в исходниках тоже не смотрел.
основательный у вас подход
avatar
Сергей Андреев, на флэшку?
avatar
Чем он лучше Exodus'а? Тоже открытый исходный код, сид, пароль.
avatar

теги блога trader_95

....все тэги



UPDONW
Новый дизайн