Universal Payment Processor White Paper
This contains information about our most ambitious project yet, the Universal Payment Processor.
Chandler Higley
Introduction
The need for a universal payment processor is greater than one would realize. Not only because you could travel to another country and not have to worry about making sure you had the native currency, but because you could pay in whatever currency you wanted too and the merchant could receive payment in whatever currency they wanted.
For example, you could purchase a candy bar for .005 ETH and the shop owner could receive the .005 ETH in CAD. But how would this be accomplished without having to pay enormous gas fees, without congesting the blockchain, and be done in a way that the layperson can understand? I will answer these questions below.
Wide-Scale Implementation
Wallet addresses could be assigned in and RFID/NCP fashion similar to credit
cards. Using our app, you can link your bank account and crypto wallet. You would be sent a
credit card from us, or you can add a card to your mobile wallet and use the tap-to-pay method
that has become extremely popular. Traditional payment processing units such as pin pads
wouldn’t be able to be used since they lack the infrastructure to handle these transactions.
Wattson Technology would develop their own pin pads, and offer these to companies for free for a
higher percentage of each transaction with the opportunity to receive a lower transaction fee
after their units are paid off. Companies that buy them outright would be able to get a lower
percentage taken from their transactions.
Banks play an important part of this crucial
update as well.
There are some issues with this such as blockchain congestion, gas fees, and wallet verification.
To solve blockchain congestion, we would rely heavily on the Ethereum updates such as zkSNARKs, sharding, rollups, and using methods such as Verkle Trees. We plan to build this infrastructure on Ethereum because it is versatile in many ways and has massive community adoption behind it. We considered ADA and Solana as alternatives, however we decided to stick to Ethereum because we believe these critical updates will send it to the forefront of the blockchain space.
Sharding will play a massive part of making this change easier for banks and other important financial infrastructure to make this adoption. For example, banks could run Super-Full Nodes which would allow them to process transactions from deposits, withdrawals, payments, etc from addresses assigned to their shard via rollups.
A bank running a Super-Full Node would handle all transactions for addresses assigned to it. To explain this, we’ll take a fictional banking institution called “Main Bank”. Let’s say Main Bank decided to adopt this new system. Main Bank runs a Super-Full node, as do all of their branches to replace their traditional software. Main Bank issues all addresses that begin with 0x8. They then distribute addresses from there. Let’s say your Main Bank branch is assigned to distribute and handle public keys that begin with 0x8c. While the branch in the next town over is assigned to handle 0x8b. This would mean that the load on each Node would be lower as distribution is spread.
This is where zkSNARKs, rollups, and Verkle Trees would become incredibly useful. Without going too in-depth about zkSNARKs, they can allow for the verification of computations without having to run them by looking at the which can save a massive amount of time and processing power when verifying information. Rollups will allow for the transactions to be handled by the onsite payment processors from vendors to handle transactions off-chain. These rollups would then be verified using Verkle Trees, (as opposed to Merkle Trees) since they are less computationally intensive to verify than Merkle Trees but still hold the same security benefits. They can also be verified using zkSNARKs to check for any invalid transactions or malicious transactions.
These rollups would then be proposed at rotating times during the day across the world to give time for the main chain to be updated without overloading the main chain. To decide on who will submit these batches, we propose that the several banks operating in a city have a rotating order in which they submit the batches. Every Sunday the order for the week is decided and randomized. If there is an issue with one of these bank branches sending the batches, they may get less and less batch submission permissions ensuring that the bank branches that have been reliable, get to submit the batches. These batches will automatically be reported by the contracts operating the payment processors and will be submitted to the main chain.
If there are any transactions that are determined to be malicious or are invalid will be reverted before the rollup is sent to the main bank. This way we can preserve the transactions that are valid and ensure that merchants aren’t losing any revenue if an entire batch is reverted. If there is a problem with specific transactions or the contract fails, we will have a system running for checks if it fails. If it fails three times, the transaction information will be sent to another system to attempt to be packed. If this fails, each transaction will be sent individually to the bank branch for verification.
This will make heavily populated areas have more information to handle and may cause strain on the infrastructure. To help ease strain on infrastructure, if a branch is having a massive amount of traffic coming through, we’d have transactions begin routing through the next nearest branch for assistance. In this scenario, since most banking infrastructure will handle their own issued addresses, we don’t anticipate this needing to be the case very often.
With this example you may be wondering why banks are needed if the whole point of crypto currency is to cut out the middle man (banks) and have a peer-to-peer financial network. While yes, this would rely on banks cooperating with decentralized systems, this wouldn’t necessarily make the system revert to the traditional issues with banking of now. Banks would turn more into informational powerhouses and be entitled to the same rewards and benefits that Full Nodes receive, in other words they are incentivized to act as transparently and reliably as possible. This is because if a bank attempts to cause issues on the network, they can be isolated from the network and not be allowed to reap the rewards of using their infrastructure to further the blockchain. This gives more power to the people by holding the banks responsible for helping in providing an updated system.
With this example you may be wondering why banks are needed if the whole point of crypto currency is to cut out the middle man (banks) and have a peer-to-peer financial network. While yes, this would rely on banks cooperating with decentralized systems, this wouldn’t necessarily make the system revert to the traditional issues with banking of now. Banks would turn more into informational powerhouses and be entitled to the same rewards and benefits that Full Nodes receive, in other words they are incentivized to act as transparently and reliably as possible. This is because if a bank attempts to cause issues on the network, they can be isolated from the network and not be allowed to reap the rewards of using their infrastructure to further the blockchain. This gives more power to the people by holding the banks responsible for helping in providing an updated system.
Accessibility
One of the most difficult things about updating the infrastructure that people are so used to, is trying to explain these difficult concepts to people who don’t spend their every waking moment in the developmental side of the crypto space. To make these adjustments easier for people, we plan to develop ways to use systems that people are used to in their daily life. Using RFID we can assign your wallet address to a credit card, for our purposes we’ll call them a “crypto card” to differentiate between old systems and our proposed new system.
Where you have debit cards and credit cards in today’s systems, the crypto card would make these irrelevant. The reasoning behind this that we don’t want just anyone to be able to steal your wallet address and be able to use them. We’ll rely on using PINs to verify each transaction, just like when you run a debit card. You would’t be able to do any transaction without a PIN because you would need to “sign” for your transactions. This would help make this secure and you could add 2FA to also further secure things. For example, you input your card, type your PIN, and receive a text message with either a code you would need to input into the pin-pad or hit an “approve” button in your wallet app. For those that run off our system and get a card through Wattson Technology would be able to choose either option. Customers would also be able to add their card to their mobile wallet and pay that way as well for convenience.
The whole point of using traditional systems like this is to make it easier for the layperson to get onboard an update like this. We cannot completely overhaul the system in a way that would completely drop the way we know our systems to work. This could massively complicate the process of mass adoption because people are opposed to change, especially massive changes into something that they are unfamiliar with.
Payment Hardware
Our team is working on creating our own payment system by using repurposed POS systems such as Square and Ingenico payment processors. We are doing this to see if it would be worthwhile to explore an Android powered solution such as Square to process these payments, or write a completely custom one from scratch to interface with these payment processors. When we are able to narrow down our course of action, we will begin looking for vendors to provide us with something similar to the terminal we decide upon.
Payment Software
When we narrow down our terminal selections, we are going to work on writing programs to handle rolling up the transactions for submission to the blockchain. Transactions would be submitted from the terminal to the main computer/iPad/tablet running the app that processes the transactions. These transactions that are “rolled up” would be packaged in our JavaScript program then carried over to the smart contract. The program would then propose the transactions for solidification on the blockchain. Our smart contract would be highly gas optimized to ensure that merchants are getting the full price for their items. Written into our smart contract would be a function that allows for a 1.5% fee of all transactions that would go to Wattson Technology.
We would rely heavily on the Ethereum updates to make this payment processor realistic as without these critical updates, the process would be far too expensive, slow, and hardware heavy.
Benefits
There are many benefits too moving to a system like this. Such as the ease of paying with what you want while the vendor can receive what they want. This would be done by moving all traditional currency, rewards points, etc on-chain. Why this is important is because we need to have a medium for exchange to make this a truly universal payment processor. If you really wanted to pay for something with, for example, Starbucks Reward points. You could do that! As long as the points were on-chain. That would allow the vendor to take your Starbucks Reward points and have them automatically exchanged to ETH.
This would also allow for full transparency of the financial system and what is going on. You would be able to hold politicians accountable for if they randomly get a deposit of large amounts of money that they can’t explain. You would be able to see what exactly your taxes are being used for, and ensure they aren’t just being used to enrich people.
This system also preserves self custody wallets. You could still use a self-custody wallet in this ecosystem as well because you would just need to either manually enter your wallet address into a pin-pad or, you could manually assign your address to your own RFID card and completely skip the need to apply for a card through a bank or open an account anywhere. This is a truly revolutionary idea as it puts the whole banking process in your own hands. However, the people that do decide to go this route would still be subject to the fees associated with using our payment systems.
Conclusion
The Universal Payment Processor is an extremely useful and would be a worthwhile venture for human progress if these systems are put into place. It would unlock so much potential in modernizing other outdated systems that we don’t innovate because we’re so locked into the way things are today.
The UPP could revolutionize the way that the world looks at and accepts cryptocurrency in more than just a fad or a get rich quick scheme. This would allow our financial system to finally universal and allow for people to easily make transactions easier, more secure, and fully peer-to-peer. This would revolutionize the way we look at finance and truly put it in the hands of the people.