Method performed by computing device and method performed by aggregated coordinator
By using a distributed computing system and a trusted execution environment, the problem of limited computing resources on a single computing device is solved, enabling efficient execution of computing tasks and improved user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHANGGAO SECURITIES CO LTD
- Filing Date
- 2026-01-13
- Publication Date
- 2026-05-05
AI Technical Summary
Due to limited computing resources, individual computing devices take a long time to execute computing tasks, which limits the application scenarios and user experience of software applications.
Through a distributed computing system, utilizing a blockchain network and a trusted execution environment, computing tasks are divided into sub-tasks and distributed to multiple computing devices for execution. An aggregator aggregates the execution evidence from the devices, generates unified evidence, and submits it to the distributed ledger network.
It improves the execution efficiency of computing tasks, expands the application scenarios of software applications, and enhances the user experience.
Smart Images

Figure CN121979633A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of data processing, and more specifically to methods performed by computing devices and methods performed by aggregation coordinators. Background Technology
[0002] With the development of computer technology, software applications associated with computational tasks such as artificial intelligence model training / inference, 3D video rendering, environmental sensor data processing, and genome sequence analysis are increasingly being used in various fields. Because individual computing devices have very limited computing resources, executing these computational tasks typically takes a long time, which limits the application scenarios of these software applications and / or degrades the user experience. Summary of the Invention
[0003] According to some embodiments of this disclosure, a method executed by a computing device including a trusted execution environment is provided, the method comprising: receiving a computing task description from an aggregation coordinator; executing a computing task associated with the computing task description in the trusted execution environment; generating device execution evidence based on the execution of the computing task; and sending the device execution evidence to the aggregation coordinator.
[0004] According to some embodiments of this disclosure, a method executed by an aggregation coordinator is provided, comprising: receiving a task execution request from a distributed application to perform a computing task, wherein the distributed application resides on a distributed ledger network implemented as a blockchain network; identifying a plurality of computing devices available for performing the computing task, wherein each of the plurality of computing devices includes a trusted execution environment; dividing the computing task into a plurality of computing subtasks and distributing the plurality of computing subtasks to the plurality of computing devices; receiving a plurality of device execution evidences from the plurality of computing devices, wherein each of the plurality of device execution evidences is generated by the trusted execution environment of the corresponding computing device among the plurality of computing devices based on the execution of the corresponding computing subtask among the plurality of computing subtasks; and aggregating the plurality of device execution evidences based on a cryptographic aggregation mechanism to generate a unified aggregated evidence and submitting the unified aggregated evidence to the distributed ledger network.
[0005] According to some embodiments of this disclosure, a method executed by a computing device is provided, the computing device being implemented as a network node of a distributed ledger network, the distributed ledger network being implemented as a blockchain network, and a distributed application residing on the distributed ledger network. The method includes: sending a task execution request from the distributed application to an aggregation coordinator, the request requesting the execution of a computing task; and receiving unified aggregated evidence from the aggregation coordinator, wherein the unified aggregated evidence is generated by the aggregation coordinator aggregating multiple device execution evidences from multiple computing devices, each of the multiple computing devices executing a computing subtask as part of the computing task and generating corresponding device execution evidence based on the execution of the computing subtasks. Attached Figure Description
[0006] Embodiments of this disclosure will be described by way of example rather than limitation in conjunction with the accompanying drawings, wherein similar reference numerals denote similar elements, and wherein: Figure 1 This is a block diagram illustrating the system architecture of a distributed computing system according to an embodiment of the present disclosure.
[0007] Figure 2 It is shown by Figure 1 The flowchart shown illustrates the processing performed by the computing device.
[0008] Figure 3 It is shown by Figure 1 The flowchart shown illustrates the processes performed by the aggregation coordinator.
[0009] Figure 4 It is shown by Figure 1 The flowchart shown illustrates the processing performed by network nodes in a distributed ledger network.
[0010] Figure 5 This is a block diagram illustrating components capable of reading instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium) and performing any one or more of the processes discussed herein, according to embodiments of this disclosure. Detailed Implementation
[0011] The features and exemplary embodiments of various aspects of this application will now be described in detail. Numerous specific details are set forth in the following detailed description to provide a comprehensive understanding of this application. However, it will be apparent to those skilled in the art that this application can be implemented without requiring some of these specific details. The following description of embodiments is merely intended to provide a better understanding of this application by illustrating examples. This application is by no means limited to any specific configuration presented below, but covers any modifications, substitutions, and improvements to elements, components, and algorithms without departing from the spirit of this application. Well-known structures and techniques are not shown in the accompanying drawings and the following description in order to avoid unnecessary obfuscation of this application.
[0012] Furthermore, the various operations will be described as multiple discrete operations in a manner most conducive to understanding the illustrative embodiments; however, the order of description should not be construed as implying that these operations must depend on the order. In particular, these operations do not need to be performed in the order presented.
[0013] The phrases “in an embodiment,” “in one embodiment,” and “in some embodiments” are used repeatedly throughout this document. These phrases do not usually refer to the same embodiment; however, they may refer to the same embodiment. Unless the context otherwise specifies, the terms “comprising,” “having,” and “including” are synonyms. The phrases “A or B” and “A / B” mean “(A), (B) or (A and B).”
[0014] Figure 1 This is a block diagram illustrating the system architecture of a distributed computing system according to an embodiment of the present disclosure. Figure 1 As shown, the distributed computing system 100 includes a distributed ledger network 102, an aggregation coordinator 104, and multiple computing devices 106-1 to 106-n (n is an integer greater than or equal to 2), wherein: the distributed ledger network 102 is implemented as a blockchain network, the distributed application 1022 resides on the distributed ledger network 102, each of the multiple computing devices 106-1 to 106-n includes a Trusted Execution Environment (TEE), and the distributed computing process implemented by the distributed computing system 100 includes: 1) The distributed ledger network 102 sends a task execution request from the distributed application 1022 to the aggregation coordinator 104, requesting the execution of computational tasks; 2) After receiving the task execution request, the aggregation coordinator 104 identifies multiple computing devices 106-1 to 106-n that can be used to execute the computing task, divides the computing task into multiple computing subtasks, and distributes the multiple computing subtasks to the multiple computing devices 106-1 to 106-n by distributing computing subtask descriptions associated with the multiple computing subtasks to the multiple computing devices 106-1 to 106-n. 3) After receiving the corresponding computational subtask description, each of the multiple computing devices 106-1 to 106-n executes the computational subtask associated with the corresponding computational subtask description in the trusted execution environment, generates device execution evidence based on the execution of the computational subtask, and sends the device execution evidence to the aggregation coordinator 104. 4) Aggregator 104 aggregates device execution evidence from multiple computing devices 106-1 to 106-n based on a cryptographic aggregation mechanism to generate unified aggregated evidence, and submits the unified aggregated evidence to the distributed ledger network 102.
[0015] Figure 2 It is shown by Figure 1 The flowchart illustrates the processing performed by the computing device. In the distributed computing process implemented by the distributed computing system 100, such as... Figure 2 As shown, by Figure 1 The processing performed by each of the computing devices 106-1 to 106-n shown, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), includes: S202, receiving a computing subtask description from the aggregation coordinator 104; S204, executing the computing subtask associated with the computing subtask description in a trusted execution environment; S206, generating device execution evidence based on the execution of the computing subtask; and S208, sending the device execution evidence to the aggregation coordinator 104.
[0016] Figure 3 It is shown by Figure 1 The flowchart shown illustrates the process executed by the aggregation coordinator. In the distributed computing process implemented in the distributed computing system 100, such as... Figure 3 As shown, by Figure 1The processing performed by the aggregate coordinator 104 shown includes: S302, receiving a task execution request from a distributed application 1022 to perform a computing task, wherein the distributed application 1022 resides on a distributed ledger network 102 implemented as a blockchain network; S304, identifying multiple computing devices 106-1 to 106-n that can be used to perform the computing task, wherein each of the multiple computing devices 106-1 to 106-n includes a trusted execution environment; S306, dividing the computing task into multiple computing subtasks and distributing the multiple computing subtasks to... Multiple computing devices 106-1 to 106-n; S308, receiving multiple device execution evidences from the multiple computing devices 106-1 to 106-n, wherein each device execution evidence is generated by the trusted execution environment of the corresponding computing device among the multiple computing devices 106-1 to 106-n based on the execution of the corresponding computing subtask in multiple computing subtasks; and S310, aggregating the multiple device execution evidences based on a cryptographic aggregation mechanism to generate a unified aggregated evidence and submitting the unified aggregated evidence to the distributed ledger network 102.
[0017] Figure 4 It is shown by Figure 1 The flowchart illustrates the processing performed by network nodes in a distributed ledger network. In the distributed computing process implemented by the distributed computing system 100, such as... Figure 4 As shown, by Figure 1 The processing performed by the network nodes of the distributed ledger network 102 shown includes: S402, sending a task execution request from the distributed application 1022 to the aggregation coordinator 104 to perform a computing task; and S404, receiving unified aggregation evidence from the aggregation coordinator 104, wherein the unified aggregation evidence is generated by the aggregation coordinator 104 by aggregating multiple device execution evidences from multiple computing devices 106-1 to 106-n, and each of the multiple computing devices 106-1 to 106-n performs a computing subtask as part of the computing task and generates corresponding device execution evidence based on the execution of the computing subtask.
[0018] In some embodiments, the plurality of computing devices 106-1 to 106-n include one or more of mobile phones, tablets, wearable devices (e.g., smartwatches), in-vehicle computing devices, augmented reality devices, virtual reality devices, home automation devices, and Internet of Things (IoT) devices, and the trusted execution environment of each computing device can be implemented for various trusted execution environments, either existing or developed in the future, such as ARM. ® TrustZone ® Intel ®Software Guard Extension (SGX), AMD Secure Encrypted Virtualization (SEV), Apple Secure Enclave, Android StrongBox, Qualcomm Secure Execution Environment (QSEE), RISC-V Keystone, Open Portable Trusted Execution Environment (OP-TEE), etc.
[0019] In some embodiments, the aggregation coordinator 104 identifies multiple computing devices 106-1 to 106-n through one or more of the following discovery mechanisms: Bluetooth (Bluetooth) ® Low Energy (LE) pairing, Wi-Fi Direct, cloud assistance, and Quick Response (QR) code scanning are included. Each of the multiple computing devices 106-1 to 106-n receives a computing subtask description from the aggregation coordinator 104 via an authenticated communication channel and sends device execution evidence to the aggregation coordinator 104 via an authenticated communication channel.
[0020] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, each of the plurality of computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), also performs mutual authentication with the aggregation coordinator 104 through the following processes: exchanging a trusted execution environment certificate with the aggregation coordinator 104; verifying the trusted execution environment certificate of the aggregation coordinator 104; and generating a session key with the aggregation coordinator 104 by exchanging keys with the aggregation coordinator 104 in the trusted execution environment (e.g., a Diffie-Hellman key exchange) after the trusted execution environment certificate of the aggregation coordinator 104 has been verified by the computing device 106-k and the trusted execution environment certificate of the computing device 106-k has been verified by the aggregation coordinator 104. In other words, for each computing device 106-k (where k is an integer greater than or equal to 1 and less than or equal to n) among multiple computing devices 106-1 to 106-n, the aggregation coordinator 104 also performs mutual authentication with computing device 106-k through the following processes: exchanging a trusted execution environment certificate with computing device 106-k; verifying the trusted execution environment certificate of computing device 106-k; and generating a session key with computing device 106-k by exchanging keys (e.g., a Diffie-Hellman key exchange) after the trusted execution environment certificate of aggregation coordinator 104 has been verified by computing device 106-k and the trusted execution environment certificate of computing device 106-k has been verified by aggregation coordinator 104.
[0021] In some embodiments, the trusted execution environment proof between the aggregate coordinator 104 and any one of the plurality of computing devices 106-1 to 106-n includes one or more of the following: device identifier, certificate chain, random number, timestamp, signature, and device key. For example, in the mutual authentication process between the aggregate coordinator 104 and any one of the plurality of computing devices 106-1 to 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), the trusted execution environment proof sent by the authentication initiator to the authentication responder includes the authentication initiator's device identifier, certificate chain, random number, timestamp, and signature. The trusted execution environment proof sent by the authentication responder to the authentication initiator includes the authentication responder's device identifier, certificate chain, random number, challenge response (including the hash value of the authentication initiator's random number and the authentication responder's device key), timestamp, and signature. The authentication initiator can verify the authentication responder's challenge response using the authentication responder's public key certificate.
[0022] In some embodiments, each of the plurality of computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), verifies the trusted execution environment proof of the aggregate coordinator 104 by: extracting a certificate chain from the trusted execution environment proof of the aggregate coordinator 104; verifying the extracted certificate chain up to the trusted root certificate authority; verifying whether the trusted execution environment proof of the aggregate coordinator 104 includes a security statement indicating one or more of the following: secure root verification status, debug mode not activated, hardware key storage available, and protection against physical tampering; and if the trusted execution environment proof of the aggregate coordinator 104 includes a security statement indicating predetermined information, then the trusted execution environment proof of the aggregate coordinator 104 is determined to have passed the verification of the computing device 106-k, otherwise the trusted execution environment proof of the aggregate coordinator 104 is determined to have failed the verification of the computing device 106-k. Accordingly, for each of the multiple computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), the aggregation coordinator 104 verifies the trusted execution environment proof of computing device 106-k through a similar process. It should be understood that the verification criteria used by the aggregation coordinator 104 for the trusted execution environment proofs of the multiple computing devices 106-1 to 106-n can be the same or different, and the verification criteria used by the multiple computing devices 106-1 to 106-n for the trusted execution environment proof of the aggregation coordinator 104 can be the same or different.
[0023] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, each of the plurality of computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), further performs the following processing: determining whether the computing type associated with the computing subtask description belongs to the computing types permitted by the local security policy of the trusted execution environment; and, if it is determined that the computing type associated with the computing subtask description belongs to the computing types permitted by the local security policy of the trusted execution environment, executing the computing subtask in the trusted execution environment. In some example scenarios, the local security policy of the trusted execution environment of computing device 106-k includes one or more of the following: a whitelist of permitted computing types signed by the private key of the device owner of computing device 106-k; resource limits specifying maximum CPU usage, memory allocation, and execution duration; data access permissions for local data sources that can be accessed during computing; network communication constraints for allowed external service endpoints; and an automatic termination mechanism for terminating computing in the event of a violation of the local security policy of the trusted execution environment.
[0024] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, each computing device 106-k (where k is an integer greater than or equal to 1 and less than or equal to n) among a plurality of computing devices 106-1 to 106-n performs a computing subtask in a trusted execution environment, including: decrypting the input data associated with the computing subtask in the trusted execution environment; protecting the intermediate computing state associated with the computing subtask from unauthorized access; and cryptographically hashing the input data, output data (i.e., the computing result), and execution parameters associated with the computing subtask in the trusted execution environment.
[0025] In some embodiments, the device execution evidence generated by each of the plurality of computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), includes one or more of the following: a Trusted Execution Environment (TEE) certification report signed by the hardware root of trust of computing device 106-k; a cryptographic hash of the input data, output data (i.e., computation results), and execution parameters associated with the computational subtask; a digital signature binding the TEE to the cryptographic identity of computing device 106-k; and time information associated with the execution time of the computational subtask. The TEE certification report includes one or more of the following: firmware measurement results loaded during the secure boot of the TEE; a unique device identifier derived from the hardware fuse of computing device 106-k; a security version number indicating the patch level of the application software associated with the computational subtask in the TEE; a signature created by a hardware root of trust private key inaccessible to the application software associated with the computational subtask in the TEE; and a timestamp binding the TEE certification report to a specific point in time.
[0026] In some embodiments, the trusted execution environment of any one of the plurality of computing devices 106-1 to 106-n, namely computing device 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), is a software-based trusted execution environment. The software-based trusted execution environment includes a virtualization-based security module, a memory isolation mechanism enforced by a hypervisor, and a software proof mechanism using code measurement. The software-based trusted execution environment is cryptographically bound to the hardware root of trust of computing device 106-k.
[0027] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, any one of the multiple computing devices 106-1 to 106-n, 106-k (where k is an integer greater than or equal to 1 and less than or equal to n), may also perform the following processes: receiving from the aggregation coordinator 102 an aggregation evidence certificate (e.g., an aggregation evidence certificate in the form of a cryptographic token) indicating that the device execution evidence is used as part of the unified aggregation evidence; and requesting a reward from the distributed ledger network 102 using the aggregation evidence certificate.
[0028] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, the aggregation coordinator 104 further performs the following processing on each device execution evidence: determining whether the device execution evidence is valid or invalid based on the Byzantine Fault Tolerance (BFT) mechanism; when the device execution evidence is determined to be valid, using the device execution evidence as part of the unified aggregated evidence, and sending an aggregated evidence certificate to the computing device that provided the device execution evidence, so that the computing device that provided the device execution evidence can request to calculate the reward from the distributed ledger network 102; and when the device execution evidence is determined to be invalid, not using the device execution evidence as part of the unified aggregated evidence, and recording the cryptographic identity of the computing device that provided the device execution evidence in the blacklist stored on the distributed ledger network 102.
[0029] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, when a predetermined number of computing devices 106-1 to 106-n provide valid device execution evidence, the aggregation coordinator 102 aggregates the device execution evidence provided by the predetermined number of computing devices.
[0030] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, the aggregation coordinator 102 aggregates multiple device execution evidence using Merkle tree aggregation, BLS signature aggregation, or zero-knowledge evidence aggregation (e.g., zk-SNARKs, zk-STARKs, Bulletproofs, PLONK-based evidence, etc.). For example, the aggregation coordinator 102 can perform recursive evidence aggregation on multiple device execution evidence, including: grouping multiple device execution evidence into multiple evidence groups, each evidence group including N (where N is a certificate greater than 1) device execution evidence; aggregating the device execution evidence in each evidence group to generate intermediate aggregated evidence; further aggregating the intermediate aggregated evidence into higher-level aggregated evidence; and continuing the recursive aggregation until a single root evidence is generated as the unified aggregated evidence.
[0031] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, the aggregation coordinator 102 further performs the following processes: synchronizing the device clocks of multiple computing devices 106-1 to 106-n using a trusted time source (e.g., a trusted time source accessible via a network time protocol); and excluding device execution evidence from the multiple device execution evidence where the time information indicates a time outside a predetermined time period when aggregating the multiple device execution evidence.
[0032] In some embodiments, the aggregation coordinator 102 is implemented as a decentralized network of aggregator nodes, and at least half of the aggregator nodes must reach an agreement on the unified aggregation evidence before the aggregation coordinator 102 submits the unified aggregation evidence to the distributed ledger network 102.
[0033] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, the network nodes of the distributed ledger network 102 further perform the following processing: verifying each device execution evidence included in the unified aggregate evidence to determine the authenticity of the trusted execution environment certificate of the computing device providing the device execution evidence, the correctness of the computation results included in the device execution evidence, and whether any data leakage or tampering has occurred in the computing device providing the device execution evidence. Here, for any device execution evidence included in the unified aggregate evidence, the network node of the distributed ledger network 102 determines that the device execution evidence has passed verification only if it is determined that the trusted execution environment certificate of the computing device providing the device execution evidence is authentic, the computation results included in the device execution evidence are correct, and no data leakage or tampering has occurred in the computing device providing the device execution evidence. Furthermore, when receiving the aggregate evidence certificate from the computing device providing the device execution evidence, the network node allocates a computation reward to the computing device providing the device execution evidence. For example, for any one of multiple computing devices 106-1 to 106-n, 106-k (where k is a certificate greater than or equal to 1 and less than or equal to n), network nodes of distributed ledger network 102 can calculate a contribution score for computing device 106-k based on one or more of the following: the computational work performed by computing device 106-k (measured by central processing unit cycle time, execution time, or energy consumption); the amount of data processed by computing device 106-k; the security level of the trusted execution environment of computing device 106-k; and network uptime and reliability indicators. Computational rewards can then be allocated to computing device 106-k based on the calculated contribution score. For instance, a computing task marketplace can be established on distributed ledger network 102, where task requesters can deposit cryptocurrency as a computational reward for performing sub-tasks on various computing devices.
[0034] In some embodiments, during the distributed computing process implemented by the distributed computing system 100, the distributed ledger network 102 further performs the following processes: storing the cryptographic commitment of the unified aggregation proof on the blockchain; storing the unified aggregation proof in a distributed storage network; and recording the content identifier that links the cryptographic commitment to the unified aggregation proof.
[0035] In some embodiments, the computational subtasks performed by any one of the multiple computing devices 106-1 to 106-n, 106-k (where k is a certificate greater than or equal to 1 and less than or equal to n), include one or more of the following: training machine learning models on locally stored user data, 3D rendering of video frames for extended real-world applications, cryptographic hash calculations for blockchain mining, genomic sequence analysis for personalized medicine, environmental sensor data processing for IoT networks, perception model inference for autonomous vehicles, and privacy-preserving data aggregation for statistical analysis.
[0036] Figure 5 This is a block diagram illustrating components capable of reading instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium) and performing any one or more of the processes discussed herein, according to embodiments of this disclosure. Specifically, Figure 5 A schematic diagram of hardware resource 500 is shown, which includes one or more processors (or processor cores) 510, one or more memory / storage devices 520, and one or more communication resources 530, wherein each of these processors, memory / storage devices, and communication resources can be communicatively coupled via bus 540 or other interface circuitry. For embodiments utilizing node virtualization (e.g., Network Functions Virtualization (NFV)), a hypervisor 502 can be executed to provide an execution environment for one or more network slices / subslices, thereby utilizing hardware resource 500.
[0037] Processor 510 may include, for example, processor 512 and processor 514. Processor 510 may be, for example, a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP) such as a baseband processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a radio frequency integrated circuit (RFIC), another processor (including those discussed herein), or any suitable combination thereof.
[0038] Memory / storage device 520 may include main memory, disk storage devices, or any suitable combination thereof. Memory / storage device 520 may include, but is not limited to, any type of volatile, non-volatile, or semi-volatile memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, solid-state memory, etc.
[0039] Communication resource 530 may include interconnect or network interface controllers, components, or other suitable devices for communicating with one or more peripheral devices 504 or one or more databases 506 or other network elements via network 508. For example, communication resource 530 may include wired communication components (e.g., for coupling via USB, Ethernet, etc.), cellular communication components, near field communication (NFC) components, Bluetooth® (or Bluetooth® Low Energy) components, Wi-Fi® components, and other communication components.
[0040] Instructions 550 may include software, programs, application programs, applets, or other executable code for causing at least any one of the processors 510 to perform any one or more of the methods discussed herein. Instructions 550 may reside wholly or partially within processor 510 (e.g., in the processor's cache), memory / storage device 520, or any suitable combination thereof. Furthermore, any portion of instructions 550 may be transferred from any combination of peripheral device 504 or database 506 to hardware resource 500. Therefore, the memory of processor 510, memory / storage device 520, peripheral device 504, and database 506 are examples of computer-readable and machine-readable media.
[0041] Some examples may be implemented or be implemented as an article of art or at least a computer-readable medium. The computer-readable medium may include a non-transitory storage medium for storing logic. In some examples, the non-transitory storage medium may include one or more types of computer-readable storage media capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, and so on. In some examples, the logic may include various software elements, such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, APIs, instruction sets, computational code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof.
[0042] According to some examples, computer-readable media may include non-transitory storage media to store or maintain instructions that, when executed by a machine, computing device, or system, cause that machine, computing device, or system to perform methods and / or operations according to the described examples. Instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, etc. Instructions may be implemented according to a predetermined computer language, manner, or syntax to instruct a machine, computing device, or system to perform specific functions. Instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled, and / or interpreted programming language.
[0043] One or more aspects of at least one example can be implemented by representative instructions representing various logic within a processor, stored on at least one machine-readable medium, which, when read by a machine, computing device, or system, cause the machine, computing device, or system to manufacture logic to perform the techniques described herein. This representation, referred to as an "IP core," can be stored on a tangible machine-readable medium and provided to various customer or manufacturing facilities for loading into the manufacturing machine that actually manufactures the logic or processor.
[0044] The phrase "an example" or "an example" does not necessarily refer to the same example or embodiment. Any aspect described herein may be combined with any other aspect or similar aspect described herein, whether or not these aspects are described with reference to the same drawings or elements. The division, omission, or inclusion of block functions depicted in the drawings does not imply that hardware components, circuits, software, and / or elements used to implement these functions will necessarily be divided, omitted, or included in the embodiments.
[0045] Examples can be described using the terms “coupling” and “connection” and their derivatives. These terms are not necessarily intended to be synonyms. For example, a description using the terms “connection” and / or “coupling” may indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “coupling” may also refer to two or more elements that are not in direct contact with each other but still cooperate or interact with each other.
[0046] The terms “first,” “second,” and the like are not used herein to indicate any order, quantity, or importance, but rather to distinguish one element from another. The term “a” herein does not imply a limitation on quantity, but rather indicates the presence of at least one mentioned item. The term “assertion” as used herein when referring to a signal refers to a state in which the signal is valid and can be achieved by applying any logic level (whether logic 0 or logic 1) to the signal. The terms “subsequently” or “afterward” can mean immediately following or following one or more other events. According to alternative embodiments, other sequences of steps may also be performed. Furthermore, depending on the specific application, additional steps may be added or removed. Any combination of variations can be used, and many variations, modifications, and alternative embodiments will be understood by those skilled in the art who benefit from this disclosure.
[0047] Unless otherwise specifically stated, disjunctive language such as the phrase "at least one of X, Y, or Z" is understood in context to generally state that an item, term, etc., can be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Thus, such disjunctive language is generally not intended, nor should it imply, that certain embodiments require the presence of each of at least one X, at least one Y, or at least one Z. Furthermore, unless otherwise specifically stated, connective language such as the phrase "at least one of X, Y, and Z" should also be understood to refer to X, Y, Z, or any combination thereof, including "X, Y, and / or Z".
[0048] Illustrative examples of the devices, systems, and methods disclosed herein are provided below. Embodiments of the devices, systems, and methods may include any one or more of the examples described below, as well as any combination thereof.
Claims
1. A method executed by a computing device, the computing device including a trusted execution environment, the method comprising: Receive computation task descriptions from the aggregation coordinator; Execute the computational task associated with the computational task description in the trusted execution environment; Based on the execution of the computational task, device execution evidence is generated; as well as Send the device execution evidence to the aggregation coordinator.
2. The method according to claim 1, wherein, The computation task description is received from the aggregation coordinator via an authenticated communication channel, and the device execution evidence is sent to the aggregation coordinator via the authenticated communication channel.
3. The method according to claim 1, further comprising: Determine whether the computation type associated with the computation task description belongs to the computation type permitted by the local security policy of the trusted execution environment; as well as If it is determined that the computation type associated with the computation task description belongs to the computation type permitted by the local security policy of the trusted execution environment, the computation task is executed in the trusted execution environment.
4. The method according to claim 1, wherein, Executing the computational task in the trusted execution environment includes: The input data associated with the computational task is decrypted within the trusted execution environment; Protect the intermediate computational state associated with the computational task from unauthorized access; and Cryptographic hashing is performed on the input data, output data, and execution parameters associated with the computation task within the trusted execution environment.
5. The method according to claim 1, wherein, The device execution evidence includes one or more of the following: a trusted execution environment certification report signed by the hardware root of trust of the computing device, cryptographic hashes of input data, output data, and execution parameters associated with the computing task, a digital signature binding the device execution evidence to the cryptographic identity of the computing device, and time information associated with the execution time of the computing task.
6. The method according to claim 1, further comprising: Receive from the aggregation coordinator an aggregation evidence certificate indicating that the device execution evidence is used as part of the unified aggregation evidence; as well as The aggregated evidence certificate is used to request the calculation of a reward from a distributed ledger network, wherein the distributed ledger network is implemented as a blockchain network.
7. The method of claim 1, further comprising performing mutual authentication with the aggregation coordinator through the following process: Exchange trusted execution environment proofs with the aggregate coordinator; Verify the trusted execution environment proof of the aggregation coordinator; and After the trusted execution environment proof of the aggregate coordinator passes the verification of the computing device and the trusted execution environment proof of the computing device passes the verification of the aggregate coordinator, a session key with the aggregate coordinator is generated by exchanging keys with the aggregate coordinator in the trusted execution environment.
8. The method according to claim 7, wherein, The trusted execution environment proof for either the aggregation coordinator or the computing device includes one or more of the following: device identifier, certificate chain, random number, timestamp, signature, and device key.
9. The method according to claim 7, wherein, Verification of the trusted execution environment proof for the aggregation coordinator includes: Extract the certificate chain from the trusted execution environment proof of the aggregate coordinator; The certificate chain is verified up to the trusted root certificate authority; Verify whether the trusted execution environment proof of the aggregate coordinator includes a security statement indicating one or more of the following: secure root verification status, debug mode not activated, hardware key storage available, and protection against physical tampering; and If the trusted execution environment certificate of the aggregation coordinator includes a security statement indicating predetermined information, then the trusted execution environment certificate of the aggregation coordinator is determined to have passed the verification of the computing device; otherwise, the trusted execution environment certificate of the aggregation coordinator is determined to have failed the verification of the computing device.
10. The method according to claim 5, wherein, The Trusted Execution Environment (TEE) certification report includes one or more of the following: firmware measurement results loaded during the secure boot of the TEE, a device unique identifier derived from the hardware fuse of the computing device, a security version number indicating the patch level of the application software associated with the computing task in the TEE, a signature created by a hardware trust root private key that is inaccessible to the application software associated with the computing task in the TEE, and a timestamp binding the TEE certification report to a specific point in time.
11. The method according to claim 3, wherein, The local security policy of the trusted execution environment includes one or more of the following: a whitelist of permitted computing types signed by the private key of the device owner of the computing device; resource limits specifying maximum CPU usage, memory allocation, and execution duration; data access permissions for local data sources that can be accessed during computing; network communication constraints for permitted external service endpoints; and an automatic termination mechanism for terminating computing if the local security policy of the trusted execution environment is violated.
12. The method according to claim 1, wherein, The trusted execution environment is a software-based trusted execution environment, which includes a virtualization-based security module, a memory isolation mechanism enforced by a hypervisor, and a software proof mechanism using code measurement. Furthermore, the software-based trusted execution environment is cryptographically bound to the hardware root of trust of the computing device.
13. A computer-readable storage medium storing computer-executable instructions, wherein, The computer-executable instructions perform the method of any one of claims 1 to 12 when executed by a processor of a computing device including a trusted execution environment.
14. A method performed by an aggregation coordinator, comprising: Receive a task execution request from a distributed application to perform a computational task, wherein the distributed application is located on a distributed ledger network implemented as a blockchain network; Identify a plurality of computing devices that can be used to perform the computing task, wherein each of the plurality of computing devices includes a trusted execution environment; The computing task is divided into multiple computing subtasks and the multiple computing subtasks are distributed to the multiple computing devices; Receive multiple device execution evidences from the plurality of computing devices, wherein each of the multiple device execution evidences is generated by the trusted execution environment of the corresponding computing device among the plurality of computing devices based on the execution of the corresponding computing subtask among the plurality of computing subtasks; and Based on the cryptographic aggregation mechanism, the evidence executed by the multiple devices is aggregated to generate unified aggregated evidence, and the unified aggregated evidence is submitted to the distributed ledger network.
15. The method of claim 14, further comprising performing evidence on each of the plurality of devices: Determine whether the device execution evidence is valid or invalid based on the Byzantine fault tolerance mechanism; and When the device execution evidence is determined to be valid, it is used as a component of the unified aggregated evidence, and an aggregated evidence certificate is sent to the computing device that provided the device execution evidence, so that the computing device that provided the device execution evidence can request to calculate the reward from the distributed ledger network.
16. The method of claim 15, further comprising: When the device execution evidence is determined to be invalid, it is not used as part of the unified aggregated evidence, and the cryptographic identity of the computing device that provided the device execution evidence is recorded in a blacklist stored on the distributed ledger network.
17. The method according to claim 15, wherein, When the device execution evidence provided by a predetermined number of computing devices among the plurality of computing devices is valid evidence, the device execution evidence provided by the predetermined number of computing devices is aggregated.
18. The method according to claim 14, wherein, Merkle tree aggregation, BLS signature aggregation, or zero-knowledge evidence aggregation are used to aggregate the evidence performed by the multiple devices.
19. The method of claim 14, further comprising: The device clocks of the multiple computing devices are synchronized using a trusted time source; as well as When aggregating the evidence of execution of the multiple devices, device execution evidence in which the time information indicates a time outside a predetermined time period is excluded.
20. The method of claim 14, wherein, The aggregation coordinator is implemented as a decentralized network of aggregator nodes, and at least half of the aggregator nodes must reach a consensus on the unified aggregation evidence before the aggregation coordinator submits it to the distributed ledger network.
21. A computer-readable storage medium storing computer-executable instructions, wherein, The computer-executable instructions, when executed by the processor of the aggregation coordinator, perform the method of any one of claims 14 to 20.
22. A method executed by a computing device, said computing device being implemented as a network node of a distributed ledger network, said distributed ledger network being implemented as a blockchain network, and a distributed application residing on said distributed ledger network, said method comprising: Send a task execution request from the distributed application to the aggregation coordinator to perform the computation task; as well as The unified aggregated evidence is received from the aggregation coordinator, wherein the unified aggregated evidence is generated by the aggregation coordinator aggregating multiple device execution evidences from multiple computing devices, each of the multiple computing devices executing a computing subtask as part of the computing task and generating corresponding device execution evidence based on the execution of the computing subtask.
23. The method of claim 22, further comprising: Each device execution evidence included in the unified aggregated evidence is verified to determine the authenticity of the trusted execution environment proof of the computing device providing the device execution evidence, the correctness of the calculation results included in the device execution evidence, and whether any data leakage or tampering has occurred in the computing device providing the device execution evidence.
24. The method of claim 22, further comprising: The cryptographic commitment to the unified aggregation proof is stored on the blockchain; The unified aggregate proof is stored in a distributed storage network; as well as Record the content identifier that links the cryptographic commitment to the unified aggregate proof.
25. A computer-readable storage medium storing computer-executable instructions, wherein, The computer-executable instructions perform the method of any one of claims 22 to 24 when executed by a processor of a computing device comprising a distributed ledger network.