Blockchain Fintech – Anuj Chopra, Zhou Yinsheng, Yuan Yuan, Wenbin Zhang, International Business Machines Corp

Abstract for “Peer voting on a blockchain”

One example of operation is to identify one or several votes in a distributed vote configuration, then divide each one or two votes into a plurality or partial votes so that each one or multiple votes contains two or more partial votes. Then randomly distribute the plurality or partial votes among a plurality or peer nodes associated for a blockchain and receive a broadcast from each peer node based on a distributed total of the plurality or partial votes.

Background for “Peer voting on a blockchain”

A blockchain can be used to store any type information. A blockchain is primarily used to store financial transactions but can also be used to store assets such as products, packages and status. A decentralized scheme transfers authority, trust, and allows its nodes to continuously record and sequentially log their transactions on a public “block”, creating a unique “chain”. A blockchain is also known. Cryptography is used via hash codes to authenticate a transaction source and eliminate a central intermediary. Miners may participate in a blockchain block completion/finalization process and be rewarded for processing the block and committing the block to an immutable ledger.”

Peer voting, decision-making, and other leadership decisions on a blockchain can be performed by certain blockchain members, elected/assigned peers nodes, or blockchain members. To ensure the integrity of any blockchain-related decisions, all members should vote fair and impartially. To be fair, peers should work together and vote for decisions without putting their personal interests above integrity. As the ecosystem grows, peer voting is/will become a requirement for any blockchain network.

“One concern is to reduce the need for identifying a trusted authority. Trust concerns are a concern for all centralized voting/tally system. Due to the nature of blockchain peer vote, the approach should not be decentralized and require a single trusted authority. One example is that each voter’s vote should not ever be disclosed to anyone, even if the total votes are all that matters. There are many voting systems that could reveal votes during the counting/tally stage. Another important aspect to be aware of is that voting systems can be compromised by allowing one entity to alter any vote submitted. Additionally, no single entity should have the ability to manage or handle all votes. It is important to determine if a voter is able to verify that his/her vote was counted correctly, and whether all votes were counted correctly. Double voting and other dishonest votes should be detected so that they are excluded from the count. A voting system that appeals to outsiders should be used to elect the peers in a blockchain network rather than a network of blockchain networks, is also recommended. This is for trust and cost reasons.

One example embodiment could include one or several of identifying one, more votes in a distributed vote configuration, dividing each one, more votes into a plurality, random distribution of the plurality, of partial voters to a plurality peer nodes associated, with a blockchain and receiving a broadcast by each peer node based on a distributed total of the plurality, partial votes.

“Another example embodiment could include an apparatus that has a processor that can identify one or many votes in a distributed vote configuration, divide each one or two votes into a plurality or partial votes, so that each one or several votes comprises two or three partial votes. A receiver that is configured to receive broadcasts from each peer node based on a distributed total of the plurality or partial votes.

“Another example embodiment could include a non-transitory computer-readable medium that stores instructions that, when executed, cause a processor one or two of the following: identifying one, more or all votes in a distributed vote configuration; dividing each one or many votes into a plurality or partial votes so that each one or several votes comprises two or three partial votes; randomly distributing the plurality or partial votes to a plurality or peer nodes associated to a blockchain and receiving a broadcast form each peer nodes

It will be apparent that the components of the instant invention, as shown in the figures, can be placed in many different ways. The following description of the embodiments, including at least one, of a method and apparatus, non-transitory computing readable medium, and system, as illustrated in the attached figures is not intended limit the scope or claim, but it is representative of select embodiments.

“The instant features and structures or characteristics described in this specification can be combined in any way that suits the purposes of one or more embodiments. The usage of phrases like “example embodiments”, “some embodiments”, or similar language throughout this specification indicates that an embodiment could include a specific feature, structure, or characteristic related to the embodiment. The phrases “example embodiments”, “in some embodiments?”, “in other embodiments?”, or any other similar language throughout this specification don’t necessarily refer to the same group. Furthermore, the features, structures, and characteristics described in this specification may be combined in any way that suits the needs of one or more embodiments.

“In addition, the term’message’ may be used in the description of embodiments. While the term?message? may have been used to describe embodiments, the application can be applied to any type of network data such as packet, frame, or datagram. The term “message” can also be used. The term “message” can also refer to packet, frame, or datagram. While certain types of signals and messages may be shown in certain embodiments, they are not limited by a particular type of message and the application does not limit itself to that type of signaling.

“The instant application refers to voting on a Blockchain. In another embodiment, it is about using a fair and transparent model for peer voting on a Blockchain.

According to some embodiments, this may allow peers to vote on an existing blockchain network by splitting each vote into small pieces (i.e. ballots) and then distributing them to randomly selected peers. This allows each part of the vote to be verified. However, a small number of votes does not reveal the voter?s preferences since each peer only counts a portion of the votes. All correct partial counts can be checked and corrected, so that the final voting result can be combined. To verify the authenticity of each peer’s vote, a digital signature can be used to establish its authenticity. This is done using homomorphic encryption which protects votes and allows for counting encrypted votes. Using detectability and punishment/reprimand operations to reduce cheating by peer nodes may also be beneficial. In operation, any dishonest votes or counting results could result in the exclusion of any dishonest peer vote and notification to other peers so that any peer node can be held accountable to the network for providing invalid information.

According to examples, one way to split each vote into multiple parts is to distribute them to random peers of the blockchain so that each part, or?partial vote?, can be counted. can be verified, and only a small number of them don’t reveal the voter?s preference. This preserves anonymity. To reduce corruption, all peers can collaborate in the counting process. Each peer may count a portion of votes. The counting can then be checked and corrected. The final result will include all correct partial counting. This can also be verified. To verify the authenticity of each peer’s vote, digital signatures are used. To protect votes’ privacy and allow for verification purposes, homomorphic encryption is used. Any vote that is not honest or counted correctly will be disqualified. Each voter’s vote is composed of?k_i? Each voter’s vote consists of?k? You can provide ballots for option??i?. Only a fraction of the ballots can be used to reveal the voter’s vote preference. One common homomorphic encryption scheme such as the Paillier cryptosystem may be used. Each peer generates their own pair of public and secret keys. Common digital signature schemes, such as the elliptic curve algorithm for digital signature (ECDSA), are used. Each peer generates their own pair, with secret and public keys. Peers are not allowed to vote. However, they must vote out all of their assigned ballots if they wish to. If each of the votes is for one option, the number of ballots total is exactly?k, the peer will be considered an honest voter. If a peer reports any invalid ballots and correctly counts his or her portion of the ballots, then he/she will be considered an honest voter. If a peer isn’t honest in voting or a counter, they will be considered dishonest. A ballot from a dishonest peer will be deemed invalid. The correct counting of all valid ballots is what determines the voting result for each option.

“FIG. 1A shows a logic diagram for conducting voting within a time window according to examples. Referring to FIG. FIG. 1A shows that the configuration 100 allows each peer to select exactly one option from each of their ballots B_i. Each option corresponds with a prefixed number that can be encrypted. Each peer chooses?k random peers P_1, . . . , P_k and encrypts each selection with P_i’s private key. The peer records the encryption choice on the ballot B_i. It also keeps P_i’s signature public key and P_i?s public key. The peer then signs all ballots with the signature secret key and broadcasts them to the entire blockchain network 130 of its peers 132-144. Each peer 132-144 collects the ballots, and the network syncs them by consensus. The peer in this example is peer?A? The ballots 120 can be illustrated as any number 122-124. While each peer can use their key and signature, the encryption public key is random among all blockchain peers.

“FIG. 1B shows a logic diagram for verifying votes following a voting window according to examples. Referring to FIG. Referring to FIG. Each peer can verify that the number of votes cast by any other peer is exactly?k?. The peer then broadcasts the list of dishonest voter names. Each peer compiles the lists of dishonest voters from their peers, and the network synchronizes this collection to find a consensus. Each peer decrypts ballots that are encrypted with a public key. It ignores ballots from dishonest voters and verifies that each ballot is valid. The network then broadcasts invalid ballots to the other peers. Each peer verifies invalid votes, and the network syncs another collection with dishonest voters through consensus. Peer B could collect all ballots by personal collection or broadcast 170. This includes all ballots 172 to 174. The decrypted votes are those that are deemed valid 175, such 176-178. These ballots encrypted using B’s key represent a small portion of peer B?s entire collection of ballots.

“FIG. 1C is a logic diagram that shows how to conduct partial counting according to various embodiments. Referring to FIG. Referring to FIG. Peer B, for example, has 190 ballots and 192. . . 194 can be counted in accordance with the rules and broadcast without encryption as a count measurement. Each peer collates all peer’s counting results, such that peer B’s count of 195 is recorded and broadcast by the network.

“When verifying counts, each peer verifies the counting result of any peer. It may be determined whether the count is consistent with the valid number of ballots. It is also possible to check that both the results are equal by using the homomorphic properties to tally encrypted ballots and then encrypting them using the corresponding public keys. Each peer broadcasts a list of dishonest peers during a counting operation. The network then synchronizes the collection by consensus. If there is no detectable dishonest counter, the process moves to the final counting operation. Otherwise, dishonest ballots are excluded and must be resent to others. However, the choices cannot be altered. As needed, the various operations of verifying votes, verifying ballots and partial counting, as well as verifying counting for affected voters and ballots may be repeated.

“The Paillier cryptosystem may be used as homomorphic encryption. This is an additive homomorphic encrypted scheme that provides the public key to m1, m2, and one can then calculate the encryption of the m1+m2. An random number?r A random number?r? is used in encryption of message?m? so that encryption of?m is possible so that the encryption of?m? is not used by different users.”

“After all invalid votes have been identified and verified as correct, each peer adds up all valid partial counts and broadcasts the final result. The network consensus synchronizes all peers’ final counting results, and then the final result is confirmed. This procedure does not require a trusted authority. Each vote is broken down into smaller parts such as partial votes or polls. The ballots are encrypted using a random peer’s key. This ensures that the voting process and counting is private. This ensures that no other peer has access to any vote or can only see one ballot. A voter’s vote will not be disclosed unless all of the?k? are present. Different peers who have the public key that encrypts votes collaborate. This is in keeping with the consensus nature blockchains.

Each ballot is protected by encryption and the encrypted result can be accessed via the blockchain. All ballots and intermediate events recorded on the blockchain cannot be altered. Every voter (or peer) can check whether their ballots were modified or correctly counted, as well as whether all valid ballots have been counted correctly. This allows for the detection of fraudulent ballots, and dishonest voters/dishonest counting. It is possible to detect cheating even if several voters and counters are involved in the same scheme. The blockchain network can use detection to penalize dishonest peers, so that no one will cheat. In the counting, invalid ballots, i.e. votes of dishonest peers, can be excluded

Votes cannot be revealed because each vote is broken into multiple ballots. Each ballot is encrypted using a random peer’s private key. The peer who encrypts each ballot can view it. A sufficient number of peers should collaborate together to reveal a vote. This is in line with blockchain’s consensus nature. Each peer counts the ballots encrypted with his or her private key, as only they can decrypt them. Once a peer has completed the counting, they must publish their partial results which can be checked by other peers. This information can be stored on the blockchain or broadcast to all peers. Once all votes have been counted correctly, the final result can then be calculated. Each peer can have one pair of homomorphic encryption keys and another pair with digital signature schemes. Each peer selects randomly a peer’s private key (encryption), to encrypt its own ballot, and a different key for each ballot. Then, each peer signs each ballot with their own signature (private key). Each ballot is encrypted so that only one peer can view the content and decrypt it. Every ballot is signed to verify authenticity.

“FIG. 2 shows an example of a blockchain configuration that can be used to perform voting according to some examples. Referring to FIG. FIG. 2 shows that the blockchain system 200 could include some common elements such as a group 280 of blockchain nodes, which can be assigned as peer nodes (peer blockchain nodes). 285 and 282, which are involved in the validation and transaction addition process (consensus). Any one of the Blockchain peer nodes (280) may initiate new transactions or seek to write to the Blockchain immutable Ledger 272. A copy of this ledger is stored on the Underpinning Physical Infrastructure 271 of the blockchain. 270 This configuration can include one or more applications 277 that are linked to APIs 276, which allow access to and execution of stored program/application codes (e.g. chain code and/or Smart Contracts) 275. These customized configurations are created by participants according to their needs and can control their state, receive external information, and maintain their own assets. This code can be deployed on any blockchain peer nodes as a transaction.

“The blockchain platform270 contains the different layers of blockchain data and services (e.g. cryptographic trust services, virtual execut environment) and the underpinning physical infrastructure needed to receive and store new transactions as well as provide access for auditors who are looking to access data entries. The blockchain layer 272 provides an interface to the virtual execution environment that is required to process program code and engage with the physical platform 271. To verify transactions and protect private information, cryptographic trust services 273 can be used.”

“The FIG. 2. may execute program/application code number 275 through the interfaces provided by blockchain platform270. This code can control the blockchain assets. It may store and transfer data and may be executed using the interfaces exposed by blockchain platform 270. Smart contracts 275 can be used to send reminders, update and/or other notifications that are subject to changes, updates, etc. Smart contracts can be used to identify access and authorization requirements as well as usage rules. One example is that a smart contract can be identified by peer nodes 280 and approved by them. If certain conditions are met, the nodes might reach consensus and allow the smart contract to become a transaction that is committed to the blockchain ledger 272. The consensus reached by peer nodes might require a series initialization operations to be approved and signed by the peers. The peers might identify the ballots 212 that have been authenticated and signed by all parties before they are enacted onto the blockchain. The information is then broadcast to all peer networks 214 for the appropriate consensus of voting. In the event that the results are accurate and all incorrect/invalid/dishonest information is removed, the peer nodes 280 may reach a consensus regarding the results of the vote.”

“FIG. “FIG. Referring to FIG. Referring to FIG. The peer’s public key 314, which is randomly chosen or based upon another selection algorithm, encrypts the ballot. The ballot is broadcast to other peers and the blockchain for any updates. All votes and ballot selections are submitted to all peers. Peer A can then verify the ballot, decrypt encrypted ballots using a key, and determine which ballots are valid 316. The peer’s public key 322 encrypts the ballots and counts them. All partial countings must be counted in order to confirm and identify invalid counting information 324. The broadcast includes the correct and invalid counting information as well as the updated invalid ballots. To determine the exact result, 332 can be determined by final counting 328.

“FIG. 4. illustrates a system signaling scheme for performing a vote procedure according to example embodiments. Referring to FIG. Referring to FIG. Operation: The peer’s ballots can be broadcast 412 to other peers or the blockchain 420. Other peers can broadcast their ballots 414 to other peers, which can then be shared with others. Peer 410 can receive all broadcast ballots 416 and synchronize this information. All ballots can be verified 418. Dishonest voters and invalid ballots 422 may also be shared with the Blockchain network. The partial counting can be shared with other 424 once the invalid information has been identified. For others to have access to the information, other peers might also share it 426. The countings can then be used to verify 428 the accuracy of the ballots. Invalid counting information may then be shared 432 and updated information from other sources 434. A final count 436 can now be performed to verify the accuracy of the data. The final results are broadcast by all 442 parties, and can be recorded on the blockchain 444.

“FIG. 5A shows an example flow diagram for performing a vote operation according to some examples. Referring to FIG. FIG. 5A shows an example of a method 500 for identifying one or several votes in a distributed vote configuration 512 and dividing each one into a plurality or partial votes so that each one or two votes contains two or more partial votes 514. The votes/ballots can be distributed randomly to a number of peer nodes that are associated with a blockchain 516. An initiating node 518 can receive a broadcast from each peer node based on a distributed count of the plurality partial votes. This method can also include receiving a plurality or partial count from each peer node. Each partial count is a distributed total of all partial votes. The initiating node 518 can receive a broadcast from each peer node based on a distributed tally. This method can also be used to verify the sum of all partial counts. The method will respond to identify the incorrect number of pluralitys of partial vote, correct any errors, and then discard the invalid partial votes. This method can also be used to count the remaining partial votes. After the excess votes have been discarded, the method will determine the vote result. The plurality encrypted partial votes are then stored on the blockchain using a randomly chosen public key that is associated with each of the plurality. A final count of all partial votes received may be done if none of the plurality are found to be dishonest.

“FIG. “FIG.5B” illustrates an alternative flow diagram for performing a vote operation according to example embodiments. Method 550 can identify one or several votes based upon one or multiple blockchain members 552, and divide each one or two votes into a plurality or partial votes 554, assigning the plurality or partial votes to one or many blockchain members based upon a stake held each member of each one of the one-or more blockchains members 556. Each blockchain member will receive a broadcast based in part on the total of the plurality or partial votes 558.

“In another example embodiment, different members of the blockchain may have a greater stake or exposure to blockchain transactions (i.e. transactions initiated, ownership decisions, consensus decisions etc.). Other members may have a greater stake or exposure to the blockchain transactions than others. The members with larger stakes are identified using a label or weight that indicates the relative worth of the member within that particular blockchain. An example is that an organization could represent half the members of the Blockchain and perform half the transactions, while the four to five other organizations collectively represent only half the blockchain. One or more of the leaders of the primary organisation may have a greater relative weight or status to other members of the blockchain. To equalize the difference between their stake and that of other members, members with higher stakes may receive more partial votes. An integer or another numerical value may identify the stake.

The above embodiments can be implemented in hardware, in computer programs executed by a processor or in firmware. A computer program can be embedded on a computer-readable medium such as a storage media. A computer program could, for example, reside in random access memory. ), flash memory or read-only memory (??ROM?). ), erasable, programmable read only memory (?EPROM) ), Electrically erasable, programmable read only memory (?EEPROM) Registers, registers, hard drive, a removable disc, a compact disk read only memory (?CDROM?),?EEPROM? ), or any other storage medium that is known to the art.

“An example storage medium could be connected to the processor so that the processor can read and write to the storage medium. Alternativly, the storage medium could be integrated with the processor. The application-specific integrated circuit (?ASIC?) may house the processor and storage medium. Alternativly, the storage medium and processor may be located as separate components. FIG. FIG. 6 shows an example of a computer system architecture 600 that may be used in or integrated into any of the components described above.

“FIG. “FIG. The computing node 600 can implement and/or perform any functionality described herein.

“In computing node 600 is a computer server/system 602, which can be used with many other general-purpose or special-purpose computing system environments. There are many well-known computing systems and environments that can be used with computer system/server 602, including but not limited to: personal computers, server computers, thin clients, thin clients, laptops, multiprocessor systems and microprocessor-based systems. Set top boxes, programmable consumer electronics. Network PCs, minicomputers, mainframe computer and distributed cloud computing environments that contain any of these systems or devices.

Computer system/server 602 can be described as a system that executes computer-executable instructions (such as program modules) and is executed by a computer. Program modules can include routines, programs and objects as well as components, logic, logic, data structures, and other data that are used to perform specific tasks or implement abstract data types. In distributed cloud computing environments, computer system/server 602 can be used to perform tasks that are carried out by remote processing devices linked via a communications network. Program modules can be stored in remote and local computer system storage media, including memory storage devices, in a distributed cloud computing environment.

“As shown at FIG. “6 computer system/server 602 is shown in cloud computing node 600 in the form a general-purpose computing devices. Computer system/server 602 components may include one or more processors, processing units 604, system memory 606 and a bus that links various components, including processor 604 to system memory 606.”

The bus can be one or more of the following types of bus structures: a memory bus, microchannel architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA), local bus and a processor. These architectures include Industry Standard Architecture, Micro Channel Architecture, Enhanced ISA, EISA, Video Electronics Standards Association, local bus, Video Component Interconnects, and Peripheral Communication Interconnects (PCI).

Computer system/server 602 usually includes a variety computer system readable media. These media can be any media that is available to computer system/server 602 and includes volatile and nonvolatile media, as well as removable and nonremovable media. In one embodiment, system memory 606 implements the flow charts of the other figures. System memory 606 may include computer-readable media, such as random memory (RAM 610) and/or cache memories 612. Computer system/server 602 may further include other removable/non-removable, volatile/non-volatile computer system storage media. Storage system 614, which is not shown, can be used to read from and write to non-removable and non-volatile magnetic media. It is commonly called a ‘hard drive?. A magnetic disk drive that can read from and write to a non-volatile magnetic disc (e.g., a “floppy disk”) is possible, although it is not shown. An optical disk drive can be used to read from and write to removable optical disks such as CD-ROMs, DVD-ROMs, or other optical media. Each can be connected to a bus via one or more data media interfaces. Memory 606 can include at most one program product, such as a set of program modules, that are designed to perform the functions of different embodiments of an application.

Program/utility 616 may store a set of (at least one!) program modules 618 in memory 606, by way of an example. This includes operating systems, one or more applications programs, other module programs, and program data. A networking environment may be implemented in each operating system, application program, or combination thereof. The functions and/or methods of different embodiments of an application are generally carried out by program modules 618.

Aspects of the present invention may also be included in a method, system, or product for computer programs, as will anyone skilled in the art. Aspects of the present invention may be implemented as a completely hardware embodiment or an entirely software embodiment (including micro-code, firmware, resident software, and so on). Or an embodiment that combines software and hardware aspects, which may be called a?circuit? ?module? ?module? Aspects of the present invention may also be embodied in a computer program product that is stored on one or more computer-readable mediums with computer-readable program code.

“Computer server/server 602 can also communicate with one or several external devices 620, such as a keyboard, display 622, and pointing device. One or more devices that allow a user interact with computer system/server 602. computer system/server 602 can communicate with other computing devices. This communication can be done via I/O interfaces 624. Computer system/server 602 still has the ability to communicate with one or several networks, such as a local network (LAN), general wide area network(WAN) and/or public network (e.g. the Internet) via network adapter (626). Network adapter 626, as shown in the illustration, communicates via bus 608 with other components of computer server 602. Other hardware and/or programs could be used with computer system/server 602 even though they are not shown. Examples include but aren’t limited to microcode, device drivers and redundant processing units. They could also be used in conjunction with computer system/server 602.

“An exemplary embodiment of at most one of a system and method has been shown in the accompanying drawings and described in detail in the foregoing description. However, it is clear that the application is not limited by the disclosed embodiments. It is also capable of many rearrangements, modifications and substitutions as defined and claimed in the following claims. The system can perform the functions shown in the figures by any combination of one or more modules or components. It may also be implemented in a distributed architecture that includes a transmitter, receiver, or a pair of them. One or more modules may perform all or part the functionality of individual modules. The functionality described in this document can be performed at different times and with respect to various events, whether internal or external to the components or modules. Information can also be sent between modules using at least one of the following: the Internet, the Internet Protocol network, a voice network or an Internet Protocol network. A wireless device, wired device, and/or multiple protocols are all possible. The messages that are sent and received by any module may be sent directly or via one or more modules.

“A?system’ is something that anyone skilled in the art can appreciate. A?system’ could be described as a personal computer or server, a console or a console, a console or a personal digital assistant (PDA), cell phone, tablet computing device or smartphone, or any combination of these devices. The functions described above are referred to as being performed by a “system”. This is not meant to limit the scope or limitations of the present application, but it is intended to illustrate one of many possible embodiments. Methods, systems, and apparatuses described herein can be implemented in both localized and distributed forms compatible with computing technology.

“It is important to note that not all system features are described here in modules. This is in order to emphasize their independence in implementation. A module could be implemented in a hardware circuit that includes custom very large scale integration (VLSI), gate arrays, off the shelf semiconductors like logic chips, transistors, and other discrete components. You can also implement a module in programmable hardware devices like field programmable gate arrangements, programmable array logics, programmable logic units, and the like.

“A module can also be implemented in software to allow execution by different types of processors. A unit of executable code can, for example, contain one or more physical blocks or logical blocks that include computer instructions. These instructions may be organized in a number of ways, such as object, procedure, function. The executables of an identified unit of executable code do not have to be physically located together. They may contain different instructions that are stored in different locations and, when combined logically, form the module. Modules can also be stored on computer-readable media, such as a hard drive, flash device or random access memory (RAM), tape or any other medium that stores data.

A module of executable software could contain one or more instructions and can be distributed across multiple code segments, between different programs, or across multiple memory devices. Similar to operational data, it can be identified and illustrated in modules. It may also be organized into any type of data structure and in any form. Operational data can be collected in one data set or distributed across multiple locations, including different storage devices. They may also exist at least partially as electronic signals within a system or network.

It will be clear that components of the invention, as shown in the figures, can be placed and designed in many different ways. The detailed descriptions of the embodiments are not meant to limit the scope or claim of the application. They only represent a few embodiments of that application.

“One with ordinary skill in art will quickly understand that the steps described above can be performed in a different order and/or with hardware elements that are not disclosed. Although the preferred embodiments have been described, it is obvious to those skilled in the art that there are many modifications, variations and other constructions.

“Preferred embodiments of this application have been described. However, it is to understand that these embodiments are only illustrative and the scope is to be determined solely by the appended Claims when considered with all equivalents and modifications (e.g. protocols, hardware devices etc.). thereto.”

Summary for “Peer voting on a blockchain”

A blockchain can be used to store any type information. A blockchain is primarily used to store financial transactions but can also be used to store assets such as products, packages and status. A decentralized scheme transfers authority, trust, and allows its nodes to continuously record and sequentially log their transactions on a public “block”, creating a unique “chain”. A blockchain is also known. Cryptography is used via hash codes to authenticate a transaction source and eliminate a central intermediary. Miners may participate in a blockchain block completion/finalization process and be rewarded for processing the block and committing the block to an immutable ledger.”

Peer voting, decision-making, and other leadership decisions on a blockchain can be performed by certain blockchain members, elected/assigned peers nodes, or blockchain members. To ensure the integrity of any blockchain-related decisions, all members should vote fair and impartially. To be fair, peers should work together and vote for decisions without putting their personal interests above integrity. As the ecosystem grows, peer voting is/will become a requirement for any blockchain network.

“One concern is to reduce the need for identifying a trusted authority. Trust concerns are a concern for all centralized voting/tally system. Due to the nature of blockchain peer vote, the approach should not be decentralized and require a single trusted authority. One example is that each voter’s vote should not ever be disclosed to anyone, even if the total votes are all that matters. There are many voting systems that could reveal votes during the counting/tally stage. Another important aspect to be aware of is that voting systems can be compromised by allowing one entity to alter any vote submitted. Additionally, no single entity should have the ability to manage or handle all votes. It is important to determine if a voter is able to verify that his/her vote was counted correctly, and whether all votes were counted correctly. Double voting and other dishonest votes should be detected so that they are excluded from the count. A voting system that appeals to outsiders should be used to elect the peers in a blockchain network rather than a network of blockchain networks, is also recommended. This is for trust and cost reasons.

One example embodiment could include one or several of identifying one, more votes in a distributed vote configuration, dividing each one, more votes into a plurality, random distribution of the plurality, of partial voters to a plurality peer nodes associated, with a blockchain and receiving a broadcast by each peer node based on a distributed total of the plurality, partial votes.

“Another example embodiment could include an apparatus that has a processor that can identify one or many votes in a distributed vote configuration, divide each one or two votes into a plurality or partial votes, so that each one or several votes comprises two or three partial votes. A receiver that is configured to receive broadcasts from each peer node based on a distributed total of the plurality or partial votes.

“Another example embodiment could include a non-transitory computer-readable medium that stores instructions that, when executed, cause a processor one or two of the following: identifying one, more or all votes in a distributed vote configuration; dividing each one or many votes into a plurality or partial votes so that each one or several votes comprises two or three partial votes; randomly distributing the plurality or partial votes to a plurality or peer nodes associated to a blockchain and receiving a broadcast form each peer nodes

It will be apparent that the components of the instant invention, as shown in the figures, can be placed in many different ways. The following description of the embodiments, including at least one, of a method and apparatus, non-transitory computing readable medium, and system, as illustrated in the attached figures is not intended limit the scope or claim, but it is representative of select embodiments.

“The instant features and structures or characteristics described in this specification can be combined in any way that suits the purposes of one or more embodiments. The usage of phrases like “example embodiments”, “some embodiments”, or similar language throughout this specification indicates that an embodiment could include a specific feature, structure, or characteristic related to the embodiment. The phrases “example embodiments”, “in some embodiments?”, “in other embodiments?”, or any other similar language throughout this specification don’t necessarily refer to the same group. Furthermore, the features, structures, and characteristics described in this specification may be combined in any way that suits the needs of one or more embodiments.

“In addition, the term’message’ may be used in the description of embodiments. While the term?message? may have been used to describe embodiments, the application can be applied to any type of network data such as packet, frame, or datagram. The term “message” can also be used. The term “message” can also refer to packet, frame, or datagram. While certain types of signals and messages may be shown in certain embodiments, they are not limited by a particular type of message and the application does not limit itself to that type of signaling.

“The instant application refers to voting on a Blockchain. In another embodiment, it is about using a fair and transparent model for peer voting on a Blockchain.

According to some embodiments, this may allow peers to vote on an existing blockchain network by splitting each vote into small pieces (i.e. ballots) and then distributing them to randomly selected peers. This allows each part of the vote to be verified. However, a small number of votes does not reveal the voter?s preferences since each peer only counts a portion of the votes. All correct partial counts can be checked and corrected, so that the final voting result can be combined. To verify the authenticity of each peer’s vote, a digital signature can be used to establish its authenticity. This is done using homomorphic encryption which protects votes and allows for counting encrypted votes. Using detectability and punishment/reprimand operations to reduce cheating by peer nodes may also be beneficial. In operation, any dishonest votes or counting results could result in the exclusion of any dishonest peer vote and notification to other peers so that any peer node can be held accountable to the network for providing invalid information.

According to examples, one way to split each vote into multiple parts is to distribute them to random peers of the blockchain so that each part, or?partial vote?, can be counted. can be verified, and only a small number of them don’t reveal the voter?s preference. This preserves anonymity. To reduce corruption, all peers can collaborate in the counting process. Each peer may count a portion of votes. The counting can then be checked and corrected. The final result will include all correct partial counting. This can also be verified. To verify the authenticity of each peer’s vote, digital signatures are used. To protect votes’ privacy and allow for verification purposes, homomorphic encryption is used. Any vote that is not honest or counted correctly will be disqualified. Each voter’s vote is composed of?k_i? Each voter’s vote consists of?k? You can provide ballots for option??i?. Only a fraction of the ballots can be used to reveal the voter’s vote preference. One common homomorphic encryption scheme such as the Paillier cryptosystem may be used. Each peer generates their own pair of public and secret keys. Common digital signature schemes, such as the elliptic curve algorithm for digital signature (ECDSA), are used. Each peer generates their own pair, with secret and public keys. Peers are not allowed to vote. However, they must vote out all of their assigned ballots if they wish to. If each of the votes is for one option, the number of ballots total is exactly?k, the peer will be considered an honest voter. If a peer reports any invalid ballots and correctly counts his or her portion of the ballots, then he/she will be considered an honest voter. If a peer isn’t honest in voting or a counter, they will be considered dishonest. A ballot from a dishonest peer will be deemed invalid. The correct counting of all valid ballots is what determines the voting result for each option.

“FIG. 1A shows a logic diagram for conducting voting within a time window according to examples. Referring to FIG. FIG. 1A shows that the configuration 100 allows each peer to select exactly one option from each of their ballots B_i. Each option corresponds with a prefixed number that can be encrypted. Each peer chooses?k random peers P_1, . . . , P_k and encrypts each selection with P_i’s private key. The peer records the encryption choice on the ballot B_i. It also keeps P_i’s signature public key and P_i?s public key. The peer then signs all ballots with the signature secret key and broadcasts them to the entire blockchain network 130 of its peers 132-144. Each peer 132-144 collects the ballots, and the network syncs them by consensus. The peer in this example is peer?A? The ballots 120 can be illustrated as any number 122-124. While each peer can use their key and signature, the encryption public key is random among all blockchain peers.

“FIG. 1B shows a logic diagram for verifying votes following a voting window according to examples. Referring to FIG. Referring to FIG. Each peer can verify that the number of votes cast by any other peer is exactly?k?. The peer then broadcasts the list of dishonest voter names. Each peer compiles the lists of dishonest voters from their peers, and the network synchronizes this collection to find a consensus. Each peer decrypts ballots that are encrypted with a public key. It ignores ballots from dishonest voters and verifies that each ballot is valid. The network then broadcasts invalid ballots to the other peers. Each peer verifies invalid votes, and the network syncs another collection with dishonest voters through consensus. Peer B could collect all ballots by personal collection or broadcast 170. This includes all ballots 172 to 174. The decrypted votes are those that are deemed valid 175, such 176-178. These ballots encrypted using B’s key represent a small portion of peer B?s entire collection of ballots.

“FIG. 1C is a logic diagram that shows how to conduct partial counting according to various embodiments. Referring to FIG. Referring to FIG. Peer B, for example, has 190 ballots and 192. . . 194 can be counted in accordance with the rules and broadcast without encryption as a count measurement. Each peer collates all peer’s counting results, such that peer B’s count of 195 is recorded and broadcast by the network.

“When verifying counts, each peer verifies the counting result of any peer. It may be determined whether the count is consistent with the valid number of ballots. It is also possible to check that both the results are equal by using the homomorphic properties to tally encrypted ballots and then encrypting them using the corresponding public keys. Each peer broadcasts a list of dishonest peers during a counting operation. The network then synchronizes the collection by consensus. If there is no detectable dishonest counter, the process moves to the final counting operation. Otherwise, dishonest ballots are excluded and must be resent to others. However, the choices cannot be altered. As needed, the various operations of verifying votes, verifying ballots and partial counting, as well as verifying counting for affected voters and ballots may be repeated.

“The Paillier cryptosystem may be used as homomorphic encryption. This is an additive homomorphic encrypted scheme that provides the public key to m1, m2, and one can then calculate the encryption of the m1+m2. An random number?r A random number?r? is used in encryption of message?m? so that encryption of?m is possible so that the encryption of?m? is not used by different users.”

“After all invalid votes have been identified and verified as correct, each peer adds up all valid partial counts and broadcasts the final result. The network consensus synchronizes all peers’ final counting results, and then the final result is confirmed. This procedure does not require a trusted authority. Each vote is broken down into smaller parts such as partial votes or polls. The ballots are encrypted using a random peer’s key. This ensures that the voting process and counting is private. This ensures that no other peer has access to any vote or can only see one ballot. A voter’s vote will not be disclosed unless all of the?k? are present. Different peers who have the public key that encrypts votes collaborate. This is in keeping with the consensus nature blockchains.

Each ballot is protected by encryption and the encrypted result can be accessed via the blockchain. All ballots and intermediate events recorded on the blockchain cannot be altered. Every voter (or peer) can check whether their ballots were modified or correctly counted, as well as whether all valid ballots have been counted correctly. This allows for the detection of fraudulent ballots, and dishonest voters/dishonest counting. It is possible to detect cheating even if several voters and counters are involved in the same scheme. The blockchain network can use detection to penalize dishonest peers, so that no one will cheat. In the counting, invalid ballots, i.e. votes of dishonest peers, can be excluded

Votes cannot be revealed because each vote is broken into multiple ballots. Each ballot is encrypted using a random peer’s private key. The peer who encrypts each ballot can view it. A sufficient number of peers should collaborate together to reveal a vote. This is in line with blockchain’s consensus nature. Each peer counts the ballots encrypted with his or her private key, as only they can decrypt them. Once a peer has completed the counting, they must publish their partial results which can be checked by other peers. This information can be stored on the blockchain or broadcast to all peers. Once all votes have been counted correctly, the final result can then be calculated. Each peer can have one pair of homomorphic encryption keys and another pair with digital signature schemes. Each peer selects randomly a peer’s private key (encryption), to encrypt its own ballot, and a different key for each ballot. Then, each peer signs each ballot with their own signature (private key). Each ballot is encrypted so that only one peer can view the content and decrypt it. Every ballot is signed to verify authenticity.

“FIG. 2 shows an example of a blockchain configuration that can be used to perform voting according to some examples. Referring to FIG. FIG. 2 shows that the blockchain system 200 could include some common elements such as a group 280 of blockchain nodes, which can be assigned as peer nodes (peer blockchain nodes). 285 and 282, which are involved in the validation and transaction addition process (consensus). Any one of the Blockchain peer nodes (280) may initiate new transactions or seek to write to the Blockchain immutable Ledger 272. A copy of this ledger is stored on the Underpinning Physical Infrastructure 271 of the blockchain. 270 This configuration can include one or more applications 277 that are linked to APIs 276, which allow access to and execution of stored program/application codes (e.g. chain code and/or Smart Contracts) 275. These customized configurations are created by participants according to their needs and can control their state, receive external information, and maintain their own assets. This code can be deployed on any blockchain peer nodes as a transaction.

“The blockchain platform270 contains the different layers of blockchain data and services (e.g. cryptographic trust services, virtual execut environment) and the underpinning physical infrastructure needed to receive and store new transactions as well as provide access for auditors who are looking to access data entries. The blockchain layer 272 provides an interface to the virtual execution environment that is required to process program code and engage with the physical platform 271. To verify transactions and protect private information, cryptographic trust services 273 can be used.”

“The FIG. 2. may execute program/application code number 275 through the interfaces provided by blockchain platform270. This code can control the blockchain assets. It may store and transfer data and may be executed using the interfaces exposed by blockchain platform 270. Smart contracts 275 can be used to send reminders, update and/or other notifications that are subject to changes, updates, etc. Smart contracts can be used to identify access and authorization requirements as well as usage rules. One example is that a smart contract can be identified by peer nodes 280 and approved by them. If certain conditions are met, the nodes might reach consensus and allow the smart contract to become a transaction that is committed to the blockchain ledger 272. The consensus reached by peer nodes might require a series initialization operations to be approved and signed by the peers. The peers might identify the ballots 212 that have been authenticated and signed by all parties before they are enacted onto the blockchain. The information is then broadcast to all peer networks 214 for the appropriate consensus of voting. In the event that the results are accurate and all incorrect/invalid/dishonest information is removed, the peer nodes 280 may reach a consensus regarding the results of the vote.”

“FIG. “FIG. Referring to FIG. Referring to FIG. The peer’s public key 314, which is randomly chosen or based upon another selection algorithm, encrypts the ballot. The ballot is broadcast to other peers and the blockchain for any updates. All votes and ballot selections are submitted to all peers. Peer A can then verify the ballot, decrypt encrypted ballots using a key, and determine which ballots are valid 316. The peer’s public key 322 encrypts the ballots and counts them. All partial countings must be counted in order to confirm and identify invalid counting information 324. The broadcast includes the correct and invalid counting information as well as the updated invalid ballots. To determine the exact result, 332 can be determined by final counting 328.

“FIG. 4. illustrates a system signaling scheme for performing a vote procedure according to example embodiments. Referring to FIG. Referring to FIG. Operation: The peer’s ballots can be broadcast 412 to other peers or the blockchain 420. Other peers can broadcast their ballots 414 to other peers, which can then be shared with others. Peer 410 can receive all broadcast ballots 416 and synchronize this information. All ballots can be verified 418. Dishonest voters and invalid ballots 422 may also be shared with the Blockchain network. The partial counting can be shared with other 424 once the invalid information has been identified. For others to have access to the information, other peers might also share it 426. The countings can then be used to verify 428 the accuracy of the ballots. Invalid counting information may then be shared 432 and updated information from other sources 434. A final count 436 can now be performed to verify the accuracy of the data. The final results are broadcast by all 442 parties, and can be recorded on the blockchain 444.

“FIG. 5A shows an example flow diagram for performing a vote operation according to some examples. Referring to FIG. FIG. 5A shows an example of a method 500 for identifying one or several votes in a distributed vote configuration 512 and dividing each one into a plurality or partial votes so that each one or two votes contains two or more partial votes 514. The votes/ballots can be distributed randomly to a number of peer nodes that are associated with a blockchain 516. An initiating node 518 can receive a broadcast from each peer node based on a distributed count of the plurality partial votes. This method can also include receiving a plurality or partial count from each peer node. Each partial count is a distributed total of all partial votes. The initiating node 518 can receive a broadcast from each peer node based on a distributed tally. This method can also be used to verify the sum of all partial counts. The method will respond to identify the incorrect number of pluralitys of partial vote, correct any errors, and then discard the invalid partial votes. This method can also be used to count the remaining partial votes. After the excess votes have been discarded, the method will determine the vote result. The plurality encrypted partial votes are then stored on the blockchain using a randomly chosen public key that is associated with each of the plurality. A final count of all partial votes received may be done if none of the plurality are found to be dishonest.

“FIG. “FIG.5B” illustrates an alternative flow diagram for performing a vote operation according to example embodiments. Method 550 can identify one or several votes based upon one or multiple blockchain members 552, and divide each one or two votes into a plurality or partial votes 554, assigning the plurality or partial votes to one or many blockchain members based upon a stake held each member of each one of the one-or more blockchains members 556. Each blockchain member will receive a broadcast based in part on the total of the plurality or partial votes 558.

“In another example embodiment, different members of the blockchain may have a greater stake or exposure to blockchain transactions (i.e. transactions initiated, ownership decisions, consensus decisions etc.). Other members may have a greater stake or exposure to the blockchain transactions than others. The members with larger stakes are identified using a label or weight that indicates the relative worth of the member within that particular blockchain. An example is that an organization could represent half the members of the Blockchain and perform half the transactions, while the four to five other organizations collectively represent only half the blockchain. One or more of the leaders of the primary organisation may have a greater relative weight or status to other members of the blockchain. To equalize the difference between their stake and that of other members, members with higher stakes may receive more partial votes. An integer or another numerical value may identify the stake.

The above embodiments can be implemented in hardware, in computer programs executed by a processor or in firmware. A computer program can be embedded on a computer-readable medium such as a storage media. A computer program could, for example, reside in random access memory. ), flash memory or read-only memory (??ROM?). ), erasable, programmable read only memory (?EPROM) ), Electrically erasable, programmable read only memory (?EEPROM) Registers, registers, hard drive, a removable disc, a compact disk read only memory (?CDROM?),?EEPROM? ), or any other storage medium that is known to the art.

“An example storage medium could be connected to the processor so that the processor can read and write to the storage medium. Alternativly, the storage medium could be integrated with the processor. The application-specific integrated circuit (?ASIC?) may house the processor and storage medium. Alternativly, the storage medium and processor may be located as separate components. FIG. FIG. 6 shows an example of a computer system architecture 600 that may be used in or integrated into any of the components described above.

“FIG. “FIG. The computing node 600 can implement and/or perform any functionality described herein.

“In computing node 600 is a computer server/system 602, which can be used with many other general-purpose or special-purpose computing system environments. There are many well-known computing systems and environments that can be used with computer system/server 602, including but not limited to: personal computers, server computers, thin clients, thin clients, laptops, multiprocessor systems and microprocessor-based systems. Set top boxes, programmable consumer electronics. Network PCs, minicomputers, mainframe computer and distributed cloud computing environments that contain any of these systems or devices.

Computer system/server 602 can be described as a system that executes computer-executable instructions (such as program modules) and is executed by a computer. Program modules can include routines, programs and objects as well as components, logic, logic, data structures, and other data that are used to perform specific tasks or implement abstract data types. In distributed cloud computing environments, computer system/server 602 can be used to perform tasks that are carried out by remote processing devices linked via a communications network. Program modules can be stored in remote and local computer system storage media, including memory storage devices, in a distributed cloud computing environment.

“As shown at FIG. “6 computer system/server 602 is shown in cloud computing node 600 in the form a general-purpose computing devices. Computer system/server 602 components may include one or more processors, processing units 604, system memory 606 and a bus that links various components, including processor 604 to system memory 606.”

The bus can be one or more of the following types of bus structures: a memory bus, microchannel architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA), local bus and a processor. These architectures include Industry Standard Architecture, Micro Channel Architecture, Enhanced ISA, EISA, Video Electronics Standards Association, local bus, Video Component Interconnects, and Peripheral Communication Interconnects (PCI).

Computer system/server 602 usually includes a variety computer system readable media. These media can be any media that is available to computer system/server 602 and includes volatile and nonvolatile media, as well as removable and nonremovable media. In one embodiment, system memory 606 implements the flow charts of the other figures. System memory 606 may include computer-readable media, such as random memory (RAM 610) and/or cache memories 612. Computer system/server 602 may further include other removable/non-removable, volatile/non-volatile computer system storage media. Storage system 614, which is not shown, can be used to read from and write to non-removable and non-volatile magnetic media. It is commonly called a ‘hard drive?. A magnetic disk drive that can read from and write to a non-volatile magnetic disc (e.g., a “floppy disk”) is possible, although it is not shown. An optical disk drive can be used to read from and write to removable optical disks such as CD-ROMs, DVD-ROMs, or other optical media. Each can be connected to a bus via one or more data media interfaces. Memory 606 can include at most one program product, such as a set of program modules, that are designed to perform the functions of different embodiments of an application.

Program/utility 616 may store a set of (at least one!) program modules 618 in memory 606, by way of an example. This includes operating systems, one or more applications programs, other module programs, and program data. A networking environment may be implemented in each operating system, application program, or combination thereof. The functions and/or methods of different embodiments of an application are generally carried out by program modules 618.

Aspects of the present invention may also be included in a method, system, or product for computer programs, as will anyone skilled in the art. Aspects of the present invention may be implemented as a completely hardware embodiment or an entirely software embodiment (including micro-code, firmware, resident software, and so on). Or an embodiment that combines software and hardware aspects, which may be called a?circuit? ?module? ?module? Aspects of the present invention may also be embodied in a computer program product that is stored on one or more computer-readable mediums with computer-readable program code.

“Computer server/server 602 can also communicate with one or several external devices 620, such as a keyboard, display 622, and pointing device. One or more devices that allow a user interact with computer system/server 602. computer system/server 602 can communicate with other computing devices. This communication can be done via I/O interfaces 624. Computer system/server 602 still has the ability to communicate with one or several networks, such as a local network (LAN), general wide area network(WAN) and/or public network (e.g. the Internet) via network adapter (626). Network adapter 626, as shown in the illustration, communicates via bus 608 with other components of computer server 602. Other hardware and/or programs could be used with computer system/server 602 even though they are not shown. Examples include but aren’t limited to microcode, device drivers and redundant processing units. They could also be used in conjunction with computer system/server 602.

“An exemplary embodiment of at most one of a system and method has been shown in the accompanying drawings and described in detail in the foregoing description. However, it is clear that the application is not limited by the disclosed embodiments. It is also capable of many rearrangements, modifications and substitutions as defined and claimed in the following claims. The system can perform the functions shown in the figures by any combination of one or more modules or components. It may also be implemented in a distributed architecture that includes a transmitter, receiver, or a pair of them. One or more modules may perform all or part the functionality of individual modules. The functionality described in this document can be performed at different times and with respect to various events, whether internal or external to the components or modules. Information can also be sent between modules using at least one of the following: the Internet, the Internet Protocol network, a voice network or an Internet Protocol network. A wireless device, wired device, and/or multiple protocols are all possible. The messages that are sent and received by any module may be sent directly or via one or more modules.

“A?system’ is something that anyone skilled in the art can appreciate. A?system’ could be described as a personal computer or server, a console or a console, a console or a personal digital assistant (PDA), cell phone, tablet computing device or smartphone, or any combination of these devices. The functions described above are referred to as being performed by a “system”. This is not meant to limit the scope or limitations of the present application, but it is intended to illustrate one of many possible embodiments. Methods, systems, and apparatuses described herein can be implemented in both localized and distributed forms compatible with computing technology.

“It is important to note that not all system features are described here in modules. This is in order to emphasize their independence in implementation. A module could be implemented in a hardware circuit that includes custom very large scale integration (VLSI), gate arrays, off the shelf semiconductors like logic chips, transistors, and other discrete components. You can also implement a module in programmable hardware devices like field programmable gate arrangements, programmable array logics, programmable logic units, and the like.

“A module can also be implemented in software to allow execution by different types of processors. A unit of executable code can, for example, contain one or more physical blocks or logical blocks that include computer instructions. These instructions may be organized in a number of ways, such as object, procedure, function. The executables of an identified unit of executable code do not have to be physically located together. They may contain different instructions that are stored in different locations and, when combined logically, form the module. Modules can also be stored on computer-readable media, such as a hard drive, flash device or random access memory (RAM), tape or any other medium that stores data.

A module of executable software could contain one or more instructions and can be distributed across multiple code segments, between different programs, or across multiple memory devices. Similar to operational data, it can be identified and illustrated in modules. It may also be organized into any type of data structure and in any form. Operational data can be collected in one data set or distributed across multiple locations, including different storage devices. They may also exist at least partially as electronic signals within a system or network.

It will be clear that components of the invention, as shown in the figures, can be placed and designed in many different ways. The detailed descriptions of the embodiments are not meant to limit the scope or claim of the application. They only represent a few embodiments of that application.

“One with ordinary skill in art will quickly understand that the steps described above can be performed in a different order and/or with hardware elements that are not disclosed. Although the preferred embodiments have been described, it is obvious to those skilled in the art that there are many modifications, variations and other constructions.

“Preferred embodiments of this application have been described. However, it is to understand that these embodiments are only illustrative and the scope is to be determined solely by the appended Claims when considered with all equivalents and modifications (e.g. protocols, hardware devices etc.). thereto.”

Click here to view the patent on Google Patents.