ResAuc is a decentralized online auction platform built on blockchain technology (ResellientDB), ensuring transparent, secure, and anonymous bidding. Experience fair auctions with real-time updates and user-centric features.
Contributors: Dhairye Gala, Himanshu Nimonkar, Sayali Lokhande, Shray Arora, Shreyas Shah
Project Link: ResAuc
Presentation Link: PPT
Introduction
Motivation
Since ancient times, auctions have been an important component of trade that facilitates the exchange of commodities and services. Conventional auction houses have long served as go-betweens for buyers and sellers, providing platforms for people to participate in auctions online, in-person, or hybrid formats. Sellers usually submit their items to auction houses for evaluation and appraisal; the auction company receives a commission for these services. These auction houses make transactions easier, but they limit the accessibility and fairness of the auction process by introducing problems with cost, inefficiencies, and potential bias. Furthermore, the dependence on actual locations and centralized systems may hinder the growth of traditional auctions, which causes challenges in adapting to modern demands.
Gap
A decentralized auction system that provides a more fair, transparent, and economical setting is becoming increasingly necessary as our reliance on digital platforms grows. By eliminating intermediaries, a decentralized auction platform would provide buyers and sellers more freedom. These platforms are also in line with the principles of distributed ledger technologies (DLTs) and blockchain, which have gained popularity due to their capacity to provide transactions with immutability, security, and transparency [1]. In addition to lowering risks like fraud and manipulation, these technologies ensure that buyers and sellers can engage in transactions without the assistance of a reliable third party.
Existing centralized auction platforms, such as eBay, often struggle with trust issues and high service fees. This further highlights the need for a decentralized solution [2]. Moreover, traditional auction systems often face problems related to bidding transparency and transaction recording. The development of decentralized platforms leverages the strengths of blockchain and DLTs to address these limitations. In particular, these platforms will provide transparency through an immutable ledger, thus allowing all transactions to be publicly recorded and available for verification.
Problem Statement
Our project, ResAuc is a decentralized auction platform that integrates ResilientDB [3] to transparently record all transactions, allowing for greater user control. Sellers can independently list their items, set minimum bids, and finalize sales with the highest bidder, while buyers participate in a secure, anonymous, and fair environment. Moreover, the platform is being developed with key features such as user profile management, real-time bid tracking, and a feature that enables sellers to close sales with the highest bidder. This report discusses the objectives and development of ResAuc, its integration with ResilientDB, its architecture and the working of ResAuc.
Objectives
ResAuc provides a decentralized, transparent, and secure platform for both buyers and sellers in an effort to improve the online auction process. Built on the foundation of ResilientDB, the platform prioritizes user control and efficiency by eliminating intermediaries and promoting direct communication to facilitate auctions. The primary objectives of ResAuc are:
- Transparency: Makes use of ResilientDB’s blockchain-backed architecture, which offers an immutable ledger to record all events, which enables secure and transparent auction transactions.
- Decentralization: By eliminating the need for third parties to participate in auctions, users can communicate with one another directly, which lowers overhead costs.
- User Centric Experience: Provides a user-friendly platform that enables users to manage transactions with real-time updates, and create detailed auction listings and place bids.
- Live Bid Updates: Incorporates live bid tracking to keep users informed of the current auction status.
- Anonymity for Buyers: Maintains the privacy of bidders and sellers to prevent bias and manipulation.
- Purchase & Sale History: Provides a comprehensive history of the items and prices that users have bought and sold.
Market Opportunity
The online auction industry has seen exponential growth in recent years, driven by the rise of E-commerce and the increasing comfort of users engaging in digital transactions. The global online auction market was valued at approximately 568.94 billion USD in 2023 and is projected to grow at a compound annual growth rate (CAGR) of 9.21%, reaching 934.25 billion USD by 2032 [4]. Global platforms like eBay and Christie’s online auctions have demonstrated the demand for such systems. However, these centralized platforms frequently face problems including high costs, trust issues, and limited flexibility for users. The market opportunity for a decentralized auction platform like ResAuc lies in addressing these shortcomings. Blockchain technology offers a transformative solution by decentralizing the auction process and eliminating the need for conventional intermediaries. A blockchain-based platform gives sellers access to a bidder pool. Transactions are recorded on a secure and distributed ledger, providing an immutable and transparent history of every auction event. In addition to improving trust and accountability, this decentralized approach significantly reduces operational costs, which can be as high as 10–20% in traditional auction systems. Because all transactions can be audited on the public ledger, fraud [5], a persistent concern in traditional systems is mitigated. The transparency of blockchain ensures that every participant has equal access to the bidding process. Furthermore, blockchain allows for almost rapid settlement using cryptocurrencies, whereas traditional auction houses can take days or weeks to settle deals because of human processing and reliance on financial institutions. With its ability to address these issues, a blockchain-based auction platform like ResAuc capitalizes on a significant market opportunity. In addition to eliminating the high costs and inefficiencies associated with traditional auction houses, it also introduces a transparent and user-friendly system made to meet the changing demands of buyers and sellers in a globalized economy. ResAuc provides an affordable alternative that appeals to both sellers seeking maximum value for their items and buyers looking for fair competition without concerns of fraud. Furthermore, leveraging blockchain technology through ResilientDB establishes ResAuc as an innovative platform that aligns with the increasing demand for secure and transparent digital marketplaces.
Architecture Overview
Figure 1 shows the system architecture along with the technologies used for building ResAuc. The following subsections discuss each of them in detail.
Backend
The backend of the system is built using Node.js and Express.js to provide a robust and scalable architecture that supports asynchronous handling of multiple user requests. The backend architecture uses Express.js as the API layer, acting as a bridge between the frontend, backend logic, and databases. Express.js ensures efficient communication by handling incoming HTTP requests, processing them through the middleware and routing layers, and sending appropriate responses. User registration and login functionalities are implemented using bcrypt for secure password hashing. The authorization mechanism ensures users can interact only with their own data when appropriate. Additionally, the backend also manages bid processing and auction listings. By entering information such as the item title, description, minimum bid amount, and image (Base64 encoded), users can create new listings. It also lets users place bids on items listed by others while imposing restrictions like minimum bid value and highest bid validation. The backend also offers user-specific features, such as retrieving listings created or purchased by a user and marking items as sold upon completion of transactions. The backend updates the database to reflect the sale status of the item after an auction is finalized. This is the GitHub repository for the backend code.
The frontend interacts with the backend through RESTful APIs, facilitating seamless communication and data exchange. This connection allows users to perform actions like posting bids, creating auction listings, and viewing purchased or listed items. The APIs ensure real-time updates and transaction processing, thus enhancing the user experience by providing immediate feedback on actions such as bid placement and transaction confirmation.
Figure 1: System Architecture
The APIs are divided into four categories: User Management, Listing Management, Bidding, and Transaction Tracking.
- User Management
register
: Manages user registration by checking whether the username already exists. If not, it generates a new user with the provided username and password and saves it to the database.login
: Handles user login by verifying the entered username and password. It checks if the user exists in the database and compares the password with the stored hash.
- Listing Management
new-listing
: Creates a new listing by validating fields such as title, description, minBidValue, username, and image. After that, it stores the modified user information and adds the new listing to the user’s profile.all-listings
: Retrieves all listings from all users by first fetching all users from the database, then extracting and concatenating their listings into a single array.my-listings
: Retrieves the listings of a specific user based on the username provided.delete-listing
: Allows a user to delete a specific listing. It removes the listing from the user’s profile and updates the database.sell-item
: Allows a user to sell an item by selecting the highest bid. It first ensures that there are bids placed on the listing, then marks the item as sold, recording the final selling price and the buyer’s username in the soldTo field (not displayed on the ledger to maintain anonymity).
- Bidding
post-bid
: Allows a user to place a bid on a listing. It ensures that the user is not bidding on their own listing, that the first bid meets the minimum bid value, and that subsequent bids are higher than the current highest bid.
- Transaction Tracking
bought-by-me
: Retrieves all items purchased by a specific user by checking which listings have the soldTo field matching the provided username. It returns an array of items bought by the user from all sellers.sold-by-me
: Retrieves all items sold by a specific user. It checks if the user exists, filters through their listings to find the ones marked as sold, and returns the list of sold items.
Table 1 provides a list of the key APIs, grouped by their respective categories.
Table 1: List of APIs
All the information is stored on the MongoDB database while the ledger records information about new listings, bids and deleted listings.
Frontend
Frontend of the ResAuc platform is designed with a user-friendly interface leveraging React and Bootstrap for responsive layouts. It primarily serves the core functionalities for user login/registration, auction listings, and bid placements. While ExpoLab [6] provides skeletons in both Vue.js and React.js for integration with the ResVault [7] browser extension, React.js was chosen for its robust library ecosystem, flexibility, and component reusability. React’s component-based approach enables the efficient reuse of UI elements, which streamlines development and ensures consistency across the application. To further enhance functionality, the frontend integrates with the ResVault browser extension. This enables secure transaction handling and blockchain interactions.
The frontend features secure login and registration forms that handle user authentication. Users can view, create, and participate in auctions through an interactive interface. A personalized dashboard allows users to view all listings, their active listings, bids, and auction history. It provides quick access to the user’s auction activities, including items they are selling, bidding on, or have won. Listings are displayed with details like title, description, minimum bid, and current bid status. This is the GitHub repository for the frontend code.
Database
The backend of the auction platform uses two databases, namely MongoDB and ResilientDB. MongoDB is used as the primary NoSQL database for real-time storage and retrieval of data such as creating new listings, deleting listings, placing bids, user profiles, and bid history. Its flexible schema allows for seamless handling of frequently updated records, which is crucial for an active auction environment where data such as bids and listings changes. ResilientDB is integrated into the system to address the need for transparency and accountability. It is used to maintain a ledger of completed auctions. When a listing is made, a bid is placed, or an item is sold, ResilientDB is leveraged to record these events in a tamper-proof manner, ensuring that users can trust the integrity of the auction result.
ResilientDB and its integration with ResAuc
ResilientDB is a decentralized, fault-tolerant database designed to provide transparency and security for online transactions. It is particularly well-suited for applications like ResAuc, where trust and security are essential. ResilientDB plays a crucial role in the backend architecture of ResAuc by providing a decentralized and transparent method for recording transactions. The frontend integrates with ResilientDB via the ResVaultSDK. ResVaultSDK acts as an intermediary that enables the frontend to communicate with the ResVault browser extension. Through ResVaultSDK, the transaction data is securely sent from the frontend to the browser extension, which then posts the transaction to the ledger. The SDK enables secure communication with the decentralized database, allowing users to initiate transactions by sending messages such as bids or purchases. The integration ensures that transactions are processed securely and are immutable once committed. Once the transaction is processed, the user receives a response showing whether the transaction was successful or failed. This response is reflected in the frontend through a modal, thus ensuring that users are notified immediately of the transaction status.
Authentication Mechanism
The authentication mechanism in ResAuc leverages ResVault, to ensure secure user access. This is shown in Figure 2. ResVault is a Chrome extension that serves as a wallet for ResilientDB.
Figure 2: Authentication via ResVault
The authentication process for the platform is divided into two parts:
- ResVault Extension Authentication: This authentication leverages the preexisting authentication mechanism provided by the skeleton framework. It ensures that the ResVault extension is properly connected to the ResDB mainnet. This establishes a secure communication channel between the client and the blockchain network.
- User Authentication: This part handles user-specific authentication for the app. It interacts with MongoDB to retrieve user data and bid information, verifying the user’s credentials and ensuring that the appropriate data is accessed for actions such as placing bids and managing listings. Figure 3: Transaction Form
Working of ResAuc
In this section, we describe the different views of ResAuc and the detailed working of the application. The sketch of the top to down working is illustrated in Figure 4. Figure 4: High-level Working of ResAuc
- User Registration & Login: When users first visit ResAuc, they are given the option to either sign up for a new account or log in with existing credentials. New users can create an account by entering a username and password as shown in Figure 5a. Returning users can enter their credentials to access the platform on the login page as shown in Figure 5b. Figure 5: User Registration & Login
- Dashboard: After logging in, users are presented with the dashboard, as showcased in Figure 6. This view displays a list of ongoing auctions with details such as item description, minimum bid value, current bid amounts and item image. Users can browse through the auctions to view the items up for bidding and then place bids on them. A seller cannot place a bid on the item they have listed themselves. There is a common navbar for all pages from where a user can navigate to the dashboard, my listings, new listing, items sold, items bought and logout of the account. Figure 6: Dashboard
- Listing Items for Auction: As shown in Figure 7, users can access the New Listing button where they can provide the details about the item such as item title, description, minimum bid value and also upload an image of the item. Upon submitting the form, the item details are securely stored on ResilientDB. The item is then visible to all users on the dashboard under all listings. Figure 7: Create New Listing
- My Listings View: Under My Listings, users can see a consolidated view of all the items they have listed for auction. Users can monitor the progress of their active auctions, delete a listing if needed and sell the item to the highest bidder if they feel they are getting a sufficient amount for their item. This section is shown in Figure 8a. However, users cannot delete a listing that has already been sold. Once an item has been sold, the ”Sell Item” button will be replaced with ”Sold” for that particular item. This is shown in Figure 8b. Figure 8: My Listings
- Items Sold View: On this page, as depicted in Figure 9, sellers can view the items that have been successfully sold through ResAuc. It includes details such as the item information and the final selling price. This helps users keep a record of their transactions for reference. Figure 9: Items Sold
- Items Bought View: Buyers can use this section to view the items they have purchased through the platform. It includes information about the item and the price that the item was bought for. This is shown in Figure 10. Figure 10: Items Bought
Future Work
Future developments to ResAuc will focus on addressing current issues and improving the user experience even further. The following are important areas for improvement:
- Identity Verification: To lower the risk of fraudulent activities, implement mechanisms to verify the identity of both buyers and sellers to authenticate their legitimacy.
- Seller Bidding Restrictions: Put limitations to prevent sellers from using several accounts controlled by the same user to bid on their own listings. This could involve identity verification techniques or IP-based tracking.
- Payment Gateway Integration: To manage transactions between the buyers and sellers, integrate a secure payment gateway.
Conclusion
In conclusion, ResAuc effectively uses ResilientDB’s features to meet the demand for a decentralized, transparent, and secure online auction platform. The platform enables users to conduct transactions directly by eliminating the need for intermediaries.
The backend plays an essential role in managing transactions, keeping track of auction records, and ensuring secure communication between users and the blockchain database. The React.js based frontend, integrated with ResVault for authentication and transaction validation, ensures seamless user interactions and real-time updates. Users can easily create listings, place bids, and manage their auctions with the frontend and backend working together to provide an effective system.
While ResAuc accomplishes its main objectives, it also identifies areas for improvement, such as improved fraud detection, identity verification, and additional user-focused features. ResAuc demonstrates how blockchain-based solutions may revolutionize conventional auction systems and open the door to innovative, transparent, and safe e-commerce ecosystems.
Contributions
- Shreyas Shah (Frontend + Database Engineering): React.js Frontend Skeleton, Database Architecture, ResVault Integration with React.js, Integration of Web App
- Dhairye Gala (Backend Engineering): Node.js with Express.js Backend, Integration of Web App
- Shray Arora (FullStack Engineering): Node.js with Express.js Backend, Frontend Skeleton
- Himanshu Nimonkar (Frontend Engineering): React.js Frontend Beautification, Feature Additions, Integration of Web App
- Sayali Lokhande (FullStack Engineering): Database Architecture, Node.js Final Fixes, ResVault Integration
References
[1] B. Liu, ”Overview of the Basic Principles of Blockchain,” 2021 International Conference on Intelligent Computing, Automation and Applications (ICAA), Nanjing, China, 2021, pp. 588–593, https://doi.org/10.1109/10.1109/ICAA53760.2021.00108
[2] E. Chiquito, U. Bodin, O. Schel´en and a. Ahmed Afif Monrat, ”Digitalized and Decentralized Open-Cry Auctioning: Key Properties, Solution Design, and Implementation,” in IEEE Access, vol. 12, pp. 64686–64700, 2024, https://doi.org/10.1109/ACCESS.2024.3395791
[3] Suyash Gupta, Sajjad Rahnama, Jelle Hellings, and Mohammad Sadoghi. 2020. ResilientDB: Global Scale Resilient Blockchain Fabric. Proc. VLDB Endow. 13, 6 (feb 2020), 868–883, https://doi.org/10.14778/3380750.3380757
[4] Market, “Online Auction Market Size, Share — Trends Analysis Latest,” Marketresearchfuture.com, 2023. https://www.marketresearchfuture.com/reports/online-auction-market-22699
[5] Agarwal, Udit & Rishiwal, Vinay & Tanwar, Sudeep & Yadav, Mano. (2023). Blockchain and crypto forensics: Investigating crypto frauds. International Journal of Network Management. 34. 1–32. https://doi.org/10.1002/nem.2255
[6] ”Mohammad Sadoghi — ExpoLab”, Expolab.org, 2023. https://expolab.org/
[7] E. S. Lab, “Getting started with ResVault — incubator-resilientdb-blog,” Resilientdb.com, Sep. 21, 2023. https://blog.resilientdb.com/2023/09/21/ResVault.html (accessed Dec. 06, 2024).