Please describe your proposed solution.
<u>Problem:</u>
Invoices are crucial documents for businesses. For a tax agency to accept invoices, allowing businesses to deduct expenses and calculate taxes, it is essential to validate the accuracy of relevant information on the invoice, such as the buyer, seller, issuance date, electronic signature date, and the status of the digital certificate.
In Vietnam, invoices have been digitized, creating opportunities for the development of invoice data processing tools to provide tax risk alerts and automatically integrate data into business management systems. In line with this trend, we have developed VitaxOne, a "Automatic - Intelligent - Secure" invoice data processing tool.
However, current off-chain tools are not widely trusted due to a lack of transparency in processing, exploitation, and the risk of leaking business information. This presents a significant barrier to convincing the user community, despite the evident need for such a tool.
<u>Solution:</u>
To gain trust, we integrate invoice data processing applications into general business management systems and specifically VitaxOne, currently developing off-chain, onto the blockchain platform. Therefore, for VitaxOne, we have chosen to implement the Cardano blockchain platform along with a system redesign for optimization. With this choice, we believe that VitaxOne's application will increasingly convince customers to register and use it. Additionally, the success of VitaxOne, as a rare blockchain-based business management information processing application, will contribute to expanding the ecosystem and promoting the Cardano blockchain platform to the Vietnamese business community.
VitaxOne is designed to process two application components: the Client and the Server, as follows:
- The Client App connects to the blockchain environment, running on the client machine, with processing techniques and user functions as follows:
- Customers declare invoice data sources and identify sensitive data components to be concealed on the invoice.
- Customers view management reports to monitor the Client App's invoice information processing.
- Encrypt necessary information components (ensuring no sensitive information is leaked about the business on the invoice). The Client App uses the AES (Advanced Encryption Standard) algorithm to encrypt general information such as: seller, buyer, invoice number, date of issuance, date of release, invoice signing certificate…, using Homomorphic encryption algorithm to encrypt other sensitive information such as: item names, services, unit prices, total amounts, amounts… After that, this encrypted data is placed in the blockchain environment, and the processing request is sent to the Server App's queue (Kafka TopicIn).
- Access the Server App's result queue (Kafka TopicOut), retrieve the decrypted data result to display complete information for customers.
- Customers access the Client App using User/Password/Captcha. The Client App is developed as a Webapp (Net.Core C#), Kafka client.
- The Server App connects to the blockchain environment, running on the server, with processing techniques and functions as follows:
- Connect to the Government information gateway to collect "Legal Risk data sources of businesses." This "Legal Risk data of businesses" is encrypted and securely stored on the Cardano blockchain environment, serving as the basis for confirming the risk level of the invoice.
- Access the processing requests of the Client App in the queue (Kafka TopicIn), retrieve relevant data combined with the "Legal Risk data of businesses" to perform authentication processing, create risk alert reports, integrate management operations, encrypt and send data information to the blockchain environment, provide feedback on the processed results to the queue (Kafka TopicOut) waiting for the Client App to retrieve and display for customers.
- To meet the large processing demand, the Server App is designed as a Microservices system, automatically scaling based on the number of incoming requests to ensure stable operation under a large load. Developed using Net.Core C#, PostgreSQL database, Apache Kafka server.