Upfire Whitepaper

1. Introduction

1.1 Abstract

Upfire is a peer-to-peer (P2P) distributed file-sharing platform designed at its core to enhance the way files are shared between users. By decentralizing the file-sharing process, Upfire completely removes the middleman and allows users to directly exchange information via the blockchain network. Upfire utilizes the Binance Smart Chain (referred to as BSC) ecosystem as its primary platform for transaction-processing [11]. It is important to distinguish between Binance Chain, which does not allow smart contracts, and Binance Smart Chain, which does. With 5-second block times, support for EVM-compatible smart contracts, and optimization for scaling high-performance dApps that require fast and smooth user experience, BSC is a great chain for Upfire, which requires speed and low fees.

By encrypting files and allowing nodes to communicate directly, Upfire can function as a fully- decentralized exchange for files and value transactions - allowing users to download or seed their own files at will. Distributed networks are able to collaborate in a trustless manner without a single point of failure [1]. In addition, smart contracts regulate all transactions by overseeing the encryption of files, verifying proof-of-ownership, and guaranteeing a seamless transfer of value. The use of smart contracts allows for the objective management of transactions without requiring authoritative supervision. The emergence of these technologies have reflected a much greater attitude shift towards the use of the internet – the growing preference for decentralized, trustless applications over centralized, third-party-controlled services.

This paper seeks to provide an overview of the Upfire protocol and explain its underlying technology and functionality in detail. We will break down the application’s key components, compare it to existing non-blockchain P2P file-sharing applications, and explain how Upfire’s unique approach to decentralized, contract-driven incentivization seeks to transform the blockchain file-sharing space.

2. Upfire’s P2P Decentralized Network & Its Use Cases

Upfire emphasizes connecting and communicating as a means of creating value.

Intellectual John Quiggin once emphasized the largest breakthroughs happen when people can freely share and communicate within communities:

Throughout the history of the internet, most of the innovation has come as a byproduct of efforts to facilitate communication within social groups of various kinds (academics, bloggers, peer-to-peer file sharing), rather than as the result of profit-oriented investment. Rather than taking the lead, the business and government sectors have adopted innovations developed in Internet communities, and realised significant productivity gains as a result.

2.1 A New Way to Envision File-Sharing

What if you could bring everyday file-sharing to the worldwide free market and allow users to freely exchange files on a decentralized marketplace? This was the idea that set Upfire into action. The file-sharing industry has long been a victim of shutdowns, government interference, and strict regulations stemming from centralization, and Upfire seeks to end this and achieve protection through decentralization. By creating a fully decentralized, P2P dapp, the file- sharing process can be enhanced significantly.

P2P Architecture

By removing the central server and allowing nodes in the network to communicate directly without outside interference, Upfire aims to revolutionize the way the world thinks about file-sharing. Disrupting this market is a multibillion-dollar venture. In the long-term, Upfire aims to become the leading file-sharing platform for users around the world. The network utilizes redundancy and breaks files into fragments that are distributed across the network, further strengthening security, and all code is open-source as well [1].

2.2 Upfire Tokens – A Brief Overview

Upfire (UPR) tokens are part of the core of Upfire’s incentivization protocol. Users can “spend” BNB (or any currency we choose to add in the future) in exchange for files being offered by other users on the network, and UPR stakers will receive a portion of this BNB. To accumulate UPR, users can also share files with the network (seeding) and be rewarded with UPR each time their file is downloaded. UPR can also be acquired on numerous cryptocurrency exchanges on the web, and will be directly exchangeable for BNB and Ethereum. Several other networks could be added later down the road, giving users a choice on how to pay for the file they are downloading and decrypting.

2.3 Uses Cases

Users take full responsibility for their usage of the Upfire dapp. Some use case examples include university students sharing large documents with one another without the file-size limitations of services like Dropbox, artists sharing their own music, writers sharing their work, and programmers releasing applications/browser extensions. In each of these cases, users will proactively accumulate UPR tokens as a reward for using the network. Because the community is in full control of the platform, the possibilities for growth are endless.

2.4 NFTS and Upfire

The early versions of Upfire will not support NFTs, but later versions will likely integrate them. A user will need to hold a specific NFT in their wallet in order to be allowed to decrypt and access a file, thus taking the place of the “file price”. An additional file price could be added to this as well, ensuring the user holds the NFT of note and requiring further payment. This expands the potential use cases for Upfire significantly.

2.5 Incentivization of file-sharing and seeding protocols

Incentivization of file-sharing and seeding protocols

Perhaps one of the greatest solutions that Upfire offers to the current state of file-sharing is the incentive to seed files. Traditional torrent and file-sharing programs offer no incentive to seed files after a download is completed, often resulting in long download times for users or the complete inability to download files altogether [2]. By tokenizing this aspect of the file-sharing protocol, users can download huge amounts of information from the network at very little cost, while providing passive rewards to those who choose to seed and share their files with the network. We have tested this protocol at scale with over 100 seeder on several files, and download speeds continue to increase even at that scale. This means that the Upfire file-sharing system, which is incentivized by BNB in the initial version (further networks to be added later), could scale exponentially and will benefit from large-scale use rather than crumble to it, like a server would.

2.6 Decentralization as core-component of file-sharing

It is our strong belief that file-sharing should be decentralized and utilize blockchain technology for maximum security. Traditional file-sharing protocols are vulnerable to breaches of security and shutdowns that will be non-issues for Upfire users [4]. Because the network will be entirely decentralized and run on the BSC blockchain, there is no central point of failure - making the network extremely resilient and reliable [11]. Our governance system- to be discussed below and set to launch after the dapp’s initial launch, will further allow the community to dictate where Upfire heads in the future.

3. The Application

3.1 Features

Upfire will employ several technologies to create a successful peer-to-peer system:

  1. Distributed Hash Tables (DHTs) - used to keep track of metadata within peer-to-peer systems

    • Kademlia DHT - allows for high-speed lookups - queries on average log2(n) nodes, with optimization of the number of controlled messages sent to other nodes and a high level of security. Currently used in some of the largest P2P applications (BitTorrent).

    • S/Kademlia DHT - creates PKI key pairs for nodes and allows for signed messages between them. This adds an extra layer of security to Kademlia DHT.

  2. Block Exchanges - allows for peers to trustlessly distribute pieces of files to each other. This technology can track the availability of file pieces and order them efficiently.

  3. Node Identities - Nodes will be identified by a node_id, which will be cryptographically hashed to create a public-key through S/Kademlia’s protocol. Nodes first exchange public keys on initial contact.

  4. Network - Upfire uses a hash checksum to check the integrity of messages, and can provide reliability through uTP (LEDBAT) or SCTP

  5. Smart Contracts – UPR as a distributed ledger - upon successful completion of our proof-of-transfer protocol, BNB tokens are sent from the downloaders BSC wallet to the seeders’ and stakers’ wallets across the blockchain.

3.2 How BNB from Decryptions is Distributed Amongst Seeders and Stakers

Using Upfire, users can earn BNB coins by seeding files that are actively downloaded and decrypted by other users in the network. Downloading a file to seed is free, but in order to access its contents the file must be decrypted. Decrypting a file requires BNB, in an amount set by the original seeder of a file. UPR used to decrypt a file is paid out to all seeders of a file in the following manner:

If a file has one seeder - the original file uploader/seeder, that seeder receives 100% of the UPR from file decryptions.

If a file has multiple seeders, payouts are more complex. The original seeder of a file is always entitled to 50% of the UPR from download/decryptions, and will receive this payout regardless of whether or not they are online during downloading/decrypting.

Once the feature is added, UPR stakers will split 5% in proportion to how much UPR they are staking relative to others. All other seeders of a file will split the remaining 45% of the UPR from the decryption.

There are two classes of seeders in the Upfire ecosystem: those who have decrypted the file themselves (paid), and those who have not (free). Paid seeders receive 3x the amount of UPR from file decryptions compared with free seeders. As a result, a file with 3 seeders - the original seeder, 1 paid, and 1 free, that costs 1 BNB, will have a payout that looks like this:

Without staking:

Original Seeder: 0.5 BNB

Paid Seeder: 0.375 BNB

Free Seeder: 0.125 BNB

With staking:

Original Seeder: 0.5 BNB

Paid Seeder: 0.3375 BNB

Free Seeder: 0.1125 BNB UPR Stakers: 0.005 BNB

As a result, if you plan to seed a file long-term, it makes sense to decrypt a file and become a paid seeder in order to continue supporting the network and maximize your earnings. As a bonus, you will also gain access to the content itself.

When you earn BNB from seeding, it will credited to the smart contract section of your application. If you would like to send the BNB from the smart contract to your wallet, you can click the withdrawal button.

3.3 Proof-of-storage, Proof-of-transfer & Decryption Keys

Proof-of-storage (also known as proof-of-space) protocols are periodically run to check for changes on the network and to authenticate seeded files. Proof-of-transfer protocols consist of several smaller methods that run during each step of the file-transferring process to ensure that transactions are completed in their entirety [6]. Both proof-of-storage and proof-of-transfer results are published to the blockchain and all transactions will be verifiable, ensuring that BNB or any other payment tokens are transferred successfully before the seeder sends the decryption key back [8].

4. Roadmap

Roadmap

5. Use Cases and Tokenomics of UPR

5.1 Upfire Tokens (UPR) – Smart tokens

Upfire tokens are for sole use on the Upfire network. Users should not buy Upfire tokens with the expectation of profit.

Upfire tokens (UPR) are BEP-20 and ERC-20-standardized tokens used to control the Upfire network. Upfire tokens may be bridged onto other chains in the future as well.

5.2 UPR Token Distribution

Total: 1,000,000,000 UPR

Circulating Supply as of February 3rd, 2022: 195,670,017 UPR

  • 240,000,000 UPR transferred from UFR -> UPR bridge, which generates UPR at a rate of 1 UFR : 10 UPR

  • 260,000,000 UPR for liquidity, farming, staking, and exchange listings

  • 200,000,000 UPR for OTCs, investors, partnerships, and marketing

  • 200,000,000 UPR reserved for paying team members (developers, marketers, etc)

  • 100,000,000 UPR reserved for decentralized treasury and governance voters:

    • Year 1: 50,000,000 UPR maximum released
    • Year 2: 30,000,000 UPR maximum released
    • Year 3: 20,000,000 UPR maximum released
    • Year 4 and onward: Decentralized treasury will have minting ability to mint a specific amount of UPR each year, determined through a governance vote. There will be a maximum amount of UPR that can be generated each year by the decentralized treasury, which will keep inflation at a healthy rate likely between 5% and 15% depending on the project’s needs.

Most UPR will slowly enter circulation over a 3-5 year period through liquidity mining, community events, exchange listings, and the other methods mentioned above. After this time, it is expected that the decentralized treasury will control the dispersal of any future UPR funds.

5.3 UPR Token Holder Governance

UPR token holders will run the project through governance. Users will be able to vote on proposals to:

  • Develop and add new features to the application, and choose the order in which these features are developed

  • Ask governance for UPR from the decentralized treasury for event-planning, development progress made on the open-source dapp, bug bounties, or any other reason- ultimately to be decided by governance

  • Control the inflation rate of the UPR token by setting a maximum number of tokens that can be generated over a 1-year period, if any. This may not be needed in Years 1-4 as there should be enough tokens in the reserves designated for development, marketing, and other activities. As time goes on, we want the token to become more decentralized, so after year 3 ends governance will manage the entire project’s trajectory.

  • Governance APR for participating in proposal voting can be determined via a proposal.

  • The governance and dapp staking contracts may be combined if possible so the user can simply stake their tokens in a single smart contract.

  • Overall, there will be a set of approximately 7-12 functions that UPR governance voters can call upon in order to alter various aspects of the project’s path forward.

6. Examples and Illustrations

A main focus of Upfire will be ease of use for the end user. Many blockchain applications are incredibly complicated to set up and get running - we want Upfire to work right out of the box for everyone, on any device.

6.1 Upfire vs. Traditional P2P File-Sharing Services

Upfire will share and support many of the common features of modern-day P2P file-sharing applications. However, Upfire offers several inherent features that make the application more powerful than that of major competitors. Through token-incentivized file exchanges and file encryption, file-transfers will be both easier to carry out and safer for the average user. Rather than paying a subscription fee or “purchasing” files, BNB tokens are simply sent to the network to power file-transfers, which then initiates the movement of those files amongst nodes. Upon completion of the transfer, all seeders are then credited with BNB in the proportions mentioned above in Section 3.2.

OSI model

6.2 Network Reputation & Rating System

As a decentralized application, a rating system will be necessary either in the application or on third party sites to establish trust between clients and hosts. The rating system for both files and users will also improve the quality of transactions on the network. After receiving a file, users will be able to submit an optional, public trust rating and feedback for the user that will be visible to all other users on the network who aim to download this file from that same seeder in the future. This will help keep the network free of any unwanted or untrustworthy activity. As a second layer of defense, algorithms to detect and test potentially malicious files will be employed to mark these types of files with the appropriate warning.

6.3 Security

Encryption wraps each file securely throughout its entire transfer process across the network, keeping its contents safe until it is reassembled and unlocked at its final destination node. As such, all aspects of the file will be completely unreadable to anyone not directly involved in the transaction between the seeder and downloader [5]. This protocol protects the integrity and anonymity of the Upfire network as a whole and allows for file movement to be completely decentralized and peer-to-peer.

6.4 Integration & Compatibility

The Upfire Desktop Application will be available for Windows, MacOS and Linux operating systems with full functionality. Our dapp is starting out on BSC but may migrate to another chain at any time. If the application scales to the point where the blockchain can no longer handle the traffic, we may also extend two-way compatibility to private sidechains that allow our dapp to scale [9].

7. Algorithms and Transactional Data

7.1 File Smart Contracts

Two types of contracts will be distributed across the network - a contract to facilitate the movement of files between peers, and another to manage the exchange of UPR. Each file employs a Merkle root hash by breaking down the file into segments (of constant size) and forming a Merkle tree. File smart contracts store file size information that can be used to determine the BNB/UPR price, among other variables, between the seeder and their client. Transaction smart contracts will explicitly specify payout parameters and facilitate the exchange of UPR tokens. As development progresses, we plan to support customizable community- driven smart contracts to allow users to create and adjust parameters themselves, and provide their own Post, Get, Put, and Delete methods [10].

7.2 Proof-of-Storage and Signatures

Upfire utilizes a storage-proof transaction system in conjunction with file contracts. The proof data, along with the contract’s ID are obtained in order to validate and confirm proof-of-storage [7]. Transactions feature a variety of inputs that must be included in the file’s signature before any action can take place on the network. The cryptographic signature includes an input ID, precise time data, and parameters to indicate which parts of the transaction have been signed thus far [3].

7.3 Storage Algorithm

Storage can be proven by breaking down a piece of the original file (obtaining a random piece of the file each time) and obtaining its hash list from the Merkle tree. This proof is then submitted to the blockchain and marked as valid or invalid. The algorithm used to validate storage is: CHF (contract ID || CHF (FB ) where CHF is the cryptographic hashing function and FB is the first block prior to the start of the challenge algorithm.

8. Summary

Upfire is an innovative upgrade to modern-day P2P file-sharing technologies and seeks to revolutionize the industry. We firmly believe that file-sharing should be decentralized and incentivized, and that the adoption of a blockchain and cryptocurrency for these purposes provides a huge potential for future growth. Incentivizing the file-sharing process will allow our network to grow at an exponential pace and ensure a competitive decentralized marketplace is established. The use of smart contracts will allow transactions to be verified and recorded on the public blockchain so that any disputes can be solved easily within the Upfire community. We believe Upfire will be the pioneer of incentivized blockchain file-sharing and are enthusiastic about establishing this platform in a trustless environment.

9. References

[1] J. H. Howard, M. L. Kazar, S. G. Menees, D. A. Nichols, M. Satyanarayanan, R. N. Sidebotham, and M. J. West. Scale and performance in a distributed file system. ACM Transactions on Computer Systems (TOCS), 6(1):51–81, 1988.

[2] B. Cohen. Incentives build robustness in bittorrent. In Workshop on Economics of Peerto-Peer systems, volume 6, pages 68–72, 2003.

[3] D. Mazieres and F. Kaashoek. Self-certifying file system. 2000.

[4] Juan Benet. IPFS - Content Addressed, Versioned, P2P File System. 2014.

[5] I. Baumgart and S. Mies. S/kademlia: A practicable approach towards secure keybased routing. In Parallel and Distributed Systems, 2007 International Conference on, volume 2, pages 1–8. IEEE, 2007.

[6] Ari Juels and Burton S Kaliski Jr. Pors: Proofs of retrievability for large files. In Proceedings of the 14th ACM conference on Computer and communications security, pages 580–610. Acm, 2007.

[7] R.C. Merkle, Protocols for public key cryptosystems, In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 100-142, April 1980.

[8] Hovav Shacham and Brent Waters. Compact proofs of retrievability. In International Conference on the Theory and Application of Cryptology and Information Security, pages 75– 115. Springer, 2008.

[9] Adam Back, Matt Corallo, Luke Dashjr, Mark Friedenbach, Gregory Maxwell, Andrew Miller, Andrew Peolstra, Jorge Timon, Pieter Wuille, Enabling Blockchain Innovations with Pegged Sidechains.

[10] Janne, Author & Supervisor, Julkunen & Ylianttila, Mika. Feasibility of Convergent P2P and Web Service Architecture, 2022.

[11] Binance. Binance Chain Documentation https://docs.binance.org/, February 2022. URL https://docs.binance.org/.

10. Resources

Connect with us Website | https://upfire.com

Telegram | https://t.me/upfireofficial

Discord | https://discord.gg/jTGu2zK

Twitter | https://twitter.com/UpfireHQ

Facebook | https://www.facebook.com/upfirehq

Dapp | https://github.com/UpfireHQ/upfire

UPR Code | https://github.com/UpfireHQ/UpfireToken

Medium | https://upfire.medium.com

Reddit | https://reddit.com/r/upfire

LinkedIn | https://www.linkedin.com/company/upfireofficial/

Pancakeswap: pancakeswap.finance/info/token/0xf720e38f678b29b243f7d53b56acbf5de98f2385

Uniswap: v2.info.uniswap.org/pair/0x9c5fd4596f910cdd4fdd2ffd64b9f0e2d87ec624

Bscscan: https://bscscan.com/token/0xf720e38f678b29b243f7d53b56acbf5de98f2385

Etherscan: https://etherscan.io/token/0xf720e38f678b29b243f7d53b56acbf5de98f2385

ETH + BNB Contract: 0xf720e38f678b29b243f7d53b56acbf5de98f2385

Contact Address: Email: support@upfire.com

This document defines the Whitepaper to be used for the Upfire project.