WO2020138532A1 - Dynamic blind voting-based blockchain consensus method for internet of things environment - Google Patents

Dynamic blind voting-based blockchain consensus method for internet of things environment Download PDF

Info

Publication number
WO2020138532A1
WO2020138532A1 PCT/KR2018/016709 KR2018016709W WO2020138532A1 WO 2020138532 A1 WO2020138532 A1 WO 2020138532A1 KR 2018016709 W KR2018016709 W KR 2018016709W WO 2020138532 A1 WO2020138532 A1 WO 2020138532A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
voting
internet
blockchain
devices
Prior art date
Application number
PCT/KR2018/016709
Other languages
French (fr)
Korean (ko)
Inventor
조수환
박수용
Original Assignee
서강대학교 산학협력단
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 서강대학교 산학협력단 filed Critical 서강대학교 산학협력단
Publication of WO2020138532A1 publication Critical patent/WO2020138532A1/en

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Definitions

  • the present invention relates to Internet of Things (IoT) technology, and more specifically, to maintain and maintain data integrity in an Internet of Things environment composed of low-performance devices that are flexible to connect and disconnect from a network, and to reduce reliability from security threats that cause integrity breaches. It relates to a dynamic blind voting based blockchain consensus method for the IoT environment that implements a dynamic blind voting based blockchain consensus to ensure.
  • IoT Internet of Things
  • IITP Information & communications Technology Promotion
  • Internet of Things is a device that can be identified as a thing, Bluetooth (Bluetooth), Wi-Fi, LTE, Zigbee, NFC, and built-in various sensors and communication functions to connect in real time to connect things and things, people and things It means intelligent technologies and services that exchange information between them.
  • the current Internet of Things environment is in the form of fog, edge computing, a distributed environment that makes connections between devices in a cloud-based centralized environment due to problems such as connection control, scalability, large-scale data processing, and security of numerous devices. Is developing.
  • IBM proposed the Internet of Things blockchain concept as a project called ADET.
  • a blockchain-based Internet of Things peer-to-peer (Peer To Peer) network environment composed of IoT devices, clouds, and computers was proposed.
  • a consensus algorithm is a new issue in this IoT blockchain environment.
  • the blockchain consensus algorithm allows nodes to maintain the same transaction history (block) that is not forged in a distributed environment.
  • conventional consensus algorithms have been developed based on the electronic money system, and thus, many problems are inherent when applied to the Internet of Things.
  • IoT Internet of Things
  • the consensus algorithm must be able to maintain data integrity even when attempting to forge data from malicious attackers.
  • the present invention is a block chain based on dynamic blind voting to ensure reliability from security threats that cause integrity breaches by maintaining data integrity in an IoT environment composed of low-performance devices that are flexible and disconnected from the network.
  • the aim is to provide a dynamic blind voting-based blockchain consensus method for the IoT environment that implements consensus.
  • each of the devices constituting the blockchain network of the IoT environment selects a voting node using a transaction list. And, the first step of transmitting the voting information to the voting node device; A second step of receiving the voting information and propagating blocks to devices constituting the blockchain network; And a third step of each of the devices receiving the propagated block verifying the block, connecting the block to a blockchain storage if the block is valid, and ignoring the block if the block is invalid; It is characterized by having.
  • the present invention enables data recording by enabling block recording of devices participating in the network by implementing a dynamic blind voting-based blockchain consensus in an IoT environment in which the connection and disconnection from the network is flexible and consists of low-performance devices. Maintains the effect of ensuring reliability from security threats that cause integrity breaches.
  • FIG. 1 illustrates devices in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a device participation process in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an algorithm for device participation in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 4 is a diagram illustrating a voting negotiation process of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 5 is a diagram illustrating an algorithm for voting negotiation of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 6 is a diagram illustrating a process for re-voting of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an algorithm for re-voting negotiation of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
  • POW Proof of Work
  • the method refers to an algorithm in which the participant's stake is reflected in the block creation authority.
  • the equity proof method is a special transaction that locks up the cryptocurrency that it holds in the form of a deposit to become a validator that plays a role of block creation and verification. After that, the process of creating and verifying a new block is done by a specific'Consensus Algorithm' that allows all validators to participate.
  • specific consensus algorithms include'Chain-based proof of stake'and'BFT Style poof of stake'.
  • PBFT Practical Byzantine fault tolerance
  • This is a protocol that enables the entire system to operate stably despite system failures and malicious nodes.
  • replicas there is a primary node that acts as a leader in decision making, and multiple messages are broadcasted. Collect the resolution.
  • the present invention proposes a voting based algorithm considering a low performance device environment. It uses hash values and transactions based on blockchain history to collect a number of votes, and proposes a dynamic blind voting method to prevent tracking of elected devices.
  • the present invention includes a re-voting blind block consensus function in a piggy-back format for when a block consensus failure due to network delay and connection failure occurs.
  • ECDSA secp 2561 kl kurve
  • SHA 256 hashing
  • Merkle tree Merkle tree
  • the devices 1001 to 100N of the Internet of Things environment constitute a blockchain network, and a new device 200 may participate in the above-mentioned blockchain network.
  • the devices 1001 to 100N,200 select a device by an operation blind voting method, the elected device sets a block generation difficulty level according to the voting result, and generates a block according to the block generation difficulty level to generate other devices To propagate.
  • the device receiving the block performs verification of the block and stores the block in the internal blockchain storage.
  • the devices 1001 to 100N, 200 process the corresponding device as a failure node and perform re-voting if the elected device does not propagate the block or the received block is an invalid block.
  • FIG. 2 shows a network pre-visioning process in which a new device participates in a blockchain network
  • FIG. 3 illustrates a network pre-visioning algorithm in which a new device participates in a blockchain network.
  • the node mapping table is composed of an index number of a node, identification information for a device, a beer cellar, a verification key, and a network connection state of the corresponding node.
  • the device 200 participating in the network generates a key pair (signature key, verification key) using ECDSA (2561kl kurve) (step 300), a unique identification value and a beer place , Propagating the network participation information consisting of the node's verification key to the network (step 302).
  • Devices in the network record and store received network participation information in a node mapping table (steps 304 and 306). This completes network provisioning for consensus.
  • FIG. 4 is a diagram illustrating a voting negotiation process of devices in the Internet of Things environment according to a preferred embodiment of the present invention
  • FIG. 5 illustrates an algorithm for voting negotiation of devices in the Internet of Things environment according to a preferred embodiment of the present invention It is one drawing.
  • each of the devices constituting the network checks the block creation condition, which confirms whether the block creation condition is satisfied by the number of transactions and the size of the block (capacity of a certain transaction). (Step 400).
  • each of the devices reads a pre-stored transaction list, hashs the transaction list into an even number of SHA 256, and completes the merkle tree through repetitive hashes (steps 402 and 404).
  • the Merkle Tree feature if all nodes have the same transaction, the Merkle Tree root value is the same for all nodes. As a result, when a malicious attacker falsifies the transaction, the Merkle Tree root hash value is wrong.
  • each of the devices generates a voting f (last voting block hash value) by adding the previous block hash value to the merkle tree root hash value (step 406).
  • a device according to the value is set to Voting n , that is, a voting node (step 408). Thereafter, each of the devices signs a device corresponding to Voting n with a private key and transmits voting information (step 410).
  • the voting node device receives voting information from other devices, checks whether a voting result is valid, and determines the difficulty of generating a block according to the voting result (steps 412 and 414). Here, if even one vote is received from another node, a block is generated, and the validity verification is determined according to whether the vote is received or the signature of the corresponding vote is verified.
  • the difficulty of generating the block is determined to correspond to the voting result, and a device that receives a plurality of votes can generate a fast block and a device that receives less votes can generate a block slowly.
  • a malicious node attempts to forge data, it is possible to forge more than 51% of the entire network.
  • the device When the block generation difficulty is determined, the device generates a block according to the block generation difficulty, and propagates the generated block to devices in the network (steps 416 and 418).
  • the rest of the devices in the network verify the received block and, if the block is valid, connect the received block to the previous block and store it in the blockchain storage (steps 422,424,426). Otherwise, if the block is invalid, the rest of the devices in the network ignore the received block (step 428) and perform a re-voting procedure (step 430). In addition, if a block is not received for a predetermined time or more, the remaining devices in the network perform a re-voting procedure (step 430).
  • FIG. 6 is a diagram illustrating a process for re-voting of devices in the Internet of Things environment according to a preferred embodiment of the present invention
  • FIG. 7 illustrates an algorithm for re-voting of devices in the Internet of Things environment according to a preferred embodiment of the present invention It is one drawing.
  • each of the devices constituting the network checks a block creation condition when a blind re-voting is requested, which is a block creation condition based on the number of transactions and the size of the block (capacity of a certain transaction). Check if this is satisfied (500,502 steps).
  • each of the devices converts a device that is a previously selected voting node to a failure and elects a new device (step 504).
  • Each of the devices reads a pre-stored transaction list, hashs the transaction list in even pairs, SHA 256, and completes the Merkle tree through repetitive hashes (steps 506 and 508).
  • the Merkle Tree feature if all nodes have the same transaction, the Merkle Tree root value is the same for all nodes. As a result, when a malicious attacker falsifies the transaction, the Merkle Tree root hash value is wrong.
  • each of the devices generates a voting f (last voting block hash value) by adding the previous block hash value to the merkle tree root hash value (step 510).
  • Voting n a device according to the value is set to Voting n , that is, a voting node (step 512). Thereafter, each of the devices transmits the voting information after signing the private key to the device corresponding to Voting n (step 514).
  • the voting node device receives voting information from other devices, checks whether the voting result is valid, and determines the difficulty of generating a block according to the voting result (steps 516,518).
  • the difficulty of generating the block is determined to correspond to the voting result, and a device that receives a plurality of votes can generate a fast block and a device that receives less votes can generate a block slowly.
  • a malicious node attempts to forge data, it is possible to forge more than 51% of the entire network.
  • integrity is maintained when there are more than 51% of honest nodes in the blockchain network, and voting results using Merkle Tree are different when forgery of malicious node data.
  • malicious nodes small numbers
  • receive fewer votes and fewer votes increase the difficulty of block creation, thereby suppressing the creation of forged blocks.
  • the device When the block generation difficulty is determined, the device generates a block according to the block generation difficulty, and propagates the generated block to devices in the network (steps 520 and 522).
  • the rest of the devices in the network verify the received block and, if the block is valid, connect the received block to the previous block and store it in the blockchain storage (steps 526,528,530). Otherwise, if the block is invalid, the rest of the devices in the network ignore the received block (step 532) and perform a revoting procedure (step 534). In addition, if a block is not received for a predetermined time or more, the remaining devices in the network perform a re-voting procedure (step 534).
  • a device controls a network connection failure in an IoT environment through a state check of devices and a piggyback flow control method through a node mapping table. Also, even if the device fails to connect to the network, block consensus across the network can be finally achieved.
  • the present invention implements an agreement by each device in the Internet of Things environment voting based on the distributed ledger history and transaction content of the block and generating a block according to the voting result.
  • the voting message exchange method and the bona fide node are given a low level of difficulty in creating blocks, the availability in low-performance devices is high.
  • the Byzantine general problem enables a correct majority of votes to be collected when there are malicious nodes in the blockchain network.
  • each node independently votes. Since this is a blind way of not knowing which node will be elected, it can prevent an attack by traceability from a malicious node.
  • the node selected from the voting is a node that receives a number of votes, and the conditions of block generation are also easily given. Malicious nodes do not receive a table or get a small number of votes, so block generation is suppressed. This eventually results in a consensus on the block that received the majority of votes. Also, if a malicious node is elected, the vote is ignored through re-voting.
  • the consensus algorithm according to the present invention maintains data integrity if F+1 (more than 51%) nodes exist when there are F malicious nodes.
  • the transaction processing speed of the present invention experiments were performed in the following environment. That is, the consensus algorithm of the present invention was applied to the blockchain platform developed by "Blockchain-based IoT reliability control system control development project".
  • the Logchain is an advanced blockchain platform in the IoT environment.
  • the experimental environment consisted of 5 IoT devices (5 Raspberry Pi), 2 cloud nodes (2 Windows Hyperv), and 10 PC nodes, consisting of a blockchain network of the Internet of Things environment.
  • the number of transaction processing and the block generation speed were measured for 30 transactions per block.
  • the present invention has proposed a blockchain consensus algorithm considering the Internet of Things. Unlike the conventional electronic money consensus algorithm, in the IoT environment, it is necessary to solve the Byzantine general problem and ensure IoT data integrity while satisfying the device's network connection failure, availability on a low-performance device, and high transaction processing speed.
  • the present invention proposes a blind voting method by voting based on a distributed ledger history, and the elected device varies the block creation conditions according to the voting results. This eliminates the traceability of malicious devices and suppresses block generation. Also, considering the failure of the device, the network status is checked through the node mapping table, and consensus is possible through re-voting.
  • the present invention will maintain data integrity in the Internet of Things environment based on the consensus algorithm to ensure reliability from security threats that cause integrity breaches.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)

Abstract

A dynamic blind voting-based blockchain consensus method for an Internet of Things environment, according to the present invention, comprises: a first step wherein each of devices constituting a blockchain network of an Internet of Things environment selects a voting node by using a transaction list and transmits voting information to a device which is the voting node; a second step wherein the device which has received the voting information generates a block and propagates the block to the devices constituting the blockchain network; and a third step wherein each of the devices which has received the propagated block verifies the block, connects and stores the block to and in a blockchain storage when the block is valid, and ignores the block when the block is not valid.

Description

사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법Blockchain consensus method based on dynamic blind voting for IoT environment
본 발명은 사물 인터넷 기술에 관한 것으로, 더욱 상세하게는 네트워크와의 연결 및 해제가 유연하며 저성능의 디바이스들로 구성된 사물 인터넷 환경에서 데이터 무결성을 유지하여 무결성 침해 발생을 일으키는 보안 위협들로부터 신뢰성을 보장할 수 있도록 동적 블라인드 투표기반의 블록체인 합의를 이행하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법에 관한 것이다.The present invention relates to Internet of Things (IoT) technology, and more specifically, to maintain and maintain data integrity in an Internet of Things environment composed of low-performance devices that are flexible to connect and disconnect from a network, and to reduce reliability from security threats that cause integrity breaches. It relates to a dynamic blind voting based blockchain consensus method for the IoT environment that implements a dynamic blind voting based blockchain consensus to ensure.
This work was partly supported by Institute for Information & communications Technology Promotion(IITP) grant funded by the Korea government(MSIT) (No.2017-0-00325,blockchain based IoT reliability mangement system development).This work was partly supported by Institute for Information & communications Technology Promotion (IITP) grant funded by the Korea government(MSIT) (No.2017-0-00325,blockchain based IoT reliability mangement system development).
사물 인터넷(Internet of Things)은 사물로 식별할 수 있는 디바이스에 블루투스(bluetooth), Wi-Fi, LTE, Zigbee, NFC 등 다양한 센서와 통신 기능을 내장하여 실시간으로 연결하여 사물과 사물, 사람과 사물 사이의 정보를 주고받는 지능형 기술과 서비스를 의미한다. Internet of Things (Internet of Things) is a device that can be identified as a thing, Bluetooth (Bluetooth), Wi-Fi, LTE, Zigbee, NFC, and built-in various sensors and communication functions to connect in real time to connect things and things, people and things It means intelligent technologies and services that exchange information between them.
현재의 사물 인터넷 환경은 수많은 디바이스의 연결 제어, 확장성, 대용량의 데이터 처리, 보안 등의 문제로 클라우드 기반의 중앙 집중형 환경에서 디바이스사이의 연결을 이루는 분산형 환경인 포그, 엣지 컴퓨팅의 형태로 발전하고 있다. The current Internet of Things environment is in the form of fog, edge computing, a distributed environment that makes connections between devices in a cloud-based centralized environment due to problems such as connection control, scalability, large-scale data processing, and security of numerous devices. Is developing.
그리고 분산된 사물 인터넷 환경에서의 신뢰성 및 보안을 위한 프로토콜로서 블록체인(blockchain)의 기술 적용 가능성도 제시되고 있다. 실제로 IBM에서는 ADET라는 프로젝트로 사물 인터넷 블록체인 개념을 제시하였다. 즉, 인터넷 블록체인 환경으로 사물 디바이스, 클라우드, 컴퓨터 등으로 구성한 블록체인 기반의 사물 인터넷 피어 투 피어(Peer To Peer) 네트워크 환경을 제시하였다. In addition, the possibility of application of blockchain technology as a protocol for reliability and security in a distributed IoT environment has been proposed. In fact, IBM proposed the Internet of Things blockchain concept as a project called ADET. In other words, as an Internet blockchain environment, a blockchain-based Internet of Things peer-to-peer (Peer To Peer) network environment composed of IoT devices, clouds, and computers was proposed.
이러한 사물 인터넷 블록체인 환경에서 새롭게 이슈되는 사항은 합의 알고리즘이다. 블록체인 합의 알고리즘은 분산된 환경에서 노드들이 위변조되지 않는 동일한 거래내역(블록)을 유지할 수 있도록 한다. 그러나 종래의 합의 알고리즘들은 전자화폐 시스템을 기반으로 개발되어 있어 사물 인터넷 환경에 적용시 많은 문제들이 내재되어 있었다. A consensus algorithm is a new issue in this IoT blockchain environment. The blockchain consensus algorithm allows nodes to maintain the same transaction history (block) that is not forged in a distributed environment. However, conventional consensus algorithms have been developed based on the electronic money system, and thus, many problems are inherent when applied to the Internet of Things.
좀더 설명하면, 사물 인터넷 환경에서의 합의 알고리즘의 문제는 다음과 같다. In more detail, the problem of the consensus algorithm in the Internet of Things is as follows.
<디바이스의 네트워크 연결실패><Device network connection failure>
먼저, 사물 인터넷 환경은 무선 네트워크의 환경, 디바이스의 교체, 이동형 환경으로 인해 디바이스의 네트워크 연결이 끊어지는 경우가 있으며, 이와같이 디바이스의 네트워크의 연결이 끊어지는 경우에도 합의 알고리즘은 수행되어야 하는 문제가 있었다. First, in the IoT environment, there are cases in which the network connection of the device is disconnected due to the environment of the wireless network, the replacement of the device, and the mobile environment, and even when the network of the device is disconnected, the consensus algorithm must be performed. .
<저성능 디바이스에서의 가용성><Availability on low-performance devices>
그리고 사물 인터넷 환경은 저성능의 디바이스로 이루어져 있다. 이러한 저성능의 디바이스는 합의 알고리즘을 수행하기 위해 높은 연산을 수행하는 데에는 한계가 있었다. And the Internet of Things environment consists of low-performance devices. These low-performance devices have limitations in performing high computations to perform consensus algorithms.
<트랜잭션 처리속도><Transaction processing speed>
또한 사물 인터넷 환경은 많은 양의 데이터 처리와 측정된 데이터를 기반으로 디바이스의 제어를 이행하므로 높은 트랜잭션 처리율이 요구되었다. In addition, the Internet of Things (IoT) environment required control of devices based on a large amount of data processing and measured data, so high transaction throughput was required.
<데이터의 무결성><data integrity>
또한 사물 인터넷으로 구성된 블록체인 네트워크 환경에서 합의 알고리즘은 악의적인 공격자로부터의 데이터 위변조 시도에도 데이터 무결성을 유지할 수 있어야 한다. In addition, in a blockchain network environment composed of the Internet of Things, the consensus algorithm must be able to maintain data integrity even when attempting to forge data from malicious attackers.
이와 같이 종래에는 네트워크와의 연결 및 해제가 유연하며 저성능의 디바이스들로 구성된 사물 인터넷 환경에서 데이터 무결성을 유지하여 무결성 침해 발생을 일으키는 보안 위협들로부터 신뢰성을 보장할 수 있는 합의 알고리즘의 개발이 절실하게 요망되었다.As described above, it is urgently needed to develop a consensus algorithm that can ensure reliability from security threats that cause integrity breaches by maintaining data integrity in an IoT environment composed of low-performance devices that are flexible and disconnected from the network. Was desired.
본 발명은 네트워크와의 연결 및 해제가 유연하며 저성능의 디바이스들로 구성된 사물 인터넷 환경에서 데이터 무결성을 유지하여 무결성 침해 발생을 일으키는 보안 위협들로부터 신뢰성을 보장할 수 있도록 동적 블라인드 투표기반의 블록체인 합의를 이행하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법을 제공하는 것을 그 목적으로 한다.The present invention is a block chain based on dynamic blind voting to ensure reliability from security threats that cause integrity breaches by maintaining data integrity in an IoT environment composed of low-performance devices that are flexible and disconnected from the network. The aim is to provide a dynamic blind voting-based blockchain consensus method for the IoT environment that implements consensus.
상기한 목적을 달성하기 위한 본 발명에 따르는 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법은, 사물 인터넷 환경의 블록체인 네트워크를 구성하는 디바이스들 각각이 트랜잭션 리스트를 이용하여 투표노드를 선출하고, 상기 투표노드인 디바이스로 투표정보를 전송하는 제1단계; 상기 투표정보를 수신받은 디바이스는 블록을 생성하여 상기 블록체인 네트워크를 구성하는 디바이스들로 전파하는 제2단계; 및 상기 전파되는 블록을 수신받은 디바이스들 각각은 상기 블록을 검증하고, 상기 블록이 유효하면 블록체인 저장소에 블록을 연결하여 저장하고, 상기 블록이 유효하지 않으면 상기 블록을 무시하는 제3단계;를 구비함을 특징으로 한다. In order to achieve the above object, the dynamic blind voting-based blockchain consensus method for the IoT environment according to the present invention, each of the devices constituting the blockchain network of the IoT environment selects a voting node using a transaction list. And, the first step of transmitting the voting information to the voting node device; A second step of receiving the voting information and propagating blocks to devices constituting the blockchain network; And a third step of each of the devices receiving the propagated block verifying the block, connecting the block to a blockchain storage if the block is valid, and ignoring the block if the block is invalid; It is characterized by having.
본 발명은 네트워크와의 연결 및 해제가 유연하며 저성능의 디바이스들로 구성된 사물 인터넷 환경에서 디바이스들이 동적 블라인드 투표기반의 블록체인 합의를 이행하여 네트워크에 참여한 디바이스들의 블록기록을 가능하게 하여 데이터 무결성을 유지하여 무결성 침해 발생을 일으키는 보안 위협들로부터 신뢰성을 보장할 수 있게 하는 효과를 야기한다.The present invention enables data recording by enabling block recording of devices participating in the network by implementing a dynamic blind voting-based blockchain consensus in an IoT environment in which the connection and disconnection from the network is flexible and consists of low-performance devices. Maintains the effect of ensuring reliability from security threats that cause integrity breaches.
도 1은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들을 도시한 도면. 1 illustrates devices in an Internet of Things environment according to a preferred embodiment of the present invention.
도 2는 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스 참여과정을 도시한 도면. 2 is a diagram illustrating a device participation process in an Internet of Things environment according to a preferred embodiment of the present invention.
도 3은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스 참여를 위한 알고리즘을 예시한 도면. 3 is a diagram illustrating an algorithm for device participation in an Internet of Things environment according to a preferred embodiment of the present invention.
도 4는 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 투표 협의 과정을 도시한 도면. 4 is a diagram illustrating a voting negotiation process of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
도 5는 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 투표 협의를 위한 알고리즘을 예시한 도면. 5 is a diagram illustrating an algorithm for voting negotiation of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
도 6은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 재투표 협의 과정을 도시한 도면. FIG. 6 is a diagram illustrating a process for re-voting of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
도 7은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 재투표 협의를 위한 알고리즘을 예시한 도면. 7 is a diagram illustrating an algorithm for re-voting negotiation of devices in an Internet of Things environment according to a preferred embodiment of the present invention.
본 발명의 설명에 앞서 몇가지 관련 기술에 대해 설명한다. Prior to the description of the present invention, several related technologies will be described.
먼저, 작업 증명(POW:Proof of work)은 블록생성을 하고자 하는 노드들이 특정한 해쉬값(Nonce)값을 찾는 연산을 수행하여 작업을 수행했음을 증명하는 합의 방법이다. 이는 높은 연산을 통해 악의적인 공격자에게 기회 비용을 들이고, 가장 긴 블록체인(longest blockchain)을 채택한다. First, Proof of Work (POW) is a consensus method that proves that nodes that want to create a block perform a task by performing an operation to find a specific hash value (Nonce). It costs opportunity to a malicious attacker through high computation and adopts the longest blockchain.
그리고 지분 증명(Proof of stake) 방식은 참여자의 소유 지분(stake)이 블록생성 권한에 반영되는 알고리즘을 말한다. 상기 지분증명 방식은 블록생성 및 검증의 역할을 하는 검증자(Validator)가 되기 위해 자신이 보유하고 있는 암호화폐를 보증금의 형태로 락업하는 특별한 거래(Special Transaction)를 한다. 그 이후에는 새로운 블록을 생성하고 검증하는 절차는 모든 검증자(Validator)가 참여할 수 있도록 하는 특정 '합의 알고리즘 (Consensus Algorithm)'에 의해 이루어진다. 여기서 특정 합의 알고리즘은 'Chain-based proof of stake','BFT Style poof of stake' 등이 있다. And Proof of stake The method refers to an algorithm in which the participant's stake is reflected in the block creation authority. The equity proof method is a special transaction that locks up the cryptocurrency that it holds in the form of a deposit to become a validator that plays a role of block creation and verification. After that, the process of creating and verifying a new block is done by a specific'Consensus Algorithm' that allows all validators to participate. Here, specific consensus algorithms include'Chain-based proof of stake'and'BFT Style poof of stake'.
그리고 PBFT(Practical Byzantine fault tolerance)는 비잔틴 장군문제를 해결하기 위한 실질적인 프로토콜이다. 이는 시스템의 실패, 악의적인 노드가 있음에도 불구하고 전체 시스템이 안정적으로 동작하도록 하는 프로토콜로서, 리플리카 중 의사결정의 리더 역할을 하는 프라이머리 노드(Primary node)가 있으며 두번의 메시지 브로드캐스팅을 통해 다수의 의결을 모은다.And PBFT (Practical Byzantine fault tolerance) is a practical protocol for solving the Byzantine general problem. This is a protocol that enables the entire system to operate stably despite system failures and malicious nodes. Among replicas, there is a primary node that acts as a leader in decision making, and multiple messages are broadcasted. Collect the resolution.
본 발명은 저성능의 디바이스 환경을 고려한 투표 기반의 알고리즘을 제안한다. 이는 다수의 의결을 모으기 위해 블록체인 내역기반의 해쉬값과 트랜잭션들을 사용하며, 선출된 디바이스의 추적을 방지하기 위해 동적 블라인드 투표 방식을 제안한다. The present invention proposes a voting based algorithm considering a low performance device environment. It uses hash values and transactions based on blockchain history to collect a number of votes, and proposes a dynamic blind voting method to prevent tracking of elected devices.
또한 본 발명은 네트워크 지연 및 연결 실패에 의한 블록 합의 실패가 일어났을 때를 위해 피기백(piggy-back) 형식의 재투표 블라인트 블록 합의 기능을 포함한다. In addition, the present invention includes a re-voting blind block consensus function in a piggy-back format for when a block consensus failure due to network delay and connection failure occurs.
또한 본 발명에서는 서명 검증을 위한 ECDSA(secp 2561 kl kurve), 해쉬화를 위한 SHA 256, 머클트리(Merkle tree)를 이용한다. In addition, in the present invention, ECDSA (secp 2561 kl kurve) for signature verification, SHA 256 for hashing, and Merkle tree are used.
본 발명에 따르는 알고리즘을 설명하기 위한 표기법은 아래의 표 1과 같다. The notation for describing the algorithm according to the present invention is shown in Table 1 below.
Figure PCTKR2018016709-appb-T000001
Figure PCTKR2018016709-appb-T000001
이제 상기한 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법을 도면을 참조하여 상세히 설명한다. Now, a method for consensus based on a dynamic blind voting for a IoT environment according to a preferred embodiment of the present invention will be described in detail with reference to the drawings.
<사물 인터넷 환경의 디바이스들의 구성><Composition of devices in the Internet of Things>
도 1은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들을 도시한 도면이다. 상기 사물 인터넷 환경의 디바이스들(1001~100N)은 블록체인 네트워크를 구성하며, 상기한 블록체인 네트워크에는 새로운 디바이스(200)가 참여할 수도 있다. 1 is a diagram illustrating devices in an Internet of Things environment according to a preferred embodiment of the present invention. The devices 1001 to 100N of the Internet of Things environment constitute a blockchain network, and a new device 200 may participate in the above-mentioned blockchain network.
상기 디바이스들(1001~100N,200)은 동작 블라인드 투표 방식으로 어느 한 디바이스를 선출하고, 선출된 디바이스는 투표결과에 따라 블록생성 난이도를 설정하고, 블록생성 난이도에 따라 블록을 생성하여 다른 디바이스들로 전파한다. 상기 블록을 수신한 디바이스는 블록에 대한 검증을 이행하고 해당 블록을 내부의 블록체인 저장소에 저장한다. The devices 1001 to 100N,200 select a device by an operation blind voting method, the elected device sets a block generation difficulty level according to the voting result, and generates a block according to the block generation difficulty level to generate other devices To propagate. The device receiving the block performs verification of the block and stores the block in the internal blockchain storage.
또한 상기 디바이스들(1001~100N,200)은 선출된 디바이스가 블록을 전파하지 않거나, 수신된 블록이 유효하지 않은 블록이면 해당 디바이스를 실패노드로 처리하고 재투표를 이행한다. In addition, the devices 1001 to 100N, 200 process the corresponding device as a failure node and perform re-voting if the elected device does not propagate the block or the received block is an invalid block.
<사물 인터넷 환경의 디바이스 참여과정><Device Participation Process in Internet of Things>
이제 사물 인터넷 환경의 디바이스들(1001~100N)이 구성하는 블록체인 네트워크에 새로운 디바이스가 참여하는 네트워크 프리비저닝 과정을 설명한다. 도 2는 블록체인 네트워크에 새로운 디바이스가 참여하는 네트워크 프리비저닝 과정을 나타낸 것이고, 도 3은 블록체인 네트워크에 새로운 디바이스가 참여하는 네트워크 프리비저닝 알고리즘을 예시한 것이다. Now, a network pre-visioning process in which a new device participates in a blockchain network constituted by devices 1001 to 100N in the Internet of Things environment will be described. 2 shows a network pre-visioning process in which a new device participates in a blockchain network, and FIG. 3 illustrates a network pre-visioning algorithm in which a new device participates in a blockchain network.
먼저, 상기 사물 인터넷 환경의 디바이스들은 합의 검증과 커뮤니케이션을 위한 노드 매핑 테이블을 저장하고 이를 관리한다. 상기 노드 매핑 테이블은 표 2에 도시한 바와 같이 노드의 인덱스 숫자와 디바이스에 대한 식별정보, 맥주소, 검증키, 해당 노드의 네트워크 연결 상태로 구성된다. First, devices in the Internet of Things environment store and manage node mapping tables for consensus verification and communication. As shown in Table 2, the node mapping table is composed of an index number of a node, identification information for a device, a beer cellar, a verification key, and a network connection state of the corresponding node.
Figure PCTKR2018016709-appb-T000002
Figure PCTKR2018016709-appb-T000002
상기 도 2 및 도 3을 참조하면, 상기 네트워크에 참여하는 디바이스(200)는 ECDSA(2561kl kurve)를 사용하여 키쌍(서명키, 검증키)를 생성하고(300단계), 고유 식별값 및 맥주소, 노드의 검증키로 구성되는 네트워크 참여정보를 상기 네트워크에 전파한다(302단계). 상기 네트워크의 디바이스들은 수신받은 네트워크 참여정보를 노드 매핑 테이블에 기록하여 저장한다(304,306단계). 이로서 합의를 위한 네트워크 프리비저닝이 완료된다. 2 and 3, the device 200 participating in the network generates a key pair (signature key, verification key) using ECDSA (2561kl kurve) (step 300), a unique identification value and a beer place , Propagating the network participation information consisting of the node's verification key to the network (step 302). Devices in the network record and store received network participation information in a node mapping table (steps 304 and 306). This completes network provisioning for consensus.
<사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의과정><Blockchain consensus process based on dynamic blind voting for the Internet of Things>
이제 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의과정을 설명한다. 도 4는 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 투표 협의 과정을 도시한 도면이고, 도 5는 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 투표 협의를 위한 알고리즘을 예시한 도면이다. Now, a blockchain consensus process based on dynamic blind voting for an IoT environment according to a preferred embodiment of the present invention will be described. 4 is a diagram illustrating a voting negotiation process of devices in the Internet of Things environment according to a preferred embodiment of the present invention, and FIG. 5 illustrates an algorithm for voting negotiation of devices in the Internet of Things environment according to a preferred embodiment of the present invention It is one drawing.
상기 도 4 및 도 5를 참조하면, 상기 네트워크를 구성하는 디바이스들 각각은 블록생성 조건을 확인하며, 이는 트랜잭션의 개수, 블록의 크기(일정 트랜잭션의 용량)에 의해 블록생성 조건이 만족되는지 확인한다(400단계). 4 and 5, each of the devices constituting the network checks the block creation condition, which confirms whether the block creation condition is satisfied by the number of transactions and the size of the block (capacity of a certain transaction). (Step 400).
이후 상기 디바이스들 각각은 미리 저장된 트랜잭션 리스트를 독출하고, 상기 트랜잭션 리스트를 짝수개의 쌍을 이루어 SHA 256으로 해쉬화를 하며, 반복적인 해쉬를 통해 머클트리를 완성한다(402,404단계). 여기서, 머클트리의 특징에 따르면 모든 노드가 똑같은 트랜잭션을 가지고 있다면, 머클트리 루트 값은 모든 노드가 같다. 이에 악의적인 공격자가 트랜잭션을 위변조하게 되면, 머클트리 루트 해쉬값이 틀려지게 된다. Thereafter, each of the devices reads a pre-stored transaction list, hashs the transaction list into an even number of SHA 256, and completes the merkle tree through repetitive hashes (steps 402 and 404). Here, according to the Merkle Tree feature, if all nodes have the same transaction, the Merkle Tree root value is the same for all nodes. As a result, when a malicious attacker falsifies the transaction, the Merkle Tree root hash value is wrong.
이후 상기 디바이스들 각각은 상기 머클 트리 루트 해쉬값에 이전 블록해쉬값을 더하여 Votingf (최종 투표 블록 해쉬값)을 생성한다(406단계).Thereafter, each of the devices generates a voting f (last voting block hash value) by adding the previous block hash value to the merkle tree root hash value (step 406).
상기한 Votingf에 모듈러(modular) 연산을 하여 1을 더한 후 그 값에 따르는 디바이스를 Votingn, 즉 투표노드로 설정한다(408단계). 이후 상기 디바이스들 각각은 Votingn에 해당하는 디바이스에게 개인키로 서명한 후 투표정보를 전송한다(410단계).After a modular operation is added to the above Voting f to add 1, a device according to the value is set to Voting n , that is, a voting node (step 408). Thereafter, each of the devices signs a device corresponding to Voting n with a private key and transmits voting information (step 410).
상기 투표노드인 디바이스는 다른 디바이스들로부터의 투표정보를 제공받아 투표결과가 유효한지를 체크하고, 상기 투표결과에 따라 블록 생성 난이도를 결정한다(412,414단계). 여기서, 다른 노드로부터 한표라도 받게 되면, 블록을 생성하며, 유효성 검증은 표를 받았는지 해당 투표의 서명검증을 했는지 여부에 따라 결정된다. The voting node device receives voting information from other devices, checks whether a voting result is valid, and determines the difficulty of generating a block according to the voting result (steps 412 and 414). Here, if even one vote is received from another node, a block is generated, and the validity verification is determined according to whether the vote is received or the signature of the corresponding vote is verified.
상기 블록 생성 난이도는 투표결과에 대응되게 결정되며 다수의 투표를 받은 디바이스는 빠른 블록을 생성하고 적게 투표를 받은 디바이스는 느리게 블록을 생성할 수 있게 한다. 악의적인 노드가 데이터의 위변조를 시도할 때에는 전체 네트워크의 51%이상을 위변조해야 가능하다. The difficulty of generating the block is determined to correspond to the voting result, and a device that receives a plurality of votes can generate a fast block and a device that receives less votes can generate a block slowly. When a malicious node attempts to forge data, it is possible to forge more than 51% of the entire network.
상기의 블록 생성 난이도가 결정되면, 상기 디바이스는 상기 블록 생성 난이도에 따라 블록을 생성하고, 생성된 블록을 네트워크의 디바이스들로 전파한다(416,418단계). When the block generation difficulty is determined, the device generates a block according to the block generation difficulty, and propagates the generated block to devices in the network (steps 416 and 418).
상기 네트워크의 나머지 디바이스들은 블록이 수신되면(420단계), 수신된 블록을 검증하여 블록이 유효하면 수신된 블록을 이전 블록에 연결하여 블록체인 저장소에 저장한다(422,424,426단계). 이와 달리 블록이 유효하지 않으면 상기 네트워크의 나머지 디바이스들은 수신된 블록을 무시하고(428단계) 재투표 절차를 이행한다(430단계). 또한 미리 정해둔 시간이상 블록이 수신되지 않는다면 상기 네트워크의 나머지 디바이스들은 재투표 절차를 수행한다(430단계).When the block is received (step 420), the rest of the devices in the network verify the received block and, if the block is valid, connect the received block to the previous block and store it in the blockchain storage (steps 422,424,426). Otherwise, if the block is invalid, the rest of the devices in the network ignore the received block (step 428) and perform a re-voting procedure (step 430). In addition, if a block is not received for a predetermined time or more, the remaining devices in the network perform a re-voting procedure (step 430).
<사물 인터넷 환경을 위한 동적 블라인드 재투표기반의 블록체인 합의과정><Blockchain consensus process based on dynamic blind re-voting for the Internet of Things>
이제 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경을 위한 동적 블라인드 재투표기반의 블록체인 합의과정을 설명한다. 여기서, 본 발명에서 합의 실패에 대한 경우는 블록 전파 실패(노드의 충돌, 네트워크 연결 문제)와 블록 생성 노드가 악의적인 공격자인 경우이므로, 합의 실패에 대한 재투표 합의를 수행하며, 상기 재투표 합의 방식에는 피기백(Piggy-back) 흐름 제어 방식을 사용한다. Now, a blockchain consensus process based on dynamic blind re-voting for an Internet of Things environment according to a preferred embodiment of the present invention will be described. Here, in the present invention, in the case of consensus failure, since block propagation failure (node collision, network connection problem) and the block generating node are malicious attackers, re-voting agreement on the consensus failure is performed. Piggy-back flow control method is used.
도 6은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 재투표 협의 과정을 도시한 도면이며, 도 7은 본 발명의 바람직한 실시예에 따르는 사물 인터넷 환경의 디바이스들의 재투표 협의를 위한 알고리즘을 예시한 도면이다. FIG. 6 is a diagram illustrating a process for re-voting of devices in the Internet of Things environment according to a preferred embodiment of the present invention, and FIG. 7 illustrates an algorithm for re-voting of devices in the Internet of Things environment according to a preferred embodiment of the present invention It is one drawing.
상기 도 6 및 도 7을 참조하면, 상기 네트워크를 구성하는 디바이스들 각각은 블라인드 재투표가 요청되면 블록생성 조건을 확인하며, 이는 트랜잭션의 개수, 블록의 크기(일정 트랜잭션의 용량)에 의해 블록생성 조건이 만족되는지 확인한다(500,502단계). Referring to FIGS. 6 and 7, each of the devices constituting the network checks a block creation condition when a blind re-voting is requested, which is a block creation condition based on the number of transactions and the size of the block (capacity of a certain transaction). Check if this is satisfied (500,502 steps).
이후 상기 디바이스들 각각은 이전에 선출했던 투표노드인 디바이스를 실패로 변환하고 새로운 디바이스를 선출한다(504단계). 상기 디바이스들 각각은 미리 저장된 트랜잭션 리스트를 독출하고, 상기 트랜잭션 리스트를 짝수개의 쌍을 이루어 SHA 256으로 해쉬화를 하며, 반복적인 해쉬를 통해 머클트리를 완성한다(506,508단계). 여기서, 머클트리의 특징에 따르면 모든 노드가 똑같은 트랜잭션을 가지고 있다면, 머클트리 루트 값은 모든 노드가 같다. 이에 악의적인 공격자가 트랜잭션을 위변조하게 되면, 머클트리 루트 해쉬값이 틀려지게 된다. Thereafter, each of the devices converts a device that is a previously selected voting node to a failure and elects a new device (step 504). Each of the devices reads a pre-stored transaction list, hashs the transaction list in even pairs, SHA 256, and completes the Merkle tree through repetitive hashes (steps 506 and 508). Here, according to the Merkle Tree feature, if all nodes have the same transaction, the Merkle Tree root value is the same for all nodes. As a result, when a malicious attacker falsifies the transaction, the Merkle Tree root hash value is wrong.
이후 상기 디바이스들 각각은 상기 머클 트리 루트 해쉬값에 이전 블록해쉬값을 더하여 Votingf (최종 투표 블록 해쉬값)을 생성한다(510단계).Thereafter, each of the devices generates a voting f (last voting block hash value) by adding the previous block hash value to the merkle tree root hash value (step 510).
상기한 Votingf 에 모듈러(modular) 연산을 한 후에 1을 더한 후 그 값에 따르는 디바이스를 Votingn, 즉 투표노드로 설정한다(512단계). 이후 상기 디바이스들 각각은 Votingn에 해당하는 디바이스에게 개인키로 서명한 후 투표정보를 전송한다(514단계).After a modular operation is performed on the above Voting f , 1 is added, and a device according to the value is set to Voting n , that is, a voting node (step 512). Thereafter, each of the devices transmits the voting information after signing the private key to the device corresponding to Voting n (step 514).
상기 투표노드인 디바이스는 다른 디바이스들로부터의 투표정보를 제공받아 투표결과가 유효한지를 체크하고, 상기 투표결과에 따라 블록 생성 난이도를 결정한다(516,518단계). 상기 블록 생성 난이도는 투표결과에 대응되게 결정되며 다수의 투표를 받은 디바이스는 빠른 블록을 생성하고 적게 투표를 받은 디바이스는 느리게 블록을 생성할 수 있게 한다. 악의적인 노드가 데이터의 위변조를 시도할 때에는 전체 네트워크의 51%이상을 위변조해야 가능하다. 또한 블록체인 네트워크에서의 51% 이상의 다수의 정직한 노드가 존재할 때에 무결성은 유지되며, 악의적인 공격자(malicious node) 데이터 위변조시 머클트리를 이용한 투표결과가 다르게 나타낸다. 51% 이상의 정직한 노드가 존재한다고 했을 때에 악의적인 노드(소수)가 적은 투표를 받게 되고 적은 투표는 블록 생성 난이도가 올라가게 되어 위변조된 블록 생성을 억제한다. The voting node device receives voting information from other devices, checks whether the voting result is valid, and determines the difficulty of generating a block according to the voting result (steps 516,518). The difficulty of generating the block is determined to correspond to the voting result, and a device that receives a plurality of votes can generate a fast block and a device that receives less votes can generate a block slowly. When a malicious node attempts to forge data, it is possible to forge more than 51% of the entire network. In addition, integrity is maintained when there are more than 51% of honest nodes in the blockchain network, and voting results using Merkle Tree are different when forgery of malicious node data. When there are 51% or more honest nodes, malicious nodes (small numbers) receive fewer votes, and fewer votes increase the difficulty of block creation, thereby suppressing the creation of forged blocks.
상기의 블록 생성 난이도가 결정되면, 상기 디바이스는 상기 블록 생성 난이도에 따라 블록을 생성하고, 생성된 블록을 네트워크의 디바이스들로 전파한다(520,522단계). When the block generation difficulty is determined, the device generates a block according to the block generation difficulty, and propagates the generated block to devices in the network (steps 520 and 522).
상기 네트워크의 나머지 디바이스들은 블록이 수신되면(524단계), 수신된 블록을 검증하여 블록이 유효하면 수신된 블록을 이전 블록에 연결하여 블록체인 저장소에 저장한다(526,528,530단계). 이와 달리 블록이 유효하지 않으면 상기 네트워크의 나머지 디바이스들은 수신된 블록을 무시하고(532단계) 재투표 절차를 이행한다(534단계). 또한 미리 정해둔 시간이상 블록이 수신되지 않는다면 상기 네트워크의 나머지 디바이스들은 재투표 절차를 수행한다(534단계).When the block is received (step 524), the rest of the devices in the network verify the received block and, if the block is valid, connect the received block to the previous block and store it in the blockchain storage (steps 526,528,530). Otherwise, if the block is invalid, the rest of the devices in the network ignore the received block (step 532) and perform a revoting procedure (step 534). In addition, if a block is not received for a predetermined time or more, the remaining devices in the network perform a re-voting procedure (step 534).
이제 본 발명의 바람직한 실시예에 따르는 합의 알고리즘에 대한 안정성과 성능 분석을 이행한 결과를 설명한다. The results of implementing stability and performance analysis for the consensus algorithm according to the preferred embodiment of the present invention will now be described.
<디바이스의 네트워크 연결실패><Device network connection failure>
본 발명은 노드 매핑 테이블을 통한 디바이스들의 상태 체크와 피기백 흐름 제어 방식을 통하여, 사물 인터넷 환경에서 디바이스가 네트워크 연결 실패에 대해 제어한다. 또한 디바이스가 네트워크 연결에 실패하여도 네트워크 전체의 블록 합의는 최종적으로 이루어질 수 있게 한다. In the present invention, a device controls a network connection failure in an IoT environment through a state check of devices and a piggyback flow control method through a node mapping table. Also, even if the device fails to connect to the network, block consensus across the network can be finally achieved.
<저성능 디바이스에서의 가용성><Availability on low-performance devices>
또한 본 발명은 사물 인터넷 환경의 디바이스들 각각이 블록의 분산원장내역과 트랜잭션 내용을 기반으로 투표를 하고 투표 결과에 따라 블록을 생성하여 합의를 이행한다. 또한 투표의 메시지 교환 방식과 선의적인 노드는 블록의 생성 난이도가 낮게 주어지게 때문 저성능 디바이스에서의 가용성은 높다. In addition, the present invention implements an agreement by each device in the Internet of Things environment voting based on the distributed ledger history and transaction content of the block and generating a block according to the voting result. In addition, since the voting message exchange method and the bona fide node are given a low level of difficulty in creating blocks, the availability in low-performance devices is high.
<비잔틴 장군문제와 데이터의 무결성><General Byzantine Problems and Data Integrity>
또한 사물 인터넷 환경의 블록체인 네트워크 상태에서 비잔틴 장군문제는 블록체인 네트워크내 악의적인 노드가 있을 때 올바른 다수의 의결을 모을 수 있게 한다. In addition, in the blockchain network state of the Internet of Things environment, the Byzantine general problem enables a correct majority of votes to be collected when there are malicious nodes in the blockchain network.
또한 본 발명은 각 노드가 독립적으로 투표를 진행한다. 이는 어떤 노드가 선출될지 모르는 블라인드 방식이기 때문에 악의적인 노드로부터 추적성에 의한 공격을 막을 수 있다. 또한 투표로부터 선출된 노드는 다수의 의결을 받는 노드이고, 블록 생성의 조건 또한 쉽게 주어진다. 악의적인 노드는 표를 받지 못하거나, 소수의 표를 얻기 때문에 블록 생성을 억제받게 된다. 이는 결국 다수의 의결은 받은 블록으로 합의가 이루어진다. 또한 악의적인 노드가 선출된 경우에도 재투표를 통하여 의결이 무시된다. In addition, in the present invention, each node independently votes. Since this is a blind way of not knowing which node will be elected, it can prevent an attack by traceability from a malicious node. In addition, the node selected from the voting is a node that receives a number of votes, and the conditions of block generation are also easily given. Malicious nodes do not receive a table or get a small number of votes, so block generation is suppressed. This eventually results in a consensus on the block that received the majority of votes. Also, if a malicious node is elected, the vote is ignored through re-voting.
또한 본 발명에 따르는 합의 알고리즘은 악의적인 노드가 F개일때 F+1(51%이상의)개의 노드가 존재한다면 데이터의 무결성이 유지된다. In addition, the consensus algorithm according to the present invention maintains data integrity if F+1 (more than 51%) nodes exist when there are F malicious nodes.
<트랜잭션 처리속도><Transaction processing speed>
본 발명의 트랜잭션 처리속도를 특정하기 위해 다음과 같은 환경에서의 실험을 진행하였다. 즉, "블록체인 기반의 IoT 신뢰성 제어 시스템 제어개발 프로젝트"에서 개발한 블록체인 플랫폼인 Logchain에 본 발명의 합의 알고리즘을 적용하였다. 상기 Logchain은 사물인터넷 환경에 고도화된 블록체인 플랫폼이다. 실험환경은 사물 인터넷 환경의 블록체인 네트워크로 구성된, 사물 디바이스 5대(라즈베리 파이 5대), 클라우드 노드 2대(윈도우 하이퍼v 2대), PC노드 10대로 구성하였다. 그리고 처리속도를 측정하기 위하여 한블록당 트랜잭션 30건에 대하여 트랜잭션 처리건수와 블록 생성 속도를 측정하였다. 상기한 실험환경을 구성한 후에, 블록생성 조건을 트랜잭션 30건에 대하여 총 10번의 블록생성을 실험했을시, 평균 트랜잭션 처리건수 초당 3155건, 평균 블록 생성기간 0.02900 Sec이었다. 이는 다른 블록체인 합의를 적용한 속도보다 높은 수치이며, 블록 생성 조건의 트랜잭션 건수를 늘리게 되면 더 높은 수치를 보여줄 것으로 기대된다. In order to specify the transaction processing speed of the present invention, experiments were performed in the following environment. That is, the consensus algorithm of the present invention was applied to the blockchain platform developed by "Blockchain-based IoT reliability control system control development project". The Logchain is an advanced blockchain platform in the IoT environment. The experimental environment consisted of 5 IoT devices (5 Raspberry Pi), 2 cloud nodes (2 Windows Hyperv), and 10 PC nodes, consisting of a blockchain network of the Internet of Things environment. And to measure the processing speed, the number of transaction processing and the block generation speed were measured for 30 transactions per block. After constructing the above-described experimental environment, when a block generation condition was tested for a total of 10 blocks for 30 transactions, the average number of transaction processing was 3155 per second, and the average block generation period was 0.02900 Sec. This is higher than the speed at which other blockchain consensus is applied, and it is expected to show a higher number if the number of transactions in the block creation condition is increased.
이와 같이 본 발명은 사물 인터넷 환경을 고려한 블록체인 합의 알고리즘을 제시하였다. 종래의 전자 화폐 합의 알고리즘과 달리 사물 인터넷 환경에서는 디바이스의 네트워크 연결 실패, 저성능 디바이스에서의 가용성, 높은 트랜잭션 처리속도를 만족하면서도 비잔틴 장군 문제 해결과 사물인터넷 데이터 무결성 보장을 해야 한다. 본 발명은 분산 원장 내역 기반으로 투표를 하여 블라인드 투표 방식을 제안하였고, 선출된 디바이스는 투표결과에 따라 블록생성 조건을 다르게 한다. 이는 악의적인 디바이스의 추적성을 없애고, 블록 생성을 억제시킨다. 또한 디바이스의 실패를 고려하여 노드 매핑 테이블을 통해 네트워크 상태를 체크하고, 재투표를 통한 합의를 가능하게 했다. As such, the present invention has proposed a blockchain consensus algorithm considering the Internet of Things. Unlike the conventional electronic money consensus algorithm, in the IoT environment, it is necessary to solve the Byzantine general problem and ensure IoT data integrity while satisfying the device's network connection failure, availability on a low-performance device, and high transaction processing speed. The present invention proposes a blind voting method by voting based on a distributed ledger history, and the elected device varies the block creation conditions according to the voting results. This eliminates the traceability of malicious devices and suppresses block generation. Also, considering the failure of the device, the network status is checked through the node mapping table, and consensus is possible through re-voting.
이러한 본 발명은 합의 알고리즘을 바탕으로 사물 인터넷 환경에서 데이터 무결성을 유지하여 무결성 침해 발생을 일으키는 보안 위협들로부터 신뢰성을 보장할 것이다. The present invention will maintain data integrity in the Internet of Things environment based on the consensus algorithm to ensure reliability from security threats that cause integrity breaches.

Claims (6)

  1. 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법에 있어서, In the dynamic blind voting-based blockchain consensus method for the Internet of Things environment,
    사물 인터넷 환경의 블록체인 네트워크를 구성하는 디바이스들 각각이 트랜잭션 리스트를 이용하여 투표노드를 선출하고, 상기 투표노드인 디바이스로 투표정보를 전송하는 제1단계;A first step in which each of the devices constituting the blockchain network of the Internet of Things environment selects a voting node using a transaction list and transmits voting information to the voting node as a device;
    상기 투표정보를 수신받은 디바이스는 블록을 생성하여 상기 블록체인 네트워크를 구성하는 디바이스들로 전파하는 제2단계; 및A second step of receiving the voting information and propagating blocks to devices constituting the blockchain network; And
    상기 전파되는 블록을 수신받은 디바이스들 각각은 상기 블록을 검증하고, 상기 블록이 유효하면 블록체인 저장소에 블록을 연결하여 저장하고, 상기 블록이 유효하지 않으면 상기 블록을 무시하는 제3단계;를 구비함을 특징으로 하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반 블록체인 합의 방법. Each of the devices receiving the propagated block verifies the block, and if the block is valid, connects the block to a blockchain storage and stores the block, and if the block is invalid, ignores the block. Blockchain consensus method based on dynamic blind voting for the Internet of Things (IoT) environment.
  2. 제1항에 있어서, According to claim 1,
    상기 투표정보를 수신받은 디바이스로부터 블록을 수신받지 못하거나, 상기 블록이 유효하지 않으면, 상기 디바이스를 실패로 처리하는 단계;를 더 구비함을 특징으로 하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반 블록체인 합의 방법. Dynamic blind voting based blockchain for Internet of Things environment further comprising; if the block does not receive a block from the device receiving the voting information, or if the block is invalid, processing the device as a failure; Method of consensus.
  3. 제1항에 있어서, According to claim 1,
    상기 투표정보를 수신받은 디바이스로부터 블록을 수신받지 못하거나, 상기 블록이 유효하지 않으면, 상기 디바이스를 실패로 처리하고, 사물 인터넷 환경의 블록체인 네트워크를 구성하는 디바이스들 각각이 트랜잭션 리스트를 이용하여 투표노드를 선출하고, 상기 투표노드인 디바이스로 재투표정보를 전송하는 단계;If a block is not received from a device that receives the voting information, or if the block is invalid, each device constituting the blockchain network of the Internet of Things environment is treated as a failure, and each of the devices constituting the blockchain network of the Internet of Things votes using the transaction list. Selecting a node and transmitting re-voting information to the voting node device;
    상기 재투표정보를 수신받은 디바이스는 블록을 생성하여 상기 블록체인 네트워크를 구성하는 디바이스들로 전파하는 단계; 및The device receiving the re-voting information generates a block to propagate to devices constituting the blockchain network; And
    상기 전파되는 블록을 수신받은 디바이스들 각각은 상기 블록을 검증하고, 상기 블록이 유효하면 블록체인 저장소에 블록을 연결하여 저장하고, 상기 블록이 유효하지 않으면 상기 블록을 무시하는 단계;를 더 구비함을 특징으로 하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반 블록체인 합의 방법. Each of the devices that have received the propagated block verify the block, and if the block is valid, connect and store the block in a blockchain storage, and if the block is invalid, ignore the block. A dynamic blind voting-based blockchain consensus method for IoT environments.
  4. 제1항에 있어서, According to claim 1,
    상기 디바이스들 각각은 미리 저장된 트랜잭션 리스트를 독출하고, Each of the devices reads a list of previously stored transactions,
    상기 트랜잭션 리스트를 미리 정해진 수로 쌍을 이루어 SHA 256으로 해쉬화를 하며, 반복적인 해쉬를 통해 머클트리를 생성하고, The transaction list is paired with a predetermined number and hashed to SHA 256, and a merkle tree is generated through repetitive hashing.
    상기 머클트리를 이용하여 투표노드를 선정함을 특징으로 하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반 블록체인 합의 방법. A dynamic blind voting-based blockchain consensus method for the Internet of Things environment characterized by selecting a voting node using the Merkle tree.
  5. 제4항에 있어서, According to claim 4,
    상기 디바이스들 각각은 미리 저장된 트랜잭션 리스트를 독출하고, Each of the devices reads a list of previously stored transactions,
    상기 트랜잭션 리스트를 미리 정해진 수로 쌍을 이루어 SHA 256으로 해쉬화를 하며, 반복적인 해쉬를 통해 머클트리를 생성하고, The transaction list is paired with a predetermined number, hashed to SHA 256, and creates a Merkle tree through repetitive hashing.
    상기 머클 트리 루트 해쉬값에 이전 블록해쉬값을 더하여 Votingf (최종 투표 블록 해쉬값)을 생성하고, Voting f (last voting block hash value) is generated by adding the previous block hash value to the Merkle tree root hash value,
    상기 Votingf 에 모듈러(modular) 연산을 한 후에 1을 더한 후 그 값에 따르는 디바이스를 투표노드로 선정함을 특징으로 하는 사물 인터넷 환경을 위한 동적 블라인드 투표기반 블록체인 합의 방법.A dynamic blind voting-based blockchain consensus method for the Internet of Things environment characterized by selecting a device according to the value after adding 1 after a modular operation to the Voting f .
  6. 제1항에 있어서, According to claim 1,
    상기 제2단계가, The second step,
    상기 투표정보를 수신받은 디바이스는 상기 투표정보를 수신받은 개수에 대응되게 블록 생성 난이도를 결정하고, The device receiving the voting information determines the difficulty of creating a block to correspond to the number of the voting information received,
    상기 블록 생성 난이도에 따라 블록을 생성함을 특징으로 하는 동적 블라인드 투표기반 블록체인 합의 방법. A dynamic blind voting-based blockchain consensus method, characterized in that blocks are generated according to the difficulty of creating blocks.
PCT/KR2018/016709 2018-12-27 2018-12-27 Dynamic blind voting-based blockchain consensus method for internet of things environment WO2020138532A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180170020A KR20200081533A (en) 2018-12-27 2018-12-27 Blockchain Consensus Method based Improved Dynamic Blind Voting for Internet of Things Environment
KR10-2018-0170020 2018-12-27

Publications (1)

Publication Number Publication Date
WO2020138532A1 true WO2020138532A1 (en) 2020-07-02

Family

ID=71129589

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/016709 WO2020138532A1 (en) 2018-12-27 2018-12-27 Dynamic blind voting-based blockchain consensus method for internet of things environment

Country Status (2)

Country Link
KR (1) KR20200081533A (en)
WO (1) WO2020138532A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738090A (en) * 2020-12-29 2021-04-30 重庆邮电大学 Data integrity detection method based on green computing consensus mechanism block chain in edge computing
WO2022127424A1 (en) * 2020-12-16 2022-06-23 中兴通讯股份有限公司 Obtaining method and apparatus for block group header, storage medium, and electronic device
WO2022134783A1 (en) * 2020-12-22 2022-06-30 深圳壹账通智能科技有限公司 Construction method for blockchain network, method for adding node, and medium and device
CN115396504A (en) * 2022-08-23 2022-11-25 浪潮工业互联网股份有限公司 Block chain voting data caching method, device and medium
CN115842767A (en) * 2022-09-07 2023-03-24 湖北工业大学 Internet of things equipment cluster cooperation method and system based on consensus algorithm

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794694B (en) * 2021-08-25 2022-08-26 清华大学 Binary consensus method and device based on reliable broadcast

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (en) * 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology
KR20180079847A (en) * 2017-01-03 2018-07-11 아주대학교산학협력단 Person to person trading method and apparatus by using blockchain and distributed hash table
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
KR20180124541A (en) * 2017-05-12 2018-11-21 주식회사 엑스블록시스템즈 Blockchain system and data managing method using blockchain

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678795B1 (en) 2015-11-30 2016-11-22 전삼구 Iot-basesd things management system and method using block chain authentification
KR101922795B1 (en) 2017-02-17 2019-02-20 박상준 Apparatus and method for providing of IoT service
KR101887894B1 (en) 2018-02-23 2018-08-14 (주)케이사인 Internet of things device managing system based on mesh type block chain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
KR20170137388A (en) * 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology
KR20180079847A (en) * 2017-01-03 2018-07-11 아주대학교산학협력단 Person to person trading method and apparatus by using blockchain and distributed hash table
KR20180124541A (en) * 2017-05-12 2018-11-21 주식회사 엑스블록시스템즈 Blockchain system and data managing method using blockchain

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022127424A1 (en) * 2020-12-16 2022-06-23 中兴通讯股份有限公司 Obtaining method and apparatus for block group header, storage medium, and electronic device
WO2022134783A1 (en) * 2020-12-22 2022-06-30 深圳壹账通智能科技有限公司 Construction method for blockchain network, method for adding node, and medium and device
CN112738090A (en) * 2020-12-29 2021-04-30 重庆邮电大学 Data integrity detection method based on green computing consensus mechanism block chain in edge computing
CN112738090B (en) * 2020-12-29 2022-08-26 重庆邮电大学 Data integrity detection method based on green calculation consensus mechanism block chain in edge calculation
CN115396504A (en) * 2022-08-23 2022-11-25 浪潮工业互联网股份有限公司 Block chain voting data caching method, device and medium
CN115396504B (en) * 2022-08-23 2024-01-16 浪潮工业互联网股份有限公司 Block chain voting data caching method, equipment and medium
CN115842767A (en) * 2022-09-07 2023-03-24 湖北工业大学 Internet of things equipment cluster cooperation method and system based on consensus algorithm
CN115842767B (en) * 2022-09-07 2024-04-23 湖北工业大学 Internet of things equipment cluster cooperation method and system based on consensus algorithm

Also Published As

Publication number Publication date
KR20200081533A (en) 2020-07-08

Similar Documents

Publication Publication Date Title
WO2020138532A1 (en) Dynamic blind voting-based blockchain consensus method for internet of things environment
CN108200210B (en) Block chain-based chain management method, block chain-based chain management device and computer-readable medium
US10862959B2 (en) Consensus system and method for adding data to a blockchain
CN107888562B (en) Data verification and transceiving method, node and system for parallel link access to interconnection chain
CN112055025B (en) Privacy data protection method based on block chain
WO2018043865A2 (en) Blockchain-based file management/search system and file management/search method
CN111010376B (en) Master-slave chain-based Internet of things authentication system and method
Luu et al. Scp: A computationally-scalable byzantine consensus protocol for blockchains
CN113328997B (en) Alliance chain crossing system and method
WO2020138525A1 (en) Method for distributed authentication of device in internet-of-things blockchain environment, and system for distributed authentication of device using same
CN111406396A (en) Computer-implemented systems and methods for data propagation and communication in a network, such as a blockchain network
WO2021137396A1 (en) Zero-knowledge proof-based certificate service method using blockchain network, certification support server using same, and user terminal using same
WO2019184155A1 (en) Blockchain node authority control method, blockchain system and storage medium
WO2020213763A1 (en) Method and system for verifying block-chain data stored in storage having different format from block-chain
WO2020138606A1 (en) Fault-tolerant consensus method for eliminating obstacle factors of consensus in blockchain network
CN113055188A (en) Data processing method, device, equipment and storage medium
CN113055176B (en) Terminal authentication method and system, terminal device, P2P verification platform and medium
WO2020158973A1 (en) Hypothesis acceptance protocol-2 mode blockchain consensus system and method
CN114745140B (en) Urban planning field block chain consensus verification method and system based on aggregation encryption
EP3465528B1 (en) Apparatus and method of creating a data chain in a data structure that can be cryptographically proven to contain valid data
Kleinrock et al. Proof-of-reputation blockchain with nakamoto fallback
WO2024090845A1 (en) Method for authenticating ownership of blockchain wallet without signature function, and system using same
WO2023149660A1 (en) Group signature-based federated learning method and system, and recording medium for performing same
CN112039837B (en) Electronic evidence preservation method based on block chain and secret sharing
US20200153615A1 (en) Method for information verification in distributed systems

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: 18945242

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: 18945242

Country of ref document: EP

Kind code of ref document: A1