Anonymous network construction method and system based on verifiable random and delay functions
Patent Information
- Application Number
- CN202311313377.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-11
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2043-10-11
AI Technical Summary
在匿名网络中,匿名网络的扩展性,中继选择的公平性,以及匿名电路的安全性关系到用户的隐私保证,而现有的匿名网络由于不能在扩大匿名网络规模的同时保证其安全性,并且也无法解决规模扩展带来的带宽压力,因而限制了匿名网络的扩展
[0028]本发明公开了一种基于可验证随机和延迟函数的匿名网络构建方法及系统,可以实现匿名网络的去中心化,降低维护网络带宽的消耗,极大提高扩展性,并且可以有效保证中继选举的公平性,为用户提供隐私保护。本发明提供了一种新型的中继选举方法,使匿名网络的扩展性极大延伸。本发明设计的网络中继目录维护方式,减轻了匿名网络的带宽压力,并实现匿名网络的去中心化。本发明设计的匿名电路构建形式,可以极大扩展电路,降低延迟,为用户提供隐私和安全保证。
Smart Images

Figure CN117335994B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of information security technology, and in particular to a method and system for constructing anonymous networks based on verifiable random and delay functions. Background Technology
[0002] The statements in this section are merely background information related to the present invention and do not necessarily constitute prior art.
[0003] Anonymous networks, as a technology and system that provides privacy protection for users' communications, differ from traditional end-to-end encryption in that they protect the information of the communicating parties themselves, namely their identities and the information exchanged. There are many types of anonymous networks, but they are generally based on message relay or broadcasting. The largest anonymous network to date, Tor, achieves anonymity based on message relay.
[0004] However, with the increasing number of anonymous network users, anonymous networks face numerous problems. For example, the Tor network uses permission directory servers to continuously collect relay information and then distribute it to users, leading to excessive network bandwidth consumption and network congestion. Furthermore, the Tor network provides too few relays for message relay, failing to meet user demand. Therefore, addressing these problems has become an urgent need. To ensure user privacy and meet the needs of anonymous networks in areas such as blockchain and end-to-end encryption software, it is necessary to expand the scale of anonymous networks and increase the number of relays providing message relay services. In anonymous networks, scalability, fairness in relay selection, and security of anonymous circuits are crucial to user privacy. Existing anonymous networks, however, cannot guarantee security while expanding their scale, nor can they address the bandwidth pressure brought about by scaling, thus limiting their expansion. Summary of the Invention
[0005] To address the shortcomings of existing technologies, the purpose of this invention is to provide a method and system for constructing anonymous networks based on verifiable random and delay functions. This method achieves decentralization of anonymous networks, has extremely high scalability, ensures user privacy, and maintains the security guarantees and resistance to known attacks of existing anonymous networks.
[0006] To achieve the above objectives, the present invention is implemented through the following technical solution:
[0007] The first aspect of this invention provides a method for constructing anonymous networks based on verifiable randomness and delay functions, comprising the following steps:
[0008] Determine the trusted center, initialize the parameters of the trusted center, build an anonymous network and generate a relay directory based on the initialized parameters, and register users in the built anonymous network.
[0009] When a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to compete for relay identity, while simultaneously synchronizing the latest network relay directory;
[0010] The client constructs anonymous circuits to connect to anonymous networks and uses encryption to process sent and received data streams.
[0011] Furthermore, the specific steps for initializing the trust center parameters are as follows:
[0012] The Trusted Center first generates public parameters used by the anonymous network system and generates a long-term signing key pair for issuing certificate signing to users, and embeds the public key in the software that connects to the anonymous network.
[0013] Furthermore, the specific steps for building an anonymous network and generating a relay directory based on the initial parameters are as follows:
[0014] The builders of an anonymous network need to set up a small number of initial nodes, and the initial input is sent by the trusted center. All nodes compete to form a network relay directory by running verifiable random functions and verifiable delay functions. The network relay directory consists of relay entries, and each relay entry is only valid for a period of time. At this time, the initial node that proposes a relay entry becomes the initial relay. After the number of anonymous network users reaches a certain point, the initial node can leave the anonymous network.
[0015] Furthermore, the specific steps for user registration in the established anonymous network are as follows: when a user joins the anonymous network for the first time, a long-term key pair needs to be generated and registered with the Trusted Center, which then issues a certificate to the user.
[0016] Furthermore, each user has two identities: a client identity that is automatically acquired upon joining the anonymous network, and a relay identity that must be obtained through competition.
[0017] Furthermore, when synchronizing the latest network relay directory, users follow the Satoshi Nakamoto consensus and select the directory with the most relay entries as the network relay directory.
[0018] Furthermore, the specific steps for processing the transmitted information stream are as follows:
[0019] When a client builds an anonymous circuit, it generates a temporary key pair, a hop count, and a network relay directory marker, and sends them to the ingress relay. The ingress relay generates a temporary key pair, calculates the session key, and simultaneously runs a verifiable random function to select the next relay. After performing a "blind" calculation on the temporary public key sent by the client, it sends it to the next relay. This process is repeated until the hop count becomes 0, at which point the circuit stops expanding its relays.
[0020] Furthermore, the specific steps for processing the response information stream are as follows:
[0021] When the exit relay completes the calculation of the session key, it signs its own generated temporary public key, and then replies with the temporary public key and signature to the previous relay. The previous relay encrypts the information replied by the exit relay, the output of its own verifiable random function, and the proof using the session key. It then signs the encrypted information and its own temporary public key, and replies with the temporary public key, encrypted information, and signature to the previous relay. This process is repeated until the client receives a reply message. The client continuously authenticates the reply messages and calculates the session key until it has the session key with all relays on the circuit, at which point the anonymous circuit is completed.
[0022] Furthermore, for security reasons, users need to rebuild the anonymity circuit periodically.
[0023] A second aspect of the present invention provides an anonymous network construction system based on verifiable randomness and delay functions, comprising:
[0024] The anonymous network initialization module is configured to determine the trusted center, initialize the trusted center parameters, build the anonymous network and generate a relay directory based on the initialized parameters, and perform user registration in the built anonymous network.
[0025] The relay contention and relay directory synchronization module is configured so that when a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to participate in the competition for relay identity, and at the same time synchronizes the latest network relay directory.
[0026] The anonymous circuit construction module is configured to build anonymous circuits for clients to connect to anonymous networks and to process sent and received information streams using encryption.
[0027] The above one or more technical solutions have the following beneficial effects:
[0028] This invention discloses a method and system for constructing anonymous networks based on verifiable randomness and delay functions. It enables decentralization of anonymous networks, reduces bandwidth consumption for network maintenance, significantly improves scalability, and effectively guarantees the fairness of relay election, providing privacy protection for users. This invention provides a novel relay election method, greatly extending the scalability of anonymous networks. The network relay directory maintenance method designed in this invention alleviates bandwidth pressure on anonymous networks and achieves decentralization. The anonymous circuit construction form designed in this invention can greatly expand circuits, reduce latency, and provide privacy and security guarantees for users.
[0029] Advantages of additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Attached Figure Description
[0030] The accompanying drawings, which form part of this invention, are used to provide a further understanding of the invention. The illustrative embodiments of the invention and their descriptions are used to explain the invention and do not constitute an improper limitation of the invention.
[0031] Figure 1 This is an overall framework diagram of the anonymous network construction method based on verifiable randomness and delay functions in Embodiment 1 of the present invention;
[0032] Figure 2 This is a schematic diagram of the anonymous circuit initialization in Embodiment 1 of the present invention;
[0033] Figure 3 This is a schematic diagram illustrating the relay contention and relay directory synchronization in Embodiment 1 of the present invention.
[0034] Figure 4 This is a schematic diagram of the anonymous circuit construction in Embodiment 1 of the present invention. Detailed Implementation
[0035] It should be noted that the following detailed descriptions are exemplary and intended to provide further illustration of the invention. Unless otherwise specified, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains.
[0036] It should be noted that the embodiments of the present invention involve anonymous networks and related data such as their users. When the above embodiments of the present invention are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0037] It should be noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of exemplary embodiments according to the invention. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. Furthermore, it should be understood that when the terms "comprising" and / or "including" are used in this specification, they indicate the presence of features, steps, operations, devices, components, and / or combinations thereof.
[0038] Example 1:
[0039] Embodiment 1 of this invention provides a method for constructing anonymous networks based on verifiable randomness and delay functions, such as... Figure 1 As shown, an anonymous network is built among clients, and a network relay directory is generated through relay election via a trusted center and initial nodes. This achieves decentralization of the anonymous network, reduces the consumption of network bandwidth maintenance, greatly improves scalability, and effectively ensures the fairness of relay election, while providing privacy protection for users.
[0040] Specifically, this includes the steps of anonymous network initialization, relay contention and relay directory synchronization, and anonymous circuit construction:
[0041] S1: Anonymous network initialization, such as Figure 2 As shown, the process includes initializing trusted center parameters, generating an initial network relay directory, and user registration. The trusted center is determined, its parameters are initialized, an anonymous network is built based on the initialized parameters, a relay directory is generated, and user registration takes place within the established anonymous network.
[0042] S1.1: Trust Center Parameter Initialization: The Trust Center first generates the public parameter pp used by the anonymous network system, and generates a long-term signing key pair (ek, dk) to issue certificate signing to users, and embeds the public key ek in the software connecting to the anonymous network.
[0043] The Trusted Center is built by the system operator. Specifically, the system operator builds the public key infrastructure, and the Trusted Center is an important component of the public key infrastructure.
[0044] S1.1.1: The Trusted Center first generates a set of public parameters pp = (λ, G, T, t) and sends these public parameters pp to users who have registered with the Trusted Center.
[0045] Where λ is the system's security parameter, G is a group generation algorithm that outputs a q-order cyclic group G with g as the generator, T is the hard parameter of the verifiable delay function, and t is the time parameter of the verifiable delay function.
[0046] S1.1.2: The Trusted Center generates a long-term key pair (ek, dk). The private key dk is kept by the Trusted Center in its own Trusted Execution Environment and is used to sign the certificates it issues. The public key ek is embedded in software that users can download. This software is used by users to register with the Trusted Center, verify the certificates issued by the Trusted Center, and access anonymous networks.
[0047] in, Let represent the group of integers of order q.
[0048] S1.2: Initial Network Relay Directory Generation: The builders of the anonymous network need to set up a small number of initial nodes, and the Trust Center sends the initial input. All nodes compete to form the Network Relay Directory (NRD) by running verifiable random functions and verifiable delay functions. The Network Relay Directory consists of relay entries (REs), and each relay entry is only valid for a period of time. At this point, the initial node that proposes a relay entry becomes the initial relay. After the number of anonymous network users reaches a certain level, the initial node can leave the anonymous network.
[0049] S1.2.1: The Trust Center generates a random string x∈G and sends the string x to all initial nodes;
[0050] S1.2.2: Initial node p i Upon receiving a random string x from the trusted center, the system uses this random string x as input to a verifiable random function and a verifiable delay function, and generates a long-term key pair (sk). i ,pk i Participating in the calculation:
[0051] (1) Run the verifiable random function y1←VRF.Eval(sk i ,x),π1←VRF.Prove(sk i ,x),y1∈{0,1} k We obtain the output y1 and the proof π1;
[0052] (2) Run the verifiable delay function y2←VDF.Eval(sk i ,x) and hash function ξ←H0(y2||pk i ), obtain the output y2 and hash value ξ, and n records the number of times VDF is executed;
[0053] (3) Then determine whether ξ belongs to [y1-γ, y1+γ]. If not, set the verifiable delay function input x to equal y2 and return to (2) to execute. If it belongs, execute the verifiable delay function π2←VDF.Prove(sk i(x, y2, n·t) and hash function h←H1(y2||pk) i ), thus obtaining the proof π2 and the hash value h;
[0054] in, H1:{0,1} * →G is a secure anti-collision hash function, VRF is a verifiable random function, VDF is a verifiable delay function, and γ is a suitable parameter;
[0055] S1.2.3: First, complete the node publication of the first relay entry (h) in S1.2.2. - ,h,y1,y2,π1,π2,n,st,Cert), generate the initial network relay directory and synchronize it to other nodes;
[0056] During node operation, a listening process continuously runs, actively probing surrounding nodes by sending messages and synchronizing a directed acyclic graph (DAG) directory from them. Because the relay directory may fork later, all nodes in the system follow the Satoshi Nakamoto consensus, selecting the directory with the most relay entries as the network relay directory; where h - In the first relay entry, it equals x; in subsequent relay entries, it equals h of the previous relay entry, where h represents the unique number of the current relay entry. y1 is the output of the VRF function, π1 is proof that y1 is a correct output, y2 is the output of the VDF function, π2 is proof that y2 is a correct output, n records the number of times VDF is executed, st is the network state information of the current node and its signature on pk, and Cert is the certificate issued by the Trusted Center.
[0057] S1.2.4: Once all nodes have the network relay directory, let the input x of the verifiable random function and the verifiable delay function be equal to the number h of the last relay entry in the network relay directory. Start running the verifiable random function and the verifiable delay function to compete. Once the condition ξ∈[y1-γ,y1+γ] is met, publish the new relay entry, add it to the local network relay directory, and broadcast the relay entry to other nodes.
[0058] S1.2.5: Each node continuously runs the synchronization process, waiting for relay entries from other nodes. If a relay entry is received, it updates its own network relay directory and restarts the competition between the verifiable random function and the verifiable delay function.
[0059] S1.2.6: After running for a period of time, the initial anonymous network is opened to users.
[0060] S1.3: User Registration: When a user joins the anonymous network for the first time, they need to generate a long-term key pair (usk, upk) and register with the Trusted Center. The Trusted Center issues a certificate (Cert) to the user. Each user has two identities: a client identity is automatically acquired upon joining the anonymous network, while a relay identity must be obtained through competition.
[0061] S1.3.1: User u i Generate a long-term key pair (usk) i ,upk i Then register with the Trusted Center and send the public key UPK. i Give it to the Trust Center;
[0062] in,
[0063] S1.3.2: The Trusted Center receives a notification from user u i After registering the user's information, a user ID UPK is issued to the user. i Digital Certificate with Public Key Cert i The certificate is signed by the private key dk from the Trusted Center;
[0064] S1.3.3: User u i Upon receiving the certificate (Certificate) i After verifying the certificate, if it is valid, user u i You can then join an anonymous network, connect to neighboring peers within the network, and synchronize the latest network relay directory from them.
[0065] S2: Relay contention and relay directory synchronization, such as Figure 3 As shown, this includes user participation in relay competition and synchronizing the latest relay directory. When a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to compete for relay identity, while simultaneously synchronizing the latest network relay directory.
[0066] S2.1: User participation in relay competition: When a user wants to contribute bandwidth to the anonymous network, the user participates in the competition for relay identity. The competition is conducted by running a verifiable random function and a verifiable delay function. The user who first meets the verification conditions proposes a relay entry, adds it to the local network relay directory, and broadcasts it to other users.
[0067] S2.1.1: Each user who wants to become a relay obtains the unique number h of the last relay entry on their local network relay directory, as input x to a verifiable random function and a verifiable delay function:
[0068] (1) Run the verifiable random function y1←VRF.Eval(usk,x),π1←VRF.Prove(usk,x),y1∈{0,1} k We obtain the output y1 and the proof π1;
[0069] (2) Run the verifiable delay function y2←VDF.Eval(usk,x),ξ←H0(y2||upk) to get the output y2 and hash value ξ, and n records the number of times the verifiable delay function is run;
[0070] (3) Then determine whether ξ belongs to [y1-γ, y1+γ]. If it does not belong, let the verifiable delay function input x equal y2 and return to (2) to execute. If it belongs, execute the verifiable delay function π2←VDF.Prove(usk,x,y2,n·t) and the hash function h←H1(y2||upk) to obtain the proof π2 and the hash value h.
[0071] S2.1.2: If the network relay directory has not been updated by this point, then the user generates a new relay entry (h - ,h,y1,y2,π1,π2,n,st,Cert), will relay the entry (h - Add the following to the end of the network relay directory: ,h,y1,y2,π1,π2,n,st,Cert) and broadcast the relay entry (h - The function (h,y1,y2,π1,π2,n,st,Cert) is given to other users. If the network relay directory is updated when the verifiable delay function is calculated, the user restarts running S2.1.1.
[0072] S2.1.3: Each user continuously runs a synchronization process, waiting for relay entries (h) sent by other users. - ,h,y1,y2,π1,π2,n,st,Cert):
[0073] (1) The user first authenticates the certificate Cert. If the authentication is successful, the process continues; otherwise, it is discarded.
[0074] (2) Determine the previous relay entry number h recorded in the relay entry. - Check if it belongs to the local network relay directory. If it does, continue; otherwise, discard.
[0075] (3) Execute a verifiable random function to verify VRF.Ver(upk,h) - Verify VDF.Ver(upk,h) and the verifiable delay function. - If the result of the expression (y2, π2, n·t) is true, continue execution; otherwise, discard.
[0076] (4) Determine if the relay entry number is equal to H1(upk||y2). If it is, continue execution; otherwise, discard.
[0077] (5) Determine whether H0(y2||upk) belongs to [y1-γ, y1+γ]. If it does, add the received relay entry (h - ,h,y1,y2,π1,π2,n,st,Cert) to the network relay directory; otherwise, discard.
[0078] S2.2: Synchronize the latest relay directory: When each user uses the anonymous network, they need to continuously synchronize the latest network relay directory. Due to network latency and other reasons, some users may synchronize a directory that is a directed acyclic graph. In this case, following the Satoshi Nakamoto consensus, the user selects the directory with the most relay entries as the network relay directory.
[0079] S2.2.1: The listening process runs continuously from the moment a user joins the anonymous network;
[0080] S2.2.2: Synchronize the directory structure of a directed acyclic graph from surrounding peer users;
[0081] S2.2.3: Due to the existence of directory forks, users follow the Nakamoto consensus and select the directory with the most relay entries as the network relay directory.
[0082] S3: Anonymous circuit construction, such as Figure 4 As shown, this includes sending and replying to data streams. The client constructs anonymous circuits to connect to the anonymous network and uses encryption to handle both sending and replying to data streams.
[0083] S3.1: Sending Information Stream Processing: Client u i When constructing an anonymous circuit, generate temporary key pairs. The hop count T and the network relay directory tag η are sent to the ingress relay R1, which generates a temporary key pair. Calculate the session key k1, and simultaneously run the verifiable random function VRF to select the next relay R2. Perform a "blinding" calculation on the temporary public key sent by the client and send it to the next relay R2. Repeat this step until the hop count T becomes 0, at which point the circuit stops extending the relay.
[0084] S3.1.1: Client u iFrom the local network relay directory, randomly select a relay as the ingress relay R1, and set the flag η = NRD[-1]. Then generate a hop count T (T is at least 2). Finally, the client randomly selects a relay. calculate send Give R1;
[0085] Since the network relay directory changes over time, η is used as a marker, and η is used as a relative coordinate when selecting relays for circuit construction; where T represents client u i The number of relays used to construct the circuit is determined by decrementing T by 1 for each relay. When T becomes 0, the circuit extension is stopped.
[0086] S3.1.2: R1 receives client u i The sent message is randomly selected. calculate Then the shared key is calculated.
[0087] S3.1.3: R1 selects the next relay, and R1 calculates the verifiable random function β1← Then, in the network relay directory, starting from η, the relay entry with the smallest value of |β1-RE.y1| is selected as the next relay R2. Finally, R1 calculates a "blinding" value τ1 = H2(k1). T = T-1, send Give R2;
[0088] in, It is a hash function, where RE represents each relay entry in the network relay directory;
[0089] S3.1.4: R j∈[2,n-1] Received from the previous relay R j-1 The sent message is randomly selected. calculate Then the shared key is calculated. Then R j Select the next relay, R j Compute verifiable random functions Then, in the network relay directory, search backwards from η for |β j -RE.y j The one with the smallest value is the next relay R. j+1 Finally, R j Calculate a "blinding" value τ j =H2(k j ), T = T-1, send Give R j+1 ;
[0090] S3.1.5: R n Received from the previous relay R n-1 The sent message is randomly selected. calculate Then the shared key is calculated.
[0091] S3.2: Response Information Flow Processing: When the outgoing relay R n Complete session key k n The calculation of the temporary public key generated by itself. Sign the document and then reply with the temporary public key. and signature σ n Give the previous relay R n-1 The previous relay R n-1 For export relay R n The reply message is RP n The output β of the self-verifiable random function n-1 and proof of pi n-1 Use session key k n-1 Encrypt, then process the encrypted information c n-1 and its own temporary public key Sign, reply with temporary public key Encrypted information c n-1 and signature σ n-1 Give the preceding relay R n-2 Repeat this step until client u i Upon receiving a reply message, the client repeatedly authenticates the reply message and calculates the session key until it has the session key with all relays on the circuit. The anonymous circuit is then constructed, and the user can connect to the web network through the anonymous circuit. For security, the user rebuilds the anonymous circuit periodically.
[0092] S3.2.1: R n Calculate signature reply Give the previous relay R n-1 ;
[0093] S3.2.2: R j∈[1,n-1] Received the next relay R j+1 Reply message rp j+1 Then, calculate the encrypted information. and signature Finally, forward reply
[0094] S3.2.3: Client u i Received a reply message from relay R1
[0095] (1) The client first obtains R1's long-term public key from the network relay directory. Then verify the validity of signature σ1. If it is invalid, terminate; otherwise, continue execution.
[0096] (2) Calculate the shared key between the client and R1 Decrypt c1 to obtain (β1, pi1, rp2). If decryption fails, terminate; otherwise, continue execution.
[0097] (3) Run τ1=H2(k1)z2=z1τ1, and verify the random function. If the result is false, terminate; otherwise, continue execution.
[0098] (4) On the network relay directory, run |β1-RE.y1| to find the relay entry corresponding to relay R2 and obtain the long-term public key of R2. Go and process rp2;
[0099] (5) Next, repeat the above process until the last layer is obtained.
[0100] S3.2.4: Client u i Obtain the shared key (k1,k2,…,k) of each relay in the circuit. n Anonymous circuit construction successful. Users can connect to the web network through anonymous circuit. For security, users should rebuild anonymous circuit periodically.
[0101] This invention discloses a method for constructing anonymous networks based on verifiable random and delay functions, including anonymous network initialization, relay contention and relay directory synchronization, and anonymous circuit construction stages. Anonymous network initialization involves establishing a trusted center to set system public parameters and issue digital certificates, setting up initial nodes, and constructing the network relay directory. Relay contention and relay directory synchronization involve users running verifiable delay and verifiable random functions to elect relays, propose relay entries, and synchronize them with other users. Anonymous circuit construction involves users constructing a privacy circuit to protect their own privacy. The relay election method based on verifiable delay functions provided by this invention can achieve decentralization of anonymous networks, reduce the consumption of network bandwidth maintenance, greatly improve scalability, effectively guarantee the fairness of relay elections, and provide privacy protection for users.
[0102] Example 2:
[0103] Embodiment 2 of the present invention provides an anonymous network construction system based on verifiable randomness and delay functions, comprising:
[0104] The anonymous network initialization module is configured to determine the trusted center, initialize the trusted center parameters, build the anonymous network and generate a relay directory based on the initialized parameters, and perform user registration in the built anonymous network.
[0105] The relay contention and relay directory synchronization module is configured so that when a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to participate in the competition for relay identity, and at the same time synchronizes the latest network relay directory.
[0106] The anonymous circuit construction module is configured to build anonymous circuits for clients to connect to anonymous networks and to process sent and received information streams using encryption.
[0107] The steps and methods involved in the above embodiment two correspond to those in embodiment one. For specific implementation details, please refer to the relevant description section of embodiment one.
[0108] Those skilled in the art will understand that the modules or steps of the present invention described above can be implemented using general-purpose computer devices. Optionally, they can be implemented using computer-executable program code, thereby allowing them to be stored in a storage device for execution by a computer device, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. The present invention is not limited to any particular combination of hardware and software.
[0109] While the specific embodiments of the present invention have been described above in conjunction with the accompanying drawings, this is not intended to limit the scope of protection of the present invention. Those skilled in the art should understand that various modifications or variations that can be made by those skilled in the art without creative effort based on the technical solutions of the present invention are still within the scope of protection of the present invention.
Claims
1. A method for constructing anonymous networks based on verifiable randomness and delay functions, characterized in that, Includes the following steps: Determine the trusted center, initialize the parameters of the trusted center, build an anonymous network and generate a relay directory based on the initialized parameters, and register users in the built anonymous network. Specifically, the steps for initializing the Trust Center parameters are as follows: The Trust Center first generates public parameters used by the anonymous network system, and generates a pair of long-term signing key pairs for issuing certificate signing to users, and embeds the public key in the software connecting to the anonymous network; The specific steps for building an anonymous network and generating a relay directory based on the initial parameters are as follows: The builders of the anonymous network need to set up a small number of initial nodes, and the Trust Center sends the initial input. All nodes compete to form a network relay directory by running verifiable random functions and verifiable delay functions. The network relay directory consists of relay entries, and each relay entry is only valid for a period of time. At this time, the initial node that proposes a relay entry becomes the initial relay. After the number of anonymous network users reaches a certain level, the initial node can leave the anonymous network. The specific steps for user registration in the established anonymous network are as follows: When a user joins the anonymous network for the first time, a long-term key pair needs to be generated and registered with the Trusted Center. The Trusted Center then issues a certificate to the user. When a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to compete for relay identity, and at the same time synchronizes the latest network relay directory. When synchronizing the latest network relay directory, the user follows the Satoshi Nakamoto consensus and selects the directory with the most relay entries as the network relay directory. The client constructs an anonymous circuit to connect to the anonymous network and uses encryption to process the sending and receiving of information streams. Specifically, the steps for processing the sending information stream are as follows: When the client constructs the anonymous circuit, it generates a temporary key pair, a hop count, and a network relay directory marker, and sends them to the ingress relay. The ingress relay generates a temporary key pair, calculates the session key, and simultaneously runs a verifiable random function to select the next relay. After performing a "blind" calculation on the temporary public key sent by the client, it sends it to the next relay. This process is repeated until the hop count becomes 0, at which point the circuit stops expanding to new relays. The specific steps for processing the response information flow are as follows: When the exit relay completes the calculation of the session key, it signs its own generated temporary public key, and then replies with the temporary public key and signature to the previous relay. The previous relay encrypts the information replied by the exit relay, the output of its own verifiable random function, and the proof using the session key. Then it signs the encrypted information and its own temporary public key, and replies with the temporary public key, encrypted information, and signature to the previous relay. This process is repeated until the client receives the response message. The client cyclically authenticates the response message and calculates the session key until it has the session key with all relays on the circuit, and the anonymous circuit is constructed.
2. The anonymous network construction method based on verifiable randomness and delay functions as described in claim 1, characterized in that, Each user has two identities: a client identity, which is automatically acquired upon joining the anonymous network, and a relay identity, which must be obtained through competition.
3. The anonymous network construction method based on verifiable randomness and delay functions as described in claim 1, characterized in that, For security reasons, users need to rebuild the anonymous circuit periodically.
4. An anonymous network construction system for the anonymous network construction method based on verifiable randomness and delay functions as described in any one of claims 1-3, characterized in that, include: The anonymous network initialization module is configured to determine the trusted center, initialize the trusted center parameters, build the anonymous network and generate a relay directory based on the initialized parameters, and perform user registration in the built anonymous network. The relay contention and relay directory synchronization module is configured so that when a user wants to contribute bandwidth to the anonymous network, the user runs a verifiable random function and a verifiable delay function to participate in the competition for relay identity, and at the same time synchronizes the latest network relay directory. The anonymous circuit construction module is configured to build anonymous circuits for clients to connect to anonymous networks and to process sent and received information streams using encryption.