19

Yes, this is possible. However, I want to upfront state that this is not advisable for multiple reasons: Bitcoin keys are intended to be single use for privacy reasons, and leveraging them for encryption unnecessarily encourages treating them as a long-lived identity. There may be ugly and dangerous interactions when keys are used for multiple protocols ...


6

The traditional answer for Bitcoin to this question is "pseudonymity, not anonymity". All the data published on the blockchain is necessary for the world to validate that transactions are valid, no theft occurs, no money is being printed, ... but not more. In particular, there are no identities on the chain, and reuse of (otherwise visible) addresses is ...


5

If you want to encrypt messages, you should use a proper message/file encryption tool like PGP/GPG. Homebrewed cryptography using bitcoin things is prone to having poor security properties.


3

how are these files stored, encrypted and sent to B on the blockchain? They aren't. Those files are not stored on the blockchain nor are they transmitted to B using the blockchain. Does blockchain technology handle the security of the actual digital merchandise? It can, if you make one that does. Bitcoin's does not.


3

Most blockchains do not promise confidentiality. Those that do usually employ some form of zero knowledge or encryption, such as with ZCash. The exact specifics of the implementation will vary wildly case by case.


3

Be sure to follow the warnings given previously in other answers, but for the record this was implemented in a project called Bitmessage. The main implementation is in Python at https://github.com/Bitmessage/PyBitmessage. There is also an npm module for node.js that implemented this for the server and browser using openssl c libraries under the hood: ...


3

Bitcoin does not use encryption, and does not need to in order to secure ownership of coins. Ownership of coins is proven by digitally signing a transaction with the owner's private keys. The signature can be validated by anyone using the owner's public key. Encryption obfuscates data for anyone that is not authorized to view (decrypt) it. Bitcoin cannot ...


2

some developers claim that they are gonna replace email with blockchain technology. Blockchain is just a popular marketing buzzword. Its use is largely meaningless. You can safely ignore the marketing output of any person or business that are overly liberal with their use of buzzwords. Wherever you see "blockchain" just substitute any of "nanotech", "...


2

This behaviour has been resolved by 12493. As stated by Andrew Chow in the pull request, this was previously done to: ...prevent the BDB environment from writing unencrypted private keys to disk in the database log files, as was noted here. This PR replaces the shutdown behavior with a CDBEnv flush, close, and reopen which achieves the same effect: ...


2

As @JBaczuk pointed out Bitcoin‘s blockchain does not use encryption. However, other schemes like ZeroCash (ZCash) and Monero do use encryption to send private data to the receiver. In these confidential currencies the miner does not need all the information to verify a transaction. It only learns that the transaction is correct not why it is correct. The ...


2

As Satoshi Nakamoto put it: Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. Bitcoin in particular, and probably most other cryptocurrencies, are primarily concerned with moving money from actor A to actor B without ...


1

Speaking of bitcoin (other cryptocurrencies may do things a bit differently but the principles will likely be similar) and simplifying slightly (i.e. not discussing stuff like segwit). For ECDSA a private key is simply a large (psuedo)-random number. Depending on the particular wallet implementation the private key may be generated and stored, or it may be ...


1

Bitcoin Core wallet encryption works by encrypting the private keys stored in the wallet file. The private keys are encrypted with a master key which is entirely random. This master key is then encrypted with AES-256-CBC with a key derived from the passphrase that you enter using SHA-512 and OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined ...


1

First of all why not KK? Nodes are announced via gossip and on my tcp socket I should see who connected to me being able to look up the static key of my peer. It isn't really possible to tell who is connecting to you based solely on the IP information you receive. The public IP information received over the gossip protocol only lists the listening ...


1

It seems like you are looking for an encryption scheme which allows operations to be performed on cipher text, which would result in the same as the same operations being applied to the unencrypted data. Example: Homomorphic encryption which supports addition E(data0) + E(data1) = E(data0 + data1) k being the encryption key, and E(...) the encrypted cipher ...


1

In theory, the way that Lightning works allows for the use of a Hardware Security module to perform a lot of the logic which would allow for secret material to be stored externally on a secure device similar to a Trezor. However none exists at the time of writing, and persistent access to many of the files is likely required in the current software. The ...


1

The old wallet is unaffected, assuming it uses separate data files (e.g. when new wallet is on a different computer or is a different software product). The password is typically used to protect the program's critical data by encrypting it. It does not change the private-keys. In the case of Bitcoin core, the data files would be wallet.dat (where private ...


1

You could use something like this eccrypto (Do your own research on the security of this implementation). Also, doesn't appear to allow compressed public keys. Update: It now supports compressed keys as of v1.1. index.js var crypto = require("crypto"); var eccrypto = require("eccrypto"); var privateKey = new Buffer("...


1

You can communicate transaction details to your counterparty using the app, but afaik neither of the messenger apps you mentioned have a cryptocurrency transfer system built into them. So you'll need a wallet app, but otherwise you can communicate with your counterparty through the messenger app (agree on the amount to be transacted, send a payment address,...


1

The answers given by the previous authors seem complete, the only thing we'd like to add is that the same result of a backup will occur not only with ledger wallets but also with light wallets. We've recently written an article, describing how it happens with Guarda. Shortly, one can not only restore his wallet, using a backup / the 24 words but also unite 2 ...


1

BIP38 allows you to hide your private key in plain sight. Nobody knows what the private key is until they decrypt it with the password. A brainwallet is essentially generating a private key by hashing a password or passphrase. You can generate a private key using random or pseudorandom sources, or you can hash a password or passphrase. You can then, if ...


1

var curve = ECNamedCurveTable.GetByName("secp256k1"); var domainParams = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H, curve.GetSeed()); var secureRandom = new SecureRandom(); var keyParams = new ECKeyGenerationParameters(domainParams, secureRandom); var generator = new ECKeyPairGenerator("ECDSA"); ...


Only top voted, non community-wiki answers of a minimum length are eligible