<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMES</journal-id>
<journal-id journal-id-type="nlm-ta">CMES</journal-id>
<journal-id journal-id-type="publisher-id">CMES</journal-id>
<journal-title-group>
<journal-title>Computer Modeling in Engineering &#x0026; Sciences</journal-title>
</journal-title-group>
<issn pub-type="epub">1526-1506</issn>
<issn pub-type="ppub">1526-1492</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">72602</article-id>
<article-id pub-id-type="doi">10.32604/cmes.2025.072602</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>ORTHRUS: A Model for a Decentralized and Fair Data Marketplace Supporting Two Types of Output</article-title>
<alt-title alt-title-type="left-running-head">ORTHRUS: A Model for a Decentralized and Fair Data Marketplace Supporting Two Types of Output</alt-title>
<alt-title alt-title-type="right-running-head">ORTHRUS: A Model for a Decentralized and Fair Data Marketplace Supporting Two Types of Output</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Shin</surname><given-names>Su Jin</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Shin</surname><given-names>Sang Uk</given-names></name><xref ref-type="aff" rid="aff-2">2</xref><email>shinsu@pknu.ac.kr</email></contrib>
<aff id="aff-1"><label>1</label><institution>Department of Information Security, Graduate School, Pukyong National University</institution>, <addr-line>Busan, 48513, Republic</addr-line> of Korea</aff>
<aff id="aff-2"><label>2</label><institution>Division of Computer Engineering and Artificial Intelligence, Pukyong National University</institution>, <addr-line>Busan, 48513, Republic</addr-line> of Korea</aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Sang Uk Shin. Email: <email>shinsu@pknu.ac.kr</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2025</year></pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>26</day>
<month>11</month>
<year>2025</year></pub-date>
<volume>145</volume>
<issue>2</issue>
<fpage>2787</fpage>
<lpage>2819</lpage>
<history>
<date date-type="received">
<day>30</day>
<month>08</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>30</day>
<month>10</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2025 The Authors.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Published by Tech Science Press.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMES_72602.pdf"></self-uri>
<abstract>
<p>To reconstruct vehicle accidents, data from the time of the incident&#x2014;such as pre-collision speed and collision point&#x2014;is essential. This data is collected and generated through various sensors installed in the vehicle. However, it may contain sensitive information about the vehicle owner. Consequently, vehicle owners tend to be reluctant to provide their vehicle data due to concerns about personal information exposure. Therefore, extensive research has been conducted on secure vehicle data trading models. Existing models primarily utilize centralized approaches, leading to issues such as single points of failure, data leakage, and manipulation. To address these problems, this paper proposes ORTHRUS, a blockchain-based vehicle data trading marketplace that ensures transparency, traceability, and decentralization. The proposed model accommodates two categories of output data: the original data and the computed result from the function. Additionally, in the proposed model, data owners retain control over their data, enabling them to directly choose which types of data to provide. By employing Multi-party computation (MPC) technique, MOZAIK architecture, and the random leader selection technique, the proposed scheme, ORTHRUS, guarantees the input privacy and resistance to pre-collusion attacks. Furthermore, the proposed model promotes fairness by identifying dishonest behavior among participants by enforcing penalties and rewards through the implementation of smart contracts.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Blockchain</kwd>
<kwd>privacy</kwd>
<kwd>data sharing</kwd>
<kwd>MPC</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>IITP (Institute of Information &#x0026; communications Technology Planning &#x0026; Evaluation)-ITRC (Information Technology Research Center) grant funded by the Korea government (Ministry of Science and ICT)</funding-source>
<award-id>IITP-2025-RS-2020-II201797</award-id>
</award-group>
<award-group id="awg2">
<funding-source>Technology Commercialization Collaboration Platform Construction</funding-source>
<award-id>1711202494</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>As digital technologies advance, the volume of data is experiencing exponential growth [<xref ref-type="bibr" rid="ref-1">1</xref>]. Consequently, challenges associated with data collection, storage, and management have become increasingly prominent. In response to these challenges, data sharing and trading have commenced through user interactions. This phenomenon has given rise to the concept of &#x201C;data space&#x201D;. A data space is defined as a distributed system that is governed by a framework ensuring trust and data sovereignty [<xref ref-type="bibr" rid="ref-2">2</xref>]. It is essential for such a system to provide a wide variety of data types and formats, along with tools for searching, querying, and managing all data contained within the data space. This paper presents a vehicle data space specifically tailored for the Internet of Vehicles (IoV) environment, with a particular focus on vehicle data. The IoV constitutes a dynamic network infrastructure that facilitates the connection of vehicles, users, and various smart devices to the internet [<xref ref-type="bibr" rid="ref-3">3</xref>]. Within the IoV ecosystem, vehicles are capable of collecting and generating diverse types of data, encompassing both vehicle-specific information and environmental data, through interactions with onboard sensors and external factors. Each entity within the IoV ecosystem engages in the sharing or trading of its collected and generated vehicle data, thereby creating new value and enhancing user services. However, current methodologies for data sharing and trading are predominantly centralized, which presents several challenges, including a single point of failure, data leakage and manipulation, as well as concerns regarding data confidentiality. To mitigate these challenges, research has been undertaken to explore data sharing and trading within a blockchain framework. Blockchain technology enables reliable data trading by providing several benefits, including transparency, traceability, decentralization, and non-repudiation [<xref ref-type="bibr" rid="ref-4">4</xref>,<xref ref-type="bibr" rid="ref-5">5</xref>]. However, security vulnerabilities in the data storage process continue to exist, resulting in challenges such as data leakage, tampering, and breaches of privacy. Furthermore, entities currently seeking to trade vehicle data rely on the data trading marketplace they participate in. This means vehicle data owners lack ownership, control, or management rights over their own data. Consequently, issues such as privacy protection, data confidentiality, and data resale arise. Additionally, relying on a data trading marketplace means adhering to the data provision methods supported by that model. This means that data owners cannot trade their data in the manner they desire. If a data owner desires to trade data in a specific manner, they must seek out a data trading marketplace that supports that method. This hinders user convenience. Furthermore, users seeking diverse data computation results must participate in multiple data trading marketplace. This necessitates providing their information to various marketplaces, thereby creating privacy-related concerns. In this paper, we introduce ORTHRUS, a blockchain-based model for vehicle data trading that prioritizes privacy protection. The proposed model accommodates two categories of output data: the original data and the computed result from the function. Scenarios that necessitate these types of output data include:
<list list-type="bullet">
<list-item>
<p>Original data: One of the most common forms of raw vehicle data is video data. For example, video data recorded from dashcams can serve as objective evidence in legal proceedings for various cases, such as actual traffic accidents and vehicle theft. In addition, actual traffic accident videos or image data recorded by the dashcam can be used as training data for autonomous vehicle traffic accident detection models. The dashcam video data that perform these functions must not be forged, altered, or modified, and must remain original.</p></list-item>
<list-item>
<p>The computed result from the function: The computed result from the function is a value obtained from the aggregation of multiple vehicle data points, rather than relying on data from a single vehicle. This is crucial for autonomous driving services, including motion planning, vehicle route prediction, and driver behavior prediction, among others. For instance, to enhance driving security across diverse traffic scenarios, autonomous vehicles employ predictive techniques and decision-making algorithms. To support these algorithms, it is necessary to utilize and compute a variety of vehicle data, including vehicle speed, brake pressure, and driver behavior.</p></list-item>
</list></p>
<sec id="s1_1">
<label>1.1</label>
<title>Our Contributions</title>
<p>The contributions in this paper are as follows:
<list list-type="simple">
<list-item><label>1.</label><p>Ensure fairness: The proposed model promotes fairness by identifying dishonest behavior among participants utilizing commitment and signature techniques. Additionally, it enforces penalties and rewards through the implementation of smart contracts.</p></list-item>
<list-item><label>2.</label><p>Protecting input privacy: Input privacy refers to the concealment of transaction data supplied by the data owner from both the data requestor and the computation node responsible for executing the computational process [<xref ref-type="bibr" rid="ref-6">6</xref>]. The proposed model limits the access and acquisition of the original data by all participants, allowing only the computation result of a function to be disclosed as the final output. Futhermore, access to the original data is granted to legitimate participants only when the provision of the original data is permitted.</p></list-item>
<list-item><label>3.</label><p>Preventing pre-collusion attacks: The proposed model mitigates the risk of pre-collusion attacks by employing random leader selection techniques to randomly designate computation nodes for participation in the computation process. Specifically, it is probably very low to predict in advance that a given node is selected as a computation node. Consequently, even if malicious nodes were to collude, the likelihood of their selection for participation in the actual computation process remains exceedingly low.</p></list-item>
<list-item><label>4.</label><p>Ensure data sovereignty: Data sovereignty pertains to the allocation of control over personal data to the individual data owner [<xref ref-type="bibr" rid="ref-7">7</xref>]. In the proposed model, data owners retain authority over their data and possess the ability to determine the method of data delivery.</p></list-item>
</list></p>
<p>This paper is structured as follows: <xref ref-type="sec" rid="s2">Section 2</xref> presents the cryptographic techniques utilized in the proposed model, while <xref ref-type="sec" rid="s3">Section 3</xref> delineates the operational procedures of the model in a step-by-step manner. <xref ref-type="sec" rid="s4">Section 4</xref> discusses the implementation of the proposed model, along with the results and analysis derived from this implementation. Finally, <xref ref-type="sec" rid="s5">Section 5</xref> offers a conclusion to the paper.</p>
</sec>
<sec id="s1_2">
<label>1.2</label>
<title>Related Work</title>
<p>Khan et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] introduced BELIEVE, a blockchain platform based on multi-party computation (MPC) [<xref ref-type="bibr" rid="ref-9">9</xref>], which serves as a framework for efficient verification via location identification and encryption. BELIEVE employs an adaptive strategy that empowers data sources to autonomously ascertain the timing of verification and the specifics of their trajectories. Additionally, it utilizes smart contracts to facilitate the verification of mobility data. The platform also guarantees privacy through an MPC-based consensus mechanism among proximate mobile peers, thereby eliminating the need to share original data.</p>
<p>Li et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] introduced a Blockchain-based Speed Advisory System (BSAS), which enhances the existing Consensus-based Speed Advisory System (CSAS) by integrating blockchain technology. This integration aims to establish a trustworthy framework that prioritizes user privacy. BSAS employs cryptographic primitives to safeguard the confidentiality of the <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:msub><mml:mrow><mml:mtext>CO</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula> emission cost function, thereby offering a reliable and fully decentralized vehicle speed recommendation system. Furthermore, it suggests an optimal speed that minimizes emissions and implements a value-driven incentive mechanism to motivate vehicle users to engage with the service.</p>
<p>Golob et al. [<xref ref-type="bibr" rid="ref-6">6</xref>] proposed a decentralized data marketplace that prioritizes input and output privacy within a blockchain framework. This marketplace guarantees payment fairness by automatically compensating data providers with cryptocurrency tokens. Additionally, it employs two privacy techniques&#x2014;secure multi-party computation (MPC) and robust differential privacy guarantees&#x2014;to facilitate a privacy-centric data exchange.</p>
<p>Yuan et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] proposed TRUCON, a blockchain-based data sharing mechanism designed to facilitate congestion control and data deduplication within Internet of Vehicles (IoV) environments. TRUCON employs the Kademlia algorithm, enabling source vehicles to restrict the number of reference vehicles involved in the transmission of traffic data. Additionally, it incorporates a Cuckoo Filter-based deduplication technique to mitigate unnecessary data sharing. This approach enhances both the integrity and reliability of data sharing, while simultaneously improving network efficiency.</p>
<p>Sadiq et al. [<xref ref-type="bibr" rid="ref-12">12</xref>] proposed a data trading model based on the Internet of Vehicles (IoV) that guarantees secure data storage and the privacy of vehicles within a blockchain framework. The model employs a digital signature scheme grounded in elliptic curve bilinearity to ensure the authenticity and integrity of the trading data. Additionally, it utilizes smart contracts that are autonomously executed between trading parties to address payment disputes and ensure the fulfillment of payment obligations.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Preliminaries</title>
<p>This chapter provides an overview of Multi-Party Computation (MPC) [<xref ref-type="bibr" rid="ref-9">9</xref>] and the MOZAIK architecture [<xref ref-type="bibr" rid="ref-13">13</xref>] as they pertain to ORTHRUS. Additionally, it outlines the fundamental cryptographic primitives utilized in this context.</p>
<sec id="s2_1">
<label>2.1</label>
<title>MPC</title>
<p>First introduced by Yao in the 1980s, secure multi-party computation (MPC) is a versatile cryptographic technique that enables multiple distributed participants to collaboratively compute arbitrary functions while maintaining the confidentiality of their private inputs and outputs [<xref ref-type="bibr" rid="ref-9">9</xref>]. This process ensures privacy, as each participant remains unaware of the input data of the other participants, and the output of the computation cannot be deduced from the input data of others. Additionally, consistency is assured in that honest participants will obtain identical computational results. The ORTHRUS employs Multi-Party Computation (MPC) grounded in the principles of Secret Sharing, facilitating participant interaction while maintaining data confidentiality. Secret Sharing is a method that protects confidential input data within various MPC frameworks, enabling the division of secret input data or multiple confidential inputs into several shares [<xref ref-type="bibr" rid="ref-14">14</xref>]. This paper adopts the SPDZ protocol as a representative technique based on Secret Sharing for the implementation of MPC.</p>
<p><italic>SPDZ Protocol</italic></p>
<p>In the SPDZ protocol, the values exchanged among all participants are shares produced through a secret sharing technique, which are subsequently utilized for circuit evaluation [<xref ref-type="bibr" rid="ref-15">15</xref>]. The SPDZ framework is comprised of three distinct phases: an offline phase, an online phase, and a phase dedicated to output and verification.
<list list-type="bullet">
<list-item>
<p>Offline phase: This phase, commonly referred to as the preprocessing stage, produces a set of shared random numbers utilized for the purpose of masking confidential input data [<xref ref-type="bibr" rid="ref-15">15</xref>]. Additionally, it executes a multiplication operation to create a predominant multiplication triple <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and a random mask value.</p></list-item>
<list-item>
<p>Online phase: This phase entails the collaborative computation of arithmetic circuits utilizing secretly shared input data, which encompasses operations such as addition, multiplication, and Message Authentication Codes (MAC) [<xref ref-type="bibr" rid="ref-15">15</xref>].
<list list-type="simple">
<list-item><label>1.</label><p>Addition: Given secretly shared values <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:math></inline-formula> and a publicly known constant <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>c</mml:mi></mml:math></inline-formula>, each party&#x2019;s local computation performs the following operations.
<list list-type="simple">
<list-item><label>&#x2013;</label><p><inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mo>&#x003C;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> can be calcuated from <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item><label>&#x2013;</label><p><inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mi>c</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> can be calculated from <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item><label>&#x2013;</label><p><inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> can be calculated from <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
</list></p></list-item>
<list-item><label>2.</label><p>Multiplication: Given a value that is shared in secrecy, the objective is to compute the product of these values, which includes the multiplication of triples. We define a multiplication triple as the ordered set <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> represents the secret numbers that have been preshared among the participants. Furthermore, it is assumed that the multiplication triples are generated in advance during an offline phase.
<list list-type="simple">
<list-item><label>&#x2013;</label><p>Compute <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mo>&#x003C;</mml:mo><mml:mo>&#x03F5;</mml:mo><mml:mo>&#x003E;=&#x003C;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula>, then reveal <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mo>&#x003C;</mml:mo><mml:mo>&#x03F5;</mml:mo><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula></p></list-item>
<list-item><label>&#x2013;</label><p>Compute <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo>&#x003E;=&#x003C;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula>, then reveal <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula></p></list-item>
<list-item><label>&#x2013;</label><p>Finally, compute <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mo>&#x003C;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x003E;=&#x003C;</mml:mo><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mo>&#x03F5;</mml:mo><mml:mo>&#x003E;</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mo>+</mml:mo><mml:mtext>&#x00A0;</mml:mtext><mml:mo>&#x03F5;</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mtext>&#x00A0;</mml:mtext><mml:mi>&#x03B4;</mml:mi></mml:math></inline-formula></p></list-item>
</list></p></list-item>
<list-item><label>3.</label><p>MAC: The SPDZ protocol employs the Message Authentication Code (MAC) technique to protect messages from dishonest parties [<xref ref-type="bibr" rid="ref-15">15</xref>]. The MAC key is established as a global variable that remains unknown to the participants and is shared in a confidential manner. All secret data are encoded in a manner that incorporates the MAC, rendering the resultant value challenging to alter without the consensus of the other participants. Consequently, by verifying the MAC, it is possible to detect dishonest behavior and ensure the integrity of the data.</p></list-item>
</list></p></list-item></list></p>
<p><list list-type="bullet">
<list-item>
<p>Output and Verification phase: This phase involves the verification of all published numerical data and final output values through the use of Message Authentication Code (MAC). Verification can be conducted in batches utilizing a randomized linear combination. In the event of a discrepancy during the MAC verification phase, the protocol will be terminated.</p></list-item>
</list></p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>MOZAIK Architecture</title>
<p>The primary algorithms of the MOZAIK architecture are developed utilizing secret sharing techniques [<xref ref-type="bibr" rid="ref-13">13</xref>] and the AEAD (Symmetric Authenticated Encrypted with Associated Data) algorithm [<xref ref-type="bibr" rid="ref-16">16</xref>].</p>
<p>The secret sharing mechanism employed in the MOZAIK architecture is based on threshold-based secret sharing. This method involves partitioning a single source of data into <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mi>n</mml:mi></mml:math></inline-formula> shares, which are then distributed among the participants. The original data can be reconstructed only when the number of gathered shares exceeds a certain threshold. Two algorithms that facilitate this process are the partitioning algorithm <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>s</mml:mi><mml:mi>h</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula> and the reconstruction algorithm <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mi>n</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:math></inline-formula>. Here, <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mi>d</mml:mi></mml:math></inline-formula> are the original data, while <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mi>n</mml:mi></mml:math></inline-formula> denotes the number of participants.</p>
<p>The AEAD [<xref ref-type="bibr" rid="ref-16">16</xref>] is a cryptographic technique that combines encryption of the original data with the generation of an authentication tag alongside the ciphertext. This authentication tag serves to verify both the integrity and confidentiality of the data. The underlying algorithm is represented by the encryption algorithm <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and the decryption algorithm <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:math></inline-formula>. Where <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mi>k</mml:mi></mml:math></inline-formula> is a symmetric key, <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mi>c</mml:mi></mml:math></inline-formula> represents the ciphertext, and <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>t</mml:mi></mml:math></inline-formula> signifies the authentication tag.</p>
<p>The main algorithms of the MOZAIK architecture based on this are the key generation algorithm <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the distributed decryption algorithm <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and the computation algorithm <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>K</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: The algorithm uses the symmetric key <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mi>k</mml:mi></mml:math></inline-formula> and the partitioning algorithm <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>s</mml:mi><mml:mi>h</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate the appropriate share of keys <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula> for the number of compute nodes of MPC.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: We use the ciphertext <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>c</mml:mi></mml:math></inline-formula> and the authentication tag <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>t</mml:mi></mml:math></inline-formula> as a public input, and the key share <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> as a private input provided to each participant. The algorithm verifies the authentication tag <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mi>t</mml:mi></mml:math></inline-formula>, decrypts the ciphertext <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>c</mml:mi></mml:math></inline-formula>, and returns the plaintext share <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:msub><mml:mi>d</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula>. If verification of the authentication tag <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mi>t</mml:mi></mml:math></inline-formula> fails, it returns <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>. This distributed decryption is implemented by running <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>f</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: It analyzes data from share <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:msub><mml:mi>d</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula> in the original data. Then, it performs some computation based on the analyzed values to obtain the resulting values <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
</list></p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Cryptographic Primitives</title>
<p>The proposed model applies the following cryptographic primitives.
<list list-type="simple">
<list-item><label>1.</label><p>A cryptographically secure hash function <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mi>H</mml:mi><mml:mo>:</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> is the security parameter [<xref ref-type="bibr" rid="ref-17">17</xref>].</p></list-item>
<list-item><label>2.</label><p>A semantically secure symmetric cipher consisting of <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mo stretchy="false">(</mml:mo><mml:mi>S</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>K</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>y</mml:mi><mml:mi>n</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-18">18</xref>].</p></list-item>
<list-item><label>3.</label><p>An asymmetric cipher that is semantically secure against a chosen ciphertext attack consisting of <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>K</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-20">20</xref>].</p></list-item>
<list-item><label>4.</label><p>An existential unforgeability under chosen message attack (EU-CMA) secure electronic signature technique consisting of a polynomial-time algorithm <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mo stretchy="false">(</mml:mo><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mi>K</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-21">21</xref>].</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>ORTHRUS</title>
<p>In this chapter, we introduce ORTHRUS, a model for vehicle data transactions that preserves privacy while accommodating two types of output data within a public blockchain framework. <xref ref-type="fig" rid="fig-1">Fig. 1</xref> shows an overview of the model proposed in this paper.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Overview of the proposed model</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-1.tif"/>
</fig>
<p>The ORTHRUS framework comprises several key components, including the Data Owner (<italic>DO</italic>), Data Requester (<italic>DR</italic>), Computation Node (<italic>CN</italic>), Smart Contract (<italic>SC</italic>) and the Interplanetary File System (IPFS). The <italic>DO</italic> is a participant who deploys the smart contracts defined in the proposed model on the blockchain and engages in trading their own data. Conversely, the <italic>DR</italic> refers to a participant who, within the blockchain peer-to-peer network, acquires data from a <italic>DO</italic> holding the required information in exchange for a fair price. The <italic>CN</italic>s are the entities actively engaged in computation, selected at random by the smart contract to participate in the computational process. These nodes serve as actual computation participants and are incentivized based on the correctness of their computations at the conclusion of the transaction. Each time a transaction is initiated, these <italic>DO</italic>, <italic>DR</italic>, and <italic>CN</italic> generate key pairs for transactions and signatures, respectively, utilizing a cryptographically secure public-key algorithm. The proposed model is designed based on a blockchain. The blockchain used here supports <italic>SC</italic>. The <italic>SC</italic> is a stateful ideal functionality, allowing all components, including attackers, to expose their internal state. Furthermore, the <italic>SC</italic> selects <italic>CN</italic> to participate in the actual computation process by employing a randomized leader selection technique, such as that used in Algorand [<xref ref-type="bibr" rid="ref-22">22</xref>]. Upon receiving a dispute resolution request from component of the proposed model, the <italic>SC</italic> initiates a dispute resolution process to identify dishonest participants, who are then subject to penalties such as deposit forfeiture and a reduction in their reputation score. The ORTHRUS uses IPFS, a scalable peer-to-peer data storage platform [<xref ref-type="bibr" rid="ref-8">8</xref>]. To mitigate storage costs, we store ciphertexts and encrypted secret key shares within IPFS and subsequently publish the addresses returned by IPFS on the blockchain [<xref ref-type="bibr" rid="ref-12">12</xref>].</p>
<sec id="s3_1">
<label>3.1</label>
<title>Assumptions and Threat Model</title>
<p>The ORTHRUS is built on top of a public blockchain, thereby inheriting security properties such as integrity, tamper-resistance, and others from the underlying blockchain platform that hosts the smart contracts. The system assumes a synchronous network model with authenticated peer-to-peer channels, which limits the adversary&#x2019;s ability to manipulate communication [<xref ref-type="bibr" rid="ref-23">23</xref>]. Specifically, while an adversary may delay any message passed between honest parties by a known upper bound <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi mathvariant="normal">&#x25B3;</mml:mi></mml:math></inline-formula>, they cannot delete, reroute, or modify the message. The threat model considered in this paper is defined as follows:
<list list-type="bullet">
<list-item>
<p>The main components of ORTHRUS, <italic>DO</italic>, <italic>DR</italic>, and <italic>CN</italic>, do not trust each other and are assumed to act in their own self-interest and act rationally accordingly.</p></list-item>
<list-item>
<p>The <italic>CN</italic>, which performs the actual computation and validation in ORTHRUS, is not a fully trusted entity.</p></list-item>
<list-item>
<p>In order to use the randomized leader selection technique in ORTHRUS, it is assumed that the number of nodes on the blockchain network that want to participate in the computation process is sufficient, and the randomized leader selection technique is also assumed to be secure because it inherits the security of the technique used.</p></list-item>
<list-item>
<p>We consider only static corruption [<xref ref-type="bibr" rid="ref-24">24</xref>] and standalone [<xref ref-type="bibr" rid="ref-25">25</xref>] models, where an adversary can only compromise any object before the protocol is executed, that is, an adversary can only compromise a protocol participant before the protocol is executed.</p></list-item>
<list-item>
<p>The cryptographic techniques mentioned in <xref ref-type="sec" rid="s2"> Section 2</xref> are assumed to be secure against a Probabilistic Polynomial Time (P.P.T.) attacker.</p></list-item>
<list-item>
<p>The security of MPC technique applied to ORTHRUS is guaranteed in the presence of subthreshold adversarials by relying on admissible Threshold Adversarial Structures to ensure the security of MPC. This ensures output correctness and input privacy. Furthermore, the accuracy and verifiability of the output results depend on the applied MPC technique. In the proposed model, the threshold or the protocol&#x2019;s computation process can change based on the attacker model considered by the applied SPDZ protocol.</p></list-item>
</list></p>
<p>The ORTHRUS employs a reputation mechanism to enhance fairness and prevent Byzantine behavior [<xref ref-type="bibr" rid="ref-26">26</xref>]. The following studies exist on reputation mechanisms. Zhang et al. [<xref ref-type="bibr" rid="ref-26">26</xref>] proposed a blockchain-based Cyber Threat Intelligence (CTI) model combining consortium blockchains with distributed reputation management systems. This model prevents bribery attacks and offers faster performance than existing Byzantine Fault Tolerance (BFT) models. Liu et al. [<xref ref-type="bibr" rid="ref-27">27</xref>] proposed BtRal, a blockchain and trust-based reputation evaluation incentive mechanism. It introduced a multidimensional reputation evaluation method. It prevents malicious or pre-collusive evaluation attacks using multifactor moderation. It also designed and proposed rewards and penalties through reputation-based tokens. While reputation mechanisms themselves are an important research topic actively studied in the field of data marketplaces to enhance fairness and security, this paper focuses on secure and trustworthy data trading. Existing, well-established reputation mechanisms can be utilized to implement the proposed model. However, the specific details of the reputation mechanism itself are beyond the scope of this paper.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>ORTHRUS Architecture</title>
<p>The ORTHRUS system begins with the deployment of the <italic>DO</italic> smart contract, followed by pre-processing, matching, and the actual computation steps for data trading. Since ORTHRUS accommodates two types of output data, the internal behavior during the computation phase is contingent upon the output data type requested by the <italic>DR</italic>. In this paper, the output data type refers to the specific data type requested by the <italic>DR</italic>, which can be categorized into two types: original data <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and the computation result for the requested function <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. When a smart contract receives a request for dispute resolution from a <italic>DO</italic> or a participant in the transaction process, such as <italic>DR</italic> or <italic>CN</italic>, it initiates a dispute resolution step, and identifies the dishonest participant and penalizes them by confiscating their deposit and reducing their reputation score. The detailed process for each step in the ORTHRUS is discussed in <xref ref-type="sec" rid="app-1">Appendix A</xref>. <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows the processing flow of transactions and state variables handled by smart contracts in the proposed model.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>The processing flow of transactions and state variables handled by smart contracts in the proposed model</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-2.tif"/>
</fig>
<sec id="s3_2_1">
<label>3.2.1</label>
<title>Preprocessing Phase</title>
<p>The preprocessing phase consists of a data disclosure step, a compute node selection step, a data encryption step, a commit value verification and distributed decryption step, and a data ad step. The detailed algorithms for each step are described in <xref ref-type="sec" rid="app-1">Appendix A</xref>.
<list list-type="bullet">
<list-item>
<p>Data disclosure step:</p>
<p>The <italic>DO</italic> defines the data it wishes to trade as the original data <italic>D</italic> and publishes a transaction <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> on the blockchain through the <italic>SC</italic>. This transaction includes the data provision method <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and information about <italic>D</italic>. In this context, <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> indicates that the <italic>DO</italic> provides both <italic>D</italic> and the result of function computation as the final output of the proposed model, while <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> signifies that the <italic>DO</italic> provides only the result of function computation.</p></list-item>
<list-item>
<p>Computation node selection step:</p>
<p>Among all the participating nodes <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mi>B</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> in the blockchain, only those nodes that wish to engage in the computation process generate their signatures based on <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. Then, <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mi>B</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> forwards <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula> with its signature to the <italic>SC</italic>. Here, <italic>M</italic> represents the total number of nodes participating in the blockchain network. The <italic>SC</italic> receives this information and generates a hash value based on the signature. It then calculates this as a probability value and compares it to the reference probability value <italic>P</italic>. The <italic>SC</italic> selects the <italic>N</italic> nodes with the smallest values among those that are less than or equal to <italic>P</italic> as the computing nodes. The <italic>SC</italic> then updates the information of the selected nodes to the list <italic>L</italic> of computing nodes. Finally, the <italic>SC</italic> publishes <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>L</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, which contains <italic>L</italic> and various other information, to the blockchain network. After this step, the nodes designated as computing nodes are denoted as <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, where <italic>N</italic> is the total number of selected computation nodes.</p></list-item>
<list-item>
<p>Data encryption step:</p>
<p>The <italic>DO</italic> generates a secret key <italic>K</italic> using the <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>K</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> function, which is one of the key algorithms in the MOZAIK Architecture. Based on this key, it creates secret key shares <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> for <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. Next, the <italic>DO</italic> encrypts each secret key share <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> using a public key encryption algorithm to produce the encrypted secret key share <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, and it generates a commit value <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> for verification purposes. The <italic>DO</italic> then creates a ciphertext <italic>ED</italic> using the AEAD encryption algorithm <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:mi>A</mml:mi><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:mi>D</mml:mi><mml:mo>.</mml:mo><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and generates a corresponding commit value <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. For each pair of <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, the <italic>DO</italic> stores them in IPFS and receives the storage location <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Subsequently, the <italic>DO</italic> stores <italic>ED</italic> and <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> in IPFS, obtaining the storage location <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Finally, the <italic>DO</italic> submits a transaction <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the <italic>SC</italic>, which includes this information.</p></list-item>
<list-item>
<p>Verification and distributed decryption of commit values:</p>
<p>The <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> obtains the values stored in IPFS based on what is published on the blockchain. Then, the <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> generates the commit value <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msubsup><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> for <italic>ED</italic> and checks if it matches the value obtained via <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. If there is a mismatch, the <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> sends <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the <italic>SC</italic> to resolve the dispute, and if it matches, the <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> generates a commit value <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msubsup><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> for <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and performs the same process. Similarly, if there is a mismatch, the <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> requests the <italic>SC</italic> to resolve the dispute by sending <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. If they match, the <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> performs MOZAIK Architecture&#x2019;s <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on <italic>ED</italic> to obtain <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mo>&#x22A5;&#x2190;</mml:mo><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> sends Success to <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, if <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is obtained, and Fail to the <italic>SC</italic>, if <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula> is obtained.</p></list-item>
<list-item>
<p>Data advertising step:</p>
<p>To sell its data, the <italic>DO</italic> sends an advertising transaction <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> containing information about its data to the <italic>SC</italic>, which then publishes it on the blockchain.</p></list-item>
</list></p>
</sec>
<sec id="s3_2_2">
<label>3.2.2</label>
<title>Matching Phase</title>
<p>First, the <italic>DR</italic> selects a tra nsaction that contains the data it wants and how it wants the data to be provided from among the <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> posted on the blockchain and delivers a data request transaction <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>q</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the <italic>SC</italic>. At this time, the <italic>DR<sup>&#x2032;</sup></italic> request function, <italic>F</italic>, is included only if the <italic>DR</italic> wants data as a result of the function calculation <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Upon receiving this, <italic>SC</italic> checks whether the <italic>DR<sup>&#x2032;</sup></italic>s account balance is sufficient and checks whether the data type provided by the <italic>DO</italic> matches the data type desired by the <italic>DR</italic>. If it does, it posts a matching transaction <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> on the blockchain network. At this time, a parameter called <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi></mml:math></inline-formula> defines the behavior of the proposal model. <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:mi>F</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> means that the final output of the proposal model will be the original data, while <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> means that the output of the function will be the result of the calculation.</p>
</sec>
<sec id="s3_2_3">
<label>3.2.3</label>
<title>Actual Computation Phase</title>
<p>The steps are described separately for the cases where the final result is the original data and for the cases where the final result is the result of a function computation.
<list list-type="simple">
<list-item><label>1.</label><p>If the final result is original data <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p>
<p>This means that when <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, the final output of the proposed model is the original data type.
<list list-type="simple">
<list-item>
<label>&#x2022;</label><p>Encryption and signature generation step:</p>
<p><inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> performs public key encryption on <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to generate encrypted data <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. Then, it generates a signature <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> for it and publishes the transaction <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> containing it on the blockchain.</p></list-item>
<list-item>
<label>&#x2022;</label><p>Verification step:</p>
<p>The DR obtains <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> through the published transaction <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. Based on this, <italic>DR</italic> performs the signature verification algorithm <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to verify the signature. If verification fails, <italic>DR</italic> identifies the <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> that caused the result, records the information in <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:mi>V</mml:mi><mml:mi>C</mml:mi><mml:mi>N</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula>, and delivers the verification failure transaction <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>. The receiving <italic>SC</italic> performs the dispute resolution steps. If verification is successful, <italic>DR</italic> decrypts <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and obtains <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msubsup><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula>. The <italic>DR</italic> then performs the reconstruction algorithm <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to obtain <italic>D</italic><sup><italic><sup>&#x2032;</sup></italic></sup>. The <italic>DR</italic> generates a hash value <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> for the obtained <italic>D</italic><sup><italic><sup>&#x2032;</sup></italic></sup> and checks if it matches the <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> contained in <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. If there is a mismatch, <italic>DR</italic> returns <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic> to resolve the dispute. If they match, <italic>DR</italic> passes <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>.</p></list-item>
</list></p></list-item>
<list-item><label>2.</label><p>If the final result is the result of a function computation <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> This means that <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> or <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:mn>0</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>. The final output of the proposed model is of the type function computation Output.
<list list-type="simple">
<list-item>
<label>&#x2022;</label><p>Function computation step:</p>
<p><inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> generates a function computation result share <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> with <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> as input to <italic>F</italic>. The <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> creates a computation result share <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> encrypted with public key encryption on <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. The <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> generates a signature <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> for the generated value. The <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> then publishes a transaction <inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> containing this information on the blockchain.</p></list-item>
<list-item>
<label>&#x2022;</label><p>Verification and reconstruction step:</p>
<p><italic>DR</italic> obtains <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> from <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> posted on the blockchain and performs signature verification on them. If verification fails, <italic>DR</italic> identifies the <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> that caused the result and forwards the transaction <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> that contains it to <italic>SC</italic>. The receiving <italic>SC</italic> performs the dispute resolution steps. If verification is successful, the DR decrypts <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to obtain <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. The <italic>DR</italic> then aggregates <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> over a threshold to obtain <italic>X</italic> through the reconstruction algorithm <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The <italic>DR</italic> delivers <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, the transaction resulting from the reconstruction, to <italic>SC</italic>. Upon receiving it, <italic>SC</italic> distributes data payments and incentives from the <italic>DR<sup>&#x2032;</sup></italic> account to each participant, increases each participant&#x2019;s reputation score, and terminates the transaction.</p></list-item>
</list></p></list-item>
</list></p>
</sec>
<sec id="s3_2_4">
<label>3.2.4</label>
<title>Dispute Resolution Phase</title>
<p>The dispute resolution phase is performed by participants requesting <italic>SC</italic> to resolve disputes in the event that (1) <italic>ED<sup>&#x2032;</sup></italic>s commit value verification fails, (2) <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s commit value verification fails, (3) <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails, (4) <italic>D<sup>&#x2032;</sup></italic>s hash value verification fails, or (5) <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails. The detailed dispute resolution process is discussed in <xref ref-type="sec" rid="app-2">Appendix B</xref>.
<list list-type="simple">
<list-item><label>1.</label><p><italic>ED<sup>&#x2032;</sup></italic>s commit value verification fails</p>
<p>This step is the dispute resolution request phase triggered by <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, due to a failed verification of the <italic>ED<sup>&#x2032;</sup></italic>s commit value. At this point, <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> transmits <inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to the <italic>SC</italic>. Upon receiving this, the <italic>SC</italic> verifies whether the transaction&#x2019;s timestamp is within <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and performs verification for up to <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> transactions that arrived within <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and are below the threshold. After verifying all <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:mi>l</mml:mi></mml:math></inline-formula> transactions, the <italic>SC</italic> changes the state variable <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:mi mathvariant="normal">&#x03A3;</mml:mi></mml:math></inline-formula> to &#x00B4;<italic>Cancelled</italic><sup>&#x2032;</sup> and terminates the transaction only if a dishonest <italic>DO<sup>&#x2032;</sup></italic>s record exists or if the value of <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:mi>m</mml:mi><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> exceeds the threshold. If a dishonest <italic>DO<sup>&#x2032;</sup></italic>s record exists, the <italic>SC</italic> confiscates that <italic>DO<sup>&#x2032;</sup></italic>s deposit and distributes it among the honest participants. Then, the <italic>SC</italic> lowers the reputation score of that <italic>DO</italic> and terminates the trading.</p></list-item>
<list-item><label>2.</label><p><inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s commit value verification fails</p>
<p>This step is the dispute resolution request phase triggered by <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, due to a failed verification of the commit value <inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. The <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> transmits <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to the <italic>SC</italic>. Upon receiving this, the <italic>SC</italic> verifies whether the transaction&#x2019;s timestamp is within <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. The <italic>SC</italic> performs verification on up to <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mi>l</mml:mi></mml:math></inline-formula> transactions where <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and the transactions arrived within <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. After verifying all <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:mi>l</mml:mi></mml:math></inline-formula> transactions, the <italic>SC</italic> handles the situation identically to the <italic>ED<sup>&#x2032;</sup></italic>s commit value failure scenario.</p></list-item>
<list-item><label>3.</label><p><inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails</p>
<p>This step is the dispute resolution request phase triggered by <italic>DR<sup>&#x2032;</sup></italic>s signature verification failure for <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. The <italic>DR</italic> transmits <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the <italic>SC</italic>. Upon receiving this, the <italic>SC</italic> verifies the corresponding <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> transactions by checking whether the transaction timestamp is within <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and whether the number of <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> included in <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mi>V</mml:mi><mml:mi>C</mml:mi><mml:mi>N</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula> is below the threshold. After verifying all <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mi>l</mml:mi></mml:math></inline-formula> transactions, the <italic>SC</italic> changes the state variable <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:mi mathvariant="normal">&#x03A3;</mml:mi></mml:math></inline-formula> to &#x00B4;<italic>Cancelled</italic><sup>&#x2032;</sup> and terminates the trading only if there exists a record from a dishonest <italic>DR</italic> or if the value of <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mi>m</mml:mi><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is above the threshold. If a record from a dishonest <italic>DR</italic> exists, the <italic>SC</italic> confiscates that <italic>DR<sup>&#x2032;</sup></italic>s deposit and distributes it to the honest participants. Then, the <italic>SC</italic> lowers the reputation score of the <italic>DR</italic> in question and terminates the trading.</p></list-item>
<list-item><label>4.</label><p><italic>D<sup>&#x2032;</sup></italic>s hash value verification fails</p>
<p>This step is the dispute resolution request phase triggered by <italic>DR<sup>&#x2032;</sup></italic>s failure to verify <italic>D<sup>&#x2032;</sup></italic>s hash value. The <italic>DR</italic> transmits <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>. Upon receiving this, <italic>SC</italic> verifies whether the transaction&#x2019;s timestamp falls within <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and performs validation for each transaction. If <italic>DR</italic> denies, <italic>SC</italic> confiscates <italic>DR<sup>&#x2032;</sup></italic>s deposit and lowers their reputation score. Then, the <italic>SC</italic> changes <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mi mathvariant="normal">&#x03A3;</mml:mi></mml:math></inline-formula> to &#x00B4;<italic>Cancelled</italic><sup>&#x2032;</sup> and terminates the trading. If the <italic>DO</italic> denies, the <italic>SC</italic> performs the same process and then terminates the trading.</p></list-item>
<list-item><label>5.</label><p><inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails</p>
<p>This step is the dispute resolution request phase triggered by <italic>DR<sup>&#x2032;</sup></italic>s signature verification failure for <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> where <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. <italic>DR</italic> transmits <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>. Upon receiving this, <italic>SC</italic> verifies whether the transaction&#x2019;s timestamp is within <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and whether the number of <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> included in <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mi>V</mml:mi><mml:mi>C</mml:mi><mml:mi>N</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula> is below the threshold. Then, the <italic>SC</italic> performs verification for the transactions where <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. After verifying all <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mi>l</mml:mi></mml:math></inline-formula> transactions, the <italic>SC</italic> proceeds identically to the <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails step.</p></list-item>
</list></p>
</sec>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Implementations and Analysis of ORTHRUS</title>
<p>In this chapter, we design the ORTHRUS based on the Ethereum blockchain network environment to examine gas usage. We also describe security analysis, such as fairness and resistance to pre-collusion attacks.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Implementation</title>
<p>In this paper, we designed ORTHRUS based on the Ethereum blockchain network environment with smart contracts. We utilized the Ganache test network to create accounts for participants and deploy smart contracts in ORTHRUS. In ORTHRUS, smart contracts perform transaction validation, dispute resolution steps, punishments, and rewards. We used the Solidity language to implement ORTHRUS&#x2019; smart contracts that operate in an on-chain environment, and JavaScript for the rest.</p>
<p>The ORTHRUS implementation consists of an off-chain part that generates signatures, a main smart contract part, and a smart contract part that performs dispute resolution steps. The smart contract part that connects to the Ganache environment and performs the main operation is deployed first, followed by the smart contract that performs the dispute resolution step. Various signature values used in the dispute resolution process are generated through the off-chain part using the Elliptic Curve Digital Signature Algorithm (ECDSA) method, and the smart contract uses them to perform verification. In addition, hash values for signatures in the main smart contract part are generated using keccask256.</p>
<sec id="s4_1_1">
<label>4.1.1</label>
<title>Analysis of ORTHRUS Implementation Result</title>
<p>In this paper, N computational nodes are randomly selected from the nodes participating in the blockchain network, and the selected computational nodes perform cryptographic processing and computation of functions based on the MPC technique. To implement this, in the ORTHRUS implementation program, the total number of nodes participating in the blockchain network is set to 15, and the number of computing nodes to be selected, N, is set to 3 and 5 to compare the MPC computation efficiency and the smart contract gas cost, respectively. The analysis is limited to on-chain efficiency.</p>
<p>First, the gas usage in the main smart contract part is 1,875,501 when the actual number of compute nodes is 3. If we set the gas price at 20 gwei to calculate the total cost, 0.03751002 ETH is consumed. The gas usage of the smart contract that performs the dispute resolution step is 2,029,864, and if we set the gas price to the same value to calculate the total cost, 0.04059728 ETH is consumed. When the actual number of computing nodes is 5, the gas usage of the main smart contract is 1,979,069, for a total cost of 0.03958138 ETH. The gas consumption of the smart contract that performs the dispute resolution step is 2,586,162, totaling 0.05172324 ETH. From this we can see that as the number of computing nodes increases, the gas usage and cost of deploying smart contracts increases. <xref ref-type="fig" rid="fig-3">Figs. 3</xref> and <xref ref-type="fig" rid="fig-4">4</xref> show the results of gas usage as a function of the number of compute nodes. <xref ref-type="fig" rid="fig-5">Fig. 5</xref> presents a quantitative comparison based on <xref ref-type="fig" rid="fig-3">Figs. 3</xref> and <xref ref-type="fig" rid="fig-4">4</xref>.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>When the number of computation nodes is 3, gas usage</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-3.tif"/>
</fig><fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>When the number of computation nodes is 5, gas usage</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-4.tif"/>
</fig><fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Comparison of gas usage based on the number of computation nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-5.tif"/>
</fig>
<p>The main computational overhead off-chain is the distributed decryption process between peers, which involves the computation of AEAD<sup>&#x2032;</sup>s <inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> algorithm over MPC. Among the existing works on this algorithm, reference [<xref ref-type="bibr" rid="ref-28">28</xref>] introduces various modes of distributed decryption. Among them, the Jolteon-AES and Espeon-AES modes are introduced as the best performers. Based on the communication between two participants in [<xref ref-type="bibr" rid="ref-28">28</xref>], we analyzed the offline and online execution times of distributed decryption according to the message length, and found that the Jolteon mode has the best performance and practicality, with an 8 bytes message taking about 2.5 s and a 128 bytes message taking about 6.5 s. In addition, the time to decrypt a 128-byte message in Jolteon mode was measured to be about 0.07 s for 3 players and 0.11 s for 5 players. Based on this, if ORTHRUS also performs distributed decryption in Jolteon mode, assumes a message length of 128 bytes, and sets the number of computational nodes as players to 3 and 5, the decryption time is expected to be about 0.07 and 0.11 s, respectively, which is sufficiently feasible for a real system environment.</p>
</sec>
<sec id="s4_1_2">
<label>4.1.2</label>
<title>Anaylsis of ORTHRUS Storage Overhead</title>
<p>This section analyzes the storage overhead of ORTHRUS on the blockchain. The following data is stored on-chain for each phase.
<list list-type="simple">
<list-item><label>1.</label><p>Pre-processing phase:
<list list-type="simple">
<list-item>
<label>&#x2022;</label><p>Data Publishing Step: <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mo stretchy="false">(</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:mi>s</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <italic>P</italic>, <inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2022;</label><p>Computation node selection step: <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:mo stretchy="false">(</mml:mo><mml:mi>L</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <italic>L</italic>, <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2022;</label><p>Data Encryption Step: <inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:mo stretchy="false">(</mml:mo><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2022;</label><p>Verification and distributed decryption of commit values: <inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:mo stretchy="false">(</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:mi>S</mml:mi><mml:mi>u</mml:mi><mml:mi>c</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:mo stretchy="false">(</mml:mo><mml:mi>V</mml:mi><mml:mi>D</mml:mi><mml:mi>S</mml:mi><mml:mi>u</mml:mi><mml:mi>c</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2022;</label><p>Data advertising step: <inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-232"><mml:math id="mml-ieqn-232"><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-233"><mml:math id="mml-ieqn-233"><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-234"><mml:math id="mml-ieqn-234"><mml:mi>P</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-235"><mml:math id="mml-ieqn-235"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>O</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-236"><mml:math id="mml-ieqn-236"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-237"><mml:math id="mml-ieqn-237"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi><mml:mi>o</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-238"><mml:math id="mml-ieqn-238"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
</list></p></list-item>
<list-item><label>2.</label><p>Matching phase: <inline-formula id="ieqn-239"><mml:math id="mml-ieqn-239"><mml:mo stretchy="false">(</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>q</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-240"><mml:math id="mml-ieqn-240"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-241"><mml:math id="mml-ieqn-241"><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-242"><mml:math id="mml-ieqn-242"><mml:mi>s</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-243"><mml:math id="mml-ieqn-243"><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-244"><mml:math id="mml-ieqn-244"><mml:mi>P</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-245"><mml:math id="mml-ieqn-245"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi><mml:mi>o</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-246"><mml:math id="mml-ieqn-246"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-247"><mml:math id="mml-ieqn-247"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <italic>F</italic>, <inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mo stretchy="false">(</mml:mo><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>q</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item><label>3.</label><p>Actual computation phase:
<list list-type="simple">
<list-item>
<label>&#x2022;</label><p>The output result is the original data: <inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-263"><mml:math id="mml-ieqn-263"><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2022;</label><p>The output result is the result of a function computation: <inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:mo stretchy="false">(</mml:mo><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:mo stretchy="false">(</mml:mo><mml:mi>F</mml:mi><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></p></list-item>
</list></p></list-item>
</list></p>
<p>Note that the values stored during the actual computation step are only those values that would be stored if the verification result is successful.</p>
<p>To compute storage complexity, we assume that the proposed protocol has key lengths of cryptographic primitives with 128-bit security; that is, we can choose bit lengths for 128-bit symmetric ciphers, 256-bit hash functions, and 256-bit elliptic curve pairings. Accordingly, in the proposed protocol PK is 512 bits long and SK is 256 bits long. The signature is generated with a length of 512 bits because it utilizes the ECDSA scheme. The <italic>ID</italic> of the participant and the <italic>ID</italic> of the transaction are assumed to be 160 bits, the <inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi></mml:math></inline-formula> is 1 bit because it is either 0 or 1, the probability is 32 bits and the price, various timestamps, and integer values are 64 bits. In addition, the meta-data published in the data disclosure step contains the hash value <inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> of <italic>D</italic>, so we define the hash function as 256 bits. In addition, the encrypted values have <inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, which are variable depending on the length of <italic>D</italic> and which <italic>F</italic> is computed, so we exclude the values of <inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to compute the total storage overhead.</p>
<p>The storage overhead of the preprocessing step is 5026 bits, the matching step is 2786 bits, and the final result is 1536 bits if the final result is the original data and 1376 bits if the final result is the result of a function computation. Therefore, the on-chain storage overhead seems to be a bit high, as 9348 bits (about 1.14 KB) are required when the final result is the original data, and 9188 bits (about 1.12 KB) are required when the final result is the result of a function computation. However, storage overhead can be reduced by using off-chain storage, that is, storing the actual data in off-chain storage while keeping its metadata on-chain. For example, if the output result is the original data in the actual computation step, the storage overhead can be reduced by storing only <inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> the location of the stored data (the address of the off-chain storage), and the hash value of the stored data off-chain on the on-chain and storing the remaining values on the off-chain.</p>
</sec>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Security Analysis</title>
<p>This section describes the security of the ORTHRUS with the following lemmas and theorem.</p>

<p><bold>Lemma 1.</bold> <italic>If all participants are honest, ORTHRUS satisfies completeness based on the assumptions and threat model in <xref ref-type="sec" rid="s3_1">Section 3.1</xref></italic>.</p>

<p><bold>Proof.</bold> The completeness of the ORTHRUS is guaranteed when <italic>DO</italic>, <italic>DR</italic>, and <italic>CN</italic> follow the protocol with honesty.
<list list-type="bullet">
<list-item>
<p>Case 1: If <italic>DR</italic> requests the original data as the final result and all the participants are honest, <italic>DR</italic> will obtain <inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:msubsup><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> during the validation of the actual computation step of the proposed model. The <italic>DR</italic> collects and reconstructs the obtained <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:msubsup><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> above the threshold to obtain <italic>D</italic><sup><italic><sup>&#x2032;</sup></italic></sup>, and delivers <inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the SC as a result of hash value verification. The <italic>DO</italic> receives <inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>O</mml:mi></mml:msub></mml:math></inline-formula> for the data, and each <italic>CN</italic> receives a share of <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula> as a reward for computing the data correctly.</p></list-item>
<list-item>
<p>Case 2: If <italic>DR</italic> requests the output of the function computation as the final output and all participants are honest, then during the verification of the actual computation step of the proposed model, <italic>DR</italic> will obtain <inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula>. The <italic>DR</italic> aggregates the obtained <inline-formula id="ieqn-288"><mml:math id="mml-ieqn-288"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula> over a threshold and reconstructs them to generate <italic>X</italic>, and then delivers <inline-formula id="ieqn-289"><mml:math id="mml-ieqn-289"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>. The <italic>DO</italic> receives the payment for the data <inline-formula id="ieqn-290"><mml:math id="mml-ieqn-290"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>O</mml:mi></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-291"><mml:math id="mml-ieqn-291"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:math></inline-formula>, and each <italic>CN</italic> receives a share of the incentive <inline-formula id="ieqn-292"><mml:math id="mml-ieqn-292"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><inline-formula id="ieqn-293"><mml:math id="mml-ieqn-293"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Lemma 2.</bold> <italic>Assuming that the random leader selection technique applied in ORTHRUS is secure, based on the assumptions in <xref ref-type="sec" rid="s3_1">Section 3.1</xref> and the threat model, ORTHRUS is secure against prior collusion attack between the attacker and each participant</italic>.</p>

<p><bold>Proof.</bold> In a proposal model, an attacker can only compromise a participant before executing the protocol in that model. Therefore, in order to perform a pre-collusion attack, the attacker must select the blockchain nodes to perform the collusion attack before the proposal protocol is executed. Furthermore, the selected blockchain node must be selected as a <italic>CN</italic> participant in the actual computation of the proposed protocol. However, based on the unpredictability of the output of the hash function and the signature technique applied in the proposal protocol, it is computationally difficult for an attacker to predict which blockchain nodes will be selected as <italic>CN</italic>s before the proposal protocol is executed. Furthermore, the collusion attack among <italic>CN</italic>s during the execution of the proposal protocol is based on the security of Algorand [<xref ref-type="bibr" rid="ref-22">22</xref>], the random leader selection technique used for the selection of <italic>CN</italic>. In other words, if the hash function, signature technique, and Algorand [<xref ref-type="bibr" rid="ref-22">22</xref>] are secure, the probability of success of the attacker&#x2019;s collusion attack with the blockchain nodes in the proposed model is negligible. ORTHRUS also allows collusion between <italic>CN</italic>s and <italic>DO</italic>s and collusion between <italic>CN</italic>s and <italic>DR</italic>s.
<list list-type="bullet">
<list-item>
<p>Case 1. <inline-formula id="ieqn-294"><mml:math id="mml-ieqn-294"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and <italic>DO</italic> colluding in advance.</p>
<p>During the validation of the commit value in the preprocessing phase, it can try to manipulate the validation results of <inline-formula id="ieqn-295"><mml:math id="mml-ieqn-295"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-296"><mml:math id="mml-ieqn-296"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>. However, <inline-formula id="ieqn-297"><mml:math id="mml-ieqn-297"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> cannot decrypt <inline-formula id="ieqn-298"><mml:math id="mml-ieqn-298"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <italic>ED</italic> during the distributed decryption process, so a collusion attack is not possible.</p></list-item>
<list-item>
<p>Case 2. <inline-formula id="ieqn-299"><mml:math id="mml-ieqn-299"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <italic>DR</italic> colluding in advance.</p>
<p>The <italic>DR</italic> in the actual computation phase may attempt to manipulate the verification result while verifying <inline-formula id="ieqn-300"><mml:math id="mml-ieqn-300"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-301"><mml:math id="mml-ieqn-301"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>. In this case, in order to manipulate the signature verification result, the DR must colludes with <inline-formula id="ieqn-302"><mml:math id="mml-ieqn-302"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> above the threshold. However, since the proposed model relies on the attacker threshold structure, which is a fundamental characteristic of MPC, the probability that a <italic>DR</italic> collides with a <inline-formula id="ieqn-303"><mml:math id="mml-ieqn-303"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> above the threshold is negligible.</p></list-item>
</list></p>
<p>As such, the probability of such a pre-collusion attack succeeding against ORTHRUS is negligible if the applied hash function, signature technique, and random leader selection technique Algorand [<xref ref-type="bibr" rid="ref-22">22</xref>] are secure. <inline-formula id="ieqn-304"><mml:math id="mml-ieqn-304"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Lemma 3.</bold> <italic>ORTHRUS assumes that the cryptographic techniques underlying the proposed model are secure, given the assumptions in <xref ref-type="sec" rid="s3_1">Section 3.1</xref> and the threat model. Thus, ORTHRUS satisfies fairness even if DO or DR is compromised by a nonadaptive P.P.T. adversary</italic>.</p>

<p><bold>Proof.</bold> Fairness satisfies both <italic>DR</italic> fairness and <italic>DO</italic> fairness.
<list list-type="simple">
<list-item><label>&#x2022;</label>
<p><italic>DR</italic> fairness: <italic>DR</italic> fairness means that even in the presence of dishonest <italic>DO</italic>s, honest <italic>DR</italic>s only pay for validly acquired data. We assume that an attacker can compromise the <italic>DO</italic>s that provide data to the honest <italic>DR</italic> and the <italic>CN</italic>s that help in the computation. The following are scenarios in which an attacker compromises <italic>DO</italic> or <italic>CN</italic>.
<list list-type="simple">
<list-item><label>1.</label><p>To disrupt the normal flow of the protocol, an attacker may attempt to corrupt <inline-formula id="ieqn-305"><mml:math id="mml-ieqn-305"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to intentionally send dispute resolution requests <inline-formula id="ieqn-306"><mml:math id="mml-ieqn-306"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-307"><mml:math id="mml-ieqn-307"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. However, <italic>SC</italic> that receives the dispute resolution request can determine that the dispute resolution request was intentionally sent by <inline-formula id="ieqn-308"><mml:math id="mml-ieqn-308"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> by generating and comparing the commit values. Therefore, fairness is ensured by <italic>SC</italic> penalizing <inline-formula id="ieqn-309"><mml:math id="mml-ieqn-309"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item><label>2.</label><p>An attacker could attempt to compromise <italic>DO</italic> so that an invalid <inline-formula id="ieqn-310"><mml:math id="mml-ieqn-310"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-311"><mml:math id="mml-ieqn-311"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is stored in IPFS. In this case, the validation process of <inline-formula id="ieqn-312"><mml:math id="mml-ieqn-312"><mml:mi>C</mml:mi><mml:msubsup><mml:mi>N</mml:mi><mml:mi>i</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msubsup></mml:math></inline-formula>s commit value will result in a dispute resolution request, and <italic>SC</italic> can perform the dispute resolution process to determine whether <italic>DO</italic> has stored the wrong values. Thus, fairness is ensured by allowing <italic>SC</italic> to punish <italic>DO</italic> who performed the malicious behavior.</p></list-item>
<list-item><label>3.</label><p>An attacker could compromise <italic>DO</italic>, causing it to store an invalid <inline-formula id="ieqn-313"><mml:math id="mml-ieqn-313"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> in <inline-formula id="ieqn-314"><mml:math id="mml-ieqn-314"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> or not disclose the correct location where <inline-formula id="ieqn-315"><mml:math id="mml-ieqn-315"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is stored. As a result, a <inline-formula id="ieqn-316"><mml:math id="mml-ieqn-316"><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on <inline-formula id="ieqn-317"><mml:math id="mml-ieqn-317"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> will result in <inline-formula id="ieqn-318"><mml:math id="mml-ieqn-318"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>, which will pass <inline-formula id="ieqn-319"><mml:math id="mml-ieqn-319"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> with &#x201C;<italic>Fail</italic>&#x201D; to the <italic>SC</italic>. Upon receiving it, <italic>SC</italic> determines that <italic>DO</italic> is malicious and punishes the <italic>DO</italic> to ensure fairness.</p></list-item>
<list-item><label>4.</label><p>An attacker can compromise <italic>DO</italic>, causing <italic>DO</italic> to release an incorrect <inline-formula id="ieqn-320"><mml:math id="mml-ieqn-320"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to the blockchain. In response, <italic>DR</italic> will send <inline-formula id="ieqn-321"><mml:math id="mml-ieqn-321"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic> as a sign of verification failure during the verification process of the actual computation phase, and <italic>SC</italic> will carry out the dispute resolution phase. Through the dispute resolution process, <italic>SC</italic> determines that <italic>DO</italic> has posted an incorrect <inline-formula id="ieqn-322"><mml:math id="mml-ieqn-322"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and determines that <italic>DO</italic> is a malicious actor. This ensures fairness by penalizing the malicious <italic>DO</italic>.</p></list-item>
</list></p></list-item>
<list-item><label>&#x2022;</label>
<p><italic>DO</italic> fairness: <italic>DO</italic> fairness means that <italic>DO</italic> who act honestly receives a fair amount of money for the valid data they provide to the <italic>DR</italic>. In response, an attacker can compromise the fairness of the honest <italic>DO</italic> by allowing <italic>DR</italic> and <italic>CN</italic>, who did not pay the legitimate payment, to obtain the data provided by <italic>DO</italic> in the process of trading.
<list list-type="simple">
<list-item><label>1.</label><p>The attacker can attempt to compromise the <italic>CN</italic> and obtain the original data <italic>D</italic>. <inline-formula id="ieqn-323"><mml:math id="mml-ieqn-323"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> decrypts <inline-formula id="ieqn-324"><mml:math id="mml-ieqn-324"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> using his private key <inline-formula id="ieqn-325"><mml:math id="mml-ieqn-325"><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> to obtain <inline-formula id="ieqn-326"><mml:math id="mml-ieqn-326"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. Since <italic>K</italic> is required to decrypt <italic>ED</italic>, <inline-formula id="ieqn-327"><mml:math id="mml-ieqn-327"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> may attempt to share their acquired <inline-formula id="ieqn-328"><mml:math id="mml-ieqn-328"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and reconstruct <italic>K</italic>. However, the proposed model is secure against collusion attacks among <inline-formula id="ieqn-329"><mml:math id="mml-ieqn-329"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> due to the security property described in Lemma 2. Therefore, a sub-threshold malicious <inline-formula id="ieqn-330"><mml:math id="mml-ieqn-330"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> cannot restore <italic>K</italic> and thus cannot obtain <italic>D</italic> provided by the honest <italic>DO</italic>.</p></list-item>
<list-item><label>2.</label><p>An attacker can compromise the <italic>CN</italic> and attempt to reconstruct <italic>D</italic> by gathering <inline-formula id="ieqn-331"><mml:math id="mml-ieqn-331"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> above a threshold. When <inline-formula id="ieqn-332"><mml:math id="mml-ieqn-332"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> decrypts the <italic>ED</italic> with <inline-formula id="ieqn-333"><mml:math id="mml-ieqn-333"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, it obtains <inline-formula id="ieqn-334"><mml:math id="mml-ieqn-334"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-335"><mml:math id="mml-ieqn-335"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> may want to share its <inline-formula id="ieqn-336"><mml:math id="mml-ieqn-336"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> with other <inline-formula id="ieqn-337"><mml:math id="mml-ieqn-337"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to collect more than a threshold number of <inline-formula id="ieqn-338"><mml:math id="mml-ieqn-338"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and obtain <italic>D</italic>. However, a malicious <inline-formula id="ieqn-339"><mml:math id="mml-ieqn-339"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> below the threshold cannot recover <italic>D</italic> because Lemma 2 prevents collusion attacks between <inline-formula id="ieqn-340"><mml:math id="mml-ieqn-340"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item><label>3.</label><p>By compromising the <italic>DR</italic>, an attacker can attempt to obtain <italic>D</italic> provided by an honest <italic>DO</italic> without paying a fair price. The <italic>DR</italic> can obtain the <italic>D</italic> provided by the honest <italic>DO</italic> through verification in the actual computation phase. The <italic>DR</italic> may attempt to avoid paying fairly by not sending a <inline-formula id="ieqn-341"><mml:math id="mml-ieqn-341"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> or a <inline-formula id="ieqn-342"><mml:math id="mml-ieqn-342"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to the <italic>SC</italic> as a result of the verification of <italic>D</italic>. In this case, the <italic>SC</italic> verifies that the transaction has not arrived within the transaction end time <inline-formula id="ieqn-343"><mml:math id="mml-ieqn-343"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> defined by itself, and determines that <italic>DR</italic> has not intentionally sent the transaction to <italic>SC</italic>. The <italic>SC</italic> can decide the <italic>DR</italic> to be a dishonest participant and enforce punishment to ensure fairness.</p></list-item>
</list></p>
<p>As long as the cryptographic primitives applied in the proposed protocol, such as secure hash functions, public key ciphers, etc. cannot be compromised by an attacker, the fairness of the <italic>DO</italic> is guaranteed.</p></list-item>
</list></p>
<p><inline-formula id="ieqn-344"><mml:math id="mml-ieqn-344"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Lemma 4.</bold> <italic>ORTHRUS satisfies confidentiality for non-adaptive P.P.T. adversaries based on the assumptions and threat model in <xref ref-type="sec" rid="s3_1">Section 3.1</xref></italic>.</p>

<p><bold>Proof.</bold> The secret key share <inline-formula id="ieqn-345"><mml:math id="mml-ieqn-345"><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is stored in IPFS in encrypted form <inline-formula id="ieqn-346"><mml:math id="mml-ieqn-346"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, and the stored location <inline-formula id="ieqn-347"><mml:math id="mml-ieqn-347"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is included in the transaction and published on the blockchain. An attacker can obtain <inline-formula id="ieqn-348"><mml:math id="mml-ieqn-348"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> via <inline-formula id="ieqn-349"><mml:math id="mml-ieqn-349"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and attempt to decrypt it. However, the attacker does not know the private key of <inline-formula id="ieqn-350"><mml:math id="mml-ieqn-350"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, which is required to decrypt <inline-formula id="ieqn-351"><mml:math id="mml-ieqn-351"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, that is, in order for P.P.T attackers to compromise the confidentiality of <italic>D</italic>, they must compromise the public-key cryptographic algorithm applied to the proposal model. Therefore, if the cryptographic mechanism applied to the proposal model is secure, the confidentiality of the proposal model is guaranteed. In another case, an adversary can attempt to obtain <italic>D</italic> by compromising <inline-formula id="ieqn-352"><mml:math id="mml-ieqn-352"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> above a threshold. However, since the proposal model inherits the fundamental property of MPC that the presence of malicious participants does not affect the protocol, the attacker cannot obtain <italic>D</italic> from an honest <italic>DO</italic> in the proposal model. <inline-formula id="ieqn-353"><mml:math id="mml-ieqn-353"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Lemma 5.</bold> <italic>Based on the assumptions and the threat model in <xref ref-type="sec" rid="s3_1">Section 3.1</xref>, if the proposal protocol operates in the case where ORTHRUS output data is the result of a function computation, the original data provided by DO is not disclosed to any participants, that is, the proposal model guarantees input privacy</italic>.</p>

<p><bold>Proof:</bold> In the trading process of the proposed protocol when the output data is the result of the function computation, an attacker may try to obtain <italic>D</italic>, from participants without paying the rightful price.
<list list-type="simple">
<list-item><label>1.</label><p>If the attacker wants to obtain <italic>D</italic> via <italic>ED</italic> and <inline-formula id="ieqn-354"><mml:math id="mml-ieqn-354"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>: The attacker can obtain <italic>ED</italic> and <inline-formula id="ieqn-355"><mml:math id="mml-ieqn-355"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> through <inline-formula id="ieqn-356"><mml:math id="mml-ieqn-356"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-357"><mml:math id="mml-ieqn-357"><mml:mi>U</mml:mi><mml:mi>R</mml:mi><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, but cannot decrypt <inline-formula id="ieqn-358"><mml:math id="mml-ieqn-358"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> because he cannot obtain the private key <inline-formula id="ieqn-359"><mml:math id="mml-ieqn-359"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup> <inline-formula id="ieqn-360"><mml:math id="mml-ieqn-360"><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, which is needed to decrypt <inline-formula id="ieqn-361"><mml:math id="mml-ieqn-361"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. Even if the adversary wants to compromise <inline-formula id="ieqn-362"><mml:math id="mml-ieqn-362"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to obtain meaningful data, the proposed model inherits the basic characteristics of MPC, making it difficult to compromise <inline-formula id="ieqn-363"><mml:math id="mml-ieqn-363"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> above a threshold, so the adversary cannot obtain meaningful data <italic>D</italic>.</p></list-item>
<list-item><label>2.</label><p><italic>DR</italic> and <inline-formula id="ieqn-364"><mml:math id="mml-ieqn-364"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> want to obtain <italic>D</italic> maliciously: If the final output of the proposed protocol is a function computation output, <italic>DR</italic> decrypts <inline-formula id="ieqn-365"><mml:math id="mml-ieqn-365"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> provided by <inline-formula id="ieqn-366"><mml:math id="mml-ieqn-366"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> in the actual computation phase to obtain the function computation output share <inline-formula id="ieqn-367"><mml:math id="mml-ieqn-367"><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>. This can be collected and reconstructed on a threshold to obtain the function computation result <italic>X</italic>. However, <italic>D</italic> provided by <italic>DO</italic> cannot be obtained due to the characteristics of the function requested by <italic>DR</italic>.</p></list-item>
<list-item><label>3.</label><p>Each <inline-formula id="ieqn-368"><mml:math id="mml-ieqn-368"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> colludes to obtain <italic>D</italic>: <inline-formula id="ieqn-369"><mml:math id="mml-ieqn-369"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> may attempt to reconstruct <italic>K</italic> by colluding with other <inline-formula id="ieqn-370"><mml:math id="mml-ieqn-370"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>s except itself in order to restore <italic>K</italic>, which is necessary for decrypting <italic>ED</italic>. However, <inline-formula id="ieqn-371"><mml:math id="mml-ieqn-371"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> can&#x2019;t obtain <italic>D</italic> because, according to Lemma 2, pre-collusion attacks are difficult.</p></list-item>
</list></p>
<p>As such, if the cryptographic mechanisms and MPC techniques applied in the proposed model are secure, the likelihood of an attacker compromising input privacy is negligible. <inline-formula id="ieqn-372"><mml:math id="mml-ieqn-372"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Lemma 6.</bold> <italic>Based on the assumptions and threat model in <xref ref-type="sec" rid="s3_1">Section 3.1</xref>, the ORTHRUS satisfies Timeliness if either DO or DR is honest and the SC is secure</italic>.</p>

<p><bold>Proof:</bold> Timeliness means that an honest component can always reach a point in the protocol where it can stop in a finite amount of time with guaranteed fairness. For a proposal model with an <italic>SC</italic> and at least one honest participant, the following termination cases exist:
<list list-type="bullet">
<list-item>
<p>No abort: The proposal model ends when <inline-formula id="ieqn-373"><mml:math id="mml-ieqn-373"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> or <inline-formula id="ieqn-374"><mml:math id="mml-ieqn-374"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> is received if all parties are honest and the final output of the proposal model is the original data, or when <inline-formula id="ieqn-375"><mml:math id="mml-ieqn-375"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> is received if the final output of the proposal model is the result of a function computation, or when <inline-formula id="ieqn-376"><mml:math id="mml-ieqn-376"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> expires. In this case, <italic>DO</italic> and DR are guaranteed to have obtained what they want, and the proposal model is terminated.</p></list-item>
<list-item>
<p>Cancellation at the computation node selection stage: In the computation node selection stage, <inline-formula id="ieqn-377"><mml:math id="mml-ieqn-377"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> means the deadline to apply to participate in the computation node specified by <italic>DO</italic>, that is, only applications that arrive within <inline-formula id="ieqn-378"><mml:math id="mml-ieqn-378"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are recognized as valid. If it does not arrive within <inline-formula id="ieqn-379"><mml:math id="mml-ieqn-379"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, the blockchain node that sent the intention to participate will not be able to participate in the proposed protocol. In addition, <italic>DO</italic> has not yet provided its data.</p></list-item>
<list-item>
<p>Cancel in the data storage stage: At the stage of storing encrypted values in IPFS, <inline-formula id="ieqn-380"><mml:math id="mml-ieqn-380"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> means the data sale validity period defined by <italic>DO</italic>, that is, if <inline-formula id="ieqn-381"><mml:math id="mml-ieqn-381"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> has expired, it means that <italic>DO</italic> has not provided a <inline-formula id="ieqn-382"><mml:math id="mml-ieqn-382"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, in which case <italic>DO</italic> cannot participate in the proposal model. In this case, the <italic>DO</italic> has not provided their data, and the <italic>CN</italic> hasn&#x2019;t performed any calculations, so they don&#x2019;t receive any incentives.</p></list-item>
<list-item>
<p>Revocation in the verification phase of <inline-formula id="ieqn-383"><mml:math id="mml-ieqn-383"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>: In the phase where <inline-formula id="ieqn-384"><mml:math id="mml-ieqn-384"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> verifies the commit values of <italic>ED</italic> and <inline-formula id="ieqn-385"><mml:math id="mml-ieqn-385"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-386"><mml:math id="mml-ieqn-386"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> means the deadline to receive the commit value verification result of <inline-formula id="ieqn-387"><mml:math id="mml-ieqn-387"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> defined by <italic>DO</italic>. If <inline-formula id="ieqn-388"><mml:math id="mml-ieqn-388"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> has expired, this means that <inline-formula id="ieqn-389"><mml:math id="mml-ieqn-389"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> has not provided the commit verification results. In this case, <italic>SC</italic> cancels the transaction process.</p></list-item>
<list-item>
<p>Cancel at the data request stage: At the stage where <italic>DR</italic> publishes a data request to the blockchain network, including the data type he wants, <inline-formula id="ieqn-390"><mml:math id="mml-ieqn-390"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> means the validity time of the <italic>DO<sup>&#x2032;</sup></italic> data advertisement defined by <italic>DO</italic>. If <inline-formula id="ieqn-391"><mml:math id="mml-ieqn-391"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> expires, it means that <italic>DR</italic> has not provided <inline-formula id="ieqn-392"><mml:math id="mml-ieqn-392"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>q</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, in which case <italic>SC</italic> cancels the transaction. At this time, the fairness of <italic>DO</italic> is guaranteed because <italic>DO</italic> has not provided data to <italic>DR</italic>, and the fairness of <italic>DR</italic> is guaranteed because <italic>DR</italic> has not paid.</p></list-item>
<list-item>
<p>Cancellation in the encryption phase of <inline-formula id="ieqn-393"><mml:math id="mml-ieqn-393"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>: In the phase where <inline-formula id="ieqn-394"><mml:math id="mml-ieqn-394"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> encrypts the value it has obtained and delivers it, including a signature for the encrypted value, <inline-formula id="ieqn-395"><mml:math id="mml-ieqn-395"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-396"><mml:math id="mml-ieqn-396"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> means the time at which the signature generated by <inline-formula id="ieqn-397"><mml:math id="mml-ieqn-397"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is valid. If <inline-formula id="ieqn-398"><mml:math id="mml-ieqn-398"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-399"><mml:math id="mml-ieqn-399"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> has expired, it means that <inline-formula id="ieqn-400"><mml:math id="mml-ieqn-400"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> has not provided <inline-formula id="ieqn-401"><mml:math id="mml-ieqn-401"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> or <inline-formula id="ieqn-402"><mml:math id="mml-ieqn-402"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, in which case <italic>SC</italic> cancels the transaction.</p></list-item>
</list></p>
<p><inline-formula id="ieqn-403"><mml:math id="mml-ieqn-403"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>

<p><bold>Theorem 1:</bold> <italic>If the cryptographic primitives underlying ORTHRUS are secure and the blockchain and smart contracts are secure, then ORTHRUS satisfies completeness, resistance to pre-collusion attacks, fairness, confidentiality, input privacy, and timeliness</italic>.</p>

<p><bold>Proof:</bold> Guaranteed by Lemma 1, 2, 3, 4, 5, and 6. <inline-formula id="ieqn-404"><mml:math id="mml-ieqn-404"><mml:mi>&#x25FB;</mml:mi></mml:math></inline-formula></p>
<p>The ORTHRUS is secure against second-resell attacks. A second reselling attack occurs when a malicious buyer purchases data from the blockchain and then resells the same data for their own profit. If duplicate data are found, the seller is verified to be the owner of the original data and the seller is verified to be the buyer in the previous transaction. If the current seller was the buyer in the previous transaction, the resale transaction can be invalidated. In ORTHRUS, <italic>DO<sup>&#x2032;</sup></italic>s activities are recorded on the blockchain using transactions. In addition, commitment techniques, signature techniques, hash functions, etc. are applied to verify the values shared between each participant in the ORTHRUS transaction process. Based on the techniques applied, ORTHRUS prevents secondary resale within the platform. However, it does not prevent the resale of the data in other ways or on other platforms for personal gain.</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Comparative Analysis with Existing Research</title>
<p>In this section, we compare three of the existing studies mentioned in <xref ref-type="sec" rid="s1"> Section 1</xref> with the ORTHRUS based on the security analysis criteria.</p>
<p>Li et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] proposed a BSAS to recommend a consensus speed for a group of vehicles based on a blockchain. The BSAS computes a polynomial to obtain the optimal rate, where each user&#x2019;s secret value is unknown to the others. BSAS randomly selects operators, but it does not guarantee against collusion attacks among other users. Therefore, if collusion among users is successful, the secret value used to compute the polynomial can be known. In other words, if the trustworthiness of the polynomial or the trustworthiness of the computation participants is not guaranteed, the security of the secret value is not guaranteed. Yuan et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] proposed TRUCON, a blockchain-based data sharing mechanism with congestion control in IoV environments. TRUCON has a trust factor and there is no punishment or reward process. In addition, message forwarding is done between vehicles and RSUs, but it does not consider detailed privacy issues and malicious behavior of dishonest participants. Sadiq et al. [<xref ref-type="bibr" rid="ref-12">12</xref>] proposed a vehicle data transaction model based on a consortium blockchain with trusted authorities. It stores unencrypted original data in IPFS and utilizes the same unencrypted original data for data transactions. It does not take into account the existence of dishonest participants, and there is no mechanism for punishment and reward.</p>
<p>In contrast, ORTHRUS is designed on a public blockchain with no trust factor, ensuring full decentralization. In addition, the nodes that participate in the actual computation process are selected using a randomized leader selection technique, making it difficult to predict the probability that a node that has colluded in malicious behavior in advance will participate in the computation process. This prevents collusion attacks. Since ORTHRUS inherits the security of the applied cryptographic techniques, if the final output is the original data, participants other than <italic>DR</italic> who have paid a reasonable amount of money are not permitted to access <italic>D</italic>. If the final result is the result of a function computation, then all participants cannot access and obtain the original data <italic>D</italic>. The ORTHRUS enforces punishments such as deposit forfeiture and reputation score reduction through smart contracts to participants who engage in malicious behavior. Conversely, if the transaction is terminated legitimately, they receive a share of the data payment and incentives, and their reputation score increases. Finally, the ORTHRUS supports both original data and function computation result as final outputs, overcoming the problem of existing vehicle data trading methods that depend on the type and delivery method of final outputs supported by the registered trading platform. The ORTHRUS allows data owners to provide their own data in the type and manner they want. At the same time, when the data transaction process begins, the rights to the data provided by the data owner are not transferred, and the data owner retains control over the original data. In other words, the data owner sets the type of data provision and the transaction method, ensuring data sovereignty. In this way, ORTHRUS, which supports two types of data as the end result and guarantees data sovereignty, presents a revolutionary way to trade vehicle data, enabling users to obtain all desired data types within a single platform, instead of using multiple platforms to obtain the desired data types. <xref ref-type="table" rid="table-1">Table 1</xref> below shows a comparison of features with existing studies.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Comparison of features between ORTHRUS and existing models</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th></th>
<th>Data sovereignty</th>
<th>Fairness</th>
<th>Input privacy</th>
<th>Decentralized</th>
<th>Preventing pre-collusion</th>
</tr>
</thead>
<tbody>
<tr>
<td>Li et al. [<xref ref-type="bibr" rid="ref-10">10</xref>]</td>
<td>X</td>
<td>O</td>
<td><inline-formula id="ieqn-405"><mml:math id="mml-ieqn-405"><mml:mi mathvariant="normal">&#x25B3;</mml:mi></mml:math></inline-formula></td>
<td>O</td>
<td><inline-formula id="ieqn-406"><mml:math id="mml-ieqn-406"><mml:mi mathvariant="normal">&#x25B3;</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td>Yuan et al. [<xref ref-type="bibr" rid="ref-11">11</xref>]</td>
<td>X</td>
<td><inline-formula id="ieqn-407"><mml:math id="mml-ieqn-407"><mml:mi mathvariant="normal">&#x25B3;</mml:mi></mml:math></inline-formula></td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>Sadiq et al. [<xref ref-type="bibr" rid="ref-12">12</xref>]</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr>
<td>ORTHRUS</td>
<td>O</td>
<td>O</td>
<td>O</td>
<td>O</td>
<td>O</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-1fn1" fn-type="other">
<p>Note: <italic>O</italic>: satisfied, <italic>X</italic>: not satisfied, <inline-formula id="ieqn-408"><mml:math id="mml-ieqn-408"><mml:mi mathvariant="normal">&#x25B3;</mml:mi></mml:math></inline-formula>: partially satisfied.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>In an IoV environment, vehicles collect and generate data through interactions with various sensors and peripherals. This data is then utilized for user convenience systems or transportation systems. However, existing vehicle data sharing and transaction models are designed in a centralized way due to the trust factor, leading to various problems such as single point of failure, data leakage, and privacy protection. To solve these problems, blockchain-based models have emerged, but vehicle owners&#x2019; sensitive information contained in vehicle data is still not protected, and data owners are not guaranteed data sovereignty due to the reliance on participatory data transaction models.</p>
<p>In this paper, we proposed ORTHRUS, a blockchain-based model for vehicle data trading that prioritizes privacy protection. The ORTHRUS guarantees data sovereignty by allowing data owners to trade data in the way they want. In addition, unlike previous studies, ORTHRUS supports two types of outputs: original data and function computation results. By employing MPC technique, MOZAIK architecture, and the random leader selection technique, the proposed scheme, ORTHRUS, guarantees the input privacy and resistance to pre-collusion attacks. Furthermore, the proposed model promotes fairness by identifying dishonest behavior among participants by enforcing penalties and rewards through the implementation of smart contracts. Finally, the distributed decryption performance of the proposed model depends on the performance of the applied MPC technique. Currently, one of the most important and challenging issues in MPC is performance optimization, and for MPC to be deployed in commercial services, its performance problems must be resolved. Even in existing services applying MPC techniques, the number of computational servers used ranges from a minimum of two to a maximum of five. The ORTHRUS system proposed in this paper also conducted performance analyses using only three and five computational nodes, similar to these services. Therefore, limitations exist regarding computational efficiency and service scalability. Consequently, future research will focus on optimizing MPC performance in ORTHRUS implementations involving a larger number of computational nodes. This future research is expected to further enhance the practicality of the proposed ORTHRUS model and contribute to the advancement of privacy-preserving computing technology in distributed environments.</p>
</sec>
</body>
<back>
<ack>
<p>Not applicable.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>This work was supported by the IITP (Institute of Information &#x0026; communications Technology Planning &#x0026; Evaluation)-ITRC (Information Technology Research Center) grant funded by the Korea government (Ministry of Science and ICT) (IITP-2025-RS-2020-II201797), and was supported as a &#x2018;Technology Commercialization Collaboration Platform Construction&#x2019; project of the INNOPOLIS FOUNDATION (Project Number: 1711202494).</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: study conception and design: Su Jin Shin, Sang Uk Shin; data collection: Su Jin Shin; analysis and interpretation of results: Su Jin Shin, Sang Uk Shin; draft manuscript preparation: Su Jin Shin. All authors reviewed the results and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>Not applicable.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<app-group id="appg-1">
<app id="app-1">
<title>Appendix A ORTHRUS&#x2019;s Pseudo-code</title>
<p>The ORTHRUS consists of a preprocessing phase, a matching phase, and an actual computation phase. Appendix A presents each stage of the ORTHRUS in pseudo-code. Additionally, <xref ref-type="table" rid="table-2">Table A1</xref> explains the symbols used in the algorithm.</p>
<table-wrap id="table-2">
<label>Table A1</label>
<caption>
<title>Notation and meanings used in the proposed model</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Notation</th>
<th>Meaning</th>
<th>Notation</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-409"><mml:math id="mml-ieqn-409"><mml:mi>I</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>ID of <italic>XX</italic></td>
<td><inline-formula id="ieqn-410"><mml:math id="mml-ieqn-410"><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Private key of <italic>XX</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-411"><mml:math id="mml-ieqn-411"><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Public key of <italic>XX</italic></td>
<td><inline-formula id="ieqn-412"><mml:math id="mml-ieqn-412"><mml:mi>s</mml:mi><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Signature verification key of <italic>XX</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-413"><mml:math id="mml-ieqn-413"><mml:mi>s</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Signing key of <italic>XX</italic></td>
<td><italic>D</italic></td>
<td>Data provided by <italic>DO</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-414"><mml:math id="mml-ieqn-414"><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:math></inline-formula></td>
<td>Description of data <italic>D</italic></td>
<td><inline-formula id="ieqn-415"><mml:math id="mml-ieqn-415"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Data type provided by <italic>DO</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-416"><mml:math id="mml-ieqn-416"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Data type desired by <italic>DR</italic></td>
<td><italic>P</italic></td>
<td>Base probability value to be used in the random leader selection technique</td>
</tr>
<tr>
<td><italic>N</italic></td>
<td>Total number of computation nodes</td>
<td><italic>URI</italic></td>
<td>Location of data stored on IPFS</td>
</tr>
<tr>
<td><italic>F</italic></td>
<td><italic>DR<sup>&#x2032;</sup></italic>s computation request function</td>
<td><inline-formula id="ieqn-417"><mml:math id="mml-ieqn-417"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi><mml:mi>o</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Deposit of the <italic>XX</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-418"><mml:math id="mml-ieqn-418"><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><italic>XX<sup>&#x2032;</sup></italic>s reputation score</td>
<td><inline-formula id="ieqn-419"><mml:math id="mml-ieqn-419"><mml:mi>P</mml:mi><mml:mi>e</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>X</mml:mi><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><italic>XX<italic><sup>&#x2032;</sup></italic></italic>s desired opponent<sup>&#x2032;</sup>s reputation score</td>
</tr>
<tr>
<td><inline-formula id="ieqn-420"><mml:math id="mml-ieqn-420"><mml:mi>I</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula></td>
<td>Incentive</td>
<td><inline-formula id="ieqn-421"><mml:math id="mml-ieqn-421"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>O</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>If <inline-formula id="ieqn-422"><mml:math id="mml-ieqn-422"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, data fee</td>
</tr>
<tr>
<td><inline-formula id="ieqn-423"><mml:math id="mml-ieqn-423"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>If <inline-formula id="ieqn-424"><mml:math id="mml-ieqn-424"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>O</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, data fee</td>
<td><inline-formula id="ieqn-425"><mml:math id="mml-ieqn-425"><mml:mi>V</mml:mi><mml:mi>C</mml:mi><mml:mi>N</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula></td>
<td>A list of information about <inline-formula id="ieqn-426"><mml:math id="mml-ieqn-426"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> instances whose submitted values led to verification failure</td>
</tr>
<tr>
<td><italic>L</italic></td>
<td>A list containing information about the selected computation nodes</td>
<td><inline-formula id="ieqn-427"><mml:math id="mml-ieqn-427"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Data sales period defined by <italic>DO</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-428"><mml:math id="mml-ieqn-428"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mi>l</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Deadline for application for participation in the computation node defined by <italic>DO</italic></td>
<td><inline-formula id="ieqn-429"><mml:math id="mml-ieqn-429"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Time period during which a component that has submitted a computation node participation request remains online</td>
</tr>
<tr>
<td><inline-formula id="ieqn-430"><mml:math id="mml-ieqn-430"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Deadline for <italic>DO</italic> to receive <inline-formula id="ieqn-431"><mml:math id="mml-ieqn-431"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> from <inline-formula id="ieqn-432"><mml:math id="mml-ieqn-432"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-433"><mml:math id="mml-ieqn-433"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Validity period of advertising transactions distributed by <italic>DO</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-434"><mml:math id="mml-ieqn-434"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Validity period of the signature generated by <inline-formula id="ieqn-435"><mml:math id="mml-ieqn-435"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> (if the output is original data)</td>
<td><inline-formula id="ieqn-436"><mml:math id="mml-ieqn-436"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>F</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Validity period of the signature generated by <inline-formula id="ieqn-437"><mml:math id="mml-ieqn-437"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> (if the output is function computation result)</td>
</tr>
<tr>
<td><inline-formula id="ieqn-438"><mml:math id="mml-ieqn-438"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Time period during which the computation node must remain online, as defined by the <italic>SC</italic></td>
<td><inline-formula id="ieqn-439"><mml:math id="mml-ieqn-439"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Trading end time defined by <italic>SC</italic></td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s6_1">
<title>Appendix A.1 Preprocessing Phase</title>
<p><list list-type="bullet">
<list-item>
<p>Data publish step:</p>
<p>Upon receiving <inline-formula id="ieqn-440"><mml:math id="mml-ieqn-440"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> from <italic>DO</italic>, <italic>SC</italic> operates as described in Algorithm A1.</p></list-item>
</list></p>
<p><list list-type="bullet">
<list-item>
<p>Computation node selection step:</p>
<p>Blockchain participating nodes generate their signatures based on <inline-formula id="ieqn-441"><mml:math id="mml-ieqn-441"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. They transmit <inline-formula id="ieqn-442"><mml:math id="mml-ieqn-442"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-443"><mml:math id="mml-ieqn-443"><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, including this signature, to the <italic>SC</italic>. The receiving <italic>SC</italic> operates as described in Algorithm A2. Here, <italic>M</italic> denotes the total number of nodes participating in the blockchain network.</p></list-item>
</list></p>
<p><list list-type="bullet">
<list-item>
<p>Data encryption step:</p>
<p>The DO transmits <inline-formula id="ieqn-444"><mml:math id="mml-ieqn-444"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic>. Upon receiving it, the <italic>SC</italic> verifies the transaction using Algorithm A3.</p></list-item>
</list></p>
<p><list list-type="bullet">
<list-item>
<p>Verification and distributed decryption of commit values:</p>
<p>Algorithm A4 shows the process where <inline-formula id="ieqn-445"><mml:math id="mml-ieqn-445"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> performs distributed decryption and the <italic>SC</italic> receives the results.</p></list-item>
</list></p>
<p><list list-type="bullet">
<list-item>
<p>Data advertising step: Algorithm A5 is the process by which <italic>DO</italic> distributes transactions to the blockchain network for data sales.</p></list-item>
</list></p>
<fig id="fig-6">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-6.tif"/>
</fig>
<fig id="fig-7">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-7.tif"/>
</fig>
<fig id="fig-8">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-8.tif"/>
</fig>
<fig id="fig-9">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-9.tif"/>
</fig>
<fig id="fig-10">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-10.tif"/>
</fig>
</sec>
<sec id="s6_2">
<title>Appendix A.2 Matching Phase</title>
<p>Algorithm A6 shows the process where <italic>SC</italic> matches <italic>DR</italic> and <italic>DO</italic>. Here, if <inline-formula id="ieqn-525"><mml:math id="mml-ieqn-525"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, the final result value of the proposed model is the original data. If <inline-formula id="ieqn-526"><mml:math id="mml-ieqn-526"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, it is the result value of the function computation.</p>
<fig id="fig-11">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-11.tif"/>
</fig>
</sec>
<sec id="s6_3">
<title>Appendix A.3 Actual Computation Phase</title>
<p>This process executes differently depending on the <inline-formula id="ieqn-535"><mml:math id="mml-ieqn-535"><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi></mml:math></inline-formula> value.
<list list-type="bullet">
<list-item>
<p>If the final result is original data <inline-formula id="ieqn-536"><mml:math id="mml-ieqn-536"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>:</p>
<p>This proceeds in two stages: (1) the encryption and signature generation step and (2) the verification step.
<list list-type="simple">
<list-item><label>1.</label><p>The encryption and signature generation step: The <inline-formula id="ieqn-537"><mml:math id="mml-ieqn-537"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> transmits <inline-formula id="ieqn-538"><mml:math id="mml-ieqn-538"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, which includes the encrypted value of <inline-formula id="ieqn-539"><mml:math id="mml-ieqn-539"><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, to <italic>SC</italic>. Upon receiving this, <italic>SC</italic> verifies it as described in Algorithm A7.</p></list-item>
<list-item><label>2.</label><p>The verification step: The <italic>DR</italic> generates a hash value <inline-formula id="ieqn-540"><mml:math id="mml-ieqn-540"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> for <italic>D</italic>. It then transmits the result of comparing this with <inline-formula id="ieqn-541"><mml:math id="mml-ieqn-541"><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> stored by <italic>DO</italic> to <italic>SC</italic>. The <italic>SC</italic> receives this and verifies it using Algorithm A8.</p></list-item>
</list></p></list-item>
</list></p>
<p><list list-type="bullet">
<list-item>
<p>If the final result is the result of a function computation <inline-formula id="ieqn-542"><mml:math id="mml-ieqn-542"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>:</p>
<p>This process consists of (1) the function computation step and (2) the verification and reconstruction step.
<list list-type="simple">
<list-item><label>1.</label><p>The function computation step: The <inline-formula id="ieqn-543"><mml:math id="mml-ieqn-543"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> computes the function <italic>F</italic> requested by <italic>DR</italic> and transmits it to <italic>SC</italic>. The detailed process is as described in Algorithm A9.</p></list-item>
<list-item><label>2.</label><p>The verification and reconstruction step: The <italic>DR</italic> performs verification on <inline-formula id="ieqn-544"><mml:math id="mml-ieqn-544"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-545"><mml:math id="mml-ieqn-545"><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, and transmits the results to <italic>SC</italic>. The detailed process is as described in Algorithm A10.</p></list-item>
</list></p></list-item>
</list></p>
<fig id="fig-12">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-12.tif"/>
</fig>
<fig id="fig-13">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-13.tif"/>
</fig>
<fig id="fig-14">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-14.tif"/>
</fig>
<fig id="fig-15">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-15.tif"/>
</fig>
</sec>

</app>
<app id="app-2">
<title>Appendix B Pseudo-Code of the Dispute Resolution Phase</title>
<p>The dispute resolution phase proceeds when the <italic>SC</italic> receives a dispute resolution request from other participants under the following conditions: (1) <italic>ED<sup>&#x2032;</sup></italic>s commit value verification fails, (2) <inline-formula id="ieqn-606"><mml:math id="mml-ieqn-606"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s commit value verification fails, (3) <inline-formula id="ieqn-607"><mml:math id="mml-ieqn-607"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails, (4) <italic>D<sup>&#x2032;</sup></italic>s hash value verification fails, or (5) <inline-formula id="ieqn-608"><mml:math id="mml-ieqn-608"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s signature verification fails. (3) and (4) are dispute resolution phase that occur when ORTHRUS provides the original data as the final result. (5) is a dispute resolution phase that occurs when ORTHRUS provides the function computation result as the final result.</p>
<sec id="s7_1">
<title>Appendix B.1 Verification Failure of ED<sup>&#x2032;</sup>s Commit Value</title>
<p>This process occurs when <inline-formula id="ieqn-609"><mml:math id="mml-ieqn-609"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-610"><mml:math id="mml-ieqn-610"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, fails to verify the commit value for <italic>ED</italic> and sends <inline-formula id="ieqn-611"><mml:math id="mml-ieqn-611"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>D</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to <italic>SC</italic> as a dispute resolution request. Algorithm A11 details this process.</p>
<fig id="fig-16">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-16.tif"/>
</fig>
</sec>
<sec id="s7_2">
<title>Appendix B.2 Verification Failure of <inline-formula id="ieqn-630"><mml:math id="mml-ieqn-630"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s Commit Value</title>
<p>This process occurs when <inline-formula id="ieqn-631"><mml:math id="mml-ieqn-631"><mml:mi>C</mml:mi><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-632"><mml:math id="mml-ieqn-632"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, fails to verify the commit value for <inline-formula id="ieqn-633"><mml:math id="mml-ieqn-633"><mml:mi>E</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and sends <inline-formula id="ieqn-634"><mml:math id="mml-ieqn-634"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>E</mml:mi><mml:mi>K</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to <italic>SC</italic> as a dispute resolution request. Algorithm A12 details this process.</p>
<fig id="fig-17">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-17.tif"/>
</fig>
</sec>
<sec id="s7_3">
<title>Appendix B.3 Verification Failure of <inline-formula id="ieqn-655"><mml:math id="mml-ieqn-655"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s Signature</title>
<p>This process occurs when <italic>DR</italic>, fails to verify the signature for <inline-formula id="ieqn-656"><mml:math id="mml-ieqn-656"><mml:mi>E</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-657"><mml:math id="mml-ieqn-657"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and sends <inline-formula id="ieqn-658"><mml:math id="mml-ieqn-658"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic> as a dispute resolution request. Algorithm A13 details this process.</p>
<fig id="fig-18">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-18.tif"/>
</fig>
</sec>
<sec id="s7_4">
<title>Appendix B.4 Verification Failure of D<sup>&#x2032;</sup>s Hash Value</title>
<p>This process occurs when <italic>DR</italic>, fails to verify the hash value for <italic>D</italic> and sends <inline-formula id="ieqn-669"><mml:math id="mml-ieqn-669"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic> as a dispute resolution request. Algorithm A14 details this process.</p>
<fig id="fig-19">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-19.tif"/>
</fig>
</sec>
<sec id="s7_5">
<title>Appendix B.5 Verification Failure of <inline-formula id="ieqn-683"><mml:math id="mml-ieqn-683"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula><sup>&#x2032;</sup>s Signature</title>
<p>This process occurs when <italic>DR</italic>, fails to verify the signature for <inline-formula id="ieqn-684"><mml:math id="mml-ieqn-684"><mml:mi>E</mml:mi><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> and sends <inline-formula id="ieqn-685"><mml:math id="mml-ieqn-685"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>F</mml:mi><mml:mi>V</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mi>S</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>T</mml:mi><mml:mi>x</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to <italic>SC</italic> as a dispute resolution request. Algorithm A15 details this process.</p>
<fig id="fig-20">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_72602-fig-20.tif"/>
</fig>
</sec>

</app>
</app-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Farayola</surname> <given-names>OA</given-names></string-name>, <string-name><surname>Olorunfemi</surname> <given-names>OL</given-names></string-name>, <string-name><surname>Shoetan</surname> <given-names>PO</given-names></string-name></person-group>. <article-title>Data privacy and security in it: a review of techniques and challenges</article-title>. <source>Comput Sci IT Res J</source>. <year>2024</year>;<volume>5</volume>(<issue>3</issue>):<fpage>606</fpage>&#x2013;<lpage>15</lpage>. doi:<pub-id pub-id-type="doi">10.51594/csitrj.v5i3.909</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Fabianek</surname> <given-names>C</given-names></string-name>, <string-name><surname>Krenn</surname> <given-names>S</given-names></string-name>, <string-name><surname>Loruenser</surname> <given-names>T</given-names></string-name>, <string-name><surname>Siska</surname> <given-names>V</given-names></string-name></person-group>. <article-title>Secure computation and trustless data intermediaries in data spaces</article-title>. <comment>arXiv:2410.16442. 2024</comment>. doi:<pub-id pub-id-type="doi">10.48550/arXiv.2410.16442</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Karim</surname> <given-names>SM</given-names></string-name>, <string-name><surname>Habbal</surname> <given-names>A</given-names></string-name>, <string-name><surname>Chaudhry</surname> <given-names>SA</given-names></string-name>, <string-name><surname>Irshad</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Architecture, protocols, and security in IoV: taxonomy, analysis, challenges, and solutions</article-title>. <source>Secur Commun Netw</source>. <year>2022</year>;<volume>2022</volume>(<issue>1</issue>):<fpage>1131479</fpage>. doi:<pub-id pub-id-type="doi">10.1155/2022/1131479</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Luo</surname> <given-names>Y</given-names></string-name>, <string-name><surname>You</surname> <given-names>W</given-names></string-name>, <string-name><surname>Shang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Ren</surname> <given-names>X</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name></person-group>. <article-title>A cloud-fog enabled and privacy-preserving IoT data market platform based on blockchain</article-title>. <source>Comput Model Eng Sci</source>. <year>2024</year>;<volume>139</volume>(<issue>2</issue>):<fpage>2237</fpage>&#x2013;<lpage>60</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2023.045679</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lan</surname> <given-names>C</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name></person-group>. <article-title>BC-PC-Share: blockchain-based patient-centric data sharing scheme for PHRs in cloud computing</article-title>. <source>Comput Model Eng Sci</source>. <year>2023</year>;<volume>136</volume>(<issue>3</issue>):<fpage>2985</fpage>&#x2013;<lpage>3010</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2023.026321</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Golob</surname> <given-names>S</given-names></string-name>, <string-name><surname>Pentyala</surname> <given-names>S</given-names></string-name>, <string-name><surname>Dowsley</surname> <given-names>R</given-names></string-name>, <string-name><surname>David</surname> <given-names>B</given-names></string-name>, <string-name><surname>Larangeira</surname> <given-names>M</given-names></string-name>, <string-name><surname>De Cock</surname> <given-names>M</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>A decentralized information marketplace preserving input and output privacy</article-title>. In: <conf-name>DEC &#x2019;23: Proceedings of the Second ACM Data Economy Workshop; 2023 June 18; Seattle, WA, USA</conf-name>. p. <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Gabrielli</surname> <given-names>S</given-names></string-name>, <string-name><surname>Krenn</surname> <given-names>S</given-names></string-name>, <string-name><surname>Pellegrino</surname> <given-names>D</given-names></string-name>, <string-name><surname>P&#x00E9;rez Ba&#x00FA;n</surname> <given-names>JC</given-names></string-name>, <string-name><surname>P&#x00E9;rez Berganza</surname> <given-names>P</given-names></string-name>, <string-name><surname>Ramacher</surname> <given-names>S</given-names></string-name>, <etal>et al.</etal></person-group> <source>Kraken: a secure, trusted, regulatory-compliant, and privacy-preserving data sharing platform</source>. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>; <year>2022</year>. p. <fpage>107</fpage>&#x2013;<lpage>30</lpage>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Khan</surname> <given-names>JA</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>W</given-names></string-name>, <string-name><surname>Ozbay</surname> <given-names>K</given-names></string-name></person-group>. <article-title>BELIEVE: privacy-aware secure multi-party computation for real-time connected and autonomous vehicles and micro-mobility data validation using blockchain&#x2014;a study on New York City data</article-title>. <source>Transp Res Rec</source>. <year>2024</year>;<volume>2678</volume>(<issue>3</issue>):<fpage>410</fpage>&#x2013;<lpage>21</lpage>. doi:<pub-id pub-id-type="doi">10.1177/03611981231180200</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhao</surname> <given-names>C</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>S</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>M</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>CZ</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Secure multi-party computation: theory, practice and applications</article-title>. <source>Inf Sci</source>. <year>2019</year>;<volume>476</volume>(<issue>1</issue>):<fpage>357</fpage>&#x2013;<lpage>72</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ins.2018.10.024</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>S</given-names></string-name>, <string-name><surname>Cheng</surname> <given-names>L</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Pei</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name></person-group>. <article-title>BSAS: a blockchain-based trustworthy and privacy-preserving speed advisory system</article-title>. <source>IEEE Trans Vehicular Technol</source>. <year>2022</year>;<volume>71</volume>(<issue>11</issue>):<fpage>11421</fpage>&#x2013;<lpage>30</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TVT.2022.3189410</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yuan</surname> <given-names>M</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Tan</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Ren</surname> <given-names>J</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Trucon: blockchain-based trusted data sharing with congestion control in internet of vehicles</article-title>. <source>IEEE Trans Intell Transp Syst</source>. <year>2022</year>;<volume>24</volume>(<issue>3</issue>):<fpage>3489</fpage>&#x2013;<lpage>500</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TITS.2022.3226500</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Sadiq</surname> <given-names>A</given-names></string-name>, <string-name><surname>Javaid</surname> <given-names>N</given-names></string-name>, <string-name><surname>Samuel</surname> <given-names>O</given-names></string-name>, <string-name><surname>Khalid</surname> <given-names>A</given-names></string-name>, <string-name><surname>Haider</surname> <given-names>N</given-names></string-name>, <string-name><surname>Imran</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Efficient data trading and storage in internet of vehicles using consortium blockchain</article-title>. In: <conf-name>2020 International Wireless Communications and Mobile Computing (IWCMC); 2020 Jun 15&#x2013;19; Limassol, Cyprus</conf-name>. p. <fpage>2143</fpage>&#x2013;<lpage>8</lpage>. doi:<pub-id pub-id-type="doi">10.1109/iwcmc48107.2020.9148188</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Marquet</surname> <given-names>E</given-names></string-name>, <string-name><surname>Moeyersons</surname> <given-names>J</given-names></string-name>, <string-name><surname>Pohle</surname> <given-names>E</given-names></string-name>, <string-name><surname>Van Kenhove</surname> <given-names>M</given-names></string-name>, <string-name><surname>Abidin</surname> <given-names>A</given-names></string-name>, <string-name><surname>Volckaert</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Secure key management for multi-party computation in Mozaik</article-title>. In: <conf-name>2023 IEEE European Symposium on Security and Privacy Workshops (EuroS&#x0026;PW); 2023 Jul 3&#x2013;7; Delft, Netherlands</conf-name>. p. <fpage>133</fpage>&#x2013;<lpage>40</lpage>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chattopadhyay</surname> <given-names>AK</given-names></string-name>, <string-name><surname>Saha</surname> <given-names>S</given-names></string-name>, <string-name><surname>Nag</surname> <given-names>A</given-names></string-name>, <string-name><surname>Nandi</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Secret sharing: a comprehensive survey, taxonomy and applications</article-title>. <source>Comput Sci Rev</source>. <year>2024</year>;<volume>51</volume>(<issue>2</issue>):<fpage>100608</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cosrev.2023.100608</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Damg&#x00E5;rd</surname> <given-names>I</given-names></string-name>, <string-name><surname>Keller</surname> <given-names>M</given-names></string-name>, <string-name><surname>Larraia</surname> <given-names>E</given-names></string-name>, <string-name><surname>Pastro</surname> <given-names>V</given-names></string-name>, <string-name><surname>Scholl</surname> <given-names>P</given-names></string-name>, <string-name><surname>Smart</surname> <given-names>NP</given-names></string-name></person-group>. <article-title>Practical covertly secure MPC for dishonest majority-or: breaking the SPDZ limits</article-title>. In: <conf-name>18th European Symposium on Research in Computer Security; 2013 Sep 9&#x2013;13; Egham, UK</conf-name>. p. <fpage>1</fpage>&#x2013;<lpage>18</lpage>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Rogaway</surname> <given-names>P</given-names></string-name></person-group>. <article-title>Authenticated-encryption with associated-data</article-title>. In: <conf-name>Proceedings of the 9th ACM Conference on Computer and Communications Security; 2002 Nov 18&#x2013;22; Washington, DC, USA</conf-name>. p. <fpage>98</fpage>&#x2013;<lpage>107</lpage>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Al-Kuwari</surname> <given-names>S</given-names></string-name>, <string-name><surname>Davenport</surname> <given-names>JH</given-names></string-name>, <string-name><surname>Bradford</surname> <given-names>RJ</given-names></string-name></person-group>. <article-title>Cryptographic hash functions: recent design trends and security notions</article-title>. In: <conf-name>6th China International Conference on Information Security and Cryptology (Inscrypt 2010); 2010 Oct 20&#x2013;23; Shanghai, China</conf-name>. p. <fpage>133</fpage>&#x2013;<lpage>50</lpage>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bellare</surname> <given-names>M</given-names></string-name>, <string-name><surname>Desai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Jokipii</surname> <given-names>E</given-names></string-name>, <string-name><surname>Rogaway</surname> <given-names>P</given-names></string-name></person-group>. <article-title>A concrete security treatment of symmetric encryption</article-title>. In: <conf-name>Proceedings 38th Annual Symposium on Foundations of Computer Science; 1997 Oct 20&#x2013;22; Miami Beach, FL, USA</conf-name>. p. <fpage>394</fpage>&#x2013;<lpage>403</lpage>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Benaloh</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Dense probabilistic encryption</article-title>. In: <conf-name>Proceedings of the Workshop on Selected Areas of Cryptography; 1994; Kingston, ON, Canada</conf-name>. p. <fpage>120</fpage>&#x2013;<lpage>45</lpage>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Naor</surname> <given-names>M</given-names></string-name>, <string-name><surname>Yung</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Public-key cryptosystems provably secure against chosen ciphertext attacks</article-title>. In: <conf-name>STOC90: 22nd Annual ACM Symposium on Theory of Computing; 1990 May 13&#x2013;17; Baltimore, MD, USA</conf-name>. p. <fpage>427</fpage>&#x2013;<lpage>37</lpage>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Goldwasser</surname> <given-names>S</given-names></string-name>, <string-name><surname>Micali</surname> <given-names>S</given-names></string-name>, <string-name><surname>Rivest</surname> <given-names>RL</given-names></string-name></person-group>. <article-title>A digital signature scheme secure against adaptive chosen-message attacks</article-title>. <source>SIAM J Comput</source>. <year>1988</year>;<volume>17</volume>(<issue>2</issue>):<fpage>281</fpage>&#x2013;<lpage>308</lpage>. doi:<pub-id pub-id-type="doi">10.1137/0217017</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>J</given-names></string-name>, <string-name><surname>Algorand</surname> <given-names>MS</given-names></string-name></person-group>. <article-title>arXiv:1607.01341. 2016</article-title>. doi:<pub-id pub-id-type="doi">10.48550/arXiv.1607.01341</pub-id>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Kosba</surname> <given-names>A</given-names></string-name>, <string-name><surname>Miller</surname> <given-names>A</given-names></string-name>, <string-name><surname>Shi</surname> <given-names>E</given-names></string-name>, <string-name><surname>Wen</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Papamanthou</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Hawk: the blockchain model of cryptography and privacy-preserving smart contracts</article-title>. In: <conf-name>2016 IEEE Symposium on Security and Privacy (SP); 2016 May 22&#x2013;26; San Francisco, CA, USA</conf-name>. p. <fpage>839</fpage>&#x2013;<lpage>58</lpage>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Abe</surname> <given-names>M</given-names></string-name>, <string-name><surname>Ohkubo</surname> <given-names>M</given-names></string-name></person-group>. <article-title>A framework for universally composable non-committing blind signatures</article-title>. <source>Int J Appl Cryptogr</source>. <year>2012</year>;<volume>2</volume>(<issue>3</issue>):<fpage>229</fpage>&#x2013;<lpage>49</lpage>. doi:<pub-id pub-id-type="doi">10.1504/IJACT.2012.045581</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Lindell</surname> <given-names>AY</given-names></string-name></person-group>. <article-title>Adaptively secure two-party computation with erasures</article-title>. In: <conf-name>Paper Session Presented at: Cryptographers&#x2019; Track at the RSA Conference; 2009 April 20&#x2013;24; San Francisco, CA, USA</conf-name>. p. <fpage>117</fpage>&#x2013;<lpage>32</lpage>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Miao</surname> <given-names>X</given-names></string-name>, <string-name><surname>Xue</surname> <given-names>M</given-names></string-name></person-group>. <article-title>A reputation-based approach using consortium blockchain for cyber threat intelligence sharing</article-title>. <source>Secur Commun Netw</source>. <year>2022</year>;<volume>2022</volume>(<issue>1</issue>):<fpage>7760509</fpage>. doi:<pub-id pub-id-type="doi">10.1155/2022/7760509</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Su</surname> <given-names>J</given-names></string-name>, <string-name><surname>Cai</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Blockchain and trusted reputation assessment-based incentive mechanism for healthcare services</article-title>. <source>Future Gener Comput Syst</source>. <year>2024</year>;<volume>154</volume>(<issue>3</issue>):<fpage>59</fpage>&#x2013;<lpage>71</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.future.2023.12.023</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bhati</surname> <given-names>AS</given-names></string-name>, <string-name><surname>Pohle</surname> <given-names>R</given-names></string-name>, <string-name><surname>Abidin</surname> <given-names>A</given-names></string-name>, <string-name><surname>Andreeva</surname> <given-names>E</given-names></string-name>, <string-name><surname>Preneel</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Let&#x2019;s Go Eevee! A friendly and suitable family of AEAD modes for IoT-to-cloud secure computation</article-title>. In: <conf-name>CCS &#x2019;23: ACM SIGSAC Conference on Computer and Communications Security; 2023 Nov 26&#x2013;30; Copenhagen Denmark</conf-name>. p. <fpage>2546</fpage>&#x2013;<lpage>60</lpage>.</mixed-citation></ref>
</ref-list>
</back></article>