WO2020017908A1 - Mining device and method of operating mining device - Google Patents

Mining device and method of operating mining device Download PDF

Info

Publication number
WO2020017908A1
WO2020017908A1 PCT/KR2019/008904 KR2019008904W WO2020017908A1 WO 2020017908 A1 WO2020017908 A1 WO 2020017908A1 KR 2019008904 W KR2019008904 W KR 2019008904W WO 2020017908 A1 WO2020017908 A1 WO 2020017908A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
block
mining device
proof
work
Prior art date
Application number
PCT/KR2019/008904
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
Priority claimed from KR1020180097677A external-priority patent/KR102231257B1/en
Application filed by 광주과학기술원 filed Critical 광주과학기술원
Publication of WO2020017908A1 publication Critical patent/WO2020017908A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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

Abstract

A mining device according to one embodiment of the present invention generates a block by performing a proof-of-work according to an improved proof-of-work algorithm. Specifically, a mining device according to one embodiment of the present invention comprises: a control unit which obtains data values for a proof-of-work from a current block header to be mined, obtains a first input value and a second input value on the basis of the obtained data values, obtains a hash function value for a particular nonce value on the basis of the second input value and a third input value, obtains a mapped codeword value on the basis of the hash function value and the first input value, and determines whether the codeword value satisfies a condition set, and if the codeword value satisfies the condition set, generates a block and completes the proof-of-work; and a network unit for broadcasting the generated block to another mining device.

Description

채굴 장치, 및 채굴 장치 동작 방법Mining device and method of operating the mining device
본 발명은 암호 화폐 시스템에 적용되는 것이다. 구체적으로 암호 화폐 시스템의 운영을 위하여, 개선된 작업 증명 알고리즘을 통해 블록을 생성하고 이를 검증할 수 있는 채굴 장치 및 채굴 장치 동작 방법에 관한 것이다.The present invention is applied to a cryptocurrency system. Specifically, the present invention relates to a mining device and a mining device operating method capable of generating and verifying a block through an improved proof-of-work algorithm for operating a cryptocurrency system.
2009년 사토시 나카모토가 개발한 비트코인(Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:2012, 2008.)으로부터 블록 체인 기반의 암호화폐가 등장했다. 블록 체인은 공공 분산 원장을 위한 분산 데이터 처리 기술이다. Peer-to-Peer(P2P) 트랜잭션 데이터는 블록으로 기록되며, 이들 블록은 블록의 링크드 리스트(다시 말해서, 체인)를 형성한다. 네트워크의 각 사용자는 중앙 권한 없이 분산된 방식으로 전체 데이터를 저장한다. 블록 체인의 각 블록이 이전 블록의 해쉬 값을 포함하는 블록 체인을 구성하기 때문에, 블록 체인 기반 암호 화폐에서 트랜잭션을 조작하는 것은 매우 어렵다.Blockchain-based cryptocurrency emerged in 2009 from Satoshi Nakamoto.Bitcoin: A peer-to-peer electronic cash system.Consulted, 1: 2012, 2008. Blockchain is a distributed data processing technology for public distributed ledgers. Peer-to-Peer (P2P) transactional data is written into blocks, which form a linked list of blocks (in other words, chains). Each user on the network stores the entire data in a distributed manner without central authority. Since each block in the blockchain constitutes a blockchain that contains the hash value of the previous block, it is very difficult to manipulate transactions in blockchain-based cryptocurrencies.
대규모 P2P 네트워크에서 단일 블록 체인을 유지하려면 피어 노드 간에 결과를 상호 검증하여 시스템 무결성을 보장하는 분산 합의 메커니즘이 필요하다. 이 합의 메커니즘은 새로운 블록을 누가 만들었는지, 그리고 체인은 유효한지를 판단하는 것이 가능해야 한다.Maintaining a single blockchain in a large P2P network requires a distributed consensus mechanism that ensures system integrity by mutually verifying results between peer nodes. This consensus mechanism should be able to determine who created the new block and whether the chain is valid.
비트코인은 작업 증명(Proof-of-work, PoW)(Dwork, Cynthia; Naor, Moni (1993). "Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology". CRYPTO'92: Lecture Notes in Computer Science No. 740. Springer: 139 - 147.) 알고리즘을 사용하는 대표적인 암호화폐이다. 작업증명은 블록 체인 기반 암호화폐에서 가장 일반적으로 사용되는 합의 알고리즘이다. 요컨대, 특정 요구 사항을 충족하는 해쉬 값을 찾아서 확인하여 합의를 도출하는데 컴퓨팅 능력이 사용된다. 작업 증명은 블록 해쉬 값을 목표 값보다 작게 만드는 넌스(nonce) 값을 찾는 프로세스이다. 넌스는 블록 헤더에 지정된 정보 중 하나이다. 넌스 값의 집합인 넌스 셋이 정의되고, 넌스 셋에서 넌스 값을 하나씩 선택하면서 해쉬 함수에 대입한다. 이때, 한번 사용된 넌스 값은 넌스 셋에서 제외되어 다시 사용되지 않는다. 특정의 넌스 값에서 상기의 요구사항을 만족하는 해쉬 값이 발견되는 경우 해당 넌스 값을 기록하고, 블록 헤더에 삽입하여 블록을 생성한다. 이러한 일련의 과정이 작업 증명이라고 지칭된다. 작업증명 과정에서 목표 값은 넌스 값 계산의 어려움을 나타내며, 평균 10분마다 단일 블록을 생성하도록 조절된다.Bitcoin is Proof-of-work, PoW (Dwork, Cynthia; Naor, Moni (1993). "Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology". Science No. 740. Springer: 139-147.) Representative cryptocurrency using algorithm. Proof of work is the most commonly used consensus algorithm in blockchain-based cryptocurrencies. In short, computing power is used to find and verify hash values that meet specific requirements to reach consensus. Proof of work is the process of finding a nonce that makes the block hash value less than the target value. The nonce is one of the information specified in the block header. A nonce set, which is a set of nonce values, is defined and assigned to a hash function by selecting nonce values one by one. At this time, the nonce value once used is excluded from the nonce set and is not used again. If a hash value satisfying the above requirement is found in a specific nonce value, the nonce value is recorded and inserted into the block header to generate a block. This series of processes is called proof of work. In the proof-of-work process, the target value represents the difficulty of calculating the nonce value and is adjusted to generate a single block every 10 minutes on average.
본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 기존의 작업 증명 기반의 암호화폐에서 발생하고 있는 재-중앙화(re-centralization)를 해결하고자 한다.The operation method of the mining device according to an embodiment of the present invention is intended to solve the re-centralization occurring in the existing proof-of-work cryptocurrency.
더하여, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 ASIC의 출현으로 소수의 채굴 업자가 해쉬파워를 독점하여 발생할 수 있는 문제를 해결하고자 한다.In addition, the operation method of the mining device according to an embodiment of the present invention is to solve the problem that a small number of mining operators monopoly hash power due to the appearance of ASIC.
더하여, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 채굴 난이도 조절이 가능하고, 매 블록마다 입력 값이 달라지는 채굴 장치의 동작 방법을 제안하고자 한다.In addition, the operation method of the mining device according to an embodiment of the present invention, it is possible to propose a method of operating the mining device that can control the difficulty of mining, the input value is changed every block.
본 발명의 일 실시 예에 따른 채굴 장치는, 거래가 발생하면 블록을 생성하고, 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치이고, 작업 증명을 수행하는 제어부; 및 상기 작업 증명을 통하여 생성된 블록을 다른 채굴 장치로 브로드캐스팅하는 네트워크부가 포함된다. The mining device according to an embodiment of the present invention is a mining device that generates a block when a transaction occurs, and forms a block chain by performing a proof of work through a proof-of-work agreement mechanism, the control unit performing a proof of work; And a network unit broadcasting the block generated by the proof of work to another mining device.
상기 제어부는, - 채굴하고자 하는 현재 블록의 헤더로부터 작업 증명을 위한 데이터 값을 획득하는 것, - 획득한 상기 데이터 값에 기초하여 제 1 입력 값 및 제 2 입력 값을 획득하는 것, - 상기 제 1 입력 값에 기초하여 패리티 체크 매트릭스를 생성하는 것, - 상기 제 2 입력 값 및 제 3 입력 값에 기초하여 특정 넌스(nonce)값 에 대한 해쉬 함수 값을 획득하는 것, - 상기 해쉬 함수 값 및 상기 제 1 입력 값에 기초하여 매핑된 출력워드 값을 획득하는 것, - 상기 출력워드 값이 조건 셋을 만족하는지 여부를 판단하여 만족하는 경우 블록을 생성하여 작업 증명을 완료하는 것이 수행된다. The controller may be configured to: obtain a data value for proof of work from a header of a current block to be mined;-obtain a first input value and a second input value based on the obtained data value; Generating a parity check matrix based on the first input value, obtaining a hash function value for a particular nonce value based on the second input value and the third input value, the hash function value and Acquiring a mapped output word value based on the first input value, and determining whether the output word value satisfies a set of conditions, and generating a block to complete a proof of work if the output word value satisfies a condition set.
본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 ASIC 칩으로 구현이 거의 불가능한 알고리즘으로서 작업 증명 기반의 암호화폐 시스템에서 발생하고 있는 재-중앙화(re-centralization)를 해결할 수 있다.The operation method of the mining device according to an embodiment of the present invention can solve the re-centralization occurring in the cryptocurrency system based on the proof of work as an algorithm almost impossible to implement with an ASIC chip.
또한, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 재중앙화 해결을 통해 블록 체인 기반의 암호 화폐의 본질을 회복하여 거래 신용 및 화폐 신용을 회복할 수 있다.In addition, the operating method of the mining device according to an embodiment of the present invention, through the re-centralization solution to restore the nature of the blockchain-based cryptocurrency can recover the transaction credit and currency credit.
또한, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 작업 증명의 난이도를 필요에 따라 조정할 수 있다.In addition, the operation method of the mining device according to an embodiment of the present invention can adjust the difficulty of the proof of work as necessary.
도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.1 shows a general block and a block chain to which the blocks are connected.
도 2는 본 발명의 일 실시 예에 따른 개선된 작업 증명 알고리즘을 나타내는 흐름도이다.2 is a flowchart illustrating an improved proof-of-work algorithm according to an embodiment of the present invention.
도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.3 shows the codeword and condition set described above.
도 4는 본 발명의 일 실시 예에 따른 채굴 장치의 검증 프로세스를 나타내는 흐름도이다.4 is a flowchart illustrating a verification process of a mining apparatus according to an embodiment of the present invention.
도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 패리티 체크 매트릭스를 통해 설명하는 도면이다.FIG. 5 is a diagram for describing a method of controlling a mining difficulty level using an 8 by 16 parity check matrix in a proof-of-work algorithm according to an embodiment of the present invention.
도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.6 is a block diagram showing a mining apparatus according to an embodiment of the present invention.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시 예를 상세하게 설명한다. 그러나 본 발명의 사상은 이하의 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에 포함되는 다른 실시 예를 구성요소의 부가, 변경, 삭제, 및 추가 등에 의해서 용이하게 제안할 수 있을 것이나, 이 또한 본 발명 사상의 범위 내에 포함된다고 할 것이다. Hereinafter, with reference to the drawings will be described in detail a specific embodiment of the present invention. However, the spirit of the present invention is not limited to the following embodiments, and those skilled in the art who understand the spirit of the present invention can easily add, change, delete, or add other components included in the scope of the same spirit. It may be proposed, but this will also be included within the scope of the present invention.
첨부 도면은 발명의 사상을 이해하기 쉽게 표현하기 위하여 전체적인 구조를 설명함에 있어서는 미소한 부분은 구체적으로 표현하지 않을 수도 있고, 미소한 부분을 설명함에 있어서는 전체적인 구조는 구체적으로 반영되지 않을 수도 있다. 또한, 설치 위치 등 구체적인 부분이 다르더라도 그 작용이 동일한 경우에는 동일한 명칭을 부여함으로써, 이해의 편의를 높일 수 있도록 한다. 또한, 동일한 구성이 복수 개가 있을 때에는 어느 하나의 구성에 대해서만 설명하고 다른 구성에 대해서는 동일한 설명이 적용되는 것으로 하고 그 설명을 생략한다. In the accompanying drawings, in order to easily express the spirit of the present invention, in describing the overall structure, minute parts may not be specifically described, and in describing the minute parts, the overall structure may not be specifically reflected. In addition, even if the specific parts, such as an installation position, are different, when the action is the same, the same name is given, and the convenience of understanding can be improved. In addition, when there exists a plurality of the same structure, only one structure is demonstrated, and the same description is applied about another structure, and the description is abbreviate | omitted.
본 발명을 설명하기에 앞서, 블록체인 기반의 암호화폐에서 수행되는 작업 증명을 간단히 설명하고, 관련 용어를 간단히 정의한다.Prior to describing the present invention, the proof of work performed on blockchain based cryptocurrency will be briefly described and related terms will be briefly defined.
도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.1 shows a general block and a block chain to which the blocks are connected.
블록 체인(2)은 다수의 블록(1)이 연결된 형태이다.The block chain 2 has a form in which a plurality of blocks 1 are connected.
블록(1)이란 다수의 유효한 거래 정보의 묶음이다. Block 1 is a bundle of a plurality of valid transaction information.
블록 헤더(3)는 블록의 정보를 표시한다. 블록 헤더는 이전 블록의 해쉬 값을 가지고 있다.The block header 3 displays the information of the block. The block header contains the hash value of the previous block.
블록 해쉬(4)는 블록 헤더를 해쉬 함수로 계산한 값이다. 여기에서 해쉬 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. The block hash 4 is a value obtained by calculating a block header with a hash function. Here, the hash function is a function that maps data of arbitrary length to data of fixed length.
작업 증명 알고리즘에서는 앞서 설명한 바와 같이 블록 해쉬와 목표 값을 비교하여 작업 증명 성공 여부를 판단한다. 구체적으로 작업 증명은 소위 피어 노드에서 수행되는데, 각각의 피어 노드는 헤더 정보 중 넌스 값을 바꿔가면서 해쉬 계산을 하여 목표 값 보다 작은 값이 나오는지 여부를 판단한다.In the proof-of-work algorithm, as described above, the block hash and the target value are compared to determine whether the proof-of-work succeeds. Specifically, proof of work is performed in a so-called peer node. Each peer node performs a hash calculation while changing a nonce value of header information to determine whether a value smaller than a target value is obtained.
여기에서 피어 노드는 채굴 업자 또는 채굴 장치라고도 지칭되며, 작업 증명을 수행하는 연산 장치 또는 연산 장치의 집합을 의미한다. 예를 들어 연산 장치는 고성능의 그래픽 카드 및 프로세서를 갖춘 컴퓨터가 될 수 있다.Here, the peer node is also referred to as a miner or a mining device, and means a computing device or a set of computing devices that performs proof of work. For example, a computing device could be a computer with a high performance graphics card and processor.
피어 노드는 블록 해쉬가 목표 값 보다 작을 때까지 넌스를 바꾸며, 블록 해쉬가 목표 값 보다 작으면 작업 증명 성공으로 판단하고 블록에 포함된 모든 거래를 유효한 거래로 확정한다. 그리고 유효한 블록이 생성되면, 피어 노드는 생성된 블록을 전체 네트워크로 브로드캐스팅하고, 이를 다른 피어 노드들이 승인하고 블록 체인에 추가하면 거래가 완료된다. The peer node changes the nonce until the block hash is smaller than the target value. If the block hash is smaller than the target value, the peer node determines that the proof of work is successful and confirms all transactions included in the block as valid transactions. And once a valid block is created, the peer node broadcasts the created block to the whole network, and when other peer nodes approve it and add it to the blockchain, the transaction is completed.
여기에서, 블록이 여러 피어 노드에서 동시에 생성되어 체인이 분기될 수 있는데, 이 때, 피어 노드들은 정해진 합의 알고리즘을 사용하여 합의에 이르고, 합의된 체인을 확장시켜나간다. 가령, 비트코인 합의메커니즘은 가장 긴 체인만을 옳은 체인으로 간주한다.Here, a block may be generated at several peer nodes at the same time and the chain may branch, where peer nodes reach consensus using a predetermined consensus algorithm and extend the consensus chain. For example, the Bitcoin consensus mechanism only considers the longest chain as the right chain.
상술한 작업 증명 기반 암호화폐인 비트코인은 몇 가지 문제가 있다.Bitcoin, the proof-of-work cryptography described above, has some problems.
먼저, 작업 증명을 위해 너무 많은 전력을 소비한다는 것이 있다(Harald Vranken, in Current Opinion in Environmental Sustainability, 2017, 28: 1 - 9). 소위 채굴 난이도라고 불리는 암호 퍼즐 난이도가 점차 증가하고 있는데 이는 비트코인 채굴에 참여하는 업자의 수가 늘어나고, 채굴네트워크 전체의 해쉬파워가 증가하기 때문이다. 해쉬파워가 클수록 작업 증명의 속도가 빠르며 결과적으로 블록을 생성하는 속도가 빨라진다. 비트코인 프로토콜은 블록 생성 시간을 평균적으로 10분마다 한 블록씩 채우는 것을 목표로 한다. 이를 위해 비트 코인 프로토콜은 2016 블록마다 해쉬 난이도를 재구성한다(Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:2012, 2008.). 따라서, 해쉬파워가 커지면 난이도는 증가하게 된다. 이로 인하여, 채굴을 위해 더 많은 전력이 소비가 되는 것이다.First, it consumes too much power for proof of work (Harald Vranken, in Current Opinion in Environmental Sustainability, 2017, 28: 1-9). The difficulty of crypto puzzles, called mining difficulty, is gradually increasing because the number of operators participating in bitcoin mining increases and the hash power of the mining network increases. The larger the hash power, the faster the proof-of-work and the faster the block generation. The Bitcoin protocol aims to fill the block creation time by one block every 10 minutes on average. To this end, the Bitcoin protocol reconstructs the hash difficulty for every 2016 block (Satoshi Nakamoto.Bitcoin: A peer-to-peer electronic cash system.Consulted, 1: 2012, 2008.). Therefore, as the hash power increases, the difficulty increases. This consumes more power for mining.
암호 화폐에 대한 채굴업자의 수가 많을수록 가능한 공격에 대한 보호 기능이 향상되므로 블록 체인 불변성 및 암호 화폐의 신뢰성 유지에 도움이 된다. 비트 코인 네트워크의 초기 단계(2010 ~ 2013년)에서는 가정용 컴퓨터를 사용하는 일반 사람들도 비트코인의 작업증명을 수행할 수 있었다.The greater the number of miners in cryptocurrency, the better the protection against possible attacks, which helps to maintain blockchain immutability and credibility. In the early stages of the Bitcoin network (2010-2013), ordinary people using home computers were able to perform Bitcoin's proof of work.
그러나, 시간이 갈수록 가정용 컴퓨터의 컴퓨팅 파워만으로는 작업 증명을 빠르게 수행할 수 없었으며, 비트코인 채굴을 위한 컴퓨팅 플랫폼이 GPU, FPGA에서 최근에 ASIC에 이르면서 소수의 채굴업자들이 컴퓨팅 파워를 독점하는 현상이 나타나고 있다. 이를 통해 비트코인 네트워크가 중앙 집중화되어 비트코인 블록체인의 정체성인 탈-중앙화(decentralization)와 멀어지고 있다. 따라서, 압도적인 컴퓨팅 파워를 갖는 소수의 채굴업자에 의해 블록체인이 변조될 가능성이 대두되면서 블록체인에 대한 대중의 신뢰가 붕괴되고 있는 시점이다.However, over time, the computing power of home computers has not been able to quickly prove proof of work, and as the computing platform for bitcoin mining has recently reached ASICs from GPUs and FPGAs, a small number of miners have monopolized computing power. Is appearing. Through this, the Bitcoin network is centralized, moving away from the decentralization, which is the identity of the Bitcoin blockchain. Therefore, the possibility of blockchain being tampered by a few miners with overwhelming computing power is at the point where the public's trust in the blockchain is breaking down.
이러한 비트코인을 포함한 모든 작업증명(Proof-of-Work) 기반 블록체인 네트워크의 재-중앙화(recentralization) 문제가 유발되는 원인으로, 암호 퍼즐의 제한된 가용성(limited availability)이 있다. 비트코인 합의메커니즘에서의 작업 증명 방식은 고정된 해쉬함수(e.g. SHA-256) 알고리즘에 따라 이루어져, 결과적으로 비트코인 작업 증명 알고리즘에 최적화된 ASIC 칩을 탄생시켰다(https://www.asicminervalue.com/miners/ebang/ebit-e10). 상기 ASIC 칩은 상대적으로 고가이나, 비트코인 작업 증명에 최적화되어 ASIC 칩을 통해 채굴을 수행하는 소수의 채굴업자들이 가진 해쉬파워가, 전체네트워크의 해쉬파워에 큰 부분을 차지하여, 압도적인 채굴 영향력을 갖게 되었다.As a cause of the recentralization problem of all proof-of-work-based blockchain networks including Bitcoin, there is limited availability of crypto puzzles. The proof-of-work method in the Bitcoin consensus mechanism is based on a fixed hash function (eg SHA-256) algorithm, resulting in an ASIC chip optimized for the Bitcoin proof-of-work algorithm (https://www.asicminervalue.com). / miners / ebang / ebit-e10). The ASIC chip is relatively expensive, but the hash power of a few miners that are optimized for Bitcoin proof of work to perform mining through the ASIC chip is a big part of the hash power of the entire network, so overwhelming mining influence Got
따라서 이러한 블록체인 네트워크의 재-중앙화를 해소하기 위해서 새로운 작업 증명 알고리즘이 요구되고 있다. 새로운 작업 증명 알고리즘은 아래와 같은 요건을 만족할 것이 요구된다.Therefore, a new proof-of-work algorithm is required to solve the re-centralization of such blockchain networks. The new proof-of-work algorithm is required to meet the following requirements.
1) 퍼즐은 풀기 어려워야 하나, 반대로 체크는 쉬워야 한다.1) Puzzles should be difficult to solve, but checkers should be easy.
2) 퍼즐은 외부 공격으로부터 견고한 저항성을 가져야 한다.2) Puzzles must have strong resistance to external attacks.
3) 풀린 퍼즐의 넌스 값은 재 사용되지 않는다.3) The nonce value of the solved puzzle is not reused.
4) 퍼즐의 난이도는 조절 가능하여야 한다.4) The difficulty of the puzzle should be adjustable.
5) CPU를 갖고 있는 정도라면 누구든지 작업 증명에 참여할 수 있어야 한다.5) Anyone with a CPU should be able to participate in proof of work.
이하에서는 상술한 요구 조건을 만족하는 본 발명의 일 실시 예에 따른 개선된 PoW기반 블록체인 네트워크에서의 작업 증명 알고리즘을 설명한다. 개선된 요구 조건 중 하나는Hereinafter, an operation proof algorithm in an improved PoW-based blockchain network according to an embodiment of the present invention will be described. One of the improved requirements
6) 작업증명에 쓰이는 함수가 매 블록마다 변화하여 바뀔 수 있어야 한다. 6) The function used for proof of work must be able to change every block.
이다. to be.
도 2는 본 발명의 일 실시 예에 따른 개선된 조건을 만족하는 작업 증명 알고리즘을 나타내는 흐름도이다.2 is a flowchart illustrating a proof-of-work algorithm that satisfies an improved condition according to an embodiment of the present invention.
도 2에서 설명하는 작업 증명 알고리즘은 상술한 채굴 장치를 통해 수행될 수 있으며, 구체적으로 채굴 장치에 마련된 CPU와 같은 프로세서에서 수행될 수 있다.The proof-of-work algorithm described in FIG. 2 may be performed through the mining apparatus described above, and specifically, may be performed by a processor such as a CPU provided in the mining apparatus.
채굴 장치는 현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득한다(S1001). 여기에서 현재 블록이란, 채굴자가 현재 만들고자 하는 블록으로, 아직 작업증명이 완료되지 않아 체인에 연결되지 않은 블록을 말한다. 블록 체인에 포함된 블록 헤더에는 블록에 관한 하나 이상의 정보를 포함할 수 있다. 블록 헤더가 포함하는 정보는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다. The mining device obtains a data value for proof of work from the current block header (S1001). Here, the current block is a block that a miner is currently trying to make, and a block which is not yet connected to the chain because the proof of work has not been completed. The block header included in the block chain may include one or more information about the block. The information included in the block header may include at least one of version information, difficulty information, time stamp information, nonce information, hash value information of a previous block, or transaction set information.
채굴 장치는 획득한 데이터 값에 포함된 제 1 값에 기초하여 패리티 체크 매트릭스를 생성한다(S1003). 여기에서 패리티 체크 매트릭스를 생성하는데 사용되는 제 1 값은 이전 블록의 해쉬 값일 수 있다. 패리티 체크 매트릭스는 Galois Field GF(q) 의 엘레멘트 (q = 2 인 경우는 0 또는 1 바이너리 엘레멘트)로 구성되는 Nc - Nm 바이 Nc 매트릭스일 수 있다. 가령 Nm=128 이고 Nc=256 이 될 수 있다. 채굴 장치는 현재 블록 인덱스 t (양의 정수) 에서 이전 블록의 해쉬 값(ht-1)을 이용하여 패리티 체크 매트릭스(Ft)를 생성할 수 있다. 여기에서 패리티 체크 매트릭스의 생성은 부호이론 분야에서 일반적으로 알려진 것을 사용할 수 있다.The mining device generates a parity check matrix based on the first value included in the obtained data value (S1003). Here, the first value used to generate the parity check matrix may be a hash value of the previous block. The parity check matrix may be an Nc-Nm by Nc matrix composed of elements of Galois Field GF (q) (or 0 or 1 binary elements if q = 2). For example, Nm = 128 and Nc = 256. The mining device may generate the parity check matrix Ft using the hash value ht-1 of the previous block at the current block index t (positive integer). Herein, the parity check matrix may be generated by one commonly known in the field of sign theory.
채굴 장치는 획득한 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성한다(S1005). 여기에서 해쉬 트리를 생성하는데 사용되는 제 2 값은 트랜잭션 셋 정보일 수 있다. 일 실시 예에서, 채굴 장치는 제 2 값에 기초하여 해쉬 트리 값을 생성할 수 있다. The mining device generates a hash tree based on the second value included in the obtained data value (S1005). Here, the second value used to generate the hash tree may be transaction set information. In one embodiment, the mining device may generate a hash tree value based on the second value.
채굴 장치는 획득한 데이터 값에 포함된 제 3 값 및 생성된 해쉬 트리에 기초하여 입력 셋(S)을 생성한다(S1007). 여기에서 사용되는 제 3 값은 이전 블록의 버전 정보, 난이도 정보 또는 타임스탬프 정보 중 적어도 하나일 수 있다. 또한, 블록 헤더에 포함된 다른 정보가 추가적으로 제 3 값으로 사용될 수도 있다.The mining device generates an input set S based on the third value included in the obtained data value and the generated hash tree (S1007). The third value used herein may be at least one of version information, difficulty information, or time stamp information of the previous block. In addition, other information included in the block header may additionally be used as the third value.
채굴 장치는 입력 셋을 해쉬 함수에 적용하여 결과 벡터(r)를 획득한다(S1009). 여기에서 사용되는 해쉬 함수는 SHA 256(Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. en:Selected Areas in Cryptography 2003: pp175-193) 함수일 수 있으며, 그 밖에 보안성이 검증된 다른 함수를 사용할 수도 있다. 이 때 채굴 장치는 특정의 넌스 값에 대한 해쉬 함수 출력인 결과 벡터를 생성한다.The mining device applies the input set to the hash function to obtain a result vector r (S1009). The hash function used here may be a SHA 256 function (Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters.en: Selected Areas in Cryptography 2003: pp175-193), and other functions whose security has been verified. You can also use The mining device then generates a result vector that is the hash function output for a particular nonce value.
채굴 장치는 해쉬 함수의 출력인 결과 벡터(r)와 단계 S1003에서 생성한 패리티 체크 매트릭스를 입력 값으로 하여 디코딩 함수에 적용한다(S1011). 채굴 장치는 디코딩 함수의 출력 값으로 출력워드(c^)를 획득할 수 있다. The mining apparatus applies the result vector r, which is the output of the hash function, and the parity check matrix generated in step S1003 as input values to the decoding function (S1011). The mining device may obtain an output word c ^ as an output value of the decoding function.
여기에서 디코딩 함수는 Error-Correction Code의 디코더, 통신이론의 Sphere-Decoding 신호수신기, 및 압축센싱의 Sparse 신호복원 알고리즘 또는 수학의 Inverse 문제의 해를 구하는 알고리즘 등 하나의 입력 값에 대한 유일한 출력 값을 만드는 함수가 사용될 수 있다. Here, the decoding function obtains a unique output value for one input value such as a decoder of error-correction code, a sphere-decoding signal receiver of communication theory, a sparse signal restoration algorithm of compression sensing, or an algorithm for solving an inverse problem of mathematics. The function you create can be used.
바람직한 일 실시 예로서, Error correction coding에 관한 디코딩 함수가 사용되는 경우, Error-Correction Code는 Noisy 채널 사이로 송신기와 수신기가 통신할 때 사용한다. Noisy채널을 통해 수신한 워드는 채널이 발생시키는 에러 때문에 송신한 워드와 다르게 된다. 이 에러를 잡아내고 정정하기 위해 오류정정부호가 사용된다. 송신기는 메시지 벡터를 1-대-1 매핑하여, 즉 인코딩 (Encoding) 하여 코드워드를 생성하고, 메시지 벡터 대신에 생성된 코드워드를 수신기로 전송한다. 수신기는 수신한 에러를 포함한 수신워드를 Decoding 하여 채널에서 발생한 오류를 제거할 수 있다. 수신워드를 입력해주면 Encoding 하는 함수의 역 문제를 풀어 송신된 코드워드를 복원하는 복원함수를 Decoder 또는 디코딩 함수라고 부른다. As a preferred embodiment, when a decoding function for error correction coding is used, an error-correction code is used when a transmitter and a receiver communicate between noisy channels. The word received on the noisy channel is different from the transmitted word due to an error generated by the channel. Error correction codes are used to catch and correct this error. The transmitter generates a codeword by 1-to-1 mapping, ie, encoding the message vector, and transmits the generated codeword to the receiver instead of the message vector. The receiver may decode the received word including the received error and remove the error occurring in the channel. When the receiving word is input, the reconstruction function that solves the inverse problem of the encoding function and restores the transmitted codeword is called a decoder or decoding function.
에러를 스스로 제거 할 수 있은 여유를 만들어 내기 위해서, 코드워드 벡터의 크기 Nc 를 메시지 벡터의 크기 Nm 보다 길게 만든다. 그리고, R = Nm/Nc 을 코드 Rate이라고 칭한다. 코드 Rate이 작으면, 채널 에러에 더욱 강인해 진다. 그러나 Decoding하기 위해 보다 많은 컴퓨팅을 필요로 할 수 있다. In order to make room for error removal by itself, make the size Nc of the codeword vector longer than the size Nm of the message vector. R = Nm / Nc is called a code rate. Smaller code rates make it more robust to channel errors. However, it may require more computing to decode.
본 발명은 Error-Correction Code에서 쓰는 Decoder를 작업증명에 적용하는 것을 발명의 한 실시 예로 보여준다. Decoder 함수를 SHA-256과 같은 암호함수와 묶어 합성함수를 만드는 것이다. 즉, 암호함수의 출력 값을 디코딩 함수의 입력 값의 하나로 넣는 것이다.The present invention shows an embodiment of the invention to apply the decoder used in the Error-Correction Code to proof of work. We combine Decoder with cryptographic functions like SHA-256 to create a composite function. In other words, the output value of the cryptographic function is put as one of the input values of the decoding function.
작업 증명에서는, 합성된 함수의 출력워드가 주어진 조건을 만족하는 합성함수의 입력 값, 즉 넌스 값을 찾는 것은 매우 어렵지만, 일단 찾은 코드워드 값이 조건에 적합한지 여부를 검증하는 것은 쉽다. 그러므로 이렇게 만들어낸 합성함수는 상기 작업 증명 알고리즘의 요건 중 1)을 만족시킨다. 바람직한 실시 예에서, 디코딩 함수로서 graph-decoder 가 사용될 수 있다. 또한, 추가적으로 디코딩 함수는 리니어 graph-decoder 분야에서 가장 빠른 코드워드 매핑이 가능한 알고리즘이 사용될 수 있다. In proof-of-work, it is very difficult to find the input value of the synthesized function, that is, the nonce value, where the output word of the synthesized function satisfies the given condition, but it is easy to verify whether the codeword value found once is suitable for the condition. Therefore, the resulting synthesis function satisfies 1) of the proof-of-work algorithm. In a preferred embodiment, graph-decoder may be used as the decoding function. Additionally, the decoding function may use an algorithm capable of the fastest codeword mapping in the linear graph-decoder field.
예를 들어, graph-decoder의 일종인 LDPC(low density parity check) decoder가 사용될 수 있다. 상기 LDPC decoder를 사용함으로써, 혼합도(Complexity)가 어렵지 않고, 연산량이 줄어 드는 장점이 있다. For example, a low density parity check (LDPC) decoder, which is a kind of graph decoder, may be used. By using the LDPC decoder, the complexity is not difficult and the amount of calculation is reduced.
이 뿐만 아니라 상기 LDPC decoder는 ASIC을 이용한 재중앙화를 더 어렵게 만들 수 있다. 예를 들어, 종래 ASIC-LDPC(Y L Ueng, B J Yang, C J Yang, H C Lee, and J D Yang, "An Efficient Multi-Standard LDPC Decoder Design Using Hard-ware-Friendly Shuffled Decoding," IEEE Trans Circuits Syst I, vol 60, no 3, pp 743-756, March 2013)는 대략 100개의 패리티(parity) 체크 매트릭스를 서포트할 수 있지만, 그 디코더의 부가적인 요소들은 디코더 전체 영역의 75%를 점유하고 있다. 이 예시는, 무한한 수의 패리티 채크 매트릭스를 서포트하기 위하여 ASIC-LDPC decoder를 사용하는 것은 불가능하다는 것을 보여준다. In addition, the LDPC decoder may make it more difficult to recentralize using an ASIC. For example, conventional ASIC-LDPC (YL Ueng, BJ Yang, CJ Yang, HC Lee, and JD Yang, "An Efficient Multi-Standard LDPC Decoder Design Using Hard-ware-Friendly Shuffled Decoding," IEEE Trans Circuits Syst I, vol 60, no 3, pp 743-756, March 2013) may support approximately 100 parity check matrices, but additional elements of the decoder occupy 75% of the decoder's total area. This example shows that it is not possible to use an ASIC-LDPC decoder to support an infinite number of parity check matrices.
상기 graph-decoder의 다른 예로서, 리드 솔로몬 디코더(reed solomon decoder)는, 만들어 낼 수 있는 패리티 체크 메트릭스의 수가 정해져 있다. 이에 따르면, 패리티 체크 매트릭스가 한정되기 때문에, LDPC에 비하여 ASIC를 이용하는 재중앙화를 비교적 쉽게 할 수 있다. As another example of the graph-decoder, the number of parity check matrices that can be produced is determined by the reed solomon decoder. According to this, since the parity check matrix is limited, recentralization using an ASIC can be made relatively easy as compared with LDPC.
채굴 장치는, 획득한 Decoder의 출력워드가 기 설정된 조건을 만족하는지 여부를 판단한다(S1013). 채굴 장치는 매핑된 출력워드에 관한 조건 셋을 미리 가지고 있으며, 단계 S1011에서 획득한 출력워드 값이 코드워드인지 여부와 코드워드인 경우 기 설정된 조건 셋을 만족하는지 여부를 판단한다.The mining device determines whether the obtained output word of the decoder satisfies a preset condition (S1013). The mining device has a condition set related to the mapped output word in advance, and determines whether the output word value acquired in step S1011 is a codeword and whether the preset condition set is satisfied.
도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.3 shows the codeword and condition set described above.
도 3에서 예를 든 바와 같이, 2256개의 벡터(예를 들어 SHA 함수의 출력)가 있으며, 그 중 1/4 코드 레이트로 264개 정도의 코드워드가 존재한다. 디코딩 함수(Dec())에 벡터를 입력하는 경우에 하나의 출력워드로 매핑이 되는데, 여기에서 매핑된 출력워드가 조건 셋에 포함되는 코드워드인지 여부를 채굴 장치가 판단한다. As illustrated in FIG. 3, there are 2256 vectors (for example, the output of the SHA function), of which there are about 264 codewords at a 1/4 code rate. When a vector is input to the decoding function Dec (), it is mapped to one output word. The mining device determines whether the mapped output word is a codeword included in a condition set.
다시 도 2로 돌아온다.Return to Figure 2 again.
앞서 설명한 바와 같이, 매핑된 출력워드가 조건 셋을 만족하는 경우, 채굴 장치는 작업 증명이 완료되었다고 판단하고, 현재의 넌스 값을 기록하면서 새로운 블록을 생성하고 이를 다른 채굴 장치로 브로드캐스팅한다(S1017). 따라서, 기존 비트코인 작업 증명에서 해쉬 함수 출력 값만으로 작업 증명 완료 여부를 판단하는 것과 달리, 디코딩 함수를 이용하여 출력워드 값을 검증하는 과정이 추가되기 때문에, 정형화된 알고리즘에서 발생할 수 있는 문제(ASIC을 이용한 재중앙화)를 해결할 수 있다.As described above, when the mapped output word satisfies the condition set, the mining device determines that the proof of work is completed, generates a new block while recording the current nonce value, and broadcasts it to another mining device (S1017). ). Therefore, unlike determining whether the proof-of-work is completed by the hash function output value only in the existing bitcoin proof of work, the process of verifying the output word value by using the decoding function is added, which may cause problems in the formal algorithm (ASIC Recentralization).
다시 말해서, 본 발명의 일 실시 예에 따른 합성함수에 의한 작업 증명 알고리즘에서는 Decoder부분의 입력 중 하나인 패리티 체크 매트릭스를 매 블록마다 변경할 수 있기 때문에, 매 블록마다 다른 Decoder 퍼즐을 작업 증명으로 수행해야 한다. 이전 블록 해쉬 값에 패리티 체크 매트릭스가 의존하기 때문에, 역시 매 블록마다 다른 입력 값이 사용되어 결과적으로 ASIC 칩의 출현을 억제할 수 있다. 즉, ASIC 칩을 사용한 채굴을 힘들게 함으로써, 상대적으로 해쉬파워가 떨어지는 CPU 로도 누구나 작업증명에 참여할 수 있으므로 새로운 작업 증명 알고리즘의 요건 5) 를 만족한다. 또한, 디코딩에 사용되는 함수 또한 원웨이 특성을 갖는 또 다른 종류의 함수로 변경 가능한 것으로서, 이 역시 고정화된 알고리즘으로 인한 ASIC 칩의 출현을 억제하는 요소가 된다. 또한 특정 퍼즐문제에 대한 넌스 값을 찾았더라도 매 블록마다 다른 입력 값이 퍼즐을 만드는데 사용되므로, 기존의 넌스 값을 새로운 블록의 넌스 값으로 재사용 할 수 없다. 즉, 새로운 작업 알고리즘의 요건 3)을 만족한다.In other words, in the proof-of-work algorithm by the synthesis function according to an embodiment of the present invention, since the parity check matrix, which is one of the inputs of the decoder part, can be changed every block, a different decoder puzzle must be executed as the proof-of-work for each block. do. Since the parity check matrix depends on the previous block hash value, a different input value is also used for each block, resulting in suppression of the appearance of the ASIC chip. That is, mining using ASIC chips makes it difficult for anyone to participate in proof-of-work even with a relatively low hash power CPU, thus satisfying the requirements of the new proof-of-work algorithm. In addition, the function used for decoding can also be changed to another kind of function having a one-way characteristic, which also suppresses the appearance of the ASIC chip due to the fixed algorithm. In addition, even if a nonce value for a particular puzzle problem is found, a different input value is used to create a puzzle for each block, so the existing nonce value cannot be reused as the nonce value of a new block. That is, it satisfies the requirement 3) of the new working algorithm.
만약, 매핑된 출력워드가 조건 셋을 만족하지 못하는 경우, 채굴 장치는 기 사용한 넌스 값을 넌스 셋에서 제외하고, 넌스 셋에서 사용되지 않은 새로운 넌스 값을 선택하여 다시 단계 S1009로 돌아간다(S1015). 채굴 장치는 매핑된 출력워드가 조건을 만족할 때까지 새로운 넌스 값을 선택하면서 각 단계를 반복한다. If the mapped output word does not satisfy the condition set, the mining apparatus excludes the used nonce value from the nonce set, selects a new nonce value not used in the nonce set, and returns to step S1009 again (S1015). . The mining apparatus repeats each step selecting a new nonce value until the mapped output word satisfies the condition.
도 4는 본 발명의 일 실시 예에 따른 채굴 장치의 검증 프로세스를 나타내는 흐름도이다.4 is a flowchart illustrating a verification process of a mining apparatus according to an embodiment of the present invention.
앞서 도 2 내지 3에서 설명한 단계는 채굴 장치의 채굴 프로세스이며, 채굴 장치는 작업 증명이 완료되면 새롭게 생성된 블록을 다른 채굴 장치로 브로드캐스팅한다. 그리고 브로드캐스팅된 블록을 다른 채굴 장치들이 검증하여 정당한 블록임이 인정된다면 채굴 장치들은 해당 블록을 기존의 블록 체인에 더하여 블록 체인 원장을 업데이트 한다. Steps 2 to 3 described above are mining processes of the mining apparatus, and when the proof of work is completed, the mining apparatus broadcasts the newly generated block to another mining apparatus. If the mined device is recognized as a valid block by verifying the broadcast block, the mining device updates the block chain ledger by adding the block to the existing block chain.
채굴 장치는 블록을 생성한 다른 채굴 장치로부터 브로드캐스팅 된 블록의 블록 헤더 데이터를 획득한다(S2001). 여기에서 채굴 장치가 획득하는 블록 헤더 데이터는 앞서 설명한 것과 동일하다.The mining device obtains block header data of the broadcast block from another mining device that generated the block (S2001). Here, the block header data acquired by the mining device is the same as described above.
채굴 장치는 블록 헤더 데이터에 포함된 해쉬 값에 기초하여 패리티 체크 매트릭스를 생성한다(S2003). 여기에서 패리티 체크 매트릭스를 생성하는 방법은 앞서 설명한 것과 동일하다.The mining device generates a parity check matrix based on the hash value included in the block header data (S2003). Here, the method of generating the parity check matrix is the same as described above.
채굴 장치는 블록 헤더 데이터에 기초하여 해쉬 함수의 출력 값을 획득한다(S2005). 여기에서 해쉬 함수의 출력 값을 획득하는 단계는 앞서 설명한 것과 동일하다.The mining device obtains an output value of the hash function based on the block header data (S2005). Herein, obtaining the output value of the hash function is the same as described above.
채굴 장치는 해쉬 함수의 출력 값과 패리티 체크 매트릭스를 입력 값으로 하는 디코딩 함수 출력 값으로 출력워드를 획득한다(S2007). 여기에서 사용하는 디코딩 함수는 앞서 설명한 것과 동일하다.The mining device obtains an output word as a decoding function output value using the output value of the hash function and the parity check matrix as input values (S2007). The decoding function used here is the same as described above.
채굴 장치는 출력워드가 조건을 만족하는지 여부를 판단한다(S2009). 여기에서 조건은 앞서 채굴 프로세스에서의 조건과 동일한 조건으로 설정되는 것이다. 검증을 위한 조건 셋은 전체 채굴 장치에 대하여 일괄적으로 설정된 것일 수 있으며, 블록이 브로드캐스팅될 때 함께 전달될 수도 있다.The mining device determines whether the output word satisfies the condition (S2009). Here, the conditions are set to the same conditions as those in the mining process. The set of conditions for verification may be set collectively for the entire mining device, or may be delivered together when the block is broadcast.
채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하는 경우 브로드캐스팅된 블록을 승인하고 이를 기존의 블록 체인에 연장하여 원장을 업데이트한다(S2011). If the mining device determines that the output word satisfies the set of conditions, the mining device approves the broadcasted block and updates the ledger by extending it to the existing block chain (S2011).
반면에, 채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하지 못하는 경우, 브로드캐스팅 된 블록이 정당한 블록이 아니라고 판단하여 브로드캐스팅된 블록 승인을 거절한다(S2013). On the other hand, when the mining device determines that the output word does not satisfy the condition set, the mining device determines that the broadcast block is not a valid block and rejects the broadcast block approval (S2013).
결과적으로 상술한 검증 방법은 이미 알고 있는(또는 기 설정되어 있는) 디코딩 함수에, 전달 받은 값을 넣어 조건 셋에 부합하는지 여부만 검증하면 되는 것이다. 따라서, 넌스 값을 변경하면서 조건에 맞는 코드워드를 찾아 작업증명을 완료하는 과정에 비해, 상대적으로 매우 간단하여 블록 체인에 적합한 검증 방법이다. 따라서, 외부의 공격자가 블록의 내용을 조작하더라도 검증자가 조작여부를 쉽게 알 수 있으므로 새로운 작업 증명 알고리즘의 요건 2)를 만족한다.As a result, the above-described verification method only needs to verify whether the received value is satisfied by inserting the received value into a decoding function that is already known (or preset). Therefore, it is relatively simple compared to the process of finding the codeword that matches the condition while completing the proof of work while changing the nonce value. Therefore, even if an external attacker manipulates the contents of the block, the verifier can easily know whether or not it satisfies the requirement 2) of the new proof-of-work algorithm.
도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 패리티 체크 매트릭스를 통해 설명하는 도면이다.FIG. 5 is a diagram for describing a method of controlling a mining difficulty level using an 8 by 16 parity check matrix in a proof-of-work algorithm according to an embodiment of the present invention.
도 5(a)는 8 바이 16 패리티 체크 매트릭스의 예이다. 실제로는 이것보다 훨씬 큰 크기의 패리티 체크 매트릭스를 사용할 수 있으나, 설명의 용이성을 위해 8 바이 16 패리티 체크 매트릭스를 예시로 설명한다.5A is an example of an 8 by 16 parity check matrix. In practice, a much larger parity check matrix can be used, but for ease of explanation, an 8 by 16 parity check matrix is described as an example.
도 5(b)는 (a)에서의 패리티 체크 매트릭스에 기초하여 코드워드 값을 정리한 표이다. n은 코드워드의 해밍 가중치(Hamming weight)를 나타내는데, 다시 말해서 코드워드에 포함된 0이 아닌 수의 개수를 지칭한다. Vn은 1을 해밍 가중치에서 인디케이팅 하는 수만큼 가지고 있는 조건 셋을 나타낸다. p는 전체 코드워드의 개수 중 Vn 조건셋에 포함되는 코드워드 개수의 비율을 나타낸다.5B is a table summarizing the codeword values based on the parity check matrix in (a). n represents the Hamming weight of the codeword, that is, the number of non-zero numbers included in the codeword. Vn represents a set of conditions that have 1 as the number of Hamming weights. p represents the ratio of the number of codewords included in the Vn condition set among the total number of codewords.
도 5(b)의 표에서 나타내는 바와 같이 n 개의 1을 포함하는 조건 셋의 크기가 다름을 알 수 있으며, 그에 대한 각각의 점유율을 알 수 있다. 따라서, 조절하고자 하는 암호 퍼즐의 난이도에 따라 해밍 가중치를 결정할 수 있다. 예를 들어 난이도를 낮게 하는 경우에 해밍 가중치를 7 내지 10으로 설정할 수 있다. 반대로 난이도를 높이고자 하는 경우 해밍 가중치를 3으로 설정할 수 있다. 각각의 경우 조건 셋을 만족하는 코드워드가 선택될 확률이 각각 약55%와 2.5%로 차이가 나고, 이에 따라서, 후자의 경우 더 많은 연산을 수행하여야 조건 셋을 만족하는 코드워드 값을 획득할 수 있다. 결과적으로 작업 증명의 난이도가 상승하게 된다. 즉, 상기한 코드 Rate을 바꾸고, 패리티 체크 메트릭스의 크기를 조절하여 Decoder 퍼즐을 푸는데 필요한 컴퓨팅 량을 조절하여 퍼즐의 난이도를 유연하게 조절할 수 있으므로, 새로운 작업 증명 알고리즘의 요건 4) 를 만족한다.As shown in the table of FIG. 5 (b), it can be seen that the size of the condition set including n 1 is different, and the respective occupancy ratios thereof. Therefore, the hamming weight can be determined according to the difficulty of the cryptographic puzzle to be adjusted. For example, when the difficulty is lowered, the hamming weight may be set to 7 to 10. Conversely, if you want to increase the difficulty, you can set the Hamming weight to 3. In each case, the probability of selecting a codeword that satisfies the condition set differs by about 55% and 2.5%, respectively. Therefore, in the latter case, more operations must be performed to obtain a codeword value that satisfies the condition set. Can be. As a result, the difficulty of proof of work increases. That is, since the difficulty of the puzzle can be flexibly adjusted by changing the code rate and adjusting the size of the parity check matrix, the amount of computing required to solve the decoder puzzle is satisfied, thus satisfying the requirements of the new proof-of-work algorithm.
도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.6 is a block diagram showing a mining apparatus according to an embodiment of the present invention.
본 발명의 일 실시 예에 따른 채굴 장치는 제어부(110), 네트워크부(120) 및 저장부(130)을 포함한다.The mining device according to an embodiment of the present invention includes a control unit 110, a network unit 120 and a storage unit 130.
제어부(110)는 프로세서를 지칭할 수 있으며, 마이크로 프로세서 또는 제어기를 포함할 수 있다.The controller 110 may refer to a processor and may include a microprocessor or a controller.
도 6에 도시된 바와 같이, 제어부(110)는 현재 블록 헤더 데이터 획득부(111), 입력 값 생성부(112), 해쉬 함수 적용부(113), 출력워드 획득부(114), 및 블록생성부(115)를 포함할 수 있다.As shown in FIG. 6, the control unit 110 may include a current block header data obtaining unit 111, an input value generating unit 112, a hash function applying unit 113, an output word obtaining unit 114, and a block generation unit. The unit 115 may be included.
현재 블록 헤더 데이터 획득부(111)는, 채굴하고자 하는 현재 블록의 헤더를 추출하여 헤더에 포함된 데이터를 획득한다. 여기에서 현재 블록 헤더 데이터 획득부(111)가 획득하는 데이터는, 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보, 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다.The current block header data obtaining unit 111 extracts a header of the current block to be mined to obtain data included in the header. Herein, the data acquired by the current block header data acquisition unit 111 may include at least one of version information, difficulty information, time stamp information, nonce information, hash value information of a previous block, or transaction set information.
입력 값 생성부(112)는 현재 블록 헤더 데이터에 기초하여 복수의 입력 값을 생성한다. 일 실시 예에서 입력 값 생성부(112)는 이전 블록 해쉬 값에 기초하여 패리티 체크 매트릭스를 생성할 수 있다. 또 다른 실시 예에서 입력 값 생성부(112)는 트랜잭션 셋에 기초하여 해쉬 트리 값을 생성할 수 있다. 또 다른 실시 예에서 입력 값 생성부(112)는 해쉬 트리 값 및 다른 헤더 데이터에 기초하여 해쉬 함수 입력 셋을 생성할 수 있다. 여기에서 다른 헤더 데이터 값이란 예를 들어 버전 정보, 난이도 정보 또는 타임스탬프 정보 중 적어도 어느 하나일 수 있다.The input value generator 112 generates a plurality of input values based on the current block header data. In an embodiment, the input value generator 112 may generate a parity check matrix based on a previous block hash value. In another embodiment, the input value generator 112 may generate a hash tree value based on a transaction set. In another embodiment, the input value generator 112 may generate a hash function input set based on a hash tree value and other header data. Herein, the other header data value may be at least one of version information, difficulty information, or time stamp information.
해쉬 함수 적용부(113)는, 입력 값 생성부(112)에서 생성된 입력 셋을 입력 값으로 하여 해쉬 함수 출력을 획득한다. 여기에서 해쉬 함수는 SHA 함수일 수 있으며, 다른 보안성이 확보된 함수도 적용 가능하다.The hash function application unit 113 obtains a hash function output by using the input set generated by the input value generator 112 as an input value. Here, the hash function may be a SHA function, and other secured functions may be applied.
출력워드 획득부(114)는 패리티 체크 매트릭스와 해쉬 함수 출력 값에 기초하여 출력워드를 획득한다. 일 실시 예에서 출력워드 매핑 알고리즘을 이용하여, 출력워드는 입력 값에서 가까운 하나의 코드워드를 찾는 방법으로 획득될 수 있다. 또 다른 실시 예에서, 출력워드 매핑 알고리즘은 graph codeword mapping이 사용될 수 있다. 더 바람직하게, 출력워드 매핑 알고리즘은 LDPC codeword mapping (예컨대, message passing 방법) 이 사용될 수 있다. The output word obtainer 114 obtains an output word based on the parity check matrix and the hash function output value. According to an embodiment, using an output word mapping algorithm, an output word may be obtained by finding one codeword close to an input value. In another embodiment, graph codeword mapping may be used as the output word mapping algorithm. More preferably, the output word mapping algorithm may use LDPC codeword mapping (eg, message passing method).
블록생성부(115)는 획득한 출력워드를 검증하여 검증 결과에 따라 블록을 생성한다. 블록생성부(115)는 넌스값을 발생시키고, 해당 넌스값에 대응하는 출력워드가 조건 셋을 만족하는지 여부를 판단한다. 블록생성부(115)는 획득한 출력워드가 조건 셋을 만족하는 경우 해당 넌스값을 저장하고 블록을 생성한다. 반면에 블록생성부(115)는 출력워드가 조건 셋을 만족하지 못하는 경우 넌스 값을 바꾸고 다시 출력워드 획득부로부터 새로운 출력워드값을 받아 검증 작업을 수행한다. The block generator 115 verifies the obtained output word and generates a block according to the verification result. The block generator 115 generates a nonce value and determines whether an output word corresponding to the nonce value satisfies a condition set. The block generator 115 stores a nonce value and generates a block when the obtained output word satisfies a condition set. On the other hand, if the output word does not satisfy the condition set, the block generator 115 changes the nonce value and receives a new output word value from the output word acquiring unit to perform verification.
네트워크부(120)는 유무선 통신 장치이다. 네트워크부(120)는 다른 채굴 장치와 연결을 수행하고, 생성된 블록을 브로드캐스팅한다. 또한 네트워크부(120)는 다른 채굴장치가 생성한 블록을 수신하여 이를 현재 블록 헤더 데이터 획득부(111)에 전달할 수도 있다.The network unit 120 is a wired or wireless communication device. The network unit 120 connects with another mining device and broadcasts the generated block. In addition, the network unit 120 may receive a block generated by another mining device and transfer it to the current block header data acquisition unit 111.
저장부(130)는 제어부(110)에서 사용되는 각종 인스트럭션을 저장한다. 또한 저장부(130)는 제어부(110)에서 생성된 블록이 연결된 블록 체인 원장을 저장한다. 저장부(130)는 메모리 장치일 수 있다.The storage unit 130 stores various instructions used by the controller 110. In addition, the storage unit 130 stores the block chain ledger to which the blocks generated by the controller 110 are connected. The storage unit 130 may be a memory device.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be embodied as computer readable codes on a medium on which a program is recorded. The computer-readable medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable media include hard disk drives (HDDs), solid state disks (SSDs), silicon disk drives (SDDs), ROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and the like. There is this. Accordingly, the above detailed description should not be construed as limiting in all aspects and should be considered as illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.
본 발명의 채굴 장치 및 채굴 장치 동작 방법에 따르면, ASIC 칩으로 구현이 거의 불가능한 알고리즘으로서 작업 증명 기반의 암호화폐 시스템에서 발생하고 있는 재-중앙화(re-centralization)를 해결할 수 있다.According to the mining device and the method of operating the mining device of the present invention, it is possible to solve the re-centralization occurring in the proof-of-work cryptocurrency system as an algorithm almost impossible to implement with the ASIC chip.

Claims (13)

  1. 거래가 발생하면 블록을 생성하고, 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치에 있어서,In the mining device that generates a block when a transaction occurs, and performs a proof of work through a proof-of-work agreement mechanism to form a block chain,
    - 채굴하고자 하는 현재 블록의 헤더로부터 작업 증명을 위한 데이터 값을 획득하고, -Obtain a data value for proof of work from the header of the current block to be mined,
    - 획득한 상기 데이터 값에 기초하여 제 1 입력 값 및 제 2 입력 값을 획득하고, Obtain a first input value and a second input value based on the obtained data value,
    - 상기 제 1 입력 값에 기초하여 패리티 체크 매트릭스를 생성하고, Generate a parity check matrix based on the first input value,
    - 상기 제 2 입력 값 및 제 3 입력 값에 기초하여 특정 넌스(nonce)값 에 대한 해쉬 함수 값을 획득하고, Obtain a hash function value for a particular nonce value based on the second input value and the third input value,
    - 상기 해쉬 함수 값 및 상기 제 1 입력 값에 기초하여 매핑된 출력워드 값을 획득하고, Obtain a mapped output word value based on the hash function value and the first input value,
    - 상기 출력워드 값이 조건 셋을 만족하는지 여부를 판단하여 만족하는 경우 블록을 생성하여 작업 증명을 완료하는 제어부; 및A controller configured to determine whether the output word value satisfies a condition set and to generate a block if the output word value satisfies the condition set; And
    상기 생성된 블록을 다른 채굴 장치로 브로드캐스팅하는 네트워크부를 포함하는It includes a network unit for broadcasting the generated block to another mining device
    채굴장치.Mining device.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 제어부는,The control unit,
    - 현재 블록 헤더 데이터 중, 상기 제 2 입력 값에 기초하여 해쉬 트리를 생성하고, Generate a hash tree based on the second input value among current block header data,
    - 생성한 상기 해쉬 트리와 상기 제 3 입력 값에 기초하여 입력 셋을 생성하는Generate an input set based on the generated hash tree and the third input value
    채굴 장치.Mining device.
  3. 제 2 항에 있어서,The method of claim 2,
    상기 제 3 입력 값 생성에 사용되는 블록 헤더 데이터 값은 현재 블록의 버전 정보, 타임스탬프 정보 또는 난이도 정보 중 적어도 어느 하나인The block header data value used to generate the third input value is at least one of version information, time stamp information, or difficulty information of the current block.
    채굴 장치.Mining device.
  4. 제 1 항에 있어서,The method of claim 1,
    상기 제어부는 이전 블록 해쉬 값에 기초하여 제 1 입력 값을 생성하는 The controller generates a first input value based on a previous block hash value.
    채굴 장치.Mining device.
  5. 제 1 항에 있어서,The method of claim 1,
    상기 제어부는 출력워드 값이 조건 셋을 만족하지 않는 경우, 넌스 값을 바꾸어 다시 출력워드 값을 획득하는If the output word value does not satisfy the condition set, the controller changes the nonce value to obtain the output word value again.
    채굴 장치.Mining device.
  6. 현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득하는 단계;Obtaining a data value for proof of work from the current block header;
    획득한 상기 데이터 값에 포함된 제 1 값에 기초하여 패리티 체크 매트릭스를 생성하는 단계;Generating a parity check matrix based on a first value included in the obtained data value;
    상기 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성하는 단계;Generating a hash tree based on a second value included in the data value;
    상기 데이터 값에 포함된 제 3 값 및 해쉬 트리에 기초하여 입력 셋을 생성하는상기 단계;Generating an input set based on a hash value and a third value included in the data value;
    상기 입력 셋을 해쉬 함수에 적용하여 결과 벡터를 획득하는 단계;Applying the input set to a hash function to obtain a result vector;
    상기 결과 벡터 및 상기 패리티 체크 매트릭스에 기초하여 코드워드를 획득하는 단계;Obtaining a codeword based on the result vector and the parity check matrix;
    상기 코드워드가 기 설정된 조건 셋을 만족하는지 여부를 판단하는 단계; 및Determining whether the codeword satisfies a preset condition set; And
    판단 결과에 기초하여 새로운 블록을 생성하거나, 다른 넌스 값을 사용하여 다시 코드워드를 획득하는 단계를 포함하는Generating a new block based on the determination result or obtaining a codeword again using another nonce value;
    채굴 장치 동작 방법.How mining device works.
  7. 제 6 항에 있어서,The method of claim 6,
    새로운 블록이 생성된 경우 블록을 다른 채굴 장치로 브로드캐스팅하는 단계를 더 포함하는Broadcasting the block to another mining device when a new block is generated;
    채굴 장치 동작 방법.How mining device works.
  8. 제 7 항에 있어서,The method of claim 7, wherein
    상기 코드워드가 기 설정된 조건 셋을 만족하는지 여부를 판단하는 단계는,Determining whether or not the codeword satisfies a preset condition set,
    작업 증명 과정의 난이도 조정을 위해 기 설정된 조건 셋을 조정하는 단계를 포함하는 Adjusting a set of preset conditions for adjusting the difficulty of the proof-of-work process.
    채굴 장치 동작 방법. How mining device works.
  9. 제 8 항에 있어서, The method of claim 8,
    상기 블록을 다른 채굴 장치로 브로드캐스팅하는 단계는,Broadcasting the block to another mining device,
    상기 조정된 조건 셋 정보를 블록과 함께 브로드캐스팅하는 단계를 포함하는Broadcasting the adjusted condition set information together with a block;
    채굴 장치 동작 방법.How mining device works.
  10. 제 8 항에 있어서,The method of claim 8,
    조건 셋을 조정하는 단계는,To adjust the condition set,
    코드워드에 포함된 1의 개수를 지칭하는 해밍 가중치를 조정하는 단계를 포함하는Adjusting a hamming weight that refers to the number of 1s included in the codeword;
    채굴 장치 동작 방법.How mining device works.
  11. 제 6 항에 있어서,The method of claim 6,
    상기 결과 벡터 및 상기 패리티 체크 매트릭스에 기초하여 출력워드를 획득하는 단계는,Obtaining an output word based on the result vector and the parity check matrix,
    상기 결과 벡터에 대응하는 출력워드 하나를 찾아 매핑하는 단계를 포함하는And finding and mapping one output word corresponding to the result vector.
    채굴 장치 동작 방법.How mining device works.
  12. 제 11 항에 있어서,The method of claim 11,
    상기 매핑된 출력워드를 찾는 알고리즘은 graph codeword mapping인The algorithm for finding the mapped output word is graph codeword mapping.
    채굴 장치 동작 방법.How mining device works.
  13. 제 12 항에 있어서,The method of claim 12,
    상기 매핑된 출력워드를 찾는 알고리즘은 LDPC codeword mapping인The algorithm for finding the mapped output word is LDPC codeword mapping.
    채굴 장치 동작 방법. How mining device works.
PCT/KR2019/008904 2018-07-18 2019-07-18 Mining device and method of operating mining device WO2020017908A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862699751P 2018-07-18 2018-07-18
US62/699,751 2018-07-18
KR1020180097677A KR102231257B1 (en) 2018-07-18 2018-08-21 mining apparatus and operation methof of the same
KR10-2018-0097677 2018-08-21

Publications (1)

Publication Number Publication Date
WO2020017908A1 true WO2020017908A1 (en) 2020-01-23

Family

ID=69163722

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/008904 WO2020017908A1 (en) 2018-07-18 2019-07-18 Mining device and method of operating mining device

Country Status (1)

Country Link
WO (1) WO2020017908A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482684B1 (en) * 2013-10-15 2015-01-16 한국과학기술원 Decoding method and method of operating memory system including the same
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
KR20180014534A (en) * 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
US20180189753A1 (en) * 2017-01-05 2018-07-05 Beskatta, LLC Infrastructure for obligation management and validation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482684B1 (en) * 2013-10-15 2015-01-16 한국과학기술원 Decoding method and method of operating memory system including the same
KR20170040079A (en) * 2016-05-03 2017-04-12 안규태 Block chain supporting multiple one-way functions used for verification of blocks
KR20180014534A (en) * 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
US20180189753A1 (en) * 2017-01-05 2018-07-05 Beskatta, LLC Infrastructure for obligation management and validation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"BlockChain", 20 September 2017 (2017-09-20), Retrieved from the Internet <URL:https://jinunthing.tistory.com/12> [retrieved on 20191008] *

Similar Documents

Publication Publication Date Title
AU2018348336B2 (en) Performing a change of primary node in a distributed system
CN110169015B (en) Achieving consensus among network nodes in a distributed system
CN110178340B (en) Recovery processing of network nodes in distributed systems
RU2554556C2 (en) Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes
JP2020504927A (en) Method and apparatus for a distributed database enabling deletion of events
CN112769558B (en) Code rate self-adaptive QKD post-processing method and system
CN109586896B (en) Data integrity verification method based on Hash prefix tree
KR20060059853A (en) Quantum key distribution method and communication device
US20230299947A1 (en) Computer implemented system and method for sharing a common secret
CN111639080B (en) Data processing method and device, node equipment and storage medium
Crépeau et al. Approximate quantum error-correcting codes and secret sharing schemes
CN111444547A (en) Method, apparatus and computer storage medium for data integrity attestation
KR102231257B1 (en) mining apparatus and operation methof of the same
van der Linde et al. Post-quantum blockchain using one-time signature chains
US20180018232A1 (en) Encryption of slice partials
WO2020017908A1 (en) Mining device and method of operating mining device
US10110258B2 (en) Accelerated erasure coding for storage systems
WO2021010720A1 (en) Mining apparatus
CN115244894A (en) Hash message authentication code generation method
Luo et al. Differential fault analysis of SHA-3 under relaxed fault models
CN111970130B (en) Quantum block chain establishment method and system
CN111147254B (en) Method and device for generating EdDSA digital signature cooperated by two parties
Lewko et al. Balancing communication for multi-party interactive coding
Guo et al. BFT-DSN: A Byzantine Fault Tolerant Decentralized Storage Network
Liang et al. A Framework of Private Set Intersection Protocols.

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 19.05.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19837353

Country of ref document: EP

Kind code of ref document: A1