this is nice article and very helpful.
everyone should read this
Encryption works together with smart contracts. The Block utilizes Ethereum smart contracts to list items for sale, to organize the buy and sell process, to hold escrowed funds, and to allow communication between buyers and sellers. Smart contracts enable a transparent and safe trading process. Messages, mandatory to the purchasing process, are stored on the blockchain. Non-mandatory and private communications can be moved to an off-blockchain platform to reduce costs and improve speed. As all data on the Ethereum blockchain are publicly visible, private communication requires encryption.
The Block uses the elliptic curve Curve25519 for private-public keypair generation. On a high- level summary, each Curve25519 user has a 32- byte secret key and a 32-byte public key. Each set of two Curve25519 users has a 32-byte shared secret used to authenticate and encrypt messages between the two users.
Advanced encryption standard (AES) is used for data encryption, and one-time private keys are generated for the buy session. One-time keys allow the buyer and seller to share their communication with a third party, e.g. the arbiter, without revealing their private keys. The Block shares private keys for both encrypted communication and Ethereum wallet generation. The private key is stored in the user data folder in JSON format, encrypted with the user’s password.