WO2019195639A1 - Programmatic creation of blockchains - Google Patents

Programmatic creation of blockchains Download PDF

Info

Publication number
WO2019195639A1
WO2019195639A1 PCT/US2019/025915 US2019025915W WO2019195639A1 WO 2019195639 A1 WO2019195639 A1 WO 2019195639A1 US 2019025915 W US2019025915 W US 2019025915W WO 2019195639 A1 WO2019195639 A1 WO 2019195639A1
Authority
WO
WIPO (PCT)
Prior art keywords
blockchain
smart contract
side chain
block
network
Prior art date
Application number
PCT/US2019/025915
Other languages
French (fr)
Inventor
Jong Hyeop KIM
Original Assignee
Neji, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neji, Inc. filed Critical Neji, Inc.
Publication of WO2019195639A1 publication Critical patent/WO2019195639A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4016Transaction verification involving fraud or risk level assessment in transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Definitions

  • Embodiments are generally directed to blockchain technology, and more specifically to methods and systems for programmatically creating blockchains, sidechains, and mesh chains.
  • Blockchain technology has often been proposed as a solution to the problems inherent with centralized systems.
  • Blockchain projects are being developed to provide decentralized computing, storage, and suites of applications to realize a decentralized future. These projects, however, all continue to build atop the same underlying network infrastructure consisting of switches and routers connected by Ethernet, a foundation which remains fragile due to being insecure, difficult to manage, and centrally controlled.
  • a blockchain is basically a shared immutable ledger for recording a series of transactions. It may be used in a business application to provide a permissioned network with known identities, such as to provide secure exchanges through an escrow-like mechanism.
  • a blockchain is a digital ledger of records arranged in a series of blocks (data chunks) that are linked with one another through a cryptographic validation (i.e., hashing function). When linked, the blocks form an unbroken blockchain.
  • FIG. 1 illustrates a large-scale network including wired and wireless links that includes a packet control process for implementing programmatic creation of a blockchain under some embodiments.
  • FIG. 2 illustrates a blockchain network implementing aspects of a programmatic blockchain builder under some embodiments.
  • FIG. 3 illustrates a sidechain or mesh chain used for the blockchain network of FIG. 2, under some embodiments.
  • FIG. 4 is a diagram illustrating programmatic generation of a blockchain or side chain from a global blockchain under some embodiments.
  • FIG. 5 is a flowchart that illustrates a method of programmatically creating a side chain under some embodiments.
  • FIG. 6 illustrates the creation of multiple and hierarchical side chains under some embodiments.
  • FIG. 7 is a block diagram of a computer system used to execute one or more software components of a programmable network packet system, under some embodiments.
  • a computer-usable medium or computer- readable medium may be any physical medium that can contain or store the program for use by or in connection with the instruction execution system, apparatus or device.
  • the computer-readable storage medium or computer-usable medium may be, but is not limited to, a random-access memory (RAM), read-only memory (ROM), or a persistent store, such as a mass storage device, hard drives, CDROM, DVDROM, tape, erasable
  • EPROM programmable read-only memory
  • flash memory any magnetic
  • the computer-readable storage medium or computer-usable medium may be any combination of these devices or even paper or another suitable medium upon which the program code is printed, as the program code can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
  • Applications software programs or computer-readable instructions may be referred to as components or modules.
  • Applications may be hardwired or hard coded in hardware or take the form of software executing on a general-purpose computer or be hardwired or hard coded in hardware such that when the software is loaded into and/or executed by the computer, the computer becomes an apparatus for practicing the invention.
  • Applications may also be downloaded, in whole or in part, through the use of a software development kit or toolkit that enables the creation and implementation of the described embodiments.
  • these implementations, or any other form that the invention may take may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the described embodiments.
  • FIG. 1 illustrates a large-scale network that implements blockchain creation under some embodiments.
  • network 100 comprises a number of network elements such as routers, computers (servers, desktops, laptops, etc.), transmission interfaces, gateways, and the like.
  • Network 100 includes different types of links, such as wireless links 110, wired links 114, and long-distance transmission links 112 that utilize antennas 107.
  • Each device or network element represents a node in the network and is coupled to at least one or more other nodes for transmission of messages (data packets) in accordance with defined routing protocols. All or at least some of the nodes and network elements implement the OSI model to communicate over Internet Protocol (IP) channels, as shown in FIG. 1.
  • IP Internet Protocol
  • Network 100 may also include a wireless mesh network (WMN) that has clients comprising laptop/notebook computers, tablets, cell phones and other wireless devices. Routers and other interface devices forward traffic to and from the gateways, which may be connected to the Internet.
  • the wireless protocols may be implemented using IEEE 802.1, Bluetooth, or any other appropriate wireless standard.
  • the transmission links 112 may represent cellular communication links or any other telephonic or WAN/LAN network link, and wired links 114 may be implemented using copper, fiber, or any other appropriate hardwired link.
  • FIG. 1 illustrates one example of a large-scale WMN, and embodiments are not so limited, as a network of any practical scale and composition may implement the embodiments described herein.
  • network 100 or portions thereof may form a so-called blockchain network that has certain functionality that globally organizes and enables the formation of autonomous networks between peers that may be infrastructure service nodes, internet-enabled computing devices, or network end users.
  • Network contracts such as implemented by smart contracts may be used to encapsulate agreements between these peers defining how much data will be exchanged, for how long, what types of smart packet contracts will be enabled, and at what fuel price.
  • Such a network can interoperate with existing internet infrastructure, it is also self-sustaining, capable of obviating existing network infrastructure by forming direct peer-to-peer connections to facilitate wireless mesh networks that remove the need for hardware switches, routers, and bridges.
  • the blockchain network enables and incentivizes users to assemble and securely exchange network infrastructure resources without the physical, financial, and regulatory limitations that hinder traditional approaches to building, connecting, operating, and maintaining network infrastructure at scale.
  • FIG. 2 illustrates a blockchain network implementing aspects of a programmatic blockchain builder under some embodiments.
  • the network 200 includes several different functional elements including nodes or "peers" 202.
  • the peers are connected to each other through pipes or links.
  • Pipes 202 are wired connections that provide a secure communication channel for transporting network traffic between peers and are established all the way down to layer 2 of the OSI model and provide encryption, routing, and processing capabilities.
  • Links 206 utilize wireless protocols such as Bluetooth, Wi-Fi, and the U-NII-3 radio band to power scalable mesh networks, both public and private.
  • Certain nodes may implement smart packet contracts 208 that allow network packets to be routed and processed using smart contracts.
  • the blockchain network 200 of FIG. 2 makes use of several blockchains for network administration and metering.
  • Network administration involves keeping track of nodes as they join or leave the network, while metering involves measuring and recording the bandwidth capacity and contribution of each node.
  • This is done with a system comprised of a single global blockchain and many side chains which may be called mesh chains.
  • Mesh chains always originate from the global chain, first branching off the global chain and then periodically merging back before rebranching. Depending on configuration, a mesh chain may branch off and merge back once or any number of practical number of times from the global chain.
  • FIG. 3 illustrates an example global chain and mesh chain configuration used for the blockchain network of FIG. 2, under some embodiments.
  • the global chain 302 uses memory -hard proof-of-work (POW) processes to add blocks, and all nodes in the blockchain network can contribute to this chain.
  • POW memory -hard proof-of-work
  • the contents of the global chain may include registration transactions containing nodes’ public key identifiers, currency transactions, smart packet contract transactions, and checkpointing transactions which allow mesh chains to periodically synchronize their aggregated state to the global chain.
  • a mesh chain 304 corresponds to a group of nodes that are banded together, such as through an automated or manual process, to form a subnetwork. These nodes are typically, but not always, located geographically near one another. Hence there can be many different mesh chains. There are two main types of mesh chains: public, such that any node can contribute, and private, such as for enterprise networks. The purpose of mesh chains is to decouple subnetworks from the global chain in order to improve network robustness and scalability. For example, mesh chains can be used to offload data and communication overhead from the global chain and allow nodes in subnetworks to often avoid interacting with the global chain.
  • the contents of a mesh chain include registration transactions from nodes joining the subnetwork as well as many proof-of-network-elements transactions. These are cryptographically verifiable exercises that are being repeated constantly by nodes in a subnetwork, exercises which involve sending and receiving nonces to and from neighboring nodes to prove availability and bandwidth.
  • Mesh chains use proof-of-stake (POS) processes to add blocks, where subnetwork nodes who have participated in a larger number of proofs of network elements have a larger stake.
  • POS proof-of-stake
  • the network 200 may also be used to implement blockchains comprising global and mesh chains for other uses, such as user-specified uses.
  • new blockchain protocols can be developed and launched on top of the blockchain network platform 200 using smart contracts. Certain example use cases are provided later in this description.
  • network 100 includes a programmatic blockchain creation component 104.
  • This process uses a smart contract to create side or mesh chains from a global chain without requiring the known current methods of distributing blockchain binaries and spinning up nodes to create a blockchain.
  • FIG. 4 is a diagram illustrating programmatic generation of a blockchain or side chain from a global blockchain under some embodiments.
  • a global or initial blockchain 402 comprises a number of blocks beginning with block 406 and ending with block 408. Any practical number of intermediate blocks 407 may be included.
  • the initial block 406 contains a smart contract (“Smart K") that is configured to automatically generate a side chain 404.
  • the first block 410 of this side chain is coupled to the block 406 through a double-linked list mechanism 403.
  • block 406 is shown as the topmost block in the blockchain, any block in the chain may be used to generate a side chain.
  • a first block does not necessarily mean the topmost or primary block, but rather first as compared to a second or subsequent (e.g., blocks 407, 408), and a smart contract in any chain in the block may be used.
  • the smart contract in node 406 defines a blockchain data structure for the side chain 404. It defines the side chain with the smart contract structure and includes a class definition along with certain other data elements, such as periodicity of side chain check in, hierarchy definitions, and so on. Following is an example programming code segment illustrating a virtualized blockchain class/smart contract.
  • BlockchainOwners . push (msg . sender) ;
  • MetachainTXReferenceld _metachainTXId
  • Blocks [GetGenesisBlock (MetachainTXReferenceld) ] ;
  • vBlock memory previousBlock GetCurrentBlock ( ) ;
  • nextlndex previousBlock . hash, nextTimestamp, blockData); return vBlock ( ⁇
  • previousHash previousBlock .hash
  • the above program segment is provided for example only, and embodiments may implement any other appropriate program or data element.
  • the above code example represents a virtualized blockchain class/contract in Solidity Language. It actually compiles and runs on Ethereum except that some Date/Time functions are replaced as mocked up values since codes get longer or import other Solidity libraries (e.g., Ex> "Time.nowQ;") As is known.
  • Solidity is a contract-oriented, high-level language for implementing smart contracts and is designed to target Ethereum Virtual Machine (EVM). Any other appropriate language may also be used in alternative embodiments.
  • the smart contract includes or accesses an API (application programming interface) to perform certain side chain initiation and termination tasks.
  • API application programming interface
  • Table 1 illustrates side chain control API with example functions to open, close, terminate a side chain using the programmatic creation method under some embodiments.
  • the blocks of the side chain 404 are produced through a proof-of-stake (POS) process.
  • POS proof-of-stake
  • the creator of the next block in the side chain is chosen through various combinations of random selection and wealth (i.e., the stake).
  • the side chain 404 periodically checks in with the global chain 402 over functional link 407 by serializing the smart contract object state. This allows for synchronization of the global and side chains, and/or to validate the state of the side chain to the global chain. In an embodiment, this is performed through a metadata check to the last node 408 of the global chain 402.
  • FIG. 5 is a flowchart that illustrates a method of programmatically creating a side chain under some embodiments.
  • embodiments for a method of programmatically creating blockchains start by defining a smart contract in a block of a global blockchain, wherein the smart contract defines a new side chain, step 502.
  • the smart contract is then deployed to the network by adding it to the global block chain and propagating it to the network, step 504.
  • the smart contract is then queued as a transaction in the transaction pool for all network nodes, step 506.
  • the node creating the block will take the smart contract from the transaction pool, add it to the block and execute the smart contract, step 508.
  • a new side chain is created and linked to the smart contract transaction, step 510. After this the new side chain is supported by the network nodes and built on by the appropriate transactions.
  • the overall process of FIG. 5 executes the smart contract to generate a side chain coupled to the first block by a double-linked list.
  • the additional blocks of the side chain are generated through a proof-of-stake process.
  • the side chain periodically serializes the smart contract object state from a last block of the side chain to a last block of the global chain for synchronization and/or validation.
  • blockchains are programmatically created by creating a smart contract having a blockchain data structure for a side chain related to a global blockchain; deploying the smart contract to a network having network peers by adding the smart contract to the global blockchain and propagating the smart contract to the network; and executing the smart contract to cause the network peers to support blocks created in the side chain.
  • smart contracts described herein as compared to other smart contracts provide the capability to give contextual conditions on in/outbound network frames and packets by adding proprietary or additional network extensions/ APIs on generic smart contract language, such as Ethereum Solidity.
  • each block in the global chain 402 has its own smart contract.
  • Each of these smart contracts may be used to generate other side chains. This allows the global chain 402 to spawn any number of additional side chains from each of the blocks.
  • the smart contract e.g., in block 406
  • the smart contract can have definitions that create more than one side chain. This is illustrated in FIG. 6 which shows additional side chains generated from block 604 of global chain 602.
  • Multiple side chains may also incorporate certain hierarchical definitions so that side chains may be subordinate or superior to other side chains. Such hierarchical definitions may be defined in the smart contract.
  • This mechanism may be used to spawn subnetworks within other networks, or hierarchically structured (or nested) networks.
  • global chain 602 creates two side chains denoted side chain 1 and side chain 2a.
  • Side chain 2a creates another side chain denoted side chain 2b.
  • Any number and composition of additional and hierarchical side chains may be created, and each side chain may represent a different grouping of nodes within an overall network, such as network 200 of FIG. 2.
  • the scaling application may be implemented through a manual process, where additional side chains are created by deliberate creation of new smart contract containing the appropriate class definitions.
  • the scaling process may be automated to automatically spawn new side chains upon an event trigger. For example, if a side chain block count or sub-network node count exceeds a certain number (e.g., scale > N) a new side chain can be automatically created.
  • a programmatically created side chain may be temporarily created by the appropriate ⁇ open> and ⁇ close> definitions within the smart contract to provide a temporary set of transaction blocks to process and store calculations and results.
  • the side chain can then be deleted upon completion of the calculations. In this manner the global chain is not encumbered with additional non- erasable blocks.
  • sub-networks may be temporarily created and destroyed without permanently scaling up a network.
  • the smart contract creating the temporary ledger or subnetwork through a created side chain may contain a definition that defines a time- duration of the ledger or a condition that automatically deletes the created side chain.
  • the programmatic blockchain creation process can power existing protocols as well via a migration process.
  • a token is implemented in terms of a common standard such as ERC20 (the Ethereum token standard) or other similar standard, its rules can easily be re-implemented using defined smart contracts.
  • ERC20 the Ethereum token standard
  • the contract migration service can be used to copy a built up state of transactions (such as account balances) to this new private chain. After this private chain has proved to be running smoothly, all services can be pointed to use it.
  • a blockchain can include a history of data, messages, or transactions in a series of blocks where each block contains a mathematical summary, called a hash, of the previous block. This creates a blockchain where any changes made to a block will change that block's hash, which must be recomputed and stored in the next block. This changes the hash of the next block, which must also be recomputed and so on until the end of the chain.
  • Block 0 has a hash“0x3a34ad...55.”
  • the next Block 1 includes the hash“0xf6elda2...deb” and the previous (Block 0) hash“0x3a34ad...55.”
  • the following Block 2 includes the hash“0x9327eblb.. 36a2l” and the previous block’s hash
  • the hash is based on a mathematical function that is not reversible and system users cannot predict what input can be used to produce the desired output.
  • a valid hash can be found by repeatedly adjusting a changeable value in the block, which is known as a “nonce.” The nonce can be adjusted and the hash can be recalculated until a valid hash is found that meets the validity requirements.
  • the unpredictable nature of the hash considerably increases the difficulty of finding a nonce that produces a valid hash of the block. Typically, trillions of different nonces may be tried before a valid hash is found. Therefore, changing the value of previously stored data in the blockchain can require a substantial amount of computational effort, although not impossible.
  • the security of the blockchain is further enhanced by storing the blockchain data on a distributed network.
  • a large number of users can have access to the blockchain network and miner nodes can be continuously attempting to add blocks to the end of the blockchain by finding a nonce that produces a valid hash for a given block of data.
  • Blockchains can be used with various types of transactions.
  • a transaction can use identity tokens for physical or digital assets.
  • the identity tokens can be generated using a cryptographic hash of information that uniquely identifies the asset.
  • the tokens can also have an owner that uses an additional public/private key pair.
  • the owner of a public key can be set as the token owner identity and when performing actions against tokens, ownership proof can be established by providing a signature generated by the owner private key and validated against the public key listed as the owner of the token.
  • the identity token for an entity may be the public key of a public/private key pair, where the private key is held by the entity.
  • an identity token for an asset in a blockchain can establish a provenance of the asset, and the identity token can be used in transactions of the asset stored in a blockchain, creating a full audit trail of the transactions.
  • each party and asset involved with the transaction needs an account that is identified by a digital token. For example, when one person wants to transfer an asset to another person, the current owner and next owner create accounts, and the current owner also creates an account that is uniquely identified by an asset identification number. The account for the asset identifies the current owner.
  • FIG. 4 a flowchart for a simple transaction is illustrated.
  • the current asset owner creates a transaction against the account for the asset that indicates: 1) the transaction is a transfer of ownership, 2) the public keys (i.e., identity tokens) of the current owner and the next owner, 3) the identity token of the physical asset, and 4) the transaction is signed by the private key of the current owner.
  • the current owner of the asset can create a transaction request that includes the transaction information on a user interface of a computing device.
  • the transaction request can be broadcast to the blockchain network. If the blockchain network of nodes does not validate the transaction, the transaction is stopped and the transfer of ownership is not recorded. If the blockchain network of nodes validates and verifies the transaction, the transaction is combined with other transactions occurring at the same time to form data for a new block and the new block is added to the blockchain.
  • the recorded transaction in the blockchain is evidence that the next owner identified in the transaction request is now the current owner.
  • a blockchain system can use "smart contracts" which is computer code that implements transactions of a contract.
  • the computer code may be executed in a secure platform that supports recording transactions in
  • the smart contract itself can be recorded as a transaction in the blockchain using an identity token that is a hash of the computer code so that the computer code that is executed can be authenticated.
  • a constructor of the smart contract executes initializing the smart contract and its state. The state of a smart contract is stored persistently in the blockchain.
  • a message is sent to the smart contract and the computer code of the smart contract executes to implement the transaction.
  • the computer code ensures that all the terms of the contract are complied with before the transaction is recorded in the blockchain.
  • a smart contract may support the sale of an asset.
  • the inputs to a smart contract to sell the asset may be the identity tokens of the seller, the buyer, and the asset and the sale price.
  • the computer code ensures that the seller is the current owner of the asset and that the buyer has sufficient funds in their account.
  • the computer code then records a transaction that transfers the ownership of the asset to the buyer and a transaction that transfers the sale price from the buyer's account to the seller's account. If either transaction is not successful, neither transaction is recorded in the blockchain.
  • each node can execute the computer code of the smart contract to implement the transaction. For example, if all nodes each maintain a replica of a blockchain, then the computer code is executed at each of the nodes. When a node completes the execution of the computer code, the results of the transaction are recorded in the blockchain.
  • the nodes can employ a consensus algorithm to decide on which transactions to record and which transactions to discard. A majority of the nodes must verify the transaction, in order for the transaction to be recorded on the blockchain. The execution of the computer code at each node helps ensure the authenticity of the blockchain.
  • the blockchain network data structure may include a peer-to-peer storage protocol.
  • a peer-to-peer storage protocol may be a protocol for storing data in a distributed fashion among nodes in a network such as the Internet.
  • the peer-to-peer storage protocol may be a distributed hash table ("DHT").
  • DHT distributed hash table
  • a DHT maps elements of data, such as data files or the names of data files, to keys in a keyspace.
  • the keys may be created by hashing the elements of data; for instance, all keys in the keyspace of a particular DHT may be created by hashing each element of data using a hashing algorithm, such as the Secure Hash Algorithm ("SHA-l”), producing uniformly sized keys having sensitive and reproducible relationships to the data elements to which they correspond.
  • SHA-l Secure Hash Algorithm
  • the DHT may define a "distance" function within the key space that assigns any pair of keys a distance, analogous to geometric distance, between the pair of keys.
  • the DHT may include an overlay network, which labels data storage elements, such as memories of computer devices as nodes in the network; each node in the overlay network may provide information, for each key, that indicates either that the key corresponds to data stored at that node, or that a proximal node stores keys closer to the key according to the distance function.
  • keys are assigned to nodes in the overlay network according to their distances, so that adjacent nodes in the network have keys that are close to each other according to the distance function.
  • the topology of the overlay network shifts, in response to data acquisition, so that adjacent nodes have closer keys.
  • the data may be secured: security protocols may prevent one node from accessing the data possessed by another node without authentication information pertaining to the possessing node, such that the only freely available information in the DHT is the set of keys and the information concerning nodes possessing their
  • DHT data in the DHT is secured and other data is not secured.
  • Keys from the DHT may be included in the blockchain via merge hashing; the keys may be incorporated via a Merkel tree.
  • the code for smart contract is written on the Ethereum blockchain, however, embodiments are not so limited and the contracts can be encoded on any blockchain.
  • system 100 includes a programmatic blockchain creation process and component that may be implemented as a computer implemented software process, or as a hardware component, or both in a computer such as server 102 in FIG. 1. As such, it may be an executable module executed by the one or more computers in the network, or it may be embodied as a hardware component or circuit provided in the system.
  • the network environment of FIG. 1 may comprise any number of individual client-server networks coupled over the Internet or similar large-scale network or portion thereof. Each node in the networkfs) comprises a computing device capable of executing software code to perform the processing steps described herein.
  • FIG. 7 is a block diagram of a computer system used to execute one or more software components of process 104, under some embodiments.
  • the computer system 1000 includes a monitor 1011, keyboard 1017, and mass storage devices 1020.
  • Computer system 1000 further includes subsystems such as central processor 1010, system memory 1015, input/output (I/O) controller 1021, display adapter 1025, serial or universal serial bus (USB) port 1030, network interface 1035, and speaker 1040.
  • the system may also be used with computer systems with additional or fewer subsystems.
  • a computer system could include more than one processor 1010 (i.e., a multiprocessor system) or a system may include a cache memory.
  • Arrows such as 1045 represent the system bus architecture of computer system 1000. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, speaker 1040 could be connected to the other subsystems through a port or have an internal direct connection to central processor 1010.
  • the processor may include multiple processors or a multicore processor, which may permit parallel processing of information.
  • Computer system 1000 is an example of a computer system suitable for use with the present system. Other configurations of subsystems suitable for use with the present invention will be readily apparent to one of ordinary skill in the art.
  • Computer software products may be written in any of various suitable programming languages.
  • the computer software product may be an independent application with data input and data display modules.
  • the computer software products may be classes that may be instantiated as distributed objects.
  • the computer software products may also be component software.
  • Embodiments as described herein may be applied to mesh networks of any scale (full or partial), and may also be applied to any other physical, virtual or hybrid
  • WAN very large-scale wide area network
  • MAN metropolitan area network
  • cloud-based network system a network system that provides connectivity to the various systems, components, and resources, and may be implemented using protocols such as Transmission Control Protocol (TCP) and/or Internet Protocol (IP), well known in the relevant arts.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • steps may be subdivided or combined.
  • software written in accordance with the present invention may be stored in some form of computer-readable medium, such as memory or CD-ROM, or transmitted over a network, and executed by a processor.
  • More than one computer may be used, such as by using multiple computers in a parallel or load-sharing arrangement or distributing tasks across multiple computers such that, as a whole, they perform the functions of the components identified herein; i.e., they take the place of a single computer.
  • Various functions described above may be performed by a single process or groups of processes, on a single computer or distributed over several computers. Processes may invoke other processes to handle certain tasks.
  • the words“comprise,”“comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of“including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words“herein,”“hereunder,”“above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word“or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Software Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Bioethics (AREA)
  • Game Theory and Decision Science (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Primary Health Care (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Embodiments for programmatically creating blockchains by defining a smart contract in a first block of a global blockchain, wherein the smart contract defines a blockchain data structure for a side chain; executing the smart contract to generate the side chain coupled to the first block by a double-linked list; generating additional blocks of the side chain through a proof-of-stake process; and periodically serializing the smart contract object state from a last block of the side chain to a last block of the global chain for validation.

Description

PROGRAMMATIC CREATION OF BLOCKCHAINS
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No.
62/653,350, filed on April 5, 2018, U.S. Provisional Application No. 62/653,989, filed on April 6, 2018, U.S. Provisional Application No. 62/693,944, filed on July 4, 2018, and U.S. Provisional Application No. 62/779,357, filed on December 13, 2018. All of which are incorporated by reference in their entirety.
TECHNICAL FIELD
[0002] Embodiments are generally directed to blockchain technology, and more specifically to methods and systems for programmatically creating blockchains, sidechains, and mesh chains.
COPYRIGHT NOTICE
[0003] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
[0004] Blockchain technology has often been proposed as a solution to the problems inherent with centralized systems. Blockchain projects are being developed to provide decentralized computing, storage, and suites of applications to realize a decentralized future. These projects, however, all continue to build atop the same underlying network infrastructure consisting of switches and routers connected by Ethernet, a foundation which remains fragile due to being insecure, difficult to manage, and centrally controlled.
[0005] As is well-known, a blockchain is basically a shared immutable ledger for recording a series of transactions. It may be used in a business application to provide a permissioned network with known identities, such as to provide secure exchanges through an escrow-like mechanism. Technically, a blockchain is a digital ledger of records arranged in a series of blocks (data chunks) that are linked with one another through a cryptographic validation (i.e., hashing function). When linked, the blocks form an unbroken blockchain.
[0006] In current systems, building a blockchain a user-intensive effort. Traditional methods require distributing program binaries of a blockchain technology, such as Ethereum through forking processes, and then spinning up nodes to generate a blockchain. Certain embodiments described herein address and solve some of the deficiencies of present systems with regard to these shortcomings by providing a process that allows for programmatic or even automatic creation of blockchains or side chains.
[0007] The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
INCORPORATION BY REFERENCE
[0008] Each publication, patent, and/or patent application mentioned in this specification is herein incorporated by reference in its entirety to the same extent as if each individual publication and/or patent application was specifically and individually indicated to be incorporated by reference.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] In the following drawings like reference numerals designate like structural elements. Although the figures depict various examples, the one or more embodiments and implementations described herein are not limited to the examples depicted in the figures.
[0010] FIG. 1 illustrates a large-scale network including wired and wireless links that includes a packet control process for implementing programmatic creation of a blockchain under some embodiments.
[0011] FIG. 2 illustrates a blockchain network implementing aspects of a programmatic blockchain builder under some embodiments.
[0012] FIG. 3 illustrates a sidechain or mesh chain used for the blockchain network of FIG. 2, under some embodiments.
[0013] FIG. 4 is a diagram illustrating programmatic generation of a blockchain or side chain from a global blockchain under some embodiments.
[0014] FIG. 5 is a flowchart that illustrates a method of programmatically creating a side chain under some embodiments.
[0015] FIG. 6 illustrates the creation of multiple and hierarchical side chains under some embodiments.
[0016] FIG. 7 is a block diagram of a computer system used to execute one or more software components of a programmable network packet system, under some embodiments. DETAILED DESCRIPTION
[0017] A detailed description of one or more embodiments is provided below along with accompanying figures that illustrate the principles of the described embodiments. While aspects of the invention are described in conjunction with such embodiments, it should be understood that it is not limited to any one embodiment. On the contrary, the scope is limited only by the claims and the invention encompasses numerous alternatives, modifications, and equivalents. For the purpose of example, numerous specific details are set forth in the following description in order to provide a thorough understanding of the described embodiments, which may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail so that the described embodiments are not unnecessarily obscured.
[0018] It should be appreciated that the described embodiments can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer-readable medium such as a computer-readable storage medium containing computer-readable instructions or computer program code, or as a computer program product, comprising a computer-usable medium having a computer-readable program code embodied therein. In the context of this disclosure, a computer-usable medium or computer- readable medium may be any physical medium that can contain or store the program for use by or in connection with the instruction execution system, apparatus or device. For example, the computer-readable storage medium or computer-usable medium may be, but is not limited to, a random-access memory (RAM), read-only memory (ROM), or a persistent store, such as a mass storage device, hard drives, CDROM, DVDROM, tape, erasable
programmable read-only memory (EPROM or flash memory), or any magnetic,
electromagnetic, optical, or electrical means or system, apparatus or device for storing information. Alternatively, or additionally, the computer-readable storage medium or computer-usable medium may be any combination of these devices or even paper or another suitable medium upon which the program code is printed, as the program code can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
[0019] Applications, software programs or computer-readable instructions may be referred to as components or modules. Applications may be hardwired or hard coded in hardware or take the form of software executing on a general-purpose computer or be hardwired or hard coded in hardware such that when the software is loaded into and/or executed by the computer, the computer becomes an apparatus for practicing the invention. Applications may also be downloaded, in whole or in part, through the use of a software development kit or toolkit that enables the creation and implementation of the described embodiments. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the described embodiments.
[0020] Embodiments are directed to a process and system of providing programmatic building of a blockchain. FIG. 1 illustrates a large-scale network that implements blockchain creation under some embodiments. As shown in FIG. 1, network 100 comprises a number of network elements such as routers, computers (servers, desktops, laptops, etc.), transmission interfaces, gateways, and the like. Network 100 includes different types of links, such as wireless links 110, wired links 114, and long-distance transmission links 112 that utilize antennas 107.
[0021] Each device or network element represents a node in the network and is coupled to at least one or more other nodes for transmission of messages (data packets) in accordance with defined routing protocols. All or at least some of the nodes and network elements implement the OSI model to communicate over Internet Protocol (IP) channels, as shown in FIG. 1. Network 100 may also include a wireless mesh network (WMN) that has clients comprising laptop/notebook computers, tablets, cell phones and other wireless devices. Routers and other interface devices forward traffic to and from the gateways, which may be connected to the Internet. The wireless protocols may be implemented using IEEE 802.1, Bluetooth, or any other appropriate wireless standard. The transmission links 112 may represent cellular communication links or any other telephonic or WAN/LAN network link, and wired links 114 may be implemented using copper, fiber, or any other appropriate hardwired link. FIG. 1 illustrates one example of a large-scale WMN, and embodiments are not so limited, as a network of any practical scale and composition may implement the embodiments described herein.
[0022] In an embodiment, network 100 or portions thereof may form a so-called blockchain network that has certain functionality that globally organizes and enables the formation of autonomous networks between peers that may be infrastructure service nodes, internet-enabled computing devices, or network end users. Network contracts, such as implemented by smart contracts may be used to encapsulate agreements between these peers defining how much data will be exchanged, for how long, what types of smart packet contracts will be enabled, and at what fuel price. Such a network can interoperate with existing internet infrastructure, it is also self-sustaining, capable of obviating existing network infrastructure by forming direct peer-to-peer connections to facilitate wireless mesh networks that remove the need for hardware switches, routers, and bridges. In essence, the blockchain network enables and incentivizes users to assemble and securely exchange network infrastructure resources without the physical, financial, and regulatory limitations that hinder traditional approaches to building, connecting, operating, and maintaining network infrastructure at scale.
[0023] FIG. 2 illustrates a blockchain network implementing aspects of a programmatic blockchain builder under some embodiments. The network 200 includes several different functional elements including nodes or "peers" 202. The peers are connected to each other through pipes or links. Pipes 202 are wired connections that provide a secure communication channel for transporting network traffic between peers and are established all the way down to layer 2 of the OSI model and provide encryption, routing, and processing capabilities. Links 206 utilize wireless protocols such as Bluetooth, Wi-Fi, and the U-NII-3 radio band to power scalable mesh networks, both public and private. Certain nodes may implement smart packet contracts 208 that allow network packets to be routed and processed using smart contracts. This technology unlocks numerous use-cases for smart decentralized networking applications such as software-defined networking, intrusion detection and prevention systems, content delivery networks, and distributed virtual private networks. Other aspects of such a network is described in co-pending Provisional Patent Application No. 62/644,128, entitled "Marconi Protocol" filed on March 16, 2018, which is incorporated by reference in its entirety.
[0024] In an embodiment, the blockchain network 200 of FIG. 2 makes use of several blockchains for network administration and metering. Network administration involves keeping track of nodes as they join or leave the network, while metering involves measuring and recording the bandwidth capacity and contribution of each node. This is done with a system comprised of a single global blockchain and many side chains which may be called mesh chains. Mesh chains always originate from the global chain, first branching off the global chain and then periodically merging back before rebranching. Depending on configuration, a mesh chain may branch off and merge back once or any number of practical number of times from the global chain.
[0025] FIG. 3 illustrates an example global chain and mesh chain configuration used for the blockchain network of FIG. 2, under some embodiments. The global chain 302 uses memory -hard proof-of-work (POW) processes to add blocks, and all nodes in the blockchain network can contribute to this chain. The contents of the global chain may include registration transactions containing nodes’ public key identifiers, currency transactions, smart packet contract transactions, and checkpointing transactions which allow mesh chains to periodically synchronize their aggregated state to the global chain.
[0026] Although the global chain 302 is described as using POW, embodiments are not so limited. Any consensus chain, such as POW, POS (proof of stake), POA (proof of authority), or similar methods may be used as long as the global chain supports smart contracts.
[0027] A mesh chain 304 corresponds to a group of nodes that are banded together, such as through an automated or manual process, to form a subnetwork. These nodes are typically, but not always, located geographically near one another. Hence there can be many different mesh chains. There are two main types of mesh chains: public, such that any node can contribute, and private, such as for enterprise networks. The purpose of mesh chains is to decouple subnetworks from the global chain in order to improve network robustness and scalability. For example, mesh chains can be used to offload data and communication overhead from the global chain and allow nodes in subnetworks to often avoid interacting with the global chain. The contents of a mesh chain include registration transactions from nodes joining the subnetwork as well as many proof-of-network-elements transactions. These are cryptographically verifiable exercises that are being repeated constantly by nodes in a subnetwork, exercises which involve sending and receiving nonces to and from neighboring nodes to prove availability and bandwidth. Mesh chains use proof-of-stake (POS) processes to add blocks, where subnetwork nodes who have participated in a larger number of proofs of network elements have a larger stake.
[0028] The network 200 may also be used to implement blockchains comprising global and mesh chains for other uses, such as user-specified uses. Thus, new blockchain protocols can be developed and launched on top of the blockchain network platform 200 using smart contracts. Certain example use cases are provided later in this description.
[0029] For the embodiment of FIG. 1, network 100 includes a programmatic blockchain creation component 104. This process uses a smart contract to create side or mesh chains from a global chain without requiring the known current methods of distributing blockchain binaries and spinning up nodes to create a blockchain. FIG. 4 is a diagram illustrating programmatic generation of a blockchain or side chain from a global blockchain under some embodiments. As shown in diagram 400, a global or initial blockchain 402 comprises a number of blocks beginning with block 406 and ending with block 408. Any practical number of intermediate blocks 407 may be included. The initial block 406 contains a smart contract ("Smart K") that is configured to automatically generate a side chain 404. The first block 410 of this side chain is coupled to the block 406 through a double-linked list mechanism 403. It should be noted that although block 406 is shown as the topmost block in the blockchain, any block in the chain may be used to generate a side chain. Thus, the term "a first block" as used herein does not necessarily mean the topmost or primary block, but rather first as compared to a second or subsequent (e.g., blocks 407, 408), and a smart contract in any chain in the block may be used.
[0030] In this example embodiment, the smart contract in node 406 defines a blockchain data structure for the side chain 404. It defines the side chain with the smart contract structure and includes a class definition along with certain other data elements, such as periodicity of side chain check in, hierarchy definitions, and so on. Following is an example programming code segment illustrating a virtualized blockchain class/smart contract.
//Marconi Sidechain aka list of virtualized Blockchains
contract vBlockchain {
struct vBlock {
uint index;
uint timestamp;
bytes previousHash;
bytes hash;
bytes data;
}
bytes32 public MetachainTXReferenceld;
address [] public BlockchainOwners;
vBlock[] public Blocks;
uint public GenesisBlockTimestamp;
function vBlockchain (bytes32 _metachainTXId) public {
//add initiator as initial this virtualized blockchain owner and admin
BlockchainOwners . push (msg . sender) ;
MetachainTXReferenceld = _metachainTXId;
//initialize blockchain with genesis block
Blocks = [GetGenesisBlock (MetachainTXReferenceld) ] ;
GenesisBlockTimestamp = Blocks [ 0] . timestamp;
}
function AddBlock (vBlock newBlock) public returns (bool) {
bool result = false;
if (IsValidBlock (GetCurrentBlock ( ) , newBlock)) { Blocks . push (newBlock) ;
result = true;
}
return result;
}
function IsValidBlock (vBlock previousBlock, vBlock currentBlock) public
returns (bool) {
bool result = true;
if (previousBlock . index + 1 != currentBlock . index) {
result = false;
} else if (previousBlock . hash != currentBlock . previousHash) { result = false;
} else if (GenerateBlockHash (currentBlock) != currentBlock . hash)
{
result = false;
}
return result;
}
function IsValidBlockchain (vBlock [] blockchain, bytes
metachainTxId) public returns (bool) {
bool result = true;
if (blockchain [ 0 ] != GetGenesisBlock (metachainTxId) ) {
result = false;
}
for (uint i = 1; i < blockchain . length; i++) {
if ( ! IsValidBlock (blockchain [i - 1], blockchain [ i ]) ) {
result false; }
}
return result;
}
function GenerateNextBlock (bytes blockData) public returns (vBlock) {
vBlock memory previousBlock = GetCurrentBlock ( ) ;
uint nextlndex = previousBlock . index + 1;
uint nextTimestamp = Time. now ();
bytes nextBlockHash = GenerateHash (
nextlndex, previousBlock . hash, nextTimestamp, blockData); return vBlock ( {
index: nextlndex,
timestamp: nextTimestamp,
previousHash : previousBlock .hash,
hash: nextBlockHash,
data: blockData
}) ;
}
function GetGenesisBlock (bytes metachainTXId) public returns (vBlock) {
uint currentTimestamp = Time.now();
//'previousHash' is referencing mainchain's transaction id return vBlock ( {
index: 0,
timestamp: currentTimestamp,
previousHash: sha256 (metachainTXId) ,
hash: sha256(0 + "0" + currentTimestamp + metachainTXId), data: metachainTXId
}) ;
}
function GetCurrentBlock () public returns (vBlock) {
return Blocks [Blocks . length - 1] ;
}
function GenerateHash (
uint index, bytes previousHash, uint timestamp, bytes data) public returns (bytes) {
return sha256 (index + previousHash + timestamp + data) ;
}
function GenerateBlockHash (vBlock block) public returns (bytes) { return sha256 (block . index + block . previousHash + block . timestamp + block . data) ;
}
}
[0031] The above program segment is provided for example only, and embodiments may implement any other appropriate program or data element. The above code example represents a virtualized blockchain class/contract in Solidity Language. It actually compiles and runs on Ethereum except that some Date/Time functions are replaced as mocked up values since codes get longer or import other Solidity libraries (e.g., Ex> "Time.nowQ;") As is known. Solidity is a contract-oriented, high-level language for implementing smart contracts and is designed to target Ethereum Virtual Machine (EVM). Any other appropriate language may also be used in alternative embodiments.
[0032] In an embodiment, the smart contract includes or accesses an API (application programming interface) to perform certain side chain initiation and termination tasks. Table 1 illustrates side chain control API with example functions to open, close, terminate a side chain using the programmatic creation method under some embodiments.
Figure imgf000016_0001
Table 1 : Side Chain Control API
[0033] In an embodiment, the blocks of the side chain 404 are produced through a proof-of-stake (POS) process. In a POS-based system, the creator of the next block in the side chain is chosen through various combinations of random selection and wealth (i.e., the stake). Once the side chain 404 is created and used by the network nodes, it periodically checks in with the global chain 402 over functional link 407 by serializing the smart contract object state. This allows for synchronization of the global and side chains, and/or to validate the state of the side chain to the global chain. In an embodiment, this is performed through a metadata check to the last node 408 of the global chain 402.
[0034] FIG. 5 is a flowchart that illustrates a method of programmatically creating a side chain under some embodiments. As shown in FIG. 5, embodiments for a method of programmatically creating blockchains start by defining a smart contract in a block of a global blockchain, wherein the smart contract defines a new side chain, step 502. The smart contract is then deployed to the network by adding it to the global block chain and propagating it to the network, step 504. The smart contract is then queued as a transaction in the transaction pool for all network nodes, step 506. When the next block in the blockchain is created, the node creating the block will take the smart contract from the transaction pool, add it to the block and execute the smart contract, step 508. Upon execution of the smart contract, a new side chain is created and linked to the smart contract transaction, step 510. After this the new side chain is supported by the network nodes and built on by the appropriate transactions.
[0035] The overall process of FIG. 5 executes the smart contract to generate a side chain coupled to the first block by a double-linked list. The additional blocks of the side chain are generated through a proof-of-stake process. The side chain periodically serializes the smart contract object state from a last block of the side chain to a last block of the global chain for synchronization and/or validation.
[0036] In another expression of the methods, blockchains are programmatically created by creating a smart contract having a blockchain data structure for a side chain related to a global blockchain; deploying the smart contract to a network having network peers by adding the smart contract to the global blockchain and propagating the smart contract to the network; and executing the smart contract to cause the network peers to support blocks created in the side chain.
[0037] In general, at least some of the smart contracts described herein as compared to other smart contracts provide the capability to give contextual conditions on in/outbound network frames and packets by adding proprietary or additional network extensions/ APIs on generic smart contract language, such as Ethereum Solidity.
Use Cases
[0038] The programmatic blockchain creation process can be used for various
applications including: network scaling, token to block chain migration, and temporary ledger (blockchain pruning), among other applications. [0039] With respect to network scaling, for the embodiment of FIG. 4, each block in the global chain 402 has its own smart contract. Each of these smart contracts may be used to generate other side chains. This allows the global chain 402 to spawn any number of additional side chains from each of the blocks. Alternatively, the smart contract (e.g., in block 406) can have definitions that create more than one side chain. This is illustrated in FIG. 6 which shows additional side chains generated from block 604 of global chain 602. Multiple side chains may also incorporate certain hierarchical definitions so that side chains may be subordinate or superior to other side chains. Such hierarchical definitions may be defined in the smart contract. This mechanism may be used to spawn subnetworks within other networks, or hierarchically structured (or nested) networks. As shown in FIG. 6, global chain 602 creates two side chains denoted side chain 1 and side chain 2a. Side chain 2a creates another side chain denoted side chain 2b. Any number and composition of additional and hierarchical side chains may be created, and each side chain may represent a different grouping of nodes within an overall network, such as network 200 of FIG. 2.
[0040] In an embodiment, the scaling application may be implemented through a manual process, where additional side chains are created by deliberate creation of new smart contract containing the appropriate class definitions. Alternatively, the scaling process may be automated to automatically spawn new side chains upon an event trigger. For example, if a side chain block count or sub-network node count exceeds a certain number (e.g., scale > N) a new side chain can be automatically created.
[0041] With respect to the temporary ledger application, a programmatically created side chain may be temporarily created by the appropriate <open> and <close> definitions within the smart contract to provide a temporary set of transaction blocks to process and store calculations and results. The side chain can then be deleted upon completion of the calculations. In this manner the global chain is not encumbered with additional non- erasable blocks. Similarly, sub-networks may be temporarily created and destroyed without permanently scaling up a network. The smart contract creating the temporary ledger or subnetwork through a created side chain may contain a definition that defines a time- duration of the ledger or a condition that automatically deletes the created side chain.
[0042] With respect to the token to blockchain migration application, the programmatic blockchain creation process can power existing protocols as well via a migration process. For example, if a token is implemented in terms of a common standard such as ERC20 (the Ethereum token standard) or other similar standard, its rules can easily be re-implemented using defined smart contracts. Once this implementation is in place, it can be specified as the basis for a new private mesh chain that gets branched from the global chain, and the contract migration service can be used to copy a built up state of transactions (such as account balances) to this new private chain. After this private chain has proved to be running smoothly, all services can be pointed to use it.
Blockchain and Smart Contracts
[0043] As illustrated in FIG. 3, embodiments are based on a global blockchain (or "global chain"). In general, a blockchain can include a history of data, messages, or transactions in a series of blocks where each block contains a mathematical summary, called a hash, of the previous block. This creates a blockchain where any changes made to a block will change that block's hash, which must be recomputed and stored in the next block. This changes the hash of the next block, which must also be recomputed and so on until the end of the chain.
In the illustrated example, Block 0 has a hash“0x3a34ad...55.” The next Block 1 includes the hash“0xf6elda2...deb” and the previous (Block 0) hash“0x3a34ad...55.” The following Block 2 includes the hash“0x9327eblb.. 36a2l” and the previous block’s hash
0xf6elda2...deb. [0044] The hash is based on a mathematical function that is not reversible and system users cannot predict what input can be used to produce the desired output. A valid hash can be found by repeatedly adjusting a changeable value in the block, which is known as a “nonce.” The nonce can be adjusted and the hash can be recalculated until a valid hash is found that meets the validity requirements. The unpredictable nature of the hash considerably increases the difficulty of finding a nonce that produces a valid hash of the block. Typically, trillions of different nonces may be tried before a valid hash is found. Therefore, changing the value of previously stored data in the blockchain can require a substantial amount of computational effort, although not impossible. The security of the blockchain is further enhanced by storing the blockchain data on a distributed network. A large number of users can have access to the blockchain network and miner nodes can be continuously attempting to add blocks to the end of the blockchain by finding a nonce that produces a valid hash for a given block of data.
[0045] Blockchains can be used with various types of transactions. For example, a transaction can use identity tokens for physical or digital assets. The identity tokens can be generated using a cryptographic hash of information that uniquely identifies the asset. The tokens can also have an owner that uses an additional public/private key pair. The owner of a public key can be set as the token owner identity and when performing actions against tokens, ownership proof can be established by providing a signature generated by the owner private key and validated against the public key listed as the owner of the token. The identity token for an entity may be the public key of a public/private key pair, where the private key is held by the entity. The creation of an identity token for an asset in a blockchain can establish a provenance of the asset, and the identity token can be used in transactions of the asset stored in a blockchain, creating a full audit trail of the transactions. [0046] To record a simple transaction in a blockchain, each party and asset involved with the transaction needs an account that is identified by a digital token. For example, when one person wants to transfer an asset to another person, the current owner and next owner create accounts, and the current owner also creates an account that is uniquely identified by an asset identification number. The account for the asset identifies the current owner. With reference to FIG. 4 a flowchart for a simple transaction is illustrated. The current asset owner creates a transaction against the account for the asset that indicates: 1) the transaction is a transfer of ownership, 2) the public keys (i.e., identity tokens) of the current owner and the next owner, 3) the identity token of the physical asset, and 4) the transaction is signed by the private key of the current owner. The current owner of the asset can create a transaction request that includes the transaction information on a user interface of a computing device. The transaction request can be broadcast to the blockchain network. If the blockchain network of nodes does not validate the transaction, the transaction is stopped and the transfer of ownership is not recorded. If the blockchain network of nodes validates and verifies the transaction, the transaction is combined with other transactions occurring at the same time to form data for a new block and the new block is added to the blockchain. The recorded transaction in the blockchain is evidence that the next owner identified in the transaction request is now the current owner.
[0047] To enable more complex transactions, a blockchain system can use "smart contracts" which is computer code that implements transactions of a contract. The computer code may be executed in a secure platform that supports recording transactions in
blockchains. In addition, the smart contract itself can be recorded as a transaction in the blockchain using an identity token that is a hash of the computer code so that the computer code that is executed can be authenticated. When deployed, a constructor of the smart contract executes initializing the smart contract and its state. The state of a smart contract is stored persistently in the blockchain. When a transaction is recorded against a smart contract, a message is sent to the smart contract and the computer code of the smart contract executes to implement the transaction. The computer code ensures that all the terms of the contract are complied with before the transaction is recorded in the blockchain. For example, a smart contract may support the sale of an asset. The inputs to a smart contract to sell the asset may be the identity tokens of the seller, the buyer, and the asset and the sale price. The computer code ensures that the seller is the current owner of the asset and that the buyer has sufficient funds in their account. The computer code then records a transaction that transfers the ownership of the asset to the buyer and a transaction that transfers the sale price from the buyer's account to the seller's account. If either transaction is not successful, neither transaction is recorded in the blockchain.
[0048] When a message is sent to a smart contract to record a transaction, the message is sent to each node that maintains a replica of the blockchain. Each node can execute the computer code of the smart contract to implement the transaction. For example, if all nodes each maintain a replica of a blockchain, then the computer code is executed at each of the nodes. When a node completes the execution of the computer code, the results of the transaction are recorded in the blockchain. The nodes can employ a consensus algorithm to decide on which transactions to record and which transactions to discard. A majority of the nodes must verify the transaction, in order for the transaction to be recorded on the blockchain. The execution of the computer code at each node helps ensure the authenticity of the blockchain.
[0049] The blockchain network data structure may include a peer-to-peer storage protocol. A peer-to-peer storage protocol may be a protocol for storing data in a distributed fashion among nodes in a network such as the Internet. As one example, the peer-to-peer storage protocol may be a distributed hash table ("DHT"). In one embodiment, a DHT maps elements of data, such as data files or the names of data files, to keys in a keyspace. The keys may be created by hashing the elements of data; for instance, all keys in the keyspace of a particular DHT may be created by hashing each element of data using a hashing algorithm, such as the Secure Hash Algorithm ("SHA-l"), producing uniformly sized keys having sensitive and reproducible relationships to the data elements to which they correspond.
The DHT may define a "distance" function within the key space that assigns any pair of keys a distance, analogous to geometric distance, between the pair of keys. The DHT may include an overlay network, which labels data storage elements, such as memories of computer devices as nodes in the network; each node in the overlay network may provide information, for each key, that indicates either that the key corresponds to data stored at that node, or that a proximal node stores keys closer to the key according to the distance function. In some embodiments, keys are assigned to nodes in the overlay network according to their distances, so that adjacent nodes in the network have keys that are close to each other according to the distance function. In other embodiments, where particular nodes must possess particular data, the topology of the overlay network shifts, in response to data acquisition, so that adjacent nodes have closer keys. The data may be secured: security protocols may prevent one node from accessing the data possessed by another node without authentication information pertaining to the possessing node, such that the only freely available information in the DHT is the set of keys and the information concerning nodes possessing their
corresponding data. In some embodiments, some data in the DHT is secured and other data is not secured. Keys from the DHT may be included in the blockchain via merge hashing; the keys may be incorporated via a Merkel tree.
[0050] In an embodiment, the code for smart contract is written on the Ethereum blockchain, however, embodiments are not so limited and the contracts can be encoded on any blockchain. System Implementation
[0055] As described above, in an embodiment, system 100 includes a programmatic blockchain creation process and component that may be implemented as a computer implemented software process, or as a hardware component, or both in a computer such as server 102 in FIG. 1. As such, it may be an executable module executed by the one or more computers in the network, or it may be embodied as a hardware component or circuit provided in the system. The network environment of FIG. 1 may comprise any number of individual client-server networks coupled over the Internet or similar large-scale network or portion thereof. Each node in the networkfs) comprises a computing device capable of executing software code to perform the processing steps described herein. FIG. 7 is a block diagram of a computer system used to execute one or more software components of process 104, under some embodiments. The computer system 1000 includes a monitor 1011, keyboard 1017, and mass storage devices 1020. Computer system 1000 further includes subsystems such as central processor 1010, system memory 1015, input/output (I/O) controller 1021, display adapter 1025, serial or universal serial bus (USB) port 1030, network interface 1035, and speaker 1040. The system may also be used with computer systems with additional or fewer subsystems. For example, a computer system could include more than one processor 1010 (i.e., a multiprocessor system) or a system may include a cache memory.
[0056] Arrows such as 1045 represent the system bus architecture of computer system 1000. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, speaker 1040 could be connected to the other subsystems through a port or have an internal direct connection to central processor 1010. The processor may include multiple processors or a multicore processor, which may permit parallel processing of information. Computer system 1000 is an example of a computer system suitable for use with the present system. Other configurations of subsystems suitable for use with the present invention will be readily apparent to one of ordinary skill in the art.
[0057] Computer software products may be written in any of various suitable programming languages. The computer software product may be an independent application with data input and data display modules. Alternatively, the computer software products may be classes that may be instantiated as distributed objects. The computer software products may also be component software.
[0058] Although certain embodiments have been described and illustrated with respect to certain example network topographies and node names and configurations, it should be understood that embodiments are not so limited, and any practical network topography is possible, and node names and configurations may be used. Likewise, certain specific programming syntax and data structures are provided herein. Such examples are intended to be for illustration only, and embodiments are not so limited. Any appropriate alternative language or programming convention may be used by those of ordinary skill in the art to achieve the functionality described.
[0059] Embodiments as described herein may be applied to mesh networks of any scale (full or partial), and may also be applied to any other physical, virtual or hybrid
physical/virtual network, such as a very large-scale wide area network (WAN), metropolitan area network (MAN), or cloud-based network system. Aspects of the one or more embodiments described herein may be implemented on one or more computers executing software instructions, and the computers may be networked in a client-server arrangement or similar distributed computer network. The network provides connectivity to the various systems, components, and resources, and may be implemented using protocols such as Transmission Control Protocol (TCP) and/or Internet Protocol (IP), well known in the relevant arts. [0060] For the sake of clarity, the processes and methods herein have been illustrated with a specific flow, but it should be understood that other sequences may be possible and that some may be performed in parallel, without departing from the spirit of the invention. Additionally, steps may be subdivided or combined. As disclosed herein, software written in accordance with the present invention may be stored in some form of computer-readable medium, such as memory or CD-ROM, or transmitted over a network, and executed by a processor. More than one computer may be used, such as by using multiple computers in a parallel or load-sharing arrangement or distributing tasks across multiple computers such that, as a whole, they perform the functions of the components identified herein; i.e., they take the place of a single computer. Various functions described above may be performed by a single process or groups of processes, on a single computer or distributed over several computers. Processes may invoke other processes to handle certain tasks.
[0061] Unless the context clearly requires otherwise, throughout the description and the claims, the words“comprise,”“comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of“including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words“herein,”“hereunder,”“above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word“or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
[0062] All references cited herein are intended to be incorporated by reference. While one or more implementations have been described by way of example and in terms of the specific embodiments, it is to be understood that one or more implementations are not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements as would be apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.

Claims

CLAIMS What is claimed is:
1. A method of programmatically creating blockchains, comprising:
defining a smart contract in a first block of a global blockchain, wherein the smart contract defines a blockchain data structure for a side chain;
executing the smart contract to generate the side chain coupled to the first block by a double-linked list;
generating additional blocks of the side chain through a proof-of-stake process; and
periodically serializing the smart contract object state from a second block of the side chain to a last block of the global blockchain for validation or synchronization.
2. The method of claim 1 wherein the first block is any block within the global blockchain.
3. The method of claim 2 wherein the side chain comprises one or more side chains.
4. The method of claim 3 wherein the one or more side chains are spawned from the global blockchain or from another side chain.
5. The method of claim 4 wherein the global blockchain uses memory -hard proof-of- work (POW) processes to add blocks, and may include registration transactions containing public key identifiers of nodes, currency transactions, smart packet contract transactions, and checkpointing transactions which allow the one or more side chains to periodically synchronize their aggregated state to the global blockchain.
6. The method of claim 5 wherein each side chain periodically serializes a smart contract object state from a last block of the respective side chain to a last block of the global blockchain for synchronization or validation.
7. The method of claim 1 wherein the created blockchains are used for a network scaling application, wherein each block in the global blockchain has its own smart contract, and each of these smart contracts may be used to generate other side chains through definitions contained within each smart contract, and wherein multiple side chains may also incorporate certain hierarchical definitions so that side chains may be subordinate or superior to other side chains in defined hierarchical relationships.
8. The method of claim 7 wherein scaling application may be implemented through one of: a manual process, wherein the additional side chains are created by deliberate creation of new smart contract containing the appropriate class definitions, or an automated process that automatically spawns the new side chains upon an event trigger.
9. The method of claim 1 wherein the created blockchains are used for a temporary ledger application in which a programmatically created side chain may be temporarily created by the appropriate 'open' and 'close' definitions within the smart contract to provide a temporary set of transaction blocks to process and store calculations and results.
10. The method of claim 9 wherein the programmatically created side chain is deleted upon completion of the calculations to prevent encumbering the global blockchain with additional non-erasable blocks, and wherein a smart contract creating the temporary ledger may contain a definition that defines a time-duration of the ledger or a condition that automatically deletes the created programmatically created side chain.
11. The method of claim 1 wherein the created blockchains are used for a blockchain migration application in which token protocols on a first blockchain are re-implemented using smart contracts that provide a basis for the side chain as a new private mesh chain that is branched from the global blockchain.
12. The method of claim 11 wherein a contract migration service is used to copy a built up state of transactions to the new private chain, which is thereafter pointed to by services using the global blockchain.
13. A method of programmatically creating blockchains, comprising:
creating a smart contract having a blockchain data structure for a side chain related to a global blockchain;
deploying the smart contract to a network having network peers by adding the smart contract to the global blockchain and propagating the smart contract to the network;
queueing the smart contract as a transaction in a transaction pool for all network nodes;
upon creation of a next block in the blockchain, a node creating the block takes the smart contract from the transaction pool and adds it to the block for execution of the smart contract; upon execution of the smart contract, creating a new side chain; and linking the new side chain to the smart contract transaction.
14. The method of claim 2 wherein the first block is any block within the global blockchain.
15. The method of claim 14 wherein the side chain comprises one or more side chains spawned from the global blockchain or from another side chain.
16. The method of claim 15 wherein the global blockchain uses memory -hard proof- of-work (POW) processes to add blocks, and may include registration transactions containing public key identifiers of nodes, currency transactions, smart packet contract transactions, and checkpointing transactions which allow the one or more side chains to periodically synchronize their aggregated state to the global blockchain.
17. The method of claim 16 wherein each side chain periodically serializes a smart contract object state from a last block of the respective side chain to a last block of the global blockchain for synchronization or validation.
18. The method of claim 13 wherein the created blockchains are used for a network scaling application, wherein each block in the global blockchain has its own smart contract, and each of these smart contracts may be used to generate other side chains through definitions contained within each smart contract, and wherein multiple side chains may also incorporate certain hierarchical definitions so that side chains may be subordinate or superior to other side chains in defined hierarchical relationships.
19. The method of claim 13 wherein the created blockchains are used for a temporary ledger application in which a programmatically created side chain may be temporarily created by the appropriate 'open' and 'close' definitions within the smart contract to provide a temporary set of transaction blocks to process and store calculations and results.
20. The method of claim 13 wherein the created blockchains are used for a blockchain migration application in which token protocols on a first blockchain are re-implemented using smart contracts that provide a basis for the side chain as a new private mesh chain that is branched from the global blockchain, and wherein a contract migration service is used to copy a built up state of transactions to the new private chain, which is thereafter pointed to by services using the global blockchain.
PCT/US2019/025915 2018-04-05 2019-04-04 Programmatic creation of blockchains WO2019195639A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862653350P 2018-04-05 2018-04-05
US62/653,350 2018-04-05
US201862653989P 2018-04-06 2018-04-06
US62/653,989 2018-04-06
US201862693944P 2018-07-04 2018-07-04
US62/693,944 2018-07-04
US201862779357P 2018-12-13 2018-12-13
US62/779,357 2018-12-13

Publications (1)

Publication Number Publication Date
WO2019195639A1 true WO2019195639A1 (en) 2019-10-10

Family

ID=68101271

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2019/025915 WO2019195639A1 (en) 2018-04-05 2019-04-04 Programmatic creation of blockchains
PCT/US2019/026100 WO2019195755A1 (en) 2018-04-05 2019-04-05 Network protocol for blockchain based network packets

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2019/026100 WO2019195755A1 (en) 2018-04-05 2019-04-05 Network protocol for blockchain based network packets

Country Status (1)

Country Link
WO (2) WO2019195639A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110717762A (en) * 2019-12-16 2020-01-21 腾讯科技(深圳)有限公司 Data processing method, data processing device, node equipment and storage medium
CN111245910A (en) * 2019-12-31 2020-06-05 杭州趣链科技有限公司 Block chain light node multi-copy deployment method
CN112383610A (en) * 2020-11-11 2021-02-19 上海保险交易所股份有限公司 Synchronous processing method and system for block chain state data
CN112565453A (en) * 2020-12-22 2021-03-26 内蒙古大学 Block chain access control strategy model and strategy protection scheme under Internet of things
CN112804310A (en) * 2020-12-31 2021-05-14 河南中盾云安信息科技有限公司 Multi-chain intelligent security gateway for application of Internet of things and implementation method
WO2023031107A1 (en) * 2021-09-03 2023-03-09 Siemens Aktiengesellschaft Method and system for enabling to store genealogically related data within a blockchain network
US11687942B2 (en) * 2018-07-18 2023-06-27 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for processing account of blockchain network, and storage medium

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110956463B (en) * 2019-10-28 2022-07-12 北京大学 Credible certificate storing method and system based on extensible distributed query system
CN111311265B (en) * 2020-02-13 2023-07-25 布比(北京)网络技术有限公司 Blockchain private transaction proving method, blockchain private transaction proving device, computer equipment and storage medium
CN111447080B (en) * 2020-02-29 2023-07-14 平安银行股份有限公司 Private network decentralization control method, device and computer readable storage medium
CN111597269A (en) * 2020-05-21 2020-08-28 昆明大棒客科技有限公司 Block chain-based contract implementation method, device and equipment
GB2595927A (en) * 2020-06-12 2021-12-15 Nchain Holdings Ltd File verification system and method
CN114124922B (en) * 2020-08-13 2023-07-14 中移互联网有限公司 Application distribution method based on block chain
US11720540B2 (en) 2020-12-30 2023-08-08 Itron, Inc. Secure blockchain data recovery
US11762844B2 (en) 2020-12-30 2023-09-19 Itron, Inc. Secure trimming of blockchain in a resource-constrained network
US11588620B2 (en) 2020-12-30 2023-02-21 Itron, Inc. Forming a blockchain in low-bandwidth, resource-constrained network
KR20240004463A (en) * 2021-04-09 2024-01-11 비제이 마디세티 Service mesh and smart contracts for zero-trust systems
CN113141414B (en) * 2021-05-07 2022-04-12 大连理工大学 Grouped multi-chain asynchronous consensus method for block chain nodes in CNFS protocol
CN113904788A (en) * 2021-08-12 2022-01-07 云南电网有限责任公司信息中心 Block chain-based network frame security verification method and SDN switch
CN113746922B (en) * 2021-09-03 2023-10-20 杭州复杂美科技有限公司 Node connection method, computer device, and storage medium
CN113905051B (en) * 2021-09-24 2023-03-28 同济大学 Smart city cross-department information interaction architecture system and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160028552A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20180005186A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20180091316A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-validator oracle

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790112B (en) * 2016-12-26 2020-05-05 重庆高开清芯科技产业发展有限公司 Node operating system integrating lightweight block chains and data updating method
CN107276762B (en) * 2017-05-08 2019-08-30 飞天诚信科技股份有限公司 A kind of working method and device of multi-protocols block chain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160028552A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US20180005186A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20180091316A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-validator oracle

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687942B2 (en) * 2018-07-18 2023-06-27 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for processing account of blockchain network, and storage medium
CN110717762A (en) * 2019-12-16 2020-01-21 腾讯科技(深圳)有限公司 Data processing method, data processing device, node equipment and storage medium
CN111245910A (en) * 2019-12-31 2020-06-05 杭州趣链科技有限公司 Block chain light node multi-copy deployment method
CN112383610A (en) * 2020-11-11 2021-02-19 上海保险交易所股份有限公司 Synchronous processing method and system for block chain state data
CN112383610B (en) * 2020-11-11 2022-12-09 上海保险交易所股份有限公司 Synchronous processing method and system for block chain state data
CN112565453A (en) * 2020-12-22 2021-03-26 内蒙古大学 Block chain access control strategy model and strategy protection scheme under Internet of things
CN112804310A (en) * 2020-12-31 2021-05-14 河南中盾云安信息科技有限公司 Multi-chain intelligent security gateway for application of Internet of things and implementation method
CN112804310B (en) * 2020-12-31 2023-03-24 河南中盾云安信息科技有限公司 Multi-chain intelligent security gateway for application of Internet of things and implementation method
WO2023031107A1 (en) * 2021-09-03 2023-03-09 Siemens Aktiengesellschaft Method and system for enabling to store genealogically related data within a blockchain network

Also Published As

Publication number Publication date
WO2019195755A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
WO2019195639A1 (en) Programmatic creation of blockchains
CN112492006B (en) Node management method and device based on block chain
CN112396423B (en) Transaction data processing method, device, equipment and storage medium
CN110912707B (en) Block chain-based digital certificate processing method, device, equipment and storage medium
CN111683117A (en) Method, equipment and storage medium
KR102041720B1 (en) Implementing system of flexible blockchain framework and p2p network constructing method thereof, recording medium for performing the method
CN111090386B (en) Cloud storage method, device, system and computer equipment
Pillai et al. Securing firmware in Internet of Things using blockchain
US20230018175A1 (en) Secure and trustworthy bridge for transferring assets across networks with different data architecture
Gao et al. Cross-chain oracle based data migration mechanism in heterogeneous blockchains
CN112231741A (en) Data processing method, device, medium and electronic equipment based on block chain system
Cui et al. IoT data management and lineage traceability: A blockchain-based solution
CN110910110B (en) Data processing method and device and computer storage medium
Živić et al. Directed acyclic graph as hashgraph: an alternative DLT to blockchains and tangles
Kumar et al. Front-End IoT application for the bitcoin based on proof of elapsed time (PoET)
Wang Sok: Applying blockchain technology in industrial internet of things
CN113259464B (en) Method for building block chain sub-network and block chain system
Giaretta et al. UniquID: A quest to reconcile identity access management and the IoT
Yang et al. Protecting personal sensitive data security in the cloud with blockchain
Knapp et al. Pay-per-use sensor data exchange between IoT devices by blockchain and smart contract based data and encryption key management
Ali et al. Blockstack technical whitepaper
Mtetwa et al. Secure the internet of things software updates with ethereum blockchain
WO2020010270A1 (en) Dynamic routing using a distributed hash table
Sheng et al. TrustBoost: Boosting Trust among Interoperable Blockchains
Fan et al. Research on task scheduling strategy: Based on smart contract in vehicular cloud computing environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19781574

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19781574

Country of ref document: EP

Kind code of ref document: A1