Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate/Implement CloakShield functionality #37

Open
r3rcloak opened this issue May 24, 2019 · 0 comments
Open

Migrate/Implement CloakShield functionality #37

r3rcloak opened this issue May 24, 2019 · 0 comments
Labels
CloakShield Issues related to CloakShield secure network layer. Enigma Issues related to Enigma transactions / sending Rebasing/Upgrade General/miscellaneous issues related to rebasing the codebase (to latest btc codebase)

Comments

@r3rcloak
Copy link
Collaborator

r3rcloak commented May 24, 2019

CloakShield is a network messaging layer that operates on top of the standard messaging layer. CloakShield messages are multi-layer encrypted, with each layer being encrypted for one or more specific connected peers. Messages are onion-routed across the network and each onion layer uses the aforementioned encryption to ensure that only specific nodes are able to decrypt the outer layer before forwarding the further encrypted payload for decryption by the next node(s) on the onion route.

The bulk of the code relating to CloakShield is encapsulated in the cloakshield.cpp and cloakshield.h files. Specific methods for routing/encrypting/decrypting/transmitting data can be found here.

Onion routed data is packaged in nested CCloakingData objects (see cloakingdata.cpp and cloakingdata.h), which contain a CCloakingDataPayload object in which the actual data resides. A CCloakingData object can store various different types of data related to the Enigma transaction process (see CloakingDataType enum for more information).

It is likely that the messaging system within the bitcoin codebase has changed (perhaps significantly) since Cloak was first created, so it is impossible to determine just what changes will need to be made during porting of the CloakShield system to the new codebase. The removal of the OpenSSL dependency will likely require some reworking of the ECDH (Elliptical Curve Diffie Hellman) code, which may also cause some compatibility issues with previous Cloak clients (QT wallets and daemons). The secp256k1 does however contain functionality related to ECDH and this can likely be leveraged for CloakShield usage,

@r3rcloak r3rcloak changed the title Migrate CloakShield functionality Migrate/Implement CloakShield functionality May 24, 2019
@r3rcloak r3rcloak added CloakShield Issues related to CloakShield secure network layer. Rebasing/Upgrade General/miscellaneous issues related to rebasing the codebase (to latest btc codebase) Sync/Consensus Issues related to block syncing / network consensus rules Enigma Issues related to Enigma transactions / sending and removed Sync/Consensus Issues related to block syncing / network consensus rules labels Jun 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CloakShield Issues related to CloakShield secure network layer. Enigma Issues related to Enigma transactions / sending Rebasing/Upgrade General/miscellaneous issues related to rebasing the codebase (to latest btc codebase)
Projects
None yet
Development

No branches or pull requests

1 participant