CVT: A Crowdsourcing Video Transcoding Scheme Based on Blockchain Smart Contracts

Streaming media has been largely used by millions of users every day. The number of customers and programs, e.g., TV series, movies, and various shows, are still growing fast. However, the demand for video transcoding for various personal terminal devices results in the shortage of computing resources and the prolongation of processing delay in centralized video transcoding systems. To solve this issue, we propose a blockchain, especially, smart contract based scheme that can achieve decentralized and on-demand crowdsourcing for video transcoding, which remarkably mitigates the transcoding overhead. Specifically, our scheme consists of four key components such as employers, workers, task allocation, and payment. An employer initializes the smart contract, releases the task, and initiates the smart contract. Workers bid for the task, and the successful bidder will obtain the task and execute the task. The task allocation mechanism and the payment mechanism can guarantee the profits of both and encourage both as well. Moreover, the smart contract consists of the bidding contract and the task execution contract. The extensive analysis of our proposed scheme justified the feasibility, security for defending against typical threats, applicability in realistic situations, and portability for most multimedia such as videos and audios.


I. INTRODUCTION
Recently, streaming media such as Netflix, Disneyland+, and Twitch attract increasing subscribers since it enables conveniently and pervasively video accessing. However, current streaming media still imposes several inevitable problems. The most critical issue is to guarantee the efficiency of video transcoding during the video transmission process in the centralized systems. The sharp increment of the number of users and videos requires more computation resources for video transcoding, which may slow down or even terminate the process of video transcoding and so as to remarkably damage the user experiences.
The associate editor coordinating the review of this manuscript and approving it for publication was Chuan Heng Foh .
In order to solve the weaknesses of current centralized systems, crowdsourcing is proposed as a promising approach. Crowdsourcing is a modern business model to distribute the assignments to the volunteers. For example, a company can hardly complete a mass of processing and computing work (e.g., video transcoding) due to the limit of several factors, such as computation resources and the performance of the devices. Because of the characteristics of crowdsourcing, it is an efficient and beneficial way to solve this problem. But we still need to think about how to protect the interests of each entity during the crowdsourcing process while maintaining the efficiency of crowdsourcing.
Researchers have proposed some methods to implement higher efficient video transcoding approaches [1]- [3], and other scholars have proposed applying crowdsourcing to deal with the drawbacks of centralized systems [4]- [6]. Also there are several methods presented to solve the common issues in the multimedia field [7]- [9]. According to the work mentioned above, we consider using blockchain-based Ethereum (ETH) smart contracts to achieve a novel crowdsourcing video transcoding mechanism for improving the efficiency of video transcoding that can reduce the stress of the centralized systems and also create profits for crowdsourcing volunteers.
The contributions of our work in this paper are shown as follows: • We propose four essential components for achieving crowdsourcing video transcoding tasks, including the employer, the worker, the task allocation mechanism and the payment mechanism.
• We design a kind of smart contract combined with our proposed four components that can realize the bidding function and task execution function at the same time during the crowdsourcing video transcoding process.
We will introduce the related work in Section II. The proposed scheme and the detailed design are shown in Section III. The analysis of our scheme is illustrated in Section IV. The experimental results are shown in Section V. Finally, we will conclude our paper in Section VI.

II. RELATED WORK
We divide related work into three categories according to the domain and characteristics of the work and we will introduce these three classifications respectively below.

A. VIDEO TRANSCODING
Koziri et al. [10] investigated the current situation of the development of video transcoding related cloud service and summarized challenges and future opportunities. The Cloud-based Video Streaming Services (CVS2) is presented by Li et al. [11] for enhancing the robustness of the system while keeping the cost of the service provider from fluctuating significantly when users use cloud services for video on demand. Liu et al. [12] proposed a blockchain-based mobile edge computing (MEC) architecture, which offers video streaming distributedly and securely for blockchain based video transcoding architecture to satisfy the demands of the customers.
Also, Costero et al. [1] proposed using a multiagent machine learning based method to achieve dynamic optimization during the video transcoding process to greatly improved service quality and reduced power consumption. Jiang et al. [2] presented an enhanced architecture for dealing with the problems in large-scale video transcoding in the public cloud through the application of the message queue layer. He et al. [3] proposed a new framework called CrowdTranscoding that utilizes the surplus of personal terminal computing resources to execute video transcoding tasks. And they also put forward Viewer Crowdsourcing Transcode Scheduler (VCTS) to solve the issues of workload during the task allocation.
Furthermore, Wei et al. [13] proposed a cloud-based online video transcoding system (COVT) targeting at providing the quality-of-service and economical solution for large-scale video transcoding that they also performed simulation evaluation to verify their proposed scheme. Yoon et al. [14] proposed to run a low-cost video transcoding scheme on the edge of the wireless. Comparing with using costly server-based transcoding, they designed a transparent, low-cost, scalable video transcoding system that is realized on a hardware Raspberry PI at a low cost.

B. CROWDSOURCING
The concept of crowdsourcing was put forward earlier by Howe [15] which contributes a lot to the establishment of the distributed task assignment system for various demands. Then, Vukovic [16] took crowdsourcing in the field of software development as an example, deduced the need to provide general crowdsourcing services in the cloud environment, and made crowdsourcing further developed. Moreover, Estellés-Arolas and González-Ladrón-De-Guevara [17] modified definition of crowdsourcing, established the basic characteristics of crowdsourcing and presented a more complete and consistent definition of crowdsourcing.
Chittilappilly et al. [5] did an investigation, the goal of which is to provide a comprehensive picture of the current state of general crowdsourcing technology. On the basis of their concerns, the works are divided into three parts that are incentive design, task assignment and quality control respectively. In the similar way, Mao et al. [18] did a survey that investigated the application of crowdsourcing in software engineering and concluded the challenges, opportunities and future trends of crowdsourcing. Garcia-Molina et al. [19] provided an overview of data crowdsourcing and the processes involved collecting, managing, and analyzing the data, and described the essential design steps when implementing a crowdsourced scheme.
As crowdsourcing evolves, many researchers proposed novel methods to apply crowdsourcing. For example, Chatzimilioudis et al. [20] proposed applying smart phones to implement the crowdsourcing according to the typical characteristics of the smart phone. Chawla et al. [4] studied the design of crowdsourcing and analyzed the approximation of optimal crowdsourcing competitions. Additionally, they presented a scheme of the optimal crowdsourcing competition that reflects the optimal auction design theory. Franklin et al. [6] the proposed CrowdDB solves the problem that neither database systems nor search engines can adequately answer by crowdsourcing human input, and they also put forward an important way to develop crowdsourced query processing systems in the future.
Gu et al. [21] proposed a distributed online crowdsourcing mechanism based on smart contracts, the characteristics of which are decentralized, unalterable, and truthful. Kittur et al. [22] proposed a generic framework utilizing microtask markets for crowdsourcing complex and VOLUME 8, 2020 interdependent tasks, and described the framework and analyzed the advantages and flaws of the scheme. Crow-dAsm proposed by Pan et al. [23] that is useful for collaborative crowdsourcing systems to maximize the quality of expected results, at the same time, minimizing expected delays by combining the expertise of available workers. Also, Tong et al. [24] and Wang et al. [25] proposed a scheme for large-scale crowdsourced task decomposition and a human-computer hybrid to improve crowdsourcing efficiency respectively.

C. BLOCKCHAIN FOR CROWDSOURCING
Blockchain has emerged in recent years, several researchers combine this new technology with crowdsourcing according to the characteristics of them.
Feng and Yan [26] proposed a blockchain-based mobile crowdsourcing chain system to enable distributed and decentralized trust management to address the inefficiencies of traditional blockchain-based crowdsourcing systems, and a new block-generated consensus mechanism that significantly reduces computational overhead. A framework based on blockchain is presented by Han et al. [27] for sustaining crowdsourcing platforms. The proposed framework has two main advantages, one is the transparent incentives are provided by the framework, the other is trusted personal data can be shared in a cross-platform system. Kogias et al. [28] proposed applying blockchain and smart contract technologies to improve the existing crowdsourcing scheme from the perspective of security. Li et al. [29] proposed a decentralized CrowdBC framework based on blockchain, which can preserve the privacy of customers. ZebraLancer, a private and anonymous decentralized crowdsourcing system, is designed and implemented by Lu et al. [30], and the issues of data leakage and identity breach in the decentralized crowdsourcing system are solved. Wang et al. [31] developed an optimized blockchain-based architecture aiming at peer-to-peer energy transactions, for administering and managing the operation of crowdsourced energy systems (CES). Also, some scholars proposed their own ideas towards combing the blockchain with crowdsourcing [32]- [34].
Different from the proposed schemes above, we combine the crowdsourcing, the video transcoding and the blockchain smart contract to achieve a novel crowdsourcing video transcoding mechanism for solving the shortage of computing resources during the video transcoding process in the centralized system that can also prevent from the loss of participants' interests due to the common malicious behaviors.

III. PROPOSED SCHEME -CVT
In this section, we introduce the system model and workflow of the smart contracts based crowdsourcing video transcoding mechanism, in which the main roles and rules of the proposed scheme will be explained in detail. Before formulating the issue, we will show the notations used in this paper below in Table 1.

A. SYSTEM COMPONENTS
There are four essential components in our designed model that need to be presented and described here, including employers, workers, task allocation mechanism and payment mechanism. We will describe these components in detail as follow: • Employer. In a decentralized system, employers need to issue smart contracts for distributing crowdsourcing tasks for decreasing the computing resource consumption of video transcoding.
• Worker. The workers tend to receive and complete the task the employers publically issue in the decentralized crowdsourcing community for gaining profits. Any w j can choose any published task and propose its quotation with other required parameters for the task. We define the set of workers is S that includes s homogeneous workers with no correlation. Also, the structure of the quotation message of the workers from S can be formalized as the set M : In addition, we set the unit of M as: where m i,j is the information for the intention of the w j towards task e .
• Task Allocation Mechanism. We define W as the set of all workers who have successfully offered their prices in (T r , T r + D v ] for task e . After the time T r + D v , quotations are no longer accepted by the smart contract. Additionally, any worker who has joined W will be marked a tag j of a natural number according to the order. The default value of tag j is 0, for every one more w j that participates in the bidding, tag j plus one. Furthermore, C is the quotation set and T is the time duration set. After the employer initiates the task allocation mechanism, the strategy for selecting the successful bidder of task e is as follow: 1) If w j from S has offered its price in (T r , T r + D v ], then {w j } ∪ W → W ; Otherwise, refusing w j for joining W . 2) Assuming the task published by the employer can be completed, then the task allocation target is formulated below: where r is a parameter set by the employer for adjusting the weight between c i and t i according to the actual demands of the employer. 3) For each w j in W bidding for task e , if m i,j offered by w j can satisfy c i,j ≤ max p and t i,j ≤ max t , then maintaining w j in W ; Otherwise removing w j from W . 4) Selecting w j from W as the successful bidder that meets the condition w j = arg i∈S min bidder, marking the current W (the task allocation result) as W . c) If there are more than one w j from W are chosen, the final successful bidder is the worker that satisfies w j = argmin tag j . Then recording m i,j offered by the only w j in W i.e. the successful bidder, marking the current W as W .

5)
Updating the quotation set C and the time duration set T as c i,j ∪C → C and t i,j ∪T → T respectively according to m i,j that the successful bidder offered. 6) Recording the task allocation result W , the quotation set C, and the time duration set T as the promise of the successful bidder for task e by the smart contract.
• Payment Mechanism. It is easy to find out the successful bidder should be paid according to the task allocation result W . The payment mechanism is used to confirm the time and the amount that the successful bidder should be paid. We stipulate the payment result of the successful bidder for task e is P. On the basis of W , the payment mechanism is shown as follows: 1) The agreed delivery time for task e is determined as If there is no element in W , the employer does not need to pay, i.e. P = 0. 3) If w j exists in W , the successful bidder needs to complete task e before T d : a) If the successful bidder completes task e before T d , the payment result P = c i,j . b) If the successful bidder fails to finish task e before T d , the payment result P = −P w .

B. SYSTEM OVERALL ARCHITECTURE
The main thought of our designed system is to combine the above four components and smart contracts for implementing crowdsourcing video transcoding. To enhance the connections among the above four components, we add more components, and our whole scheme is shown in Figure 1. The employer sets up the smart contract according to the specific requirements of the task that needs to be transcoded. Also, the smart contract includes the bidding part and the task execution part to ask for proper workers to complete the video transcoding task. Then the workers who are willing to accept the task can participate in the bidding. Finally, the smart contract will select a successful bidder from the bidding part according to the task allocation mechanism who will start the trading part with the employer then, at the same time the employer should release the corresponding task.
Moreover, the trusted third party is needed in the system to check the transcoded task join the arbitration committee, at the same time workers as the same number of the trusted third party will join the committee too. We will further introduce this designed part in Section III-G.
The next section focuses on the design of the smart contract in our scheme.

C. SMART CONTRACT DESIGN
The designed smart contract needs to satisfy two functions: one is bidding for the tasks marked as the bidding part, and the other is to ensure the process of the task execution between the employer and the successful bidder correct for guaranteeing the profits of both parties marked as the task execution part. The specific design of the smart contract is shown in Algorithm 1.
Besides, there are four steps for achieving crowdsourcing video transcoding on the basis of the designed smart contract, we will describe each process in the following sections in detail.

D. SMART CONTRACT INITIALIZATION
Before the smart contract starts to initiate the bidding process, the employer should upload the basic parameters of the bidding part which contain D v , max p and max t .

Algorithm 1 Smart Contract for Bidding and Task Execution
1: The employer uploads Q to the smart contract, ads A = E ads and m 0 = (max t , max p ); 2: The employer releases task e ; 3: The employer sends P e to the smart contract, T r = now and tag = tag j = 0; 4: while time ∈ [T r , T r + D v ] do 5: tag j = tag j + 1; 6: w j sends m i,j to the smart contract; 7: if c i,j + r · t i,j < c 0 + r · t 0 then 8: m 0 = m i,j ; 9: ads B = w j,ads ; 10: The successful bidder is ads B that needs to send P w to the smart contract to initiate the task execution; 21: ads B uploads Q to the smart contract and sends completed task e to the trusted third party; 22: if Q = Q & task e = true then 23: The smart contract sends P w to ads B and refunds P w to ads B and P e − P w to the employer; 24: else if Q = Q task e = false then 25: The employer sends a request to the smart contract; 26: The smart contract starts the arbitration mechanism; break; 27: else 28: The smart contract terminates the task execution; 29: The smart contract refunds P e to the employer; 30: The smart contract sends P w to the employer; break; 31: end if 32: end while Then, the employer should upload the requirements of the transcoding task and specific parameter standards that the worker needs to meet for the transcoding task to the smart contract for the task execution part. The parameters towards different video transcoding tasks include coding scheme, video bitrate, frame rate, audio sample rate, length-width ratio and container format. We mark these parameter standards related to video quality as Q (i.e. the employer uploads the requirements of the task and Q to the smart contract).
Also, the employer should send P e to the smart contract to launch the bidding and the task execution after the bidding. The amount of P e is equal to max p for protecting the rights and interests of workers.

E. BIDDING FOR THE TASK
After the employer initializes the smart contract and starts the bidding, the workers can see the employer's requirements, according to which the workers can choose whether to take part in the bidding. The process is shown in Figure 2.
For maximizing the interests of the participants, we follow the task allocation mechanism and payment mechanism mentioned in Section III-A, and the priority of (c i,j + r · t i,j ) is higher than tag j . From the bidding part of Algorithm 1 we can see that if any worker decides to join the bidding, the worker has to send its m x = (t x , c x ) to the smart contract, and the smart contract marks the current tag j to the worker. The address of the worker is w add .
Then the smart contract compares the m x = (t x , c x ) and tag j the worker offers with the current saved parameters m 0 = (t 0 , c 0 ) and tag. There are essential situations as follow during the time period (T r , T r + D v ]: 1) If c x +t x < c 0 +t 0 , the smart contract substitutes current m 0 to m x , current tag to tag j , and current ads B to w j,ads . 2) If c x + t x = c 0 + t 0 and tag j < tag, the smart contract reacts the same as the previous point. 3) If there are other situations, the smart contract preserves the current parameters. Besides, if there are no workers bid for the task until the time period is passed, the smart contract will refund P e to the employer and end the process. Otherwise, the worker corresponding to ads B is the successful bidder who will start the next process with the employer through the smart contract.
We will detailedly describe the task execution between the employer and the successful bidder through the task execution part of the smart contract in the next section.

F. TASK EXECUTION
After finishing the bidding part and choosing the successful bidder, the task execution part of the smart contract starts. The whole process of this part is illustrated in Figure 3 and the steps of task execution part are shown as follow: 1) The successful bidder sends P w to the smart contract and the amount of P w is equal to c x that the successful bidder announced in the bidding part; 2) The employer randomly chooses a hash algorithm and uploads it to the smart contract; 3) The employer releases the task and and uses the selected hash algorithm to calculate the hash value of each video block and the hash value of each video block is marked as H b , then uploads H b and Q to the smart contract; 4) The successful bidder downloads the transcoding task and calculates the hash value of the task as H b by the hash algorithm selected by the employer: a) If H b = H b , the smart contract randomly sends one of the addresses of the trusted third party (marked as ads t ) for checking the transcoded video to the successful bidder and starts the transcoding task; b) If H b = H b , the successful bidder terminates the process, and the smart contract refunds P e to the employer and P w to the successful bidder.
5) The successful bidder calculates the hash value of each transcoded video block marked as H tb and uploads H tb and Q to the smart contract and sends the transcoded task to ads t : a) If Q = Q , the smart contract continues the process; b) If Q = Q , the smart contract terminates the process and sends P w as the compensation to the employer and refunds P e to the employer.
6) The trusted third party downloads the transcoded task from ads t and calculates the hash value of the transcoded video block marked as H tb and uploads H tb of the transcoded video blocks to the smart contract: a) If H tb = H tb , the smart contract sends P e to the successful bidder, and refunds P w to the successful bidder and P e − P w to the employer; b) If H tb = H tb , the smart contract terminates the process and raises a punishment to the successful bidder that sends P w as the compensation to the employer and refunds P e to the employer.

7)
The trusted third party sends the transcoded video to the employer, and the employer checks whether the content of the transcoded video block is correct before the time T d : a) If the content of the transcoded video blocks is correct, the employer terminates the task execution that means the task is completed. b) If the content of the transcoded video blocks is incorrect, the employer can send a request to the smart contract to launch an arbitration, and the smart contract will invite the arbitration committee to judge. c) If the current time exceeds T d and the employer has not sent any request, the smart contract terminates the process that means the task is completed. When the employer sends a request to the smart contract, the arbitration mechanism is activated to deal with the dispute between the employer and the successful bidder, and we will introduce the arbitration mechanism in the following section.

G. ARBITRATION MECHANISM
The arbitration mechanism consists of two parts: one is the arbitration committee, and the other is the rules corresponding to different situations that happen in the voting of the arbitration committee.
We introduce the composition of the arbitration committee at first. From Figure 4, we can see that the smart contract randomly requires the trusted third party and the same number of workers to join the arbitration committee. After that, each member of the arbitration committee will do as the steps below before the time T d , for realizing the arbitration mechanism: 1) The member downloads the original task released by the employer and calculates the hash value of the video blocks as H o : a) If H o = H b , the smart contract continues the process; b) If H o = H b , the smart contract searches for a new member to join the arbitration committee from the VOLUME 8, 2020 same party and repeats point 1) until the number of members of both parties is equal; 2) The member downloads the transcoded task uploaded by the successful bidder and calculates the hash value of the video blocks as H t : a) If H t = H tb , the smart contract continues the process; b) If H t = H tb , the smart contract searches for a new member to join the arbitration committee from the same party and repeats points 1) and 2) until the number of members of both parties is equal; 3) After verifying the original video blocks and the transcoded video blocks, the member of the arbitration committee can compare the content of these two tasks: a) If the contents of these two tasks are different, the member of the committee sends 0 to the smart contract; b) If the contents of these two tasks are the same, the member of the committee sends 1 to the smart contract; 4) The smart contract counts the number of 0 and 1 marked as num 0 and num 1 sent by the arbitration committee member and sends the feedback (see Figure 5) to each party according to the rules as follow: a) If num 0 > num 1 , the smart contract raises a punishment for the successful bidder that it sends P w to the employer as the compensation and refunds P e to the employer. b) If num 0 < num 1 , the smart contract raises a punishment for the employer that it sends P e to the successful bidder as the compensation and refunds P w to the successful bidder. c) If num 0 = num 1 , the smart contract refunds P e to the employer and P w to the successful bidder. After finishing the above steps, the crowdsourcing video transcoding task is completed. According to the different situations that happen during the process, we give the corresponding strategy towards dealing with them. In Section IV our scheme will be analyzed in detail on the basis of each essential part during the process.

IV. SECURITY ANALYSIS
In this section, we list several threats towards our system and analyze the security and the feasibility of our scheme. We analyze the system as three parts respectively the bidding part, the task execution part and the arbitration part.

A. BIDDING ANALYSIS
During the bidding, there are two essential issues that should be considered: 1) The dishonest quotation (including c i,j and t i,j ). a) c i,j the worker offers is too high. The employer sets max p before the smart contract starts for limiting the workers to offer a too high price that the employer can not afford. b) c i,j the worker offers is too low. If one worker offers a too low price, that means other workers will not compete with this task, and the worker will work for the employer and earns only little that almost makes no sense for the worker. c) t i,j the worker offers is too long. The employer sets max t before the smart contract starts for limiting the workers to offer too long time that the employer can not accept. d) t i,j the worker offers is too short. If one worker offers too short time and the worker does not finish it on time during the task execution, the smart contract will send the worker's P w to the employer as compensation. Thus, it is unnecessary for workers to complete for a task by offering a too short time that the workers can not finish the task on time.
2) The successful bidder or the employer does not continue to enforce the process after the bidding. If one of the parties stops to implement the process after the bidding part, when the time reaches T d the smart contract terminates the process and refunds P e to the employer and P w to the successful bidder, that will not affect the interests of both parties.

B. TASK EXECUTION ANALYSIS
Also, three important issues have to be analyzed during the task execution part: 1) The employer or the successful bidder uploads the video blocks that are not the same as the video blocks they announced to upload. Before each party uploads the video blocks, the smart contract will ask it to provide the corresponding hash value of each video block as the evidence. If one party cheats during the task execution process, it is easy to find out by the hash value. Then the smart contract will punish the cheated party and send its earnest money to the other party.
2) The successful bidder uploads the incorrect video with correct Q. The employer can initiate arbitration and send a request to the smart contract if the employer finds the contents of transcoded video blocks are different from the video blocks the employer releases.
a) The voting result of arbitration is that the employer is correct. The smart contract sends P w to the employer and refunds P e to the employer. b) The voting result of arbitration is that the employer is incorrect. The smart contract sends P e to the successful bidder as compensation and refunds P w to the successful bidder.
3) The successful bidder accepts the task but does not finish it as the employer requires.
a) The successful bidder does not finish the task before T d . When the current time exceeds T d , but the successful bidder does not upload related parameters or only uploads part of parameters, the smart contract sends P w to the employer as compensation and refunds P e to the employer. b) Q is not the same as Q uploaded by the employer.
At least one parameter in Q is not the same as the corresponding parameter in Q that the employer uploaded, the smart contract sends P w to the employer and refunds P e to the employer.

C. ARBITRATION ANALYSIS
Moreover, two essential issues have existed during the arbitration process as follow: 1) The employer sends a request that is incorrect about the successful bidder to the smart contract. There is only one situation that the employer should send a request to the smart contract that is the video blocks the successful bidder uploaded have the same Q as Q, however, the content of these video blocks is incorrect. Thus, after the employer starts the arbitration mechanism, each member of the arbitration can obtain the original task released by the employer and the transcoded task uploaded by the successful bidder. Then, they can compare the contents of the original task and the transcoded task, and send their the results to the smart contract. If num 0 < num 1 , that means the employer cheats, the smart contract sends P e to the successful bidder and refunds P w to the successful bidder.
2) The trusted third party colludes with either party.
For the arbitration mechanism, every time the employer sends the request to the smart contract, the smart contract will randomly select the members from the trusted third party and the workers. That means, it is hard for each party to find enough members of the randomly chosen arbitration committee on the anonymous networks for collusion in order to gain profits by the incorrect result of the arbitration committee sent to the smart contract.

V. PERFORMANCE ANALYSIS
We tested our scheme on the private chain to show the utility of the scheme in real situations. We implemented the experiment as the steps presented in Section III. Specifically, we applied Remix 1 to compile and test our scheme. First, we chose the compiler with the version 0.4.25+commit to compile the smart contract codes of our scheme. 2 Then, we built a private chain on the local host and create several accounts on the chain. Next, we started mining on the private chain. After the mining began, we set the environment Web3 Provider on Remix to connect the private chain we built. Finally, we deployed the smart contract on the private chain to test.
We selected testing the factors (steps) that have the greatest impact on the performance of our scheme during the interactive process between users and the smart contract. In order to show the results clearer, we divided the experiment into two parts -the bidding part performance and the task execution part performance. We will illustrate and analyze the experimental results below.

A. BIDDING PART PERFORMANCE
During the bidding, the most important factor is the speed of uploading parameters. The extensibility of our scheme also should be considered that means changing the number of uploaded parameters in the bidding situation. Therefore, we tested the speed of uploading the different numbers of parameters at once by each participated worker.
The experimental results are shown in Figure 6. We can see that as the number of parameters that uploaded by each worker at once raises, the time consumption increases slightly. Even if the worker is required to upload nine parameters at one time, the time consumption is within acceptable limits (within 2 seconds).
Therefore, it is sufficient to show that our designed smart contract can deal with the bidding part well that also has the extensibility of changing the number of parameters according to different requirements.

B. TASK EXECUTION PART PERFORMANCE
After the bidding part is finished, the smart contract will implement the execution part. According to the process and analysis of our scheme in Section III, it is uncomplicated to summarize that six steps have a huge impact on the performance during the task execution part. The specific six steps are listed as follows: 1) Deploy the smart contract.
2) Send the earnest money to the smart contract.
3) Upload the parameters to the smart contract by the successful bidder. 4) Upload the parameters to the smart contract by the trusted third party. 5) Send the request to the smart contract. 6) Select the members of the committee. We respectively mark the above steps in order as act i (1 ≤ i ≤ 6). The experimental results are shown in Figure 7. The results demonstrate that deploying the smart contract and selecting the members of the committee take the most time (generally around 2 seconds). Additionally, it can be seen that the time consumption of sending tokens to the smart contract (around 1.5 seconds) is higher than the other three uploading parameter operations (generally within 1 second).
Thus, the experimental results illustrate that the performance of the task execution part of the scheme can fit the real-world application demands.

VI. CONCLUSION
In this paper, we propose a blockchain smart contract based scheme combined with the four essential components, which is designed to achieve crowdsourcing video transcoding for solving the lack of computing resources and enhances the efficiency of video transcoding.
According to the security analysis and performance analysis, our proposed scheme (i.e., CVT) is justified to be feasible and sufficient to deal with the common security issues in crowdsourcing video transcoding.
Also, the scheme has good portability, which means our scheme can be applied to other similar multimedia crowdsourcing scenarios by modifying a few settings and parameters.