The ability to create a blockchain network that can process payments at scale while maintaining decentralization and security remains a pivotal challenge for web3 developers today.
What makes blockchain scalability so hard is that all nodes need to be aware of what the current state of the network is to ensure that fraudulent transactions are not being validated.
Yet the process of requiring broad-scale consensus and recording of transactions within a network consisting of thousands of nodes has a negative impact on transaction speeds.
As transaction volume increases, blockchain networks tend to become more congested, leading to longer wait times or higher fees for users to add their transactions to the next block.
When a blockchain transaction is confirmed, it settles instantly and with finality (meaning you can spend your money right away), yet the time and cost of the transaction often outweighs the benefits of using a blockchain.
In the physical world, an example of a transaction that settles instantly and with finality is when a customer hands a cashier a $5 bill in exchange for a $5 cup of coffee. This is a peer-to-peer transaction that does not require any third party to validate that it occurred because the event involved 2 people trading physical items where the value and authenticity of each can be verified in plain sight.
In order to recreate this interaction in the digital world and in a way that is scalable, we need to account for a few things; the authenticity of the money being used to exchange for a good, as well as the recording of the event itself such that it can be recalled by anyone at a later time.
Blockchains like the Bitcoin network tackle these issues by developing a network of peer-to-peer nodes that must agree on the state of the network (e.g the most up-to-date account of wallet balances and coin transfers on the ledger). This ensures a transparent accounting of the coins that were spent while giving each transaction instant settlement finality, but at the cost of longer wait times for blocks to be confirmed due to the consensus rules.
How Transactions are Processed in the Current Financial System
Our current financial system tackles the issue of authenticating digital transactions by enabling people to use credit cards issued by banks to make payments digitally.
Essentially, a closed network of banks receive a daily log of recorded transactions from credit card providers as they occur, and then settles those transactions in batches at a later date by sending a large amount of funds from one bank to another to reconcile their customers’ account balances.
This system makes digital transactions occur faster but at the cost of giving control to a handful of banks that serve as the intermediaries for every transaction, meaning they can enforce censorship and extract fees with very little resistance.
Additionally, the settlement time for a credit card purchase can take several days, meaning that a transaction that occurred on Monday might not be considered finalized by a bank until Wednesday or Thursday. This gap period presents a challenge for merchants who wish to make use of the money they receive instantly while also increasing the chances of fraudulent payments occurring.
Credit card payments and Bitcoin payments represent opposite sides of the spectrum when it comes to making digital transactions.
Through the use of Synthetic transactions, Accumulate aims to combine elements of the traditional banking payment system (fast payments with slow settlement and limited security) with a blockchain-based payment system (slow and secure payments with instant settlement).
A Synthetic Transaction is a simulated transaction that is produced by Accumulate to relay information about a real user transaction from one Block Validator Network (or BVN) to another.
The goal of the exercise is to quickly and cheaply inform other BVNs about the status of a transaction between ADI users so that the BVNs can update their state accordingly without having to independently validate the transaction.
The Accumulate network is not a single network but a ‘chain of chains’. This means it is capable of operating hundreds to thousands of independent blockchains.
Each ADI (Accumulate Digital Identifier) is made up of a collection of independent sub-chains that are consolidated into a Block Validator Network or BVN.
This modular architecture is effective for enabling the Accumulate network to scale while maintaining decentralization, however, it requires special communication protocols to ensure that BVNs are able to stay in sync with one another.
Let’s go through an example of how Synthetic transactions help make this possible while solving the scalability/decentralization problems for digital payments.
Let’s say we have 3 users – Alice, Bob, and Charlie who are each represented as ADIs on the Accumulate Network. Alice’s ADI sits on BVN-1, Bob’s on BVN-2, and Charlies on BVN-3.
Bob wants to pay Charlie but is not able to until he can receive the money he is owed from Alice.
The first step in the sequence is that BVN-1 verifies that Alice has sufficient funds to pay Bob, then Alice sends tokens to Bob. Bob receives the tokens and sends them to Charlie through BVN-2, however, BVN2 is not aware of which BVN the tokens initially came from since Alice sent them to Bob through BVN-1. This means BVN-2 cannot confirm if Bob actually has the funds necessary to process his transaction with Charlie.
BVN-2 would need to query all the BVNs on Accumulate to find out where the funds initially came from in order to confirm that a double spend is not occurring (this is when someone is able to spend tokens they do not have, i.e spend the same tokens twice, due to the inability to do a proper accounting of the supply of tokens and balances in each token account. This has been a common problem of digital currencies that was solved by the proof of work consensus mechanism and is also solvable with proof of stake).
Synthetic transactions allow BVNs to quickly ascertain where a transaction came from by simulating transaction flows between BVN-1 and 2.
After BVN-1 validated Alice’s transaction to Bob, it would send a second transaction to BVN-2 stating that it should “Deposit X tokens into Bob’s account”.
This command is a synthetic transaction that allows BVN-2 to be informed about what occurred on BVN-1 before Bob decides to send tokens to Charlie.
This drastically cuts down on the amount of time needed for nodes to reach a consensus on transactions between BVNs. In the future, BVN-2 will always know when a user on their network is trying to spend tokens they received from BVN-1 because the information will be relayed beforehand through a Synthetic transaction.
To ensure that synthetic transactions cannot be faked, Accumulate relies on the Directory Network or DN, which is a primary network that consolidates the records of all transactions that occur between ADI accounts and their various sub-chains, thereby allowing Accumulate to maintain a single unified state.
The DN produces a cryptographic receipt for validating synthetic transactions, ensuring that no synthetic transaction sent from one BVN to another can be validated and processed without the DN’s approval.
Figure 11 shows individual synthetic transactions between identities A-F that are being collected and sent as a bulk synthetic transaction from BVN-0 to BVN-1, BVN-2, and the Directory Network (DN). The yellow circles in rows A-F represent transactions, while those in the “Synthetic TX” row represent sets of transactions between identities A-F. The quadrangle that connects ADIs A-F, BVN-1, BVN-2, and the DN represents communication between all ADIs hosted on BVN-0 and all identities hosted on other BVNs or the DN. If the box representing BVN-1 were opened, for example, you might find identities G-J.
Synthetic Transactions for Scaling Blockchain Payments
Returning to our real world example of merchants accepting digital payments from customers, we can see how synthetic transactions can serve as a more decentralized yet scalable alternative to traditional credit card payments and traditional blockchain payments.
Imagine if a customer using an ADI linked to BVN-1 was trying to buy coffee by paying a merchant whose bank account is an ADI that is linked to BVN-2.
Before the customer pays the merchant, BVN-1 can send a synthetic transaction to BVN-2 to prove based on previously validated transactions that the customer has the funds in their account to make the payment. This would enable the customer to make other purchases before the merchant’s bank accepts their payment, and would also allow the merchant to instantly make use of the funds they receive instead of waiting 2-3 business days for the transfer to settle.
Ultimately, synthetic transactions offer payers and payees with a more decentralized, secure, censorship resistant and yet scalable approach to transacting on-chain.
With synthetic transactions, cross-chain consensus is achieved much faster due to efficient communication protocols that enable BVNs to inform each other of where incoming transfers have come from so that they can process future transfers while keeping an account of the collective state of each participating BVN.
This innovative design makes it possible to achieve scalable digital payments with an instant settlement, opening the doors for all types of high value businesses, including e-commerce marketplaces, remittances, and P2P lending platforms to emerge on the Accumulate network.