
applied sciences Article Rentable CDN Using Blockchain and Proof of Provenance Suah Kim 1,* , Vasily Sachnev 2 and Hyoung Joong Kim 1 1 Department of Information Security, Institute of Cyber Security & Privacy, School of Cybersecurity, Korea University, Seoul 02841, Korea; [email protected] 2 Department of Information, Communications and Electronic Engineering, Catholic University of Korea, Bucheon 14662, Korea; [email protected] * Correspondence: [email protected] or [email protected] Received: 15 July 2020; Accepted: 18 September 2020; Published: 20 September 2020 Featured Application: Rentable content delivery network with proof of provenance provides s p2p based content distribution network infrastructure that supports content control, is less vulnerable to variety of collusion attacks, and provides faster content transfer speed. Abstract: Building a rentable content delivery network (CDN), a p2p based CDN that supports content control and is composed of hardware rented from consumers, requires significant trust between the renters and consumers. The proposed method solves this using a Blockchain to provide transparency in running the network, and proof of provenance, a verifiable proof origin of the content that is used to determine who can get paid for their services to discourage malicious activities. Keywords: blockchain; content delivery network; proof of provenance; rentable CDN; p2p based CDN 1. Introduction Internet is an ever-growing network infrastructure that connects users from all around the world. With the growing adoption of personal computers and various mobile devices that connect to it, the number of accessible contents has increased as well. This meant that the sudden spike in request for a particular content has become a common occurrence and services can stop suddenly due to high load [1]. To make the contents accessible even during the sudden peak period, content delivery network (CDN) is developed. CDN solves this issue by replicating contents and redirecting content requests to ensure that the service can function uninterrupted. CDN’s performance boils down to its replication and redirecting capability [2]. For effective content replication, following three questions need to be answered: which contents should be replicated, how much replications are required, and where to place the CDN servers that will be replicating and delivering the contents. Determining which content to replicate can be further broken down to whether to replicate the content fully or partially. This is because a content is usually composed of several files. For example, a website (content) may contain HTML files, image files, and functional codes such as JavaScript. Replicating parts that are unique to the content such as HTML files will have smaller benefit, whereas images or functional codes that are common to other contents will have bigger benefit. The identification of such files can be achieved by clustering individual files based on a metric such as the of time delay reduction measurement to delivery contents [3,4]. Then, replication priority per cluster can be determined using the same or similar metric. On the other hand, finding the optimal level of replications (how much to replicate) is known to be an NP-hard problem [5]. Instead of trying to find the optimal level of replications, heuristic Appl. Sci. 2020, 10, 6570; doi:10.3390/app10186570 www.mdpi.com/journal/applsci Appl. Sci. 2020, 10, 6570 2 of 14 methods such as global greedy algorithm are used to find the sub optimal solution. Refs. [6,7] focused on finding a set of replication levels per object that guarantees a certain delivery performance. More advanced work incorporates other CDN specific data such as location of CDN servers, and distance between CDN servers to determine the level of replications [8,9]. Finally, there is a question of where to place the CDN servers. This question can be reformulated to solving the optimization problems like minimum k-median problem [10], k-HST problem [11], and set-cover problem [12]: the placement of CDN is optimized with respect to the cost function, where the cost function uses inputs such as set of possible locations for CDN, workload, latency, and other information derived from CDN. Using the aforementioned work, one can build a fast, reliable and scalable CDN. However, building and managing a globally connected CDN infrastructure is costly and difficult. To remove the need for individual businesses to build and maintain a global CDN, cloud-based CDN such as Google Cloud and Amazon CloudFront have emerged to provide a fast and scalable infrastructure that can be configured and bought over online [13]. In addition to the ease of usage, cloud based CDN hardware is regularly upgraded and maintained by the CDN service provider. Despite the advantages, CDN services are costly and the inherent high barrier to enter the CDN market promotes centralization, censorship, and market oligopoly. To reduce the cost of building and maintaining the CDN, there has been work that utilize user’s existing hardware to build a globally connected CDN. Unlike the traditional CDN that uses server client model, where dedicated CDN servers deliver contents to users, this type of CDN uses peer to peer (p2p) communication to deliver contents from a set of users to a user. This is referred as p2p based CDN. The key feature of p2p based CDN is that users can deliver contents using the resources they already own. The communication within the network is passed from a peer to a peer, thus it is designed to allow anyone with the hardware to participate, making the network easily scalable. It also means that searching requires more efforts than server client model-based networks because there is no centralized server that keeps the locations of the contents. The most obvious method to search a content in p2p network is called flooding. This is where the search request is sent out to all the connected peers and the requests are relayed to their peers until the content is found [14]. More advanced version of flooding improves upon how the contents and peers are indexed. Improvements in content indexing reduces the search space while the improvements in peer indexing allows for more efficient way to keep track of which peers have which contents. The most famous one is called Kademlia DHT system. In this system, pieces of contents and the peer associated with having that piece is stored as a keyword and a string which resembles the hash of the keyword, respectively [15]. Thus, searching for content becomes faster and the network overhead is reduced greatly. Although it has many benefits, p2p based CDN lacks many global features, such as caching, content moderation, load balancing, financial incentive, and reliability. Although lack of reliability is a serious issue, since users can shutdown their hardware at any time and bring down the CDN, more important issue is that there is no payment system that can financially reward users for their content delivery efforts. Without the financial incentive, users may not have good reasons to participate in p2p based CDN for prolong period. With the rise in the development of technologies related to Blockchain, a new type of p2p based CDN became available: we refer to it as “rentable CDN”. In rentable CDN, the content is delivered using p2p communications and the content delivers are paid using decentralized payment system based on Blockchain. It provides affordable localized content delivery network for small and medium-sized content distributing companies without the expensive initial investment and risks from continued operation. It also provides income for consumers with what they already have, making the market fair, and promote fair pricing. The detailed explanation of existing work on rentable CDN is expanded in the next section. Appl. Sci. 2020, 10, 6570 3 of 14 The rest of the paper is described using existing Blockchain terminology and p2p protocols to aid with understanding, but the proposed method is not bound by a specific Blockchain or p2p software. 2. Limitations of Rentable CDNs The main problem for rentable CDN is finding a secure and trustable payment scheme based on p2p network usage. In traditional CDN, like cloud based CDNs, the user pays the CDN based on the network usage that CDN provides. On the other hand, payment is a bit trickier in p2p based CDNs like rentable CDN, because there is no third party that can verify the network usage. Figure1 graphically shows the payment process of the traditional CDN and rentable CDN. Payment in rentable CDN is determined using the claim and the acknowledgment made by the downloader and uploader, respectively. However, “claiming” you sent a content or conversely not acknowledging that you received a content is trivial. Usage Report CDN Downloader Content CDN Client Server Payment (a) Delivery Claim Payment Downloader Content Uploader Server Payment Delivery Acknowledgement (b) Figure 1. CDN usage based payment comparison. (a) charging based on CDN server network usage: content delivery cost is determined using measured usage reported by the server; (b) charging based on p2p network usage: content delivery cost is determined using delivery claim (Uploader) and delivery acknowledgement (Downloader). Existing work solve this by putting constraints on the content delivery process and penalizing malicious party. For example, SLIVER.TV (see the whitepaper published in https://www.thetatoken. org/, downloadable at https://s3.us-east-2.amazonaws.com/assets.thetatoken.org/Theta-white- paper-latest.pdf?v=1597976373.104) is the most recent state of the art p2p based CDN using Theta Network (Blockchain) with multi-level BFT as the consensus mechanism. Figure2 graphically describes how the payment is transferred. First, the downloader makes a deposit to Blockchain in the case of double spending, then they send a partially signed payment receipt to all the uploaders. When the uploader sends a part of the content to the downloader, the downloader sends another partially signed payment receipt.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages14 Page
-
File Size-