Secure blockchain routing technique

By extending the blockchain protocol, blockchain routing nodes determine the routing table and route data messages in the overlay network, solving the high cost and privacy and security problems caused by centralized network routing, and realizing efficient and secure distributed routing.

CN114844626BActive Publication Date: 2026-03-24VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2017-05-15
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

While blockchain technology enables decentralized database management, blockchain messages are still routed through traditional centralized network methods, leading to high monetary costs, latency, and privacy and security issues.

Method used

An extended blockchain protocol is adopted, in which blockchain routing nodes join the overlay network, receive the forwarding table of a single node, determine the routing table, and route data messages to the target blockchain routing node, thereby realizing distributed routing.

Benefits of technology

It reduces routing costs, improves network security and privacy, reduces latency, and enhances the efficiency and reliability of the blockchain system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114844626B_ABST
    Figure CN114844626B_ABST
Patent Text Reader

Abstract

Systems and methods for providing secure blockchain routing using an extended blockchain protocol are described herein. In some embodiments, a blockchain routing node can join an overlay network comprising a plurality of blockchain routing nodes. The blockchain routing node can receive a plurality of forwarding tables from the plurality of blockchain routing nodes in accordance with an extended blockchain protocol. The blockchain routing node can determine a routing table for the overlay network based at least in part on the plurality of forwarding tables. In some embodiments, the blockchain routing node can route a payload message to a target blockchain routing node in the overlay network in accordance with the determined routing table.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a continuation-in-part of International Application No. PCT / US2017 / 032762, International Filing Date May 15, 2017, entitled "Secure Blockchain Routing Techniques," which entered the National Stage in the United States on March 15, 2018, as U.S. Patent Application No. 15 / 932,818, which claims priority to U.S. Provisional Patent Application No. 62 / 348, 1 12, filed June 13, 2016, entitled "Secure Blockchain Routing Techniques." BACKGROUND

[0002] Blockchain technology is rapidly expanding beyond the use of digital currency. Currently, a blockchain is a database of transactions shared by all nodes participating in a blockchain protocol. A blockchain can include a plurality of blocks of interaction records. Each block in the blockchain can also include a timestamp and a link to a previous block. For example, each block can include or be appended to the hash of the previous block. In other words, interaction records in a blockchain can be stored as a series of "blocks" or permanent files containing records of a number of transactions that occurred within a given time period. Blocks can be appended to the blockchain by a blockchain provider after the block is completed and verified. The blockchain can be distributed and copies of the blockchain can be maintained in one or more locations. In some instances, a blockchain can be used to verify transactions. The security of a blockchain can be obtained using cryptographic schemes.

[0003] As blockchain technology implements a decentralized approach to database management, blockchain message payloads are still routed through traditional centralized network methods (e.g., over the Internet). Generally, relying on a relatively small company to provide the communication flow within the Internet can present disadvantages such as higher monetary costs, latency, privacy, and / or security issues, among others.

[0004] Embodiments of the present invention address these and other problems, individually and collectively. SUMMARY

[0005] Embodiments of the present invention relate to secure blockchain routing techniques. In some embodiments, an extended blockchain protocol can be used to implement a message routing function. Such a routing function can enable a blockchain routing system to maintain forwarding and / or routing tables, determine routing costs, select a particular route from many available routes, and route data messages to an intended target.

[0006] One embodiment of the present invention relates to a method comprising joining, by a blockchain routing node, an overlay network comprising a plurality of blockchain routing nodes. The method can further comprise receiving, by the blockchain routing node, a plurality of single-node forwarding tables from the plurality of blockchain routing nodes in accordance with an extended blockchain protocol. The method can further comprise determining, by the blockchain routing node, a routing table for the overlay network based at least in part on the plurality of single-node forwarding tables. The method can further comprise routing, by the blockchain routing node, a payload message to a target blockchain routing node in the overlay network in accordance with the determined routing table.

[0007] Another embodiment of the invention relates to a blockchain routing node comprising a processor and a computer readable medium coupled to the processor, the computer readable medium comprising instructions that, when executed, cause the processor to perform operations. Execution of the instructions causes the blockchain routing node to join an overlay network comprising a plurality of blockchain routing nodes. Execution of the instructions further causes the blockchain routing node to receive, from the plurality of blockchain routing nodes, a plurality of single-node forwarding tables in accordance with an extended blockchain protocol. Execution of the instructions further causes the blockchain routing node to determine a routing table for the overlay network based at least in part on the plurality of single-node forwarding tables. Execution of the instructions further causes the blockchain routing node to route a payload message to a target blockchain routing node in the overlay network in accordance with the determined routing table.

[0008] Another embodiment of the invention relates to a system comprising a plurality of blockchain routing nodes each comprising a processor and a computer readable medium coupled to the processor, the computer readable medium comprising instructions that, when executed, cause the processor to perform operations. Execution of the instructions causes the blockchain routing node to join an overlay network comprising a plurality of blockchain routing nodes. Execution of the instructions further causes the blockchain routing node to receive, from the plurality of blockchain routing nodes, a plurality of single-node forwarding tables in accordance with an extended blockchain protocol. Execution of the instructions further causes the blockchain routing node to determine a routing table for the overlay network based at least in part on the plurality of single-node forwarding tables. Execution of the instructions further causes the blockchain routing node to route a payload message to a target blockchain routing node in the overlay network in accordance with the determined routing table.

[0009] These and other embodiments of the invention will be described in further detail below. BRIEF DESCRIPTION OF DRAWINGS

[0010] Figure 1 An example system for implementing at least some embodiments of the present disclosure is depicted;

[0011] Figure 2 An example network of blockchain routers for implementing a secure blockchain routing protocol in accordance with at least some embodiments is depicted;

[0012] Figure 3 A system configured to implement a secure blockchain routing protocol across a network in accordance with at least some embodiments is depicted;

[0013] Figure 4 An illustrative example computer architecture of a blockchain router configured to implement a secure blockchain routing protocol in accordance with at least some embodiments is depicted; Figure 2 and Figure 3 An illustrative example computer architecture of a blockchain router configured to implement a secure blockchain routing protocol in accordance with at least some embodiments is depicted;

[0014] Figure 5An illustrative example computer architecture depicting a blockchain provider configured to maintain one or more blockchain ledgers in accordance with at least some embodiments;

[0015] Figure 6 A flow diagram depicting a process showing management of a routing table with a secure blockchain routing protocol in accordance with some embodiments; and

[0016] Figure 7 A flow diagram depicting a process showing execution of message routing with a secure blockchain routing protocol in accordance with at least some embodiments. DETAILED DESCRIPTION

[0017] In the following description, various embodiments will be described. For the purpose of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the embodiments. However, it will also be apparent to one skilled in the art that the embodiments can be practiced without the specific details presented herein. Furthermore, well-known features can be omitted or simplified in order not to obscure the embodiments being described.

[0018] Prior to discussing the details of some embodiments of the present application, a description of some terminology can be helpful in understanding the various embodiments.

[0019] A "blockchain router" (also referred to as a "blockchain routing node") can be any suitable computing device or software module that can be configured to perform routing functions with a blockchain protocol. A blockchain routing node can be configured to transmit and receive data over a wired or wireless data network (e.g., 3G, 4G, or similar networks), Wi-Fi, Wi-Max, or any other communication medium that can provide network access. A blockchain routing node can include any suitable hardware and software for performing routing functions, and can also comprise multiple devices or components (e.g., two electronic devices joined together can be considered a blockchain routing node when the devices are accessed by being tethered to another device - i.e., using another device as a modem). A blockchain routing node can be configured to perform functions such as maintaining forwarding and / or routing tables, determining routing costs, selecting a particular route from many available routes, and facilitating or effecting routing of data messages to intended targets. In some instances, a blockchain provider node can be configured to manage one or more blockchain ledgers. Thus, in some embodiments, it is contemplated that blockchain and routing management functions can be performed collectively by a blockchain routing node.

[0020] A“blockchain provider” (also referred to as a“blockchain provider node”) can be a computing device configured to provide blockchain functionality. A blockchain provider can include a single device, multiple devices, or one or more software modules configured to maintain aspects of a blockchain (e.g., one or more ledgers, etc.). In some instances, a blockchain provider can additionally provide routing functionality. Thus, in some embodiments, it is contemplated that blockchain and routing management functionality can be collectively performed by a blockchain provider.

[0021] An“extended blockchain protocol” can define message formats and message exchange rules for performing network routing functionality. An extended blockchain protocol can include functionality of a standard blockchain protocol that does not define network routing functionality.

[0022] A“forwarding table request message” is a message instance defined by an extended blockchain protocol. In some embodiments, a forwarding table request message can be used to request forwarding table information from another computing device. In some embodiments, a forwarding table request message can be used to request an entire forwarding table from another computing device.

[0023] A“forwarding table response message” is a message instance defined by an extended blockchain protocol. In some embodiments, a forwarding table response message can be used to provide forwarding table information to another computing device. In some embodiments, a forwarding table response message can be used to provide an entire forwarding table to another computing device.

[0024] “Forwarding table information” can include any suitable data associated with a forwarding table. For example, forwarding table information can include, but is not limited to, a destination, a next hop, and performance data (e.g., metrics and costs) associated with a particular network route between two computing devices of a network. In some embodiments, metrics can correspond to latency values, processing values quantifying processing costs, etc. In some embodiments, a“cost” can correspond to a monetary cost associated with network route utilization.

[0025] A“routing table request message” is a message instance defined by an extended blockchain protocol. In some embodiments, a routing table request message can be used to request routing table information from another computing device. In some embodiments, a routing table request message can be used to request an entire routing table from another computing device.

[0026] A“routing table response message” is a message instance defined by an extended blockchain protocol. In some embodiments, a routing table response message can be used to provide routing table information to another computing device. In some embodiments, a routing table response message can be used to provide an entire routing table to another computing device.

[0027] "Routing table information" can include any suitable data associated with a routing table. For example, routing table information can include, but is not limited to, destinations, next hops, and performance data (e.g., metrics and costs) associated with a particular network route between two computing devices of a network.

[0028] A "computing device" can be any suitable device or software module configured to process data. In some embodiments, a computing device can include a communication capability, such as using a mobile phone (wireless) network, a wireless data network (e.g., 3G, 4G, or similar networks), Wi-Fi, Wi-Max, or any other communication medium that can provide access to a network, such as the Internet, an overlay network, etc. Examples of computing devices include mobile phones (e.g., cellular phones), PDAs, tablet computers, netbooks, notebook computers, personal music players, handheld dedicated readers, server computers, etc. A computing device can include any suitable hardware and software for performing such functions, and can also include multiple devices or components (e.g., two electronic devices joined together when a device accesses a network by tethering to another device - i.e., using the other device as a modem - can be considered a single computing device).

[0029] A "blockchain ledger" is an electronic record of transactions maintained according to a blockchain protocol. A complete copy of a blockchain ledger can include every transaction performed by the system. Each entry (e.g., block) in the ledger can include a hash of the previous entry. This has the effect of creating a chain of blocks from an originating block to a current block. Each block is guaranteed to be chronologically after the previous block because the hash of the previous block is not otherwise known. Each block is also computationally impractical to modify once it has been in the chain of blocks for a period of time, because every block after it would also have to be regenerated. These properties make a blockchain ledger relatively secure and tamper-proof.

[0030] An "overlay network" can be a computer network built on top of another network. Nodes in an overlay network can be considered to be connected by virtual or logical links, each of which can correspond to a path through many physical links in the underlying network. For example, distributed systems such as peer-to-peer networks and client-server applications are often overlay networks because their nodes run on top of the Internet. As discussed herein, an overlay network can include one or more computing nodes (e.g., blockchain routing nodes, computing nodes for maintaining a blockchain ledger, etc.) for performing blockchain functions, including but not limited to managing one or more blockchain ledgers, determining routing costs, selecting a particular route from many available routes, and facilitating or effectuating routing of data messages to intended targets.

[0031] A "decentralized network" is intended to refer to a network in which no single computing device or software module controls all of the processing of the network. A "centralized network" is intended to refer to a network in which a single computing device or node (or a relatively small number of computing devices or nodes) controls the processing of the network. Between the two, a decentralized network can be less likely to fail unexpectedly, as it relies on many independent components that are unlikely to fail at the same time. Additionally, a decentralized system is more expensive to attack and destroy or manipulate than a centralized network, as the decentralized network lacks a sensitive central point of economic scale compared to the surrounding system that can be attacked at much lower cost. Additionally, participants in a decentralized network can be significantly more difficult to act in ways that benefit themselves at the expense of other participants.

[0032] A "centralized routing model" can refer to a routing model that is implemented centrally using a centralized database (e.g., a single database maintained by a single entity). In other words, routing tables in a centralized routing model are stored at a single "central" node, which can be consulted when other nodes need to make routing decisions.

[0033] A "decentralized routing model" can refer to a routing model that is implemented using a distributed database (or in other words, a database that is distributed and maintained in copies on many (or all) of the network nodes / devices).

[0034] A "messaging protocol" can be a set of rules for exchanging messages between two computing devices. In some cases, a messaging protocol can include conditions on which an action is to be performed. In some embodiments, a messaging protocol can include a specification that defines a bit-by-bit implementation of various message formats for the messaging protocol.

[0035] A "routing table" can be a table of data that lists available routes in a network (and in some cases, metrics (distances) associated with those routes). A routing table includes information about the network topology to which it pertains. Construction of a routing table is a primary goal of traditional routing protocols.

[0036] A "forwarding table" can include a subset of the entries of a routing table. A forwarding table can include routes that have been determined to be optimal (e.g., based on latency, cost, or other suitable metric) for a plurality of available routes.

[0037] A "peer-to-peer network" refers to a network that includes nodes / devices that are peers to other nodes / devices in the network, both as "clients" and as "servers." Peer-to-peer network arrangements and communications are generally different from the client-server model that goes to and from a central server. A peer-to-peer network can implement some form of virtual overlay network on top of the physical network topology, where the nodes in the virtual overlay form a subset of the nodes in the physical network. Data can still be exchanged directly via the underlying protocol (e.g., TCP / IP) network, but at the application layer, peers are able to communicate directly with each other over logical overlay links (each logical overlay link corresponds to a path through the underlying physical network).

[0038] A "peer discovery process" can refer to operations performed to discover other peers within a network. A peer discovery process can include any suitable operations for performing such tasks, such as referencing a list of nodes from a previous connection to the network (e.g., a locally stored list), requesting and / or receiving a Domain Name Server (DNS) seed, or transmitting an identification request to the network. In some embodiments, a DNS seed resolves a list of IP addresses known to be running nodes. Additionally or alternatively, the process can include referencing a static, hard-coded, locally stored list of peers to identify one or more peers of the network.

[0039] An "application" can be computer code or other data stored on a computer readable medium (e.g., a memory element or secure element) that is executable by a processor to accomplish a task.

[0040] Details of some embodiments of the present invention will now be described.

[0041] Figure 1 An example system 100 for implementing at least some embodiments of the present disclosure is depicted. In Figure 1 In some embodiments, network 102, network 104, and network 106 can be included. Network 102 can include one or more computing devices (e.g., computing device 108). For example, computing device 108 can communicate with one or more other computing nodes of network 102 over a communication connection 110. Network 102 can be an example of a global network (e.g., the Internet) that can provide various information and communication facilities, consisting of interconnected networks using standardized communication protocols (e.g., TCP / IP, HTTP, etc.). Data can be transmitted between computing devices of network 102 using secure communication protocols, such as, but not limited to, File Transfer Protocol (FTP), HyperText Transfer Protocol (HTTP), Secure HyperText Transfer Protocol (HTTPS), Secure Sockets Layer (SSL), ISO (e.g., ISO 8583), etc.

[0042] The computing device 108 can be any electronic device configured to perform at least one primary function. In one illustrative configuration, the computing device 108 can include at least one memory and one or more processing units (or processor(s)). The processor(s) can be implemented by hardware, computer-executable instructions, firmware, or a combination thereof as appropriate. A computer-executable instructions or firmware implementation of the processor(s) can include computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.

[0043] The memory of the computing device 108 can individually store program instructions loadable and executable on the processor(s), as well as data generated during execution of these programs. The memory can be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.) depending on the configuration and type of the user computing device. The computing device 108 can also include additional removable storage and / or non-removable storage including, but not limited to, magnetic storage, optical discs and / or tape storage. The disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for the computing device. In some embodiments, the memory can include a variety of different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM) or ROM.

[0044] Turning to the contents of the memory, the memory can include an operating system and one or more application programs, modules, or services for implementing features of the centralized network. Additionally, the memory can store configuration information such as, but not limited to, routing tables, forwarding tables, and the like. The network 102 can be an instance of a centralized network in which routing is handled by a single or subset of the computing devices in the network 102.

[0045] In some embodiments, the computing device 108 can include a communication interface configured to enable communication between the computing device 108 and another computing device (e.g., another computing device of the access network 102). Examples of the communication interface can include one or more radio frequency (RF) transceivers configured to transmit and receive communications using near-field communication (NFC), or other radio frequency or wireless communication protocols, such as Bluetooth, Bluetooth Low Energy (BLE), wireless local area network (e.g., WiFi), iBeacon, etc. In some embodiments, the communication interface can include an infrared communication device. In some embodiments, the communication interface can include long-range and short-range communication means. For example, the communication interface can include an antenna configured to connect to a cellular network in order to enable communication with various other components of the depicted architecture. In some examples, the communication interface can utilize physical connections between computing devices of the network 102 to transmit and receive data.

[0046] The network 104 can include one or more computing devices (e.g., computing device 112) configured to perform blockchain management functions. For example, the computing device 112 can communicate with one or more other computing nodes of the network 104 through a communication connection 116. The network 104 can be an instance of an overlay network, which can provide various information and communication facilities, consisting of interconnected networks using standard messaging protocols. For example, data can be transmitted between computing devices of the network 104 using a blockchain protocol. In some examples, the computing devices of the network 104 can be the same, or a subset of the computing devices of the network 102. Although it can be the case that at least one computing device of the network 104 does not participate in the network 102.

[0047] The computing device 112 can be any electronic device configured to perform at least one primary function. In one illustrative configuration, the computing device 112 can include at least one memory and one or more processing units (or processor(s)). The processor(s) can be implemented by hardware, computer-executable instructions, firmware, or a combination thereof as appropriate. A computer-executable instructions or firmware implementation of the processor(s) can include computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.

[0048] The memory of the computing device 112 can store both the program instructions that are loadable and executable on the processor(s), as well as the data that is generated during execution of these programs. Depending on the configuration and type of user computing device, the memory can be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.). The computing device 112 can also include additional removable storage and / or non-removable storage including, but not limited to, magnetic storage, optical discs and / or tape storage. The disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computing devices. In some embodiments, memory can include a variety of different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM.

[0049] Turning to the contents of the memory, the memory can include an operating system and one or more application programs (e.g., application programs 114), modules, or services for implementing system functionality that manages a blockchain ledger. Additionally, the memory can store a copy of one or more databases (e.g., one or more decentralized blockchain ledgers). The network 104 can be an instance of a decentralized network in which each computing device of the network 104 executes blockchain ledger management.

[0050] In some embodiments, the computing device 112 can include a communication interface configured to enable communication between the computing device 112 and another computing device (e.g., another computing device that accesses the network 104). Examples of the communication interface can include one or more radio frequency (RF) transceivers configured to transmit and receive communications using near-field communication (NFC), or other radio frequency or wireless communication protocols, such as Bluetooth, Bluetooth Low Energy (BLE), wireless local area network (e.g., WiFi), iBeacon, etc. In some embodiments, the communication interface can include an infrared communication device. In some embodiments, the communication interface can include both long-range and short-range communication means. For example, the communication interface can include an antenna configured to connect to a cellular network in order to enable communication with various other components of the depicted architecture. In some instances, the communication interface can utilize physical connections between computing devices of the network 104 to transmit and receive data.

[0051] The network 106 can include one or more computing devices (e.g., computing device 118) configured to perform blockchain routing functions. For example, the computing device 118 can communicate with one or more other computing nodes of the network 106 through a communication connection 122. The network 106 can be an instance of an overlay network, which can provide various information and communication facilities, consisting of an interconnected network of extensions to a standard blockchain protocol. The extended blockchain protocol can be used to perform routing operations within the network 106. In some instances, the computing devices of the network 106 can be the same, or a subset of the computing devices of the network 104. Although the case can be that at least one computing device of the network 106 does not participate in the network 104 and / or the network 102.

[0052] The computing device 118 can be any electronic device configured to perform at least one primary function. In one illustrative configuration, the computing device 118 can include at least one memory and one or more processing units (or processor(s)). The processor(s) can be implemented by hardware, computer-executable instructions, firmware, or a combination thereof as appropriate. Computer-executable instructions or firmware implementations of the processor(s) can include computer-executable or machine-executable instructions written in any suitable programming language to perform the various functions described.

[0053] The memory of the computing device 118 can individually store program instructions loadable and executable on the processor(s), as well as data generated during execution of these programs. Depending on the configuration and type of user computing device, the memory can be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.). The computing device 118 can also include additional removable storage and / or non-removable storage including, but not limited to, magnetic storage, optical disks and / or tape storage. The disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computing device. In some embodiments, the memory can include a variety of different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM.

[0054] Turning to the contents of the memory, the memory can contain an operating system and one or more applications (e.g., application 120), modules, or services for implementing system features for performing routing operations in accordance with an extended blockchain protocol. Additionally, the memory can store a copy of one or more databases (e.g., one or more decentralized blockchain ledgers). Network 104 can be an instance of a centralized network in which routing operations are performed by a single or subset of computing devices of network 106. Network 104 can alternatively depict a decentralized network in which routing operations are performed by each computing device of network 106.

[0055] In some embodiments, computing device 118 can include a communication interface configured to enable communication between computing device 118 and another computing device (e.g., another computing device accessing network 104). Examples of a communication interface can include one or more radio frequency (RF) transceivers configured to transmit and receive communications using near field communication (NFC), or other radio frequency or wireless communication protocols, such as Bluetooth, Bluetooth Low Energy (BLE), wireless local area network (e.g., WiFi), iBeacon, etc. In some embodiments, the communication interface can include an infrared communication device. In some embodiments, the communication interface can include both long-range and short-range communication means. For example, the communication interface can include an antenna configured to connect to a cellular network in order to enable communication with various other components of the depicted architecture. In some instances, the communication interface can utilize a physical connection between computing devices of network 118 to transmit and receive data.

[0056] Embodiments of one or more modules on computing device 118 can be stored in and executed from its memory. The memory can include an operating system and one or more modules configured to cause one or more processors to execute instructions in accordance with at least some embodiments of the present disclosure.

[0057] To simplify the illustration, Figure 1 A certain number of computing devices are shown in FIG. 1. However, it should be understood that embodiments of the present invention can include more than one of each computing device. Additionally, some embodiments of the present invention can include fewer or more computing devices than all of the computing devices shown in FIG. 1. Figure 1 A certain number of computing devices are shown in FIG. 1. However, it should be understood that embodiments of the present invention can include more than one of each computing device. Additionally, some embodiments of the present invention can include fewer or more computing devices than all of the computing devices shown in FIG. 1.

[0058] Figure 2 An example network 200 of blockchain routers for implementing a secure blockchain routing protocol in accordance with at least some embodiments is depicted. Network 200 can include any suitable number of blockchain routers (e.g., blockchain routers A through F). One or more of the blockchain routers can perform the functions of routing controller 202 described herein. Figure 2 Blockchain routers A through F of FIG. 1 are intended to participate in an overlay network (e.g., an IPFS network)Figure 1 Network 106) Figure 1 An example of computing device 118. Therefore, the blockchain router can be independently a device or software module configured to perform the routing functions described herein and corresponding to routing controller 202. In some instances, such functions can be provided by... Figure 2 One or more applications operating on the blockchain router (e.g., Figure 1 The application 120) performs this function. In some embodiments, the blockchain router can be an independent device or software module configured to perform blockchain ledger management. In these instances, such functionality can be provided by... Figure 2 One or more applications operating on the blockchain router (e.g., Figure 1 The application 114) is executed. Although Figure 2 The document describes a specific number of blockchain routers, but it should be understood that any suitable number of blockchain routers can be utilized.

[0059] In some embodiments, each blockchain router (e.g., blockchain router B) may be configured to perform a peer discovery process to identify other blockchain routers in network 200. The peer discovery process may be performed as part of a procedure performed by the blockchain router to join network 200. The peer discovery process will be discussed below in relation to... Figure 6 Further discussion.

[0060] In some embodiments, routing controller 202 may be configured to generate and maintain routing tables (e.g., routing table 204) for network 200. Routing table 204 is intended to depict instance routing tables for network 200. Routing table 204 may contain more than... Figure 2 The routing table 204 may contain more or fewer entries than described in the table. Each entry in the routing table 204 may include a destination (e.g., the destination's Internet Protocol (IP) address), a next-hop address (e.g., the IP address of the next hop), a metric (describing processing costs, distance, latency, etc.), and a suitable combination of monetary costs. The routing table 204 can be viewed as a set of rules formatted in tabular form in this case, used to determine where packets transmitted via network 200 will be directed. The routing controller 202 may be configured to generate the routing table 204 from one or more data messages received from one or more blockchain routers in network 200. These data messages may be formatted according to an extended blockchain protocol that defines the message format and message exchange rules for performing the functions of the routing controller 202. The extended blockchain protocol utilized may include the functionality of a standard blockchain protocol that does not limit routing capabilities / functions.

[0061] The routing controller 202 can also be configured to generate a forwarding table 206 from the routing table 204. The forwarding table 206 can contain a certain subset of the routes contained in the routing table 204. In some instances, the entries of the forwarding table 206 can contain the best routes determined by the routing table 204. For example, the forwarding table 206 can contain a single best route between any pair of blockchain routers that constitutes the lowest total cost. In some instances, the best route can be the route with the lowest total cost determined by multiplying the corresponding metric by the corresponding monetary cost.

[0062] For example, the routing table 204 indicates that there are two routes to the target E (e.g., route 208 and route 210). Accordingly, the routing controller 202 can be configured to calculate the total cost of route 208 (e.g., 8 x 7 = 56) and the total cost of route 210 (e.g., 10 x 3 = 30). In this non-limiting example, the routing controller 202 can be configured to determine that route 210 is the best utilization route based on route 210 having the lowest total cost. Accordingly, the routing controller 202 can include route 210 and exclude route 208 from the forwarding table 206. In some embodiments, the routing controller 202 can be configured to communicate one or more forwarding tables (e.g., the forwarding table 206) with one or more blockchain routers (or another suitable computing device) in the network 200.

[0063] In some embodiments, the routing controller 202 can be configured to facilitate the routing of data messages within the network 200. The routing controller 202 can be configured to transmit and receive data messages formatted according to an extended blockchain protocol in order to transmit the data messages through the network 200 according to the routing table 204 and / or the forwarding table 206.

[0064] In some embodiments, the routing controller 202 can be configured to maintain one or more blockchain ledgers. For example, the routing controller 202 can maintain a blockchain ledger of the routing table 204 and / or the forwarding table 206. By maintaining the blockchain ledger(s), the routing table 204 and / or the forwarding table 206 can be made tamper-proof. For example, each update to the routing table 204 can be stored as a transaction in the blockchain ledger, where each entry of the blockchain ledger contains the current routing table as well as a hash of the previous entry of the blockchain ledger corresponding to a previous version of the routing table. Accordingly, the blockchain ledger can be used to ensure that the routing table 204 has not been tampered with. Similarly, the routing controller 202 can be configured to maintain one or more blockchain ledgers of the forwarding table 206 (or any forwarding table) to ensure that the forwarding table 206 has not been tampered with.

[0065] In some embodiments, network 200 may depict a centralized network where a single computing device (e.g., blockchain router B) can perform the functions of routing controller 202. In some embodiments, the generation and maintenance of routing table 204 and / or forwarding table 206 may be performed by routing controller 202 and distributed across some or all of the blockchain routers in network 200. In other instances, network 200 may depict a decentralized network where each of the blockchain routers can perform the functions of routing controller 202.

[0066] In some embodiments, the task may be submitted by an application (e.g., application 212). The submitted task may be any suitable task requiring routing between two computing devices. The routing controller 202 may be configured to consult the forwarding table 206 to determine the next-hop address for the data packet corresponding to the submitted task. In some instances, the forwarding table 206 may be associated with the current blockchain router that recently received the data packet. The routing controller 202 may be configured to cause the data packet to be forwarded to the identified next-hop address. This process may be repeated any appropriate number of times until the data packet reaches its intended destination.

[0067] Figure 3 A system 300 is described, configured according to at least some embodiments, to implement a secure blockchain routing protocol across networks (e.g., networks 302, 304, and 306). Networks 302, 304, and 306 may individually contain any suitable number of blockchain routers (e.g., blockchain routers A to F, blockchain routers H to I, and blockchain routers J to K, respectively). Networks 302, 304, and 306 are... Figure 2 Each instance of the network is 200. Figure 3 The blockchain router is expected to be an instance of computing device 118, and Figure 3 Each of the blockchain routers can be individually configured to act as a routing controller (e.g., Figure 2 (Route controller 202).

[0068] For example, blockchain router H and / or blockchain router I can be configured to act as routing controller 308. Figure 2 An instance of route controller 202 can be configured to perform routing functions within network 304. Similarly, blockchain routers A through G (or a subset of blockchain routers A through G) can be configured to act as route controller 310 (e.g., route controller 202) to perform routing functions within network 302. Likewise, blockchain router J and / or blockchain router K can be configured to act as route controller 312 (an instance of route controller 202) to perform routing functions within network 306.

[0069] In some instances, the routing functionality of routing controller 308, routing controller 310, and / or routing controller 312 can be performed by an application (e.g., application 120 of Figure 1 In some embodiments, Figure 3 The blockchain routers of Figure 3 In some instances, such functionality can be performed by an application (e.g., application 114 of Figure 1 While a specific number of blockchain routers are depicted in the network of Figure 3 It should be understood that any suitable number of blockchain routers can be used in any network of Figure 3

[0070] In some embodiments, inter-network routing controller 314 can be configured to generate and maintain a routing table (e.g., routing table 316) that routes data between networks (e.g., between network 308, network 310, and network 312). While Figure 3 The inter-network routing controller 314 can be configured to perform routing functionality for any suitable number of networks. Routing table 316 is intended to depict an example routing table for routing data between network 302, network 304, and network 306.

[0071] In some embodiments, routing table 316 can contain more or less entries than those depicted in Figure 3 Each entry in routing table 316 can contain a suitable combination of a destination (e.g., an Internet Protocol (IP) address of the destination), a next hop address (e.g., an IP address of the next hop or a network identifier of the network), a metric (depicting a cost of processing, distance, latency, etc.), and a monetary cost. Routing table 316 can be considered a set of rules formatted as a table in this case that is used to determine where a data packet being transmitted between networks will be directed. Inter-network routing controller 314 can be configured to generate routing table 316 from one or more data messages received from routing controller 308, routing controller 310, and / or routing controller 312. These data messages can be formatted according to an extended blockchain protocol that defines message formats and message exchange rules for performing the functionality of inter-network routing controller 314. The extended blockchain protocol utilized can contain functionality of a standard blockchain protocol that does not define such routing capabilities / functionality.

[0072] ​The inter-network routing controller 314 can also be configured to generate a forwarding table 318 from the routing table 316. The forwarding table 318 can contain a certain subset of the entries (e.g., routes) contained in the routing table 316. In some instances, the entries of the forwarding table 318 can contain the best routes determined by the routing table 316. For example, the forwarding table 318 can contain the single route between networks that constitutes the lowest total cost. In some instances, the best route can be the route with the lowest total cost determined by multiplying the corresponding metric by the corresponding monetary cost as described above with respect to Figure 2

[0073] In some embodiments, the inter-network routing controller 314 can be configured to include the best routes in the forwarding table 318 and exclude other routes from the forwarding table 206. In some embodiments, the inter-network routing controller 314 can be configured to communicate one or more forwarding tables (e.g., the forwarding table 318) with one or more blockchain routers (or another suitable computing device) that function as the routing controller 308, the routing controller 310, and / or the routing controller 312.

[0074] In some embodiments, the inter-network routing controller 314 can be configured to facilitate routing of data messages between the network 308, the network 310, and the network 312. The inter-network routing controller 314 can be configured to transmit and receive data messages formatted according to the extended blockchain protocol described herein in order to transmit the data messages according to the routing table 316 and / or the forwarding table 318.

[0075] In some embodiments, the inter-network routing controller 314 can be configured to maintain one or more blockchain ledgers. For example, the inter-network routing controller 314 can maintain a blockchain ledger of the routing table 316 and / or the forwarding table 318. By maintaining the blockchain ledger(s), the routing table 316 and / or the forwarding table 318 can be made tamper-proof. For example, each update to the routing table 316 can be stored as a transaction in the blockchain ledger, where each entry of the blockchain ledger contains the current routing table as well as a hash of the previous entry of the blockchain ledger that corresponds to a previous version of the routing table. Thus, the blockchain ledger can be used to ensure that the routing table 316 has not been tampered with. Similarly, the inter-network routing controller 314 can be configured to maintain one or more blockchain ledgers of the forwarding table 318 (or any forwarding table) to ensure that the forwarding table 318 has not been tampered with.

[0076] ​In some embodiments, system 300 can depict a centralized network in which a single computing device (e.g., a blockchain router B functioning as routing controller 310) can perform the functions of inter-network routing controller 314. In some embodiments, the generation and maintenance of routing table 316 and / or forwarding table 318 are performed by routing controller 310 and distributed across some or all of the routing controllers of system 300 (e.g., routing controller 308 and / or routing controller 312). In other instances, system 300 can depict a decentralized network in which routing controller 308, routing controller 310, and routing controller 312 can each perform the functions of inter-network routing controller 314.

[0077] In some embodiments, a task can be submitted by an application (e.g., application 320). The submitted task can be any suitable task that needs to be routed between two networks (e.g., network 302 and network 304). Inter-network routing controller 314 can be configured to consult forwarding table 318 to determine a next hop address for a data packet corresponding to the submitted task. In some instances, forwarding table 318 can be associated with a particular network (e.g., network 302) that most recently received the data packet. The entries within forwarding table 318 can define a next hop relative to the particular network. Inter-network routing controller 314 can be configured such that the data packet is transmitted to the identified next hop address. This process can be repeated any suitable number of times until the data packet reaches the intended network. In some embodiments, routing within a network (e.g., network 308) can be performed by a corresponding routing controller (e.g., routing controller 308 for network 304, routing controller 310 for network 302, and / or routing controller 312 for network 306).

[0078] Figure 4 illustrative example computer architecture 400 of a blockchain router 402 configured to implement a secure blockchain routing protocol in accordance with at least some embodiments. As described above, blockchain router 402 can perform any suitable combination of the routing functions of a routing controller and / or an inter-network routing controller of Figure 2 and 3 . The routing functions can be performed by an application (e.g., application 114 and / or application 120) stored in computer-readable medium 410 and operating on blockchain router 402. Figure 2 Figure 3 illustrative example computer architecture 400 of a blockchain router 402 configured to implement a secure blockchain routing protocol in accordance with at least some embodiments. As described above, blockchain router 402 can perform any suitable combination of the routing functions of a routing controller and / or an inter-network routing controller of

[0079] ​In some embodiments, the blockchain router 402 may include a processor 404 (or one that can access the process), which may be coupled to system memory 406 and external communication interface 408. A computer-readable medium 410 may also be operatively coupled to processor 404. The computer-readable medium 410 may include any suitable combination of software modules comprising a network manager 412, a desktop management engine 414, a routing engine 416, and an inter-controller routing engine 418. The modules of the blockchain router 502 may be software and / or hardware modules. It should be understood that, relative to… Figure 4 Any functionality described in the module can be combined to be performed by a single module, or can be performed by a module outside the blockchain router 402.

[0080] Components of network manager 412 and blockchain router 402 can be configured to cause processor 404 to perform network joining (e.g., Figure 1 Network 106 is an overlay network instance used to perform blockchain routing functions. Such operations may include transmitting and receiving data messages corresponding to requests / responses to join the network. Network manager 412 can be configured to cause processor 404 to perform operations to discover peers within the network (e.g., network 106). These peer discovery operations further relate to... Figure 6 Let's have a discussion.

[0081] In some embodiments, the table management engine 414, a component of the blockchain router 402, can be configured to cause the processor 404 to perform maintenance of one or more routing tables (e.g., Figure 2 Routing table 204 and / or Figure 3 Routing table 316) and / or one or more forwarding tables (e.g., Figure 2 206 reposts and / or Figure 3 The operation of forwarding table 318. Such operation may include transmitting data messages to other blockchain routers (or other computing devices in the network) corresponding to routing information requests / responses and receiving data messages from said blockchain routers. The routing information received by table management engine 414 may specify a particular route known to a particular blockchain router and / or suitable computing device in the network. The route information may include the destination, next hop, metric, and monetary cost associated with each route known to the device. It should be understood that the routing information may include any suitable information associated with the route.

[0082] In some embodiments, the table management engine 414 can be configured to cause the processor 404 to calculate a total cost associated with each route. As described above, the total cost can be calculated by the table management engine 414 multiplying a metric by a monetary cost associated with the route, although other suitable methods for calculating the total cost can be utilized. After calculating the total cost for each route, the table management engine 414 can be configured to construct one or more forwarding tables (e.g., the forwarding table 206 and / or the forwarding table 318). In some embodiments, the table management engine 414 can be configured to provide the generated routing table(s) and / or forwarding table(s) to one or more other blockchain routers.

[0083] In some embodiments, the table management engine 414 can be configured to cause the processor 404 to store any suitable combination of the one or more routing tables and / or one or more forwarding tables maintained by the table management engine. For example, the table management engine 414 can be configured to store such routing / forwarding tables in the data store 420, a storage location configured to store such information. The data store 420 can exist as part of the memory 410, which is local to the blockchain router 402, and / or the data store 420 can be accessible to the processor 404, but exist external to the blockchain router 402.

[0084] In some embodiments, the routing engine 416, a component of the blockchain router 402, can be configured to cause the processor 404 to perform operations for transmitting data messages in accordance with the routing table (e.g., the routing table 204) and / or one or more forwarding tables (e.g., the forwarding table 206). The routing engine 416 can be configured to modify the data messages in any suitable manner in order to transmit the data messages to the appropriate destination. For example, the routing engine 416 can be configured to cause the processor 404 to modify an address field of the message in order to direct the data message to the appropriate next hop address. In general, the routing engine 416 can be configured to cause the processor to perform any suitable operations corresponding to the routing controller (e.g., the routing controller 308, the routing controller 310, and / or the routing controller 312). Figure 2 Figure 3 In some embodiments, the inter-controller routing engine 418, a component of the blockchain router 402, can be configured to cause the processor 404 to perform operations for transmitting data messages in accordance with the routing table (e.g., the routing table 316) and / or one or more forwarding tables (e.g., the forwarding table 318). The inter-controller routing engine 418 can be configured to modify the data messages in any suitable manner in order to transmit the data messages to the appropriate destination. For example, the inter-controller routing engine 418 can be configured to cause the processor 404 to modify an address field of the message in order to direct the data message to the appropriate next hop address. In general, the inter-controller routing engine 418 can be configured to cause the processor to perform any suitable operations corresponding to the routing controller (e.g., the routing controller 308, the routing controller 310, and / or the routing controller 312).

[0085] In some embodiments, the inter-controller routing engine 418, a component of the blockchain router 402, can be configured to cause the processor 404 to perform operations for transmitting data messages in accordance with the routing table (e.g., the routing table 316) and / or one or more forwarding tables (e.g., the forwarding table 318). The inter-controller routing engine 418 can be configured to modify the data messages in any suitable manner in order to transmit the data messages to the appropriate destination. For example, the inter-controller routing engine 418 can be configured to cause the processor 404 to modify an address field of the message in order to direct the data message to the appropriate next hop address. In general, the inter-controller routing engine 418 can be configured to cause the processor to perform any suitable operations corresponding to the routing controller (e.g., the routing controller 308, the routing controller 310, and / or the routing controller 312). Figure 3 Figure 3 ​​forwarding table 318) to transmit data messages. The inter-controller routing engine 418 can be configured to cause the processor 404 to modify data messages in any suitable manner in order to transmit the data messages to the appropriate destination. For example, the inter-controller routing engine 418 can be configured to cause the processor 404 to modify the address field of the message in order to direct the data message to the appropriate next hop address. Generally, the inter-controller routing engine 418 can be configured to cause the processor to perform any suitable operations corresponding to the inter-network routing controller (e.g., the inter-network routing controller 314) of which the network node 302 is a part. Figure 3

[0086] Figure 5 An illustrative example computer architecture 500 of a blockchain provider 502 configured to maintain one or more blockchain ledgers is depicted in accordance with at least some embodiments. The blockchain provider 502 can be configured to maintain aspects of a blockchain (e.g., one or more ledgers, etc.). In some embodiments, the functionality of the blockchain provider 502 can be included as a module of the blockchain router 402. Figure 4

[0087] In some embodiments, the blockchain provider 502 can include a processor 504 (or have access to the process), which can be coupled to a system memory 506 and an external communication interface 508. A computer-readable medium 510 can also be operably coupled to the processor 504. The computer-readable medium 510 can include any suitable combination of software modules including a network manager 512 and a blockchain ledger management engine 514. The modules of the blockchain provider 502 can be software and / or hardware modules. It should be understood that any functionality described with respect to the modules of the blockchain provider 502 can be combined for execution by a single module or can be performed by modules external to the blockchain provider 502. Figure 5

[0088] The network manager 512, a component of the blockchain provider 502, can be configured to cause the processor 504 to perform operations to join a network (e.g., the network 104, an instance overlay network for maintaining one or more blockchain ledgers). Such operations can include transmitting and receiving data messages corresponding to conventional blockchain transactions. The network manager 512 can be configured to cause the processor 404 to perform operations to discover peers within the network (e.g., the network 104). Such operations can be in accordance with conventional techniques for discovering peers within a blockchain network (e.g., the network 104). Figure 1

[0089] ​​​​In some embodiments, the blockchain ledger management engine 514, a component of the blockchain provider 502, can be configured to cause the processor 504 to perform operations to maintain one or more blockchain ledgers. As described above, a "blockchain ledger" is an electronic record of transactions maintained according to a blockchain protocol. A complete copy of a blockchain ledger can contain every transaction performed within a blockchain network (e.g., the network 104) of the blockchain provider 502. Each entry (e.g., block) in the ledger can contain a hash of the previous entry. This has the effect of creating a chain of blocks from an originating block to a current block. Each block is guaranteed to be chronologically after the previous block because the hash of the previous block is not otherwise known. Each block is also computationally impractical to modify once it has been in the chain of blocks for a period of time because every block after the block must also be regenerated. These properties make a blockchain ledger relatively secure and tamper-proof. Figure 1

[0090] In some embodiments, when the functionality of the blockchain provider 502 is accessed or performed by the blockchain router 402 of the network 104, one or more routing tables and / or one or more forwarding tables can be maintained as a single or separate blockchain ledger. Accordingly, the routing / forwarding tables corresponding to the routing controller can be stored as a blockchain ledger. Similarly, the routing / forwarding tables corresponding to the inter-network routing controller can be stored as a blockchain ledger. Figure 4

[0091] In some embodiments, the blockchain ledger management engine 514 can be configured to cause the processor 504 to store any suitable combination of one or more blockchain ledgers. For example, the blockchain ledger management engine 514 can be configured to store the blockchain ledger in the data store 516, a storage location configured to store such information. The data store 516 can exist as part of the local memory 510 of the blockchain provider 502, or the data store 516 can be accessible to the processor 504 but exist external to the blockchain provider 502.

[0092] In some embodiments, the blockchain ledger management engine 514 can be configured to cause the processor 504 to perform operations to transmit / receive data messages between blockchain providers of a distributed blockchain. A distributed blockchain can contain any suitable number of blockchain providers that collectively are responsible for maintaining one or more blockchain ledgers.

[0093] Figure 6 ​​A flowchart illustrating a process 600 for managing routing tables using a secure blockchain routing protocol according to some embodiments is provided. Some or all (or variations and / or combinations thereof) of any process described herein can be executed under the control of one or more computer systems configured with executable instructions and can be implemented as code (e.g., executable instructions, one or more computer programs, or one or more application programs). According to at least one embodiment, Figure 6 The process 600 can be made by Figure 4 Modules or Figure 5 The code is executed by a module. It can be stored on a computer-readable storage medium, for example, in the form of a computer program containing multiple instructions executable by one or more processors. The computer-readable storage medium can be non-transitory.

[0094] Process 600 can be generated by a network (e.g., Figure 1 The blockchain router of network 106) is executed. Although Figure 6 The process 600 executed between blockchain routers is described, but it should be understood that when process 600 uses a traditional blockchain network (e.g., Figure 1 When the network 104 is executed, the blockchain provider can replace the described blockchain router.

[0095] Process 600 can begin at 602, when the blockchain router (e.g., blockchain router A)... Figure 4 An instance of blockchain router 402 may perform operations for joining a network (e.g., network 106). In some instances, operations for joining a network may include performing a peer discovery process. The peer discovery process performed at 602 may refer to operations performed to discover other peers within the network. The peer discovery process may include any suitable operations for performing such tasks, such as referencing a list of nodes / devices from a previous connection to the network (e.g., a locally stored list or a list accessible by blockchain router A), requesting and / or receiving a Domain Name Server (DNS) seed, or transmitting an identification request to the network. In some embodiments, the DNS seed resolves a list of IP addresses known to be running nodes. Alternatively or additionally, the peer discovery process may include referencing a static, hard-decoded, locally stored list of peers to identify one or more peers in the network.

[0096] At position 604, blockchain router A can transmit a forwarding table request message to blockchain router B. The forwarding table request message can request some or all of the forwarding information known to blockchain router B. In some embodiments, the forwarding table request can be used to request any suitable routing information, such as routes currently known to blockchain router B.

[0097] At 606, blockchain router B can consult stored data records, such as a forwarding table, where the stored forwarding table information corresponds to blockchain router B. Additionally or alternatively, blockchain router B can provide any suitable routing information, such as routes currently known by blockchain route B, whether such information is formatted and / or utilized by blockchain router B as forwarding information for routing purposes or not.

[0098] At 608, blockchain router B can transmit a forwarding table response message to blockchain router A. The forwarding table response message can include forwarding table information corresponding to blockchain router B. In some embodiments, the forwarding table response message can include any suitable routing information, such as routes currently known by blockchain route B, whether such information is formatted and / or utilized by blockchain router B as forwarding information for routing purposes or not.

[0099] At 610, blockchain router A can transmit a forwarding table request message to blockchain router C. The forwarding table request message can request some or all of the forwarding information known by blockchain router C. In some embodiments, the forwarding table request can be used to request any suitable routing information, such as routes currently known by blockchain router C.

[0100] At 612, blockchain router C can consult stored data records, such as a forwarding table, where the stored forwarding table information corresponds to blockchain router C. Additionally or alternatively, blockchain router C can provide any suitable routing information, such as routes currently known by blockchain route C, whether such information is formatted and / or utilized by blockchain router C as forwarding information for routing purposes or not.

[0101] At 614, blockchain router C can transmit a forwarding table response message to blockchain router A. The forwarding table response message can include forwarding table information corresponding to blockchain router C. In some embodiments, the forwarding table response message can include any suitable routing information, such as routes currently known by blockchain route C, whether such information is formatted and / or utilized by blockchain router C as forwarding information for routing purposes or not.

[0102] At 616, blockchain router A can determine a routing table for the network using the forwarding information received at 608 and 614. Determining a routing table for the network can include appending the forwarding information (or other suitable routing information) to the routing table.

[0103] At 618, blockchain router A can determine corresponding forwarding tables for any suitable combination of blockchain router A, blockchain router B, and / or blockchain router C. To determine such forwarding tables, blockchain router A can calculate a total cost associated with each available route, which is associated with the forwarding information received at 608 and 614. Blockchain router A can determine a single best route between each blockchain router in the network using the calculated total costs. The blockchain router can include one or more best routes for each forwarding table corresponding to a particular blockchain router.

[0104] At 620, blockchain router A can distribute one or more of the determined forwarding tables to blockchain router B and / or blockchain router C. The forwarding tables distributed to blockchain router B can relate to network neighbors of blockchain router B, while the forwarding tables distributed to blockchain router C can relate to network neighbors of blockchain router C.

[0105] At 622, blockchain router A can perform any other operations, including but not limited to maintaining one or more of the determined routing tables and / or determined forwarding tables in one or more blockchain ledgers. In some embodiments, maintaining one or more of the routing tables and / or determined forwarding tables in one or more blockchain ledgers can include transmitting / receiving information to / from blockchain router A and other blockchain routers such that the plurality of blockchain routers can collectively maintain the one or more blockchain ledgers. In some embodiments, a copy of each of the one or more blockchain ledgers can be stored on each blockchain router configured to maintain such data.

[0106] It should be understood that any operations performed by blockchain router A can additionally or alternatively be performed by blockchain router B and / or blockchain router C.

[0107] Figure 7 A process 700 is depicted showing a process for performing message routing using a secure blockchain routing protocol (e.g., the extended blockchain protocol described herein) is shown in accordance with at least some embodiments.

[0108] Some or all of any of the processes described herein (or variations and / or combinations thereof) can be performed under the control of one or more computer systems configured with executable instructions (e.g., computer programs, one or more computer programs, or one or more applications) and can be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executing collectively on one or more computer systems. According to at least one embodiment, Figure 7 The process 700 can be performed by Figure 4At least the route manager 416 and / or the inter-controller route manager 418 can perform. The code can be stored on a computer-readable storage medium, such as in the form of a computer program containing a plurality of instructions executable by one or more processors. The computer-readable storage medium can be non-transitory.

[0109] The process 700 can begin at 702, where an application running on a computing device configured to access a network can submit a task to a blockchain router A through any suitable data message formatted according to the extended blockchain protocol discussed herein. The task can correspond to any suitable task, whereby routing functionality is needed to route the task information through data messages to computing devices of the network. For example, the task can require that the task information be sent through a data message to a particular target (e.g., blockchain router C). The data message can be formatted according to the extended blockchain protocol described herein and transmitted to the blockchain router A. In some instances, a target address (e.g., corresponding to the blockchain router C) can be included in the data message transmitted to the blockchain router A, which can include a target address field specifying the target as the blockchain router C.

[0110] At 704, the blockchain router A can consult a locally stored forwarding table to determine a next hop address for the data message. The next hop address can indicate a network neighbor of the blockchain router A (e.g., blockchain router B) that is proximate to the target (e.g., blockchain router C). In some embodiments, the blockchain router A can request a forwarding route from another computing device configured to maintain a forwarding table corresponding to the blockchain router A.

[0111] At 706, the blockchain router A can transmit the data message to another blockchain router (e.g., blockchain router B). In some embodiments, the blockchain router A can modify the data message prior to transmission. For example, the blockchain router A can modify a next hop address field within the data message to indicate that the data message is to be transmitted to the blockchain router B.

[0112] At 708, the blockchain router B can consult a locally stored forwarding table to determine a next hop address for the data message. The next hop address can indicate a network neighbor of the blockchain router B (e.g., blockchain router C). In some embodiments, the blockchain router B can request a forwarding route from another computing device configured to maintain a forwarding table corresponding to the blockchain router B.

[0113] At 710, the blockchain router B can transmit the task information to another blockchain router (e.g., blockchain router C). In some embodiments, the blockchain router B can modify the data message prior to transmission. For example, the blockchain router B can modify the next hop address field to indicate that the data message is to be transmitted to the blockchain router C.

[0114] At 712, the blockchain router C can receive the data message, determine the target indicated in the data message, and process the data message payload. In some embodiments, the blockchain router C can perform data message processing that includes performing operations to maintain one or more blockchain ledgers of information contained in the data message payload. In at least one instance, the blockchain router C can determine that the target address corresponds to another computing device (e.g., a blockchain provider) that is known to the blockchain router C. In such instances, the blockchain router C can forward the data message to the target address of the computing device for further processing.

[0115] Embodiments of the present disclosure provide several technical advantages. For example, embodiments of the present disclosure implement routing functionality using an extended blockchain protocol. Conventional blockchain protocols do not include such routing functionality. Thus, the techniques described herein enable an overlay network that provides decentralized routing, where routing and / or forwarding information for the overlay network is maintained by some or all of the overlay network participants. This can free participants from utilizing a centralized network, such as the Internet, for message routing. Thus, standard message protocols utilized by the Internet can be used to protect the privacy of data being exchanged to the extent possible.

[0116] Additionally, in some embodiments, the techniques provided herein enable monetization of network routing, and such monetary costs can be utilized to perform routing decisions. Such costs can be collected through conventional billing / payment processes.

[0117] Additionally, in some embodiments, the techniques provided herein enable overlay network participants to provide a means of transferring data messages that is more secure than that provided by the Internet, as the routing and / or forwarding tables themselves can be maintained within a blockchain ledger, which is tamper-proof by nature.

[0118] It should be understood that any of the embodiments of the present application can be implemented in the form of control logic using hardware (e.g. an application specific integrated circuit or field programmable gate array) and / or using computer software with a generally programmable processor in a modular or integrated manner. As used herein, a processor includes a single-core processor, multi-core processor on a same integrated chip, or multiple processing units on a single circuit board or networked. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will know and appreciate other ways and / or methods to implement embodiments of the present application using hardware and a combination of hardware and software.

[0119] Any of the software components or functions described in this application can be implemented as software code to be executed by a processor using any suitable computer language such as, for example, Java, C, C++, C#, Objective-C, Swift, scripting languages such as Perl or Python, and / or the like. Functionality of the software layers can be divided among any number of software components or functions not specifically described herein. The software code can be stored in any type of computer readable medium, for example, random access memory (RAM), read only memory (ROM), magnetic floppy diskette, or optical disc such as a CD or DVD, flash memory, etc. The computer readable medium can be resident within the computing device or external to the computing device.

[0120] Such programs can also be encoded and transmitted using carrier signals adapted to carry digital or analog data, including sounds, images, and / or videos applied to produce the adaptation in a variety of protocols, including wireless protocols. Thus, a computer readable medium according to an embodiment of the present application can be created using a data signal encoded with such programs. Computer readable media encoded with the program code can be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium can reside on or within a single computer product (e.g., a hard disk drive, a CD, or an entire computer system), and can be present on or within different computer products within a system or network. A computer system can include a monitor, printer, or other suitable display for providing any of the results mentioned herein to a user.

[0121] The above description is illustrative and not restrictive. Many variations of the application will become apparent to those of skill in the art upon review of this disclosure. The scope of the application should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the pending claims along with their full scope or equivalents.

[0122] One or more features from any embodiment can be combined with one or more features of any other embodiment, without departing from the scope of the application.

[0123] The recitation "a" or "an" or "the" is intended to mean "one or more" unless specifically indicated to the contrary.

[0124] All patents, patent applications, publications, and descriptions mentioned herein are hereby incorporated by reference in their entirety for all purposes. They are not admitted to be prior art.

Claims

1. A computer implementation method for blockchain-based routing, comprising: The blockchain routing node receives multiple single-node forwarding tables from multiple blockchain routing nodes according to the extended blockchain protocol, and the blockchain routing node participates in the coverage network together with the multiple blockchain routing nodes. The blockchain routing node determines the routing table of the overlay network using forwarding information received through the forwarding tables of the multiple single nodes; Determine the corresponding forwarding table for any suitable combination of the blockchain routing nodes and the plurality of blockchain routing nodes; The determined forwarding table is assigned to the plurality of blockchain routing nodes; as well as The blockchain routing node routes the payload message to the destination blockchain routing node in the overlay network according to the determined forwarding table.

2. The computer implementation method according to claim 1 further includes: The blockchain routing node executes the instruction to join the overlay network; The blockchain routing nodes identify a subset of the plurality of blockchain routing nodes from stored data records; The blockchain routing node transmits the forwarding table request message to the subset of the blockchain routing node; as well as The blockchain routing node receives forwarding table information from at least one blockchain routing node in the subset of blockchain routing nodes.

3. The method according to claim 2, wherein the data record is stored in the local storage of the blockchain routing node.

4. The computer implementation method according to claim 2 further includes a blockchain ledger maintained by the blockchain routing node, comprising entries corresponding to the routing table.

5. The computer implementation method according to claim 4 further includes transmitting an allocation message from the blockchain routing node to the plurality of blockchain routing nodes, the allocation message including the blockchain ledger, the allocation message being formatted according to the extended blockchain protocol.

6. The computer implementation method according to claim 1, further comprising: The blockchain routing nodes calculate the total cost associated with each available route related to the received forwarding information to determine at least one optimal route, wherein determining at least one optimal route includes: calculating the total cost based at least in part on performance data associated with the respective blockchain routing nodes among the plurality of blockchain routing nodes.

7. The computer implementation method of claim 6, wherein the performance data includes at least a first attribute associated with a latency value and a second attribute corresponding to a cost value.

8. The computer implementation method of claim 7, wherein the total cost associated with each available route is calculated at least in part based on multiplying the delay value by the cost value.

9. The computer implementation method of claim 1, wherein the extended blockchain protocol is defined in at least one routing process not defined in the blockchain protocol, and the extended blockchain protocol extends from the blockchain protocol.

10. The computer implementation method of claim 6, wherein transmitting the payload message according to the optimal route causes destination blockchain computing nodes in different overlay networks to process the payload message.

11. A blockchain routing node, comprising: processor, and A computer-readable medium coupled to the processor, the computer-readable medium including code for causing the processor to perform the following operations: According to the extended blockchain protocol, multiple single-node forwarding tables are received from multiple blockchain routing nodes, and the blockchain routing nodes participate in the overlay network together with the multiple blockchain routing nodes; The routing table of the overlay network is determined using the forwarding information received through the forwarding tables of the multiple single nodes; Determine the corresponding forwarding table for any suitable combination of the blockchain routing nodes and the plurality of blockchain routing nodes; The determined forwarding table is assigned to the plurality of blockchain routing nodes; as well as The payload message is routed to the destination blockchain routing node in the overlay network according to the determined forwarding table.

12. The blockchain routing node of claim 11, wherein the computer-readable medium includes additional code for causing the processor to perform the following operations: Execute the instruction to join the coverage network; Identify a subset of the multiple blockchain routing nodes from the stored data records; The forwarding table request message is transmitted to the subset of the blockchain routing nodes; as well as Receive forwarding table information from at least one blockchain routing node in the subset of blockchain routing nodes.

13. The blockchain routing node according to claim 12, wherein the data records are stored in the local storage of the blockchain routing node.

14. The blockchain routing node of claim 12, further comprising a blockchain ledger maintained by the blockchain routing node including entries corresponding to the routing table.

15. The blockchain routing node of claim 14, wherein the computer-readable medium includes additional code for causing the processor to perform the following operations: The allocation message is transmitted to the plurality of blockchain routing nodes. The allocation message includes the blockchain ledger and is formatted according to the extended blockchain protocol.

16. The blockchain routing node of claim 11, wherein the computer-readable medium includes additional code for causing the processor to perform the following operations: The calculation of the total cost associated with each available route associated with the received forwarding information to determine at least one optimal route is configured to: calculate the total cost at least in part based on performance data associated with the respective blockchain routing node among the plurality of blockchain routing nodes.

17. The blockchain routing node of claim 16, wherein the performance data includes at least a first attribute associated with a latency value and a second attribute corresponding to a cost value.

18. The blockchain routing node of claim 17, wherein the total cost associated with each available route is calculated at least in part based on multiplying the latency value by the cost value.

19. The blockchain routing node of claim 11, wherein the extended blockchain protocol is defined in at least one routing process not defined in the blockchain protocol, and the extended blockchain protocol extends from the blockchain protocol.

20. A system for blockchain-based routing, comprising: An overlay network comprising multiple blockchain routing nodes, each of which includes: processor; and A computer-readable medium coupled to the processor, the computer-readable medium including instructions that, when executed, cause the processor to perform the following operations: Join the overlay network that includes the plurality of blockchain routing nodes; Receive multiple single-node forwarding tables from at least one of the plurality of blockchain routing nodes according to the extended blockchain protocol; The routing table of the overlay network is determined using the forwarding information received through the forwarding tables of the multiple single nodes; Determine the corresponding forwarding table for any suitable combination of the blockchain routing node itself and at least one of the plurality of blockchain routing nodes; Assign the determined forwarding table to at least one of the plurality of blockchain routing nodes; and The payload message is routed to the destination blockchain routing node in the overlay network according to the determined forwarding table.

Citation Information

Patent Citations

  • Cryptographic methods implementing proofs of work in systems of interconnected nodes

    US20160358169A1

  • Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems

    US20170048209A1