Skip to main content
Version: 3.0.1

Introduction

To create an anonymous, privacy-focused, and untraceable environment, We are building a platform named "WoofWoof". It is end-to-end cryptography distributed event streaming platform based on Kafka, powered by of Ethereum.

Design principles​

  • Privacy protection: Encrypting sensitive information helps secure it from unauthorized access. This includes encrypting data in transit (during communication) and data at rest (when stored). Preventing the creation of detailed UserProfile of individual users based on their activities, behaviors, or personal information.

  • Untraceable: Transactions and message made with crypto can be challenging to link to specific individuals. The sender and recipient of a message cannot be easily identified or located. Tracking would be difficult, complex, or highly obscured.

  • Made Easy: Break down complex problems into smaller, manageable modules. Use clear and understandable abstractions to hide unnecessary details. Tools like Docker can simplify deployment by encapsulating applications and their dependencies.

  • Collaboration: No licensing to prevent users from using the software for various purposes. Encourage collaboration not only to develop software, but also to build untraceable and privacy protection environment.

We believe that, as developers and users, knowing how a library works helps us become better at using it. Hence we're dedicating effort to explaining the architecture and various components of WoofWoof with the hope that users reading it will gain a deeper understanding of the tool and be even more proficient in using it.

Features​

WoofWoof integrates the fault-tolerance, scalability, and stream-processing capabilities of Apache Kafka with Ethereum's features of anonymous authentication and smart contract-based authorization. The implementation also emphasizes end-to-end cryptography using secp256k1 for key pair generation, ECDH for secure key exchange, and symmetric-key cryptography for message encryption in the context of a distributed system.

Based on Kafka​

Apache Kafka is an open-source distributed event streaming platform used for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. So WoofWoof will inherit all the fundamental features of Apache Kafka like fault-tolerance, scalability, durability, stream-processing.

Powered by Ethereum​

  • Anonymous authentication: Users can access the system or service without providing any explicit identification credentials like identity card and cell-phone number. Users generate an Ethereum private key to create a digital signature of a specific message as authenticity. The service that needs to verify the user's authenticity which can verify the signature using the user's public key. If the signature is valid, it proves that the user possesses the private key corresponding to the public key used for verification.

  • Smart contracts authorization: Define the access control logic within the smart contract. This logic specifies who has permission to execute certain functions or access particular data. Implement logic in the smart contract that check the authorization of a user before allowing them to execute certain actions.

End-to-end cryptography​

Implementing end-to-end cryptography with a focus on secure key exchange using Elliptic Curve Diffie-Hellman (ECDH) and symmetric-key cryptography for message encryption.

  • Key Pair Generation with secp256k1: Utilize the crypto's secp256k1 elliptic curve to generate pairs of public and private keys for each participant in the system.

  • Establishing a Secure Key Exchange Protocol with ECDH: Implement the Elliptic Curve Diffie-Hellman (ECDH) key exchange protocol for secure key exchange.

    • Participants exchange crypto's secp256k1 public keys.
    • Each participant combines their private key with the received public key to derive a shared secret.
  • Derive Symmetric Key from Shared Secret: Use a key derivation function (KDF) to derive a symmetric key from the shared secret obtained through the ECDH key exchange. This symmetric key will be used for symmetric-key encryption.

  • Symmetric-Key Cryptography for Message Encryption: Choose a strong symmetric-key encryption algorithm (e.g., AES) and use the derived symmetric key to encrypt the actual messages. Ensure that each communication session has a unique symmetric key to enhance security.

  • Message Decryption: Participants use the same derived symmetric key to decrypt the received messages.

Distributed system​

  • Multiple Nodes: The system consists of multiple independent nodes or machines that communicate and coordinate with each other.

  • Communication: Nodes communicate with each other to share information and coordinate their activities. This communication can happen through various mechanisms, such as message passing or remote procedure calls.

  • Fault Tolerance: Distributed systems are designed to be resilient to failures. If one node fails, the system should be able to continue functioning.

  • Scalability: The system can scale horizontally by adding more nodes, allowing it to handle increased workloads.

Something missing?​

If you find issues with the documentation or have suggestions on how to improve the WoofWoof or the project in general, please file an issue for us.