# Stockage des portefeuilles pour Tikka

**URL:** https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418
**Category:** Tikka
**Tags:** dewif, gecko, tikka
**Created:** [6 May 2021 08:53 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418 "2021-05-06T08:53:27Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [6 May 2021 08:53 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/1 "2021-05-06T08:53:27Z")

</div>

Suite à la vidéo présentant Ğecko et sa façon de stocker les portefeuilles sur disque, cela soulève une problématique pour Tikka.

Actuellement, je stocke la clef publique des portefeuilles dans la base de données sqlite3 qui sert de mémoire disque.  
L’utilisateur peut sauvegarder un portefeuille sur disque au format dewif, le chemin du fichier est alors ajouté à côté de la clef publique dans la base de données.  
Ceci permet de donner le code d’accès du dewif pour déverrouiller le compte, plutôt que les identifiants classiques ou mnemonic.

Voyant comment cela fonctionne dans Ğecko, j’ai pensé inclure directement le dewif dans la base de données.

Mais cela présente une faille de sécurité dans la base de données, car la clef publique est alors associé au fichier sensible du dewif, ce qui n’est pas souhaitable.

Comme j’ai besoin de lister les comptes en affichant leurs clefs publiques et aussi que cette clef me sert de clef primaire, je ne vois pas comment faire pour garder la possibilité d’utiliser les fichiers dewif.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [6 May 2021 09:56 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/2 "2021-05-06T09:56:03Z")

</div>

Et si la clé primaire des comptes est un numéro, et qu’on peut choisir de stocker ou non la clé publique en clair pour chaque ligne ?

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [6 May 2021 10:11 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/3 "2021-05-06T10:11:46Z")

</div>

Tu m’as donné une idée 😉

Au lieu de choisir d’avoir ou pas la clef publique stockée, c’est le choix de stocker le dewif que j’offre.  
Ça tombe bien, c’est le comportement actuel !

La meilleure solution qui me vient est la suivante :

- Je conserve le comportement actuel, je stocke les clefs publiques, et l’utilisateur stocke s’il le désire le dewif avec (mais pas où il veut, c’est stocké dans la base de données).
- On averti l’utilisateur que c’est déconseillé, sauf pour des comptes peu sensibles ou à faibles montants.

Il y a beaucoup trop d’avantage à avoir les clef publiques en base, pour naviguer de compte en compte via les transactions.

Merci pour ton aide !

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [6 May 2021 10:23 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/4 "2021-05-06T10:23:35Z")

</div>

Mais ça peut toujours être utile de chiffrer une partie de ses clés publiques et de son carnet d’adresses ; pour ça il pourrait y avoir des «&nbsp;coffres&nbsp;» chiffrés contenant plusieurs comptes, et lors de leur déchiffrement on ajoute ces comptes dans la base en mémoire, indexés par clé publique.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [6 May 2021 11:34 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/5 "2021-05-06T11:34:25Z")

</div>

> [@vit](#):
>
> Il y a beaucoup trop d’avantage à avoir les clef publiques en base, pour naviguer de compte en compte via les transactions.

Tu pourrais faire comme ğecko: associer un nombre entier unique à chaque portefeuille. Et tout gérer en base selon ce nombre entier.  
Au démarrage de Tikka, tu demandes les credentials pour dériver toutes les clés publiques et tu créer une map en mémoire vive qui hait correspondre chaque nombre entier avec sa clé publique, rien de bien compliqué 😉

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [6 May 2021 11:39 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/6 "2021-05-06T11:39:07Z")

</div>

> [@elois](#):
>
> Au démarrage de Tikka, tu demandes les credentials pour dériver toutes les clés publiques

Ce n’est pas souhaitable (ah ah dit moi si cette formulation est adéquate si on est pas d’accord… 😉 )

Je ne vois pas l’utilisateur taper tous ses codes de tous ses portefeuilles pour que Tikka fonctionne normalement.

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [6 May 2021 11:57 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/7 "2021-05-06T11:57:08Z")

</div>

> [@vit](#):
>
> Ce n’est pas souhaitable (ah ah dit moi si cette formulation est adéquate si on est pas d’accord… 😉 )

C’est beaucoup utilisé, compréhensible, et non-ambiguë, donc c’est correct 😉

> [@vit](#):
>
> Je ne vois pas l’utilisateur taper tous ses codes de tous ses portefeuilles pour que Tikka fonctionne normalement.

Si tous tes portefeuilles sont dérivés du même trousseau maître il y a un seul truc à taper, c’est le principe du coffre.

Si tu tiens absolument à stocker les clés publiques en local, le code secret des DEWIF doit être plus long que dans Ğecko, au moins 2 caractères de plus.

---

<div class="post-metadata">

### Author: ![Maaltir](https://forum.duniter.org/user_avatar/forum.duniter.org/maaltir/32/5039_2.png) [@Maaltir](https://forum.duniter.org/u/Maaltir)
#### Post date: [6 May 2021 12:09 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/8 "2021-05-06T12:09:12Z")

</div>

> [@elois](#):
>
> > [@vit](#):
> >
> > Je ne vois pas l’utilisateur taper tous ses codes de tous ses portefeuilles pour que Tikka fonctionne normalement.
> 
> Si tous tes portefeuilles sont dérivés du même trousseau maître il y a un seul truc à taper, c’est le principe du coffre.

Je crois que vit voudrais qu’un utilisateur puisse reprendre dans Tikka tous ses portefeuille césium. Donc il faut les retaper.  
Mais il me semble que Tikka, pourrais les chiffré, tous, avec un mot de passe unique, déterminé par le logiciel. N’est-ce pas ce que propose Gecko avec l’import de portefeuille cesium ?

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [6 May 2021 12:14 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/9 "2021-05-06T12:14:34Z")

</div>

> [@Maaltir](#):
>
> N’est-ce pas ce que propose Gecko avec l’import de portefeuille cesium ?

C’est pas encore implémenté, pour le moment Ğecko ne permet d’importer qu’un seul portefeuille Cesium.  
Mais oui c’est prévu, tous les portefeuilles Cesium seront chiffrés avec le même code, ce n’est pas gênant car Ğecko n’est pas destiné à gérer beaucoup de portefeuilles cesium, toute l’UX est pensée pour utiliser des portefeuilles HD wallet généré par mnemonic.  
De plus, l’utilisateur cible de Ğecko aura 99% du temps un seul et urique portefeuille cesium.

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [9 March 2022 19:28 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/10 "2022-03-09T19:28:44Z")

</div>

Tikka est maintenant entièrement dédié à Duniter V2. La migration depuis Duniter V1 est terminée.

J’ai implémenté, comme Gecko, les «&nbsp;wallets&nbsp;» (trousseau) contenant la seed chiffrée. J’ai choisi le protocole symétrique [chacha20\_poly1305](https://pycryptodome.readthedocs.io/en/latest/src/cipher/chacha20_poly1305.html).  
Comme les clefs publiques sont stockées à côté, le mot de passe pour chaque compte est de 6 lettres générées par Tikka.  
Si c’est trop peu en terme de sécurité, je peux augmenter à 8 ou 10.

Je viens aussi d’implémenter l’import des comptes Duniter V1 dans Tikka :

- par fichier Cesium
- par id secret/mot de passe

@tuxmain, comme j’ai vu que tu maniais aussi `substrate_interface` et `Keypair`, peux-tu me confirmer qu’un compte Duniter V1 avec les identifiants «&nbsp;`test`&nbsp;», «&nbsp;`test`&nbsp;» donne bien :

**adresse base58 V1 :** «&nbsp;DCovzCEnQm9GUWe6mr8u42JR1JAuoj3HbQUGdCkfTzSr&nbsp;»  
**adresse ss58 V2 :** «&nbsp;5GAT6CJW8yVKwUuQc7sM5Kk9GZVTpbZYk9PfjNXtvnNgAJZ1&nbsp;»

Attention, `ss58format=42, cryptotype=Keypair.ED25519` pour l’adresse V2.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [9 March 2022 20:20 UTC](https://forum.duniter.org/t/stockage-des-portefeuilles-pour-tikka/8418/11 "2022-03-09T20:20:10Z")

</div>

Je confirme&nbsp;:

```python
substrateinterface.Keypair.create_from_seed(duniterpy.key.SigningKey.from_credentials("test","test").hex_seed().decode(), 42, s.KeypairType.ED25519).ss58_address

```
