Security
An explanation of the technology and processes in simple terms to help those unfamiliar with blockchain and EIP712 understand how our security.
Last updated
An explanation of the technology and processes in simple terms to help those unfamiliar with blockchain and EIP712 understand how our security.
Last updated
Blockchain is a digital ledger of transactions, distributed across a network of computer systems. Each block in the chain contains transactions, and when a new transaction occurs, a record of that transaction is added to every participant's ledger.
Smart Contracts are programs that run on the blockchain and automatically execute agreements based on pre-defined rules. Our system uses smart contracts to manage and execute subscription payments automatically, eliminating the need for central oversight.
EIP712 is a standard for creating structured and secure messages for blockchain transactions. It enhances security and clarity by allowing users to sign data that is both human-readable and machine-verifiable. This process ensures that users are fully informed about what they are signing.
Here’s the step-by-step process for initiating a subscription in our system:
Step 1: Permitting the Smart Contract User Authorization: Before any subscription can start, the user must explicitly permit our smart contract to handle funds on their behalf. This is done through a separate permit (or approve) function that grants our smart contract the authority to withdraw a specified amount from the user's account, strictly according to the subscription terms.
A user that permits our smart contract but does not sign any payment agrements will never have their funds distributed by our smart contract. Our agreement processor required a signed agreement to move any funds.
Step 2: Subscription Agreement Merchant Setup: A merchant outlines a subscription plan, detailing payment amount, frequency, and other conditions. User Approval: If the user agrees to these terms, they proceed to sign the agreement using their private key.
Step 3: Signing the Agreement Generating the EIP712 Message: Our system creates a payment agreement message following the EIP712 standard. User Signature: The user signs this message, thereby confirming their agreement to the terms and authorizing the transactions as specified.
Step 4: Verification and Activation Submitting to Blockchain: The signed agreement, along with the user's permission for the smart contract to access their funds, is submitted to the blockchain. Verification: The smart contract checks the user's signature against their public key and the subscription terms. If valid, the subscription is activated.
Step 5: Recurring Payments Automatic Payments: At each scheduled interval, the smart contract enables transactions to processes payments from the user’s account to the merchant. Continued Authorization: No further approvals are needed after the initial setup, as the user has pre-approved the recurring payment terms.
User Cancellation: Users can cancel their subscription anytime using our interface, which sends a cancellation request to the smart contract. Modification: To change subscription terms, the current subscription must be canceled, and a new agreement must be signed with fresh approval.
Our system ensures transaction security and privacy. Only essential information, such as blockchain addresses and transaction amounts, is recorded in the agreements contract. This minimizes exposure while providing transparency.
By leveraging blockchain technology, our system provides a robust, user-friendly method for managing recurring payments securely. The combination of smart contracts and EIP712 standard ensures transactions are transparent, secure, and directly controlled by users, emphasizing consent and privacy at every step.
Our smart contracts undergo rigorous security audits and testing on test blockchains before deployment to production. We leverage both automated testing tools and human-centered approaches such as bug bounties to identify and mitigate potential vulnerabilities.
Access to critical functions within our smart contracts is restricted to authorized owners only. No administrative functions permit the editing or modification of existing subscription agreements, significantly reducing the risk of unauthorized changes. The worst-case scenario would involve an unauthorized user canceling subscription agreements, which does not compromise any funds.
The integrity of EIP712 messages, crucial for user authorization, is preserved through cryptographic verification on the blockchain. We reconstruct the message using the signed variables and verify the signature to ensure the authorization is tamper-proof. These messages are specific to a network and contract, making multi-network replay attacks impossible.
All variables signed by the user are verified against the subscription agreement offered by the merchant. Our backend processes ensure that only messages matching the merchant's terms are executed, preventing any discrepancies or tampering.
We currently utilize the Polygon POS blockchain, known for its security features suitable for our application. To address potential blockchain reorganizations or forks, we wait for a significant duration before confirming transactions as final.
Users prove their ownership of their blockchain addresses by signing a message, which we cryptographically verify. This step ensures that only the legitimate owner can create or cancel subscriptions associated with their address.
Our system does not store any sensitive user data, maintaining only public addresses on the blockchain. Payment terms and amounts are transparently recorded on the blockchain, aligning with the public nature of blockchain technology.
Enhanced Security: Unlike centralized systems, our smart contract is authorized to spend tokens, not our organization. This means that funds can only be accessed as agreed by the users in their subscription terms, preventing unauthorized access and misuse.
User Control and Transparency: Users have complete visibility and control over their subscriptions, with all transactions publicly recorded on the blockchain, ensuring transparency and trust.
Flexibility: Unlike centralized systems, our system does not allow for on-the-fly adjustments to subscription terms. Any changes require canceling the current subscription and creating a new one, which must be re-signed by the user. This ensures user consent but reduces flexibility in managing subscription terms.
Our decentralized system for recurring crypto payments provides robust security features that protect against unauthorized access and ensure transaction integrity. While it offers significant advantages in terms of security and user control compared to centralized systems, it also embraces the inherent transparency and immutability of blockchain technology, prioritizing user consent and verification in every transaction.