airgap-it / airgap-wallet

The AirGap Wallet is installed on an everyday smartphone. This app has only access to public information.
MIT License
454 stars 128 forks source link

Transaction Notes #46

Open trymeouteh opened 3 years ago

trymeouteh commented 3 years ago

To add notes to transactions to know what the transaction was for, is a useful feature and not popular in cryptocurrency wallet apps. You can add a message to a transaction, however this message is not private at all as it will be immutable on the blockchain forever and in many cases with non-transparent cryptos, visible to all.

By having a offline transaction note feature, you can add a note to any transaction with any important details and keep the data safe on your device.

How it works

Lets say this is your a transaction ID of a Bitcoin transaction you send or recieved.

d3ad39fa52a89997ac7381c95eeffeaf40b66af7a57e9eba144be0a175a12b11

In the apps setting you will choose a directory on the device on where transaction note files will be stored. This directory will save the transaction notes for each wallet and the app will read this directory for files to determine if you have transaction notes set for a certain transaction ID.

A folder will be designated for saving TXT files which will look like the example below. Each file will be named after the transaction ID of a crypto transaction you send or recieved.

/Wallet 1/Transaction Notes/Bitcoin (Segwit)/d3ad39fa52a89997ac7381c95eeffeaf40b66af7a57e9eba144be0a175a12b11.txt

Cell phone bill payment for March 2020

/Wallet 3/Transaction Notes/Dash/f4459f800afe9bdbd80fa743e9388006d238422427932b140a184dd35c47990e.txt

Bought a Ledger Nano hardware wallet

Using the 12/24 word phrase and BIP39 passphrase (If there is a passphrase used), this could be used to encrypt the text files and even the text file names making it so other apps or malware cannot determine what transaction IDs you were apart of by seeing the text file names and by seeing the contents of the text files (the transaction notes themselves).

Import/Export

Simpily you can export all of the files in the "Transaction Notes" folder into a ZIP, GZIP or 7Z file. And be able to import a ZIP/GZIP/7Z file into the app to restore your sub address labels.

Third Party Backups/Syncing

Another important feature to this will be syncing/backups of the transaction note files. I strongly suggest having a directory that the user can choose where the transaction note files are stored on a device which gives the users options on how to backup the transaction note files. The user can setup their cloud storage app such as Nextcloud, FileN, etc to do automatic backups of their transaction note files. Users can also use Syncthing to backup and sync the transaction note files between devices.

With how I suggested the file structure to be setup by having a file for every single transaction, it will take up little space, and reduce conflicts when using third party syncing/backup tools compared to having a file that will store multiple trasnaction notes or all the transactions notes in one single file.

Conclusion

This feature request will make keeping track of transaction easy and private with the ability to backup and even sync transaction notes to other devices using other apps like Syncthing. AirGap Wallet is the most secure fully open source wallet on the market. Such a feature will enhance this wallet even further.

AndreasGassmann commented 3 years ago

Adding notes to a transaction sounds like a useful feature. The encryption cannot be done in the Wallet, because it does not have access to any private keys.

We will keep this in mind, but we will not have time to look into this in the foreseeable future.

trymeouteh commented 3 years ago

Another way to ensure the transactions notes are encrypted is by having a setting for each wallet to enter in a encryption password of the user choice.

AndreasGassmann commented 3 years ago

Encrypting the details with any kind of encryption key is not a problem, but if it's a user provided password, then it's most likely not very secure (depending on the users password).

If we were to add this feature with an encryption feature, then it will most likely be part of a bigger "backup" mechanism, which will use the Vault to encrypt the data securely. But as I said, this is not planned for the near future.

trymeouteh commented 2 years ago

In the "Coin Control + Generate & Label Addresses for Privacy" feature request I discuss a potential feature on AirGap Wallet adding its own syncing feature which could also be used for offline transaction notes. https://github.com/airgap-it/airgap-wallet/issues/131

Updated the main post which explains a way to reduce conflicts when syncing files using third party apps like Syncthing, removes the built in syncing mechanism in the feature request.