KR102288769B1 - Error-correction code based crypto currency system - Google Patents

Error-correction code based crypto currency system Download PDF

Info

Publication number
KR102288769B1
KR102288769B1 KR1020190151246A KR20190151246A KR102288769B1 KR 102288769 B1 KR102288769 B1 KR 102288769B1 KR 1020190151246 A KR1020190151246 A KR 1020190151246A KR 20190151246 A KR20190151246 A KR 20190151246A KR 102288769 B1 KR102288769 B1 KR 102288769B1
Authority
KR
South Korea
Prior art keywords
mining
difficulty
block
check matrix
proof
Prior art date
Application number
KR1020190151246A
Other languages
Korean (ko)
Other versions
KR20210019922A (en
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 KR20210019922A publication Critical patent/KR20210019922A/en
Application granted granted Critical
Publication of KR102288769B1 publication Critical patent/KR102288769B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • H03M13/455Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명의 일 실시 예에 따른 채굴 장치는, 거래가 발생하면 블록을 생성하고, 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치에 있어서, 블록체인 시스템을 모니터링하여, 채굴 난이도를 높이거나 낮추도록 결정하는 채굴 난이도 결정부가 포함되고, 상기 채굴 난이도 결정부에서 결정된 적용 채굴 난이도에 따라서 블록을 생성하여 작업 증명을 완료하는 제어부; 및 상기 생성된 블록을 다른 채굴 장치로 브로드캐스팅하는 네트워크부를 포함하는 것을 특징으로 한다.A mining device according to an embodiment of the present invention generates a block when a transaction occurs, and performs a proof-of-work through a proof-of-work consensus mechanism to form a block chain. By monitoring the block chain system, the mining difficulty a control unit comprising a mining difficulty determining unit that determines whether to increase or decrease , and a control unit for generating a block according to the applied mining difficulty determined by the mining difficulty determining unit to complete the proof of work; and a network unit for broadcasting the generated block to other mining devices.

Description

부호-암호 화폐 시스템{Error-correction code based crypto currency system}Code-Crypto Currency System {Error-correction code based crypto currency system}

본 발명은 암호 화폐 시스템에 관한 것이다. 구체적으로 개선된 작업 증명 알고리즘을 통해 블록을 생성하고, 이를 검증하는 채굴 장치를 포함하는 암호 화폐 시스템에 관한 것이다.The present invention relates to a cryptocurrency system. Specifically, it relates to a cryptocurrency system including a mining device that generates a block through an improved proof-of-work algorithm and verifies it.

2009년 사토시 나카모토가 개발한 비트코인[1]으로부터 블록 체인 기반의 암호화폐가 등장했다. 블록 체인은 공공 분산 원장을 위한 분산 데이터 처리 기술이다. Peer-to-Peer(P2P) 트랜잭션 데이터는 블록으로 기록되며, 이들 블록은 블록의 링크드 리스트(다시 말해서, 체인)를 형성한다. 네트워크의 각 사용자는 중앙 권한 없이 분산된 방식으로 전체 데이터를 저장한다. 블록 체인의 각 블록이 이전 블록의 해쉬 값을 포함하는 블록 체인을 구성하기 때문에, 블록 체인 기반 암호 화폐에서 트랜잭션을 조작하는 것을 매우 어렵게 만든다.In 2009, a blockchain-based cryptocurrency appeared from Bitcoin [1] developed by Satoshi Nakamoto. Blockchain is a distributed data processing technology for public distributed ledgers. Peer-to-Peer (P2P) transaction data is written in blocks, and these blocks form a linked list (ie, a chain) of blocks. Each user of the network stores the entire data in a decentralized manner without central authority. It makes it very difficult to manipulate transactions in blockchain-based cryptocurrencies, as each block in the blockchain constitutes a blockchain containing the hash value of the previous block.

대규모 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 a new block and whether the chain is valid.

비트코인은 작업 증명(Proof-of-work, PoW)[2] 알고리즘을 사용하는 대표적인 암호화폐이다. 작업증명은 블록 체인 기반 암호화폐에서 가장 일반적으로 사용되는 합의 알고리즘이다. 요컨대, 특정 요구 사항을 충족하는 해쉬 값을 찾아서 확인하여 합의를 도출하는데 컴퓨팅 능력이 사용된다. 작업 증명은 블록 해쉬 값을 목표 값보다 작게 만드는 넌스(nonce) 값을 찾는 프로세스이다. 넌스는 블록 헤더에 지정된 정보 중 하나이다. 넌스 값의 집합인 넌스 셋이 정의되고, 넌스 셋에서 넌스 값을 하나씩 선택하면서 해쉬 함수에 대입한다. 이때, 한번 사용된 넌스 값은 넌스 셋에서 제외되어 다시 사용되지 않는다. 특정의 넌스 값에서 상기의 요구사항을 만족하는 해쉬 값이 발견되는 경우 해당 넌스 값을 기록하고, 블록 헤더에 삽입하여 블록을 생성한다. 이러한 일련의 과정이 작업 증명이라고 지칭된다. 작업증명 과정에서 목표 값은 넌스 값 계산의 어려움을 나타내며, 평균 10분마다 단일 블록을 생성하도록 조절된다.Bitcoin is a representative cryptocurrency that uses a Proof-of-work (PoW) [2] 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 certain requirements to reach consensus. Proof of work is the process of finding the nonce value that makes the block hash value less than the target value. A nonce is one piece of information specified in the block header. A nonce set, which is a set of nonce values, is defined, and each nonce value is selected from the nonce set and assigned to the hash function. In this case, the once used nonce value is excluded from the nonce set and is not used again. When a hash value satisfying the above requirements is found in a specific nonce value, the corresponding nonce value is recorded and inserted into the block header to create 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.

[1] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:2012, 2008.[1] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. Consulted, 1:2012, 2008. [2] 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.[2] 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. [3] Harald Vranken, in Current Opinion in Environmental Sustainability, 2017, 28: 1 - 9[3] Harald Vranken, in Current Opinion in Environmental Sustainability, 2017, 28: 1 - 9 [4] https://www.asicminervalue.com/miners/ebang/ebit-e10[4] https://www.asicminervalue.com/miners/ebang/ebit-e10 [5] Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. en:Selected Areas in Cryptography 2003: pp175-193[5] Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. en:Selected Areas in Cryptography 2003: pp175-193

본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 기존의 작업 증명 기반의 암호화폐에서 발생하고 있는 재-중앙화(re-centralization)를 해결하고자 한다.A method of operating a mining device according to an embodiment of the present invention is intended to solve re-centralization occurring in existing proof-of-work based cryptocurrencies.

더하여, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 ASIC의 출현으로 소수의 채굴 업자가 해쉬파워를 독점하여 발생할 수 있는 문제를 해결하고자 한다.In addition, the method of operating a mining device according to an embodiment of the present invention aims to solve a problem that may occur when a small number of miners monopolize hash power due to the advent of ASIC.

더하여, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 채굴 난이도 조절이 가능하고, 매 블록마다 입력 값이 달라지는 채굴 장치의 동작 방법을 제안하고자 한다.In addition, in the method of operating a mining device according to an embodiment of the present invention, it is intended to propose a method of operating a mining device in which mining difficulty can be adjusted and an input value is changed for every block.

더하여, 본 발명의 일 실시 예에 따르면, 채굴 난이도를 미세하게 조절할 수 있기 때문에, 부호-암호 화폐 시스템을 더욱 견고하게 유지하는 채굴장치 및 채굴장치의 동작방법을 제안한다. In addition, according to an embodiment of the present invention, since the difficulty of mining can be finely adjusted, we propose a mining device and an operating method of the mining device that maintain the code-cryptocurrency system more robustly.

더하여, 본 발명의 일 실시 예에 따르면, 부호-암호 화폐 시스템의 상태에 따라 적응적으로 채굴 난이도를 미세하게 조절하여, 악의적인 채굴자를 억제할 수 이는 채굴장치 및 채굴장치의 동작방법을 제안한다. In addition, according to an embodiment of the present invention, it is possible to suppress malicious miners by finely adjusting the mining difficulty adaptively according to the state of the code-cryptocurrency system, which proposes a mining device and an operating method of the mining device .

본 발명의 일 실시 예에 따른 채굴 장치에는, 블록체인 시스템을 모니터링하여, 채굴 난이도를 높이거나 낮추도록 결정하는 채굴 난이도 결정부가 포함되고, 상기 채굴 난이도 결정부에서 결정된 적용 채굴 난이도에 따라서 블록을 생성하여 작업 증명을 완료하는 제어부; 및 상기 생성된 블록을 다른 채굴 장치로 브로드캐스팅하는 네트워크부를 포함한다. The mining apparatus according to an embodiment of the present invention includes a mining difficulty determining unit that monitors the blockchain system to determine whether to increase or decrease the mining difficulty, and generates a block according to the applied mining difficulty determined by the mining difficulty determination unit a control unit to complete the proof-of-work; and a network unit for broadcasting the generated block to other mining devices.

본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 ASIC 칩으로 구현이 거의 불가능한 알고리즘으로서 작업 증명 기반의 암호화폐 시스템에서 발생하고 있는 재-중앙화(re-centralization)를 해결할 수 있다.The method of operating a mining device according to an embodiment of the present invention is an algorithm that is almost impossible to implement with an ASIC chip, and can solve re-centralization occurring in a proof-of-work-based cryptocurrency system.

또한, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 재중앙화 해결을 통해 블록 체인 기반의 암호 화폐의 본질을 회복하여 거래 신용 및 화폐 신용을 회복할 수 있다.In addition, the operating method of the mining device according to an embodiment of the present invention can restore the essence of the blockchain-based cryptocurrency through re-centralization, thereby restoring transaction credit and money credit.

또한, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은 작업 증명의 난이도를 필요에 따라 조정할 수 있다.In addition, in the method of operating a mining apparatus according to an embodiment of the present invention, the difficulty of proof-of-work may be adjusted as needed.

또한, 본 발명의 일 실시 예에 따른 채굴 장치의 동작 방법은, 미세한 채굴 난이도 조절이 가능하기 때문에, 채굴되는 암호화폐의 독점을 막고, 악의적인 암호화폐의 채굴을 방지할 수 있다. In addition, since the method of operating a mining device according to an embodiment of the present invention allows fine adjustment of the mining difficulty, it is possible to prevent monopoly of the mined cryptocurrency and prevent malicious mining of the cryptocurrency.

도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.
도 2는 본 발명의 일 실시 예에 따른 개선된 작업 증명 알고리즘을 나타내는 흐름도이다.
도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 채굴 장치의 검증 프로세스를 나타내는 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 체크 매트릭스를 통해 설명하는 도면이다.
도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.
도 7은 네 개의 체크 메트릭스를 사용하여 채굴 난이도를 미세하게 조절하는 것을 나타내는 그래프이다.
도 8은 본 발명의 다른 실시 예에 따른 개선된 조건을 만족하는 작업 증명 알고리즘을 나타내는 흐름도이다.
도 9는 다른 실시 예에 따른 채굴 장치를 나타내는 블록도이다.
도 10은 상기 채굴 난이도 결정부를 상세하게 보이는 도면이다.
1 shows a general block and a block chain in which blocks are connected.
2 is a flowchart illustrating an improved proof-of-work algorithm according to an embodiment of the present invention.
3 shows the codeword and condition set described above.
4 is a flowchart illustrating a verification process of a mining device according to an embodiment of the present invention.
5 is a diagram for explaining a method of adjusting the mining difficulty in the proof-of-work algorithm according to an embodiment of the present invention through an 8 by 16 check matrix.
6 is a block diagram illustrating a mining apparatus according to an embodiment of the present invention.
7 is a graph illustrating fine adjustment of mining difficulty using four check metrics.
8 is a flowchart illustrating a proof-of-work algorithm satisfying an improved condition according to another embodiment of the present invention.
9 is a block diagram illustrating a mining apparatus according to another embodiment.
10 is a detailed view of the mining difficulty determining unit.

이하에서는 도면을 참조하여 본 발명의 구체적인 실시 예를 상세하게 설명한다. 그러나 본 발명의 사상은 이하의 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에 포함되는 다른 실시 예를 구성요소의 부가, 변경, 삭제, 및 추가 등에 의해서 용이하게 제안할 수 있을 것이나, 이 또한 본 발명 사상의 범위 내에 포함된다고 할 것이다. Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings. 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 change other embodiments included within the scope of the same idea by adding, changing, deleting, and adding components. It may be suggested, but this will also be included within the scope of the present invention.

첨부 도면은 발명의 사상을 이해하기 쉽게 표현하기 위하여 전체적인 구조를 설명함에 있어서는 미소한 부분은 구체적으로 표현하지 않을 수도 있고, 미소한 부분을 설명함에 있어서는 전체적인 구조는 구체적으로 반영되지 않을 수도 있다. 또한, 설치 위치 등 구체적인 부분이 다르더라도 그 작용이 동일한 경우에는 동일한 명칭을 부여함으로써, 이해의 편의를 높일 수 있도록 한다. 또한, 동일한 구성이 복수 개가 있을 때에는 어느 하나의 구성에 대해서만 설명하고 다른 구성에 대해서는 동일한 설명이 적용되는 것으로 하고 그 설명을 생략한다. In the accompanying drawings, in describing the overall structure in order to easily understand the spirit of the invention, minute parts may not be specifically expressed, and in describing the minute parts, the overall structure may not be specifically reflected. In addition, even if specific parts such as an installation location are different, when the action is the same, the same name is assigned to improve the convenience of understanding. In addition, when there are a plurality of identical configurations, only one configuration will be described, and the same description will be applied to other configurations, and the description thereof will be omitted.

본 발명을 설명하기에 앞서, 블록체인 기반의 암호화폐에서 수행되는 작업 증명을 간단히 설명하고, 관련 용어를 간단히 정의한다.Before describing the present invention, proof of work performed in blockchain-based cryptocurrency is briefly described, and related terms are briefly defined.

도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.1 shows a general block and a block chain in which blocks are connected.

블록 체인(2)은 다수의 블록(1)이 연결된 형태이다.The block chain (2) is 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 indicates 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 the block header using a hash function. Here, the hash function is a function that maps data of an arbitrary length to data of a fixed length.

작업 증명 알고리즘에서는 앞서 설명한 바와 같이 블록 해쉬와 목표 값을 비교하여 작업 증명 성공 여부를 판단한다. 구체적으로 작업 증명은 소위 피어 노드에서 수행되는데, 각각의 피어 노드는 헤더 정보 중 넌스 값을 바꿔가면서 해쉬 계산을 하여 목표 값 보다 작은 값이 나오는지 여부를 판단한다.As described above, the proof-of-work algorithm determines whether the proof-of-work succeeds by comparing the block hash with the target value. Specifically, proof-of-work is performed in so-called peer nodes, and each peer node determines whether a value smaller than the target value is obtained by performing hash calculation while changing the nonce value in the header information.

여기에서 피어 노드는 채굴 업자 또는 채굴 장치라고도 지칭되며, 작업 증명을 수행하는 연산 장치 또는 연산 장치의 집합을 의미한다. 예를 들어 연산 장치는 고성능의 그래픽 카드 및 프로세서를 갖춘 컴퓨터가 될 수 있다.Here, a peer node is also referred to as a miner or mining device, and refers to a computing device or a set of computing devices that perform proof-of-work. For example, the computing device could be a computer with a high-performance graphics card and processor.

피어 노드는 블록 해쉬가 목표 값 보다 작을 때까지 넌스를 바꾸며, 블록 해쉬가 목표 값 보다 작으면 작업 증명 성공으로 판단하고 블록에 포함된 모든 거래를 유효한 거래로 확정한다. 그리고 유효한 블록이 생성되면, 피어 노드는 생성된 블록을 전체 네트워크로 브로드캐스팅하고, 이를 다른 피어 노드들이 승인하고 블록 체인에 추가하면 거래가 완료된다. Peer nodes change the nonce until the block hash is less than the target value, and if the block hash is less than the target value, it is judged as a successful proof of work and all transactions included in the block are confirmed as valid transactions. And when a valid block is generated, the peer node broadcasts the generated block to the entire network, and when other peer nodes approve it and add it to the blockchain, the transaction is completed.

여기에서, 블록이 여러 피어 노드에서 동시에 생성되어 체인이 분기될 수 있는데, 이 때, 피어 노드들은 정해진 합의 알고리즘을 사용하여 합의에 이르고, 합의된 체인을 확장시켜나간다. 가령, 비트코인 합의메커니즘은 가장 긴 체인만을 옳은 체인으로 간주한다.Here, a block can be simultaneously generated by several peer nodes and the chain can be branched. At this time, the peer nodes reach a consensus using a predetermined consensus algorithm and expand the consensus chain. For example, the Bitcoin consensus mechanism considers only the longest chain to be the correct chain.

상술한 작업 증명 기반 암호화폐인 비트코인은 몇 가지 문제가 있다.Bitcoin, the aforementioned proof-of-work based cryptocurrency, has several problems.

먼저, 작업 증명을 위해 너무 많은 전력을 소비한다는 것이 있다[3]. 소위 채굴 난이도라고 불리는 암호 퍼즐 난이도가 점차 증가하고 있는데 이는 비트코인 채굴에 참여하는 업자의 수가 늘어나고, 채굴네트워크 전체의 해쉬파워가 증가하기 때문이다. 해쉬파워가 클수록 작업 증명의 속도가 빠르며 결과적으로 블록을 생성하는 속도가 빨라진다. 비트코인 프로토콜은 블록 생성 시간을 평균적으로 10분마다 한 블록씩 채우는 것을 목표로 한다. 이를 위해 비트 코인 프로토콜은 2016 블록마다 해쉬 난이도를 재구성한다[1]. 따라서, 해쉬파워가 커지면 난이도는 증가하게 된다. 이로 인하여, 채굴을 위해 더 많은 전력이 소비가 되는 것이다.First, it consumes too much power for proof-of-work [3]. The difficulty of cryptographic puzzles, the so-called mining difficulty, is gradually increasing because the number of players participating in bitcoin mining increases and the hash power of the entire mining network increases. The larger the hash power, the faster the proof-of-work and consequently the faster the block creation speed. 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 every 2016 block [1]. Therefore, as the hash power increases, the difficulty increases. Due to this, more power is consumed for mining.

암호 화폐에 대한 채굴업자의 수가 많을수록 가능한 공격에 대한 보호 기능이 향상되므로 블록 체인 불변성 및 암호 화폐의 신뢰성 유지에 도움이 된다. 비트 코인 네트워크의 초기 단계(2010 ~ 2013년)에서는 가정용 컴퓨터를 사용하는 일반 사람들도 비트코인의 작업증명을 수행할 수 있었다.The greater the number of miners for a cryptocurrency, the better protection against possible attacks, which helps to maintain blockchain immutability and reliability of the cryptocurrency. In the early stages of the Bitcoin network (2010-2013), even ordinary people using home computers could perform Bitcoin proof-of-work.

그러나, 시간이 갈수록 가정용 컴퓨터의 컴퓨팅 파워만으로는 작업 증명을 빠르게 수행할 수 없었으며, 비트코인 채굴을 위한 컴퓨팅 플랫폼이 GPU, FPGA에서 최근에 ASIC에 이르면서 소수의 채굴업자들이 컴퓨팅 파워를 독점하는 현상이 나타나고 있다. 이를 통해 비트코인 네트워크가 중앙 집중화되어 비트코인 블록체인의 정체성인 탈-중앙화(decentralization)와 멀어지고 있다. 따라서, 압도적인 컴퓨팅 파워를 갖는 소수의 채굴업자에 의해 블록체인이 변조될 가능성이 대두되면서 블록체인에 대한 대중의 신뢰가 붕괴되고 있는 시점이다.However, as time went on, it was not possible to quickly perform proof-of-work only with the computing power of a home computer, and as computing platforms for Bitcoin mining reached from GPUs and FPGAs to ASICs recently, a small number of miners monopolized computing power. is appearing This centralizes the Bitcoin network, moving away from decentralization, the identity of the Bitcoin blockchain. Therefore, the public trust in the blockchain is collapsing as the possibility of the blockchain being tampered with by a small number of miners with overwhelming computing power is emerging.

이러한 비트코인을 포함한 모든 작업증명(Proof-of-Work) 기반 블록체인 네트워크의 재-중앙화(recentralization) 문제가 유발되는 원인으로, 암호 퍼즐의 제한된 가용성(limited availability)이 있다. 비트코인 합의메커니즘에서의 작업 증명 방식은 고정된 해쉬함수 (e.g. SHA-256) 알고리즘에 따라 이루어져, 결과적으로 비트코인 작업 증명 알고리즘에 최적화된 ASIC 칩을 탄생시켰다[4]. ASIC 칩은 상대적으로 고가이나, 비트코인 작업 증명에 최적화되어 ASIC 칩을 통해 채굴을 수행하는 소수의 채굴업자들이 가진 해쉬파워가, 전체네트워크의 해쉬파워에 큰 부분을 차지하여, 압도적인 채굴 영향력을 갖게 되었다.The cause of the problem of re-centralization of all Proof-of-Work-based blockchain networks, including Bitcoin, is the limited availability of cryptographic puzzles. The proof-of-work method in the Bitcoin consensus mechanism is based on a fixed hash function (e.g. SHA-256) algorithm, resulting in an ASIC chip optimized for the Bitcoin proof-of-work algorithm [4]. Although ASIC chips are relatively expensive, they are optimized for Bitcoin proof-of-work and the hash power of a small number of miners performing mining through ASIC chips accounts for a large portion of the hash power of the entire network, resulting in overwhelming mining influence. got to have

따라서 이러한 블록체인 네트워크의 재-중앙화를 해소하기 위해서 새로운 작업 증명 알고리즘이 요구되고 있다. 새로운 작업 증명 알고리즘은 아래와 같은 요건을 만족할 것이 요구된다.Therefore, a new proof-of-work algorithm is required to solve this re-centralization of the blockchain network. The new proof-of-work algorithm is required to satisfy the following requirements.

1) 퍼즐은 풀기 어려워야 하나, 반대로 체크는 쉬워야 한다.1) A puzzle should be difficult to solve, but on the contrary, it should be easy to check.

2) 퍼즐은 외부 공격으로부터 견고한 저항성을 가져야 한다.2) The puzzle must have strong resistance from 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, a proof-of-work algorithm in an improved PoW-based blockchain network according to an embodiment of the present invention that satisfies the above-mentioned requirements will be described. One of the improved requirements is

6) 작업증명에 쓰이는 함수가 매 블록마다 변화하여 바뀔 수 있어야 한다. 6) The function used for proof-of-work should be able to change by changing every block.

이다. am.

도 2는 본 발명의 일 실시 예에 따른 개선된 조건을 만족하는 작업 증명 알고리즘을 나타내는 흐름도이다.2 is a flowchart illustrating a proof-of-work algorithm satisfying 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 above-described mining device, and specifically may be performed by a processor such as a CPU provided in the mining device.

채굴 장치는 현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득한다(S1001). 여기에서 현재 블록이란, 채굴자가 현재 만들고자 하는 블록으로, 아직 작업증명이 완료되지 않아 체인에 연결되지 않은 블록을 말한다. 블록 체인에 포함된 블록 헤더에는 블록에 관한 하나 이상의 정보를 포함할 수 있다. 블록 헤더가 포함하는 정보는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다. The mining device obtains a data value for proof of work from the current block header (S1001). Here, the current block refers to a block that the miner wants to create and is not connected to the chain because proof-of-work has not been completed yet. A block header included in a block chain may include one or more pieces of information about a block. The information included in the block header may include at least one of version information, difficulty information, timestamp 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 매트릭스일 수 있다. 가령

Figure 112019120382976-pat00001
이고
Figure 112019120382976-pat00002
이 될 수 있다. 채굴 장치는 현재 블록 인덱스 t (양의정수) 에서 이전 블록의 해쉬 값(ht-1)을 이용하여 체크 매트릭스(Ft)를 생성할 수 있다. 여기에서 체크 매트릭스의 생성은 부호이론 분야에서 일반적으로 알려진 것을 사용할 수 있다.The mining device generates a check matrix based on the first value included in the acquired data value (S1003). Here, the first value used to generate the check matrix may be a hash value of a previous block. The check matrix may be an N c - N m by Nc matrix composed of elements of Galois Field GF(q) (0 or 1 binary elements when q = 2). chamberlain
Figure 112019120382976-pat00001
ego
Figure 112019120382976-pat00002
this can be The mining device can generate a check matrix (F t ) using the hash value (h t-1 ) of the previous block at the current block index t (a positive integer). Here, the generation of the check matrix may use one generally known in the field of code theory.

채굴 장치는 획득한 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성한다(S1005). 여기에서 해쉬 트리를 생성하는데 사용되는 제 2 값은 트랜잭션 셋 정보일 수 있다. 일 실시 예에서, 채굴 장치는 제 2 값에 기초하여 해쉬 트리 값을 생성할 수 있다. The mining device generates a hash tree based on the second value included in the acquired data value (S1005). Here, the second value used to generate the hash tree may be transaction set information. In an 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 acquired data value and the generated hash tree (S1007). The third value used here may be at least one of version information, difficulty information, and timestamp information of the previous block. In addition, other information included in the block header may be additionally used as the third value.

채굴 장치는 입력 셋을 해쉬 함수에 적용하여 결과 벡터(r)를 획득한다(S1009). 여기에서 사용되는 해쉬 함수는 SHA 256 [5] 함수일 수 있으며, 그 밖에 보안성이 검증된 다른 함수를 사용할 수도 있다. 이 때 채굴 장치는 특정의 넌스 값에 대한 해쉬 함수 출력인 결과 벡터를 생성한다.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 the SHA 256 [5] function, and other functions with verified security may be used. At this time, the mining device generates a result vector that is a hash function output for a specific nonce value.

채굴 장치는 해쉬 함수의 출력인 결과 벡터(r)와 단계 S1003에서 생성한 체크 매트릭스를 입력 값으로 하여 디코딩 함수에 적용한다(S1011). 채굴 장치는 디코딩 함수의 출력 값으로 출력워드(c^)를 획득할 수 있다. The mining device applies the result vector (r) that is the output of the hash function and the 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 is a function that creates a unique output value for one input value, such as a decoder of Error-Correction Code, a Sphere-Decoding signal receiver in communication theory, a sparse signal restoration algorithm in compression sensing, or an algorithm to solve an inverse problem in mathematics. 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 related to error correction coding is used, the Error-Correction Code is used when a transmitter and a receiver communicate through a noisy channel. The word received through the noisy channel is different from the transmitted word due to the error generated by the channel. An error correction code is used to catch and correct this error. The transmitter generates a codeword by performing 1-to-1 mapping, that is, encoding, the message vector, and transmits the generated codeword to the receiver instead of the message vector. The receiver can remove the error occurring in the channel by decoding the received word including the received error. When a received word is input, a restoration function that recovers the transmitted codeword by solving the inverse problem of the encoding function is called a decoder or decoding function.

에러를 스스로 제거 할 수 있은 여유를 만들어 내기 위해서, 코드워드 벡터의 크기 Nc 를 메시지 벡터의 크기 Nm 보다 길게 만든다. 그리고, R = Nm/Nc 을 코드 Rate이라고 칭한다. 코드 Rate이 작으면, 채널 에러에 더욱 강인 해 진다; 그러나 Decoding하기위해 보다 많은 컴퓨팅을 필요로 한다. In order to create a margin to remove the error by itself, the size N c of the codeword vector is made longer than the size N m of the message vector. And, R = N m /N c is called a code rate. The smaller the code rate, the more robust to channel errors; However, it requires more computing to decode.

본 발명은 Error-Correction Code에서 쓰는 Decoder를 작업증명에 적용하는 것을 발명의 한 실시 예로 보여준다. Decoder 함수를 SHA-256과 같은 암호함수와 묶어 합성함수를 만드는 것이다. 즉, 암호함수의 출력 값을 디코딩 함수의 입력 값의 하나로 넣는 것이다.The present invention shows the application of a decoder used in Error-Correction Code to proof-of-work as an embodiment of the invention. Combining the decoder function with a cryptographic function such as SHA-256 makes a composite function. That is, the output value of the encryption 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 compound 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 found codeword value meets the condition. Therefore, the synthesized function created in this way satisfies 1) of the requirements of the proof-of-work algorithm. In a preferred embodiment, a graph-decoder may be used as a decoding function. In addition, for the decoding function, an algorithm capable of the fastest codeword mapping in the field of linear graph-decoder may be used.

채굴 장치는 획득한 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 set of conditions related to the mapped output word in advance, and determines whether the output word value obtained in step S1011 is a codeword and whether a preset condition set is satisfied if it is a codeword.

도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.3 shows the codeword and condition set described above.

도 3에서 예를 든 바와 같이, 2256개의 벡터(예를 들어 SHA 함수의 출력)가 있으며, 그 중 1/4 코드 레이트로 264개 정도의 코드워드가 존재한다. 디코딩 함수(Dec())에 벡터를 입력하는 경우에 하나의 출력워드로 매핑이 되는데, 여기에서 매핑된 출력워드가 조건 셋에 포함되는 코드워드인지 여부를 채굴 장치가 판단한다. As illustrated in FIG. 3 , there are 2 256 vectors (eg, the output of the SHA function), among which there are about 2 64 codewords at a 1/4 code rate. When a vector is input to the decoding function (Dec()), it is mapped to one output word. Here, the mining device determines whether the mapped output word is a codeword included in the condition set.

다시 도 2로 돌아온다.Return to FIG. 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 complete, creates a new block while recording the current nonce value, and broadcasts it to other mining devices (S1017) . Therefore, unlike the existing Bitcoin proof-of-work that determines whether the proof-of-work is completed only with the hash function output value, the process of verifying the output word value using a decoding function is added, which may cause problems that may occur in standardized algorithms (using ASIC). re-centralization).

다시 말해서, 본 발명의 일 실시 예에 따른 합성함수에 의한 작업 증명 알고리즘에서는 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 check matrix, which is one of the inputs of the decoder part, can be changed for every block, a different decoder puzzle for every block must be performed as a proof-of-work . As the check matrix relies on the previous block hash value, a different input value is used for every block, and consequently, the appearance of an ASIC chip can be suppressed. In other words, by making mining using ASIC chips difficult, anyone can participate in proof-of-work even with a CPU with relatively low hash power, thus satisfying the requirement 5) of the new proof-of-work algorithm. In addition, the function used for decoding can also be changed to another type of function with one-way characteristics, which is also a factor in suppressing the appearance of ASIC chips due to the fixed algorithm. Also, even if a nonce value for a specific puzzle problem is found, a different input value is used for each block to make a puzzle, so the existing nonce value cannot be reused as a nonce value for a new block. That is, the requirement 3) of the new working algorithm is satisfied.

만약, 매핑된 출력워드가 조건 셋을 만족하지 못하는 경우, 채굴 장치는 기 사용한 넌스 값을 넌스 셋에서 제외하고, 넌스 셋에서 사용되지 않은 새로운 넌스 값을 선택하여 다시 단계 S1009로 돌아간다(S1015). 채굴 장치는 매핑된 출력워드가 조건을 만족할 때까지 새로운 넌스 값을 선택하면서 각 단계를 반복한다. If the mapped output word does not satisfy the condition set, the mining device excludes the previously used nonce value from the nonce set, selects a new nonce value that is not used from the nonce set, and returns to step S1009 (S1015) . The mining device repeats each step while 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 device according to an embodiment of the present invention.

앞서 도 2 내지 3에서 설명한 단계는 채굴 장치의 채굴 프로세스이며, 채굴 장치는 작업 증명이 완료되면 새롭게 생성된 블록을 다른 채굴 장치로 브로드캐스팅한다. 그리고 브로드캐스팅된 블록을 다른 채굴 장치들이 검증하여 정당한 블록임이 인정된다면 채굴 장치들은 해당 블록을 기존의 블록 체인에 더하여 블록 체인 원장을 업데이트 한다.The steps described in FIGS. 2 to 3 are the mining process of the mining device, and the mining device broadcasts the newly created block to other mining devices when the proof of work is completed. And if other mining devices verify the broadcast block and it is recognized that it is a legitimate block, the mining devices update the blockchain ledger by adding the block to the existing block chain.

채굴 장치는 블록을 생성한 다른 채굴 장치로부터 브로드캐스팅 된 블록의 블록 헤더 데이터를 획득한다(S2001). 여기에서 채굴 장치가 획득하는 블록 헤더 데이터는 앞서 설명한 것과 동일하다.The mining device acquires block header data of the broadcast block from another mining device that generated the block (S2001). Here, the block header data obtained by the mining device is the same as described above.

채굴 장치는 블록 헤더 데이터에 포함된 해쉬 값에 기초하여 체크 매트릭스를 생성한다(S2003). 여기에서 체크 매트릭스를 생성하는 방법은 앞서 설명한 것과 동일하다.The mining device generates a check matrix based on the hash value included in the block header data (S2003). Here, the method of generating the check matrix is the same as described above.

채굴 장치는 블록 헤더 데이터에 기초하여 해쉬 함수의 출력 값을 획득한다(S2005). 여기에서 해쉬 함수의 출력 값을 획득하는 단계는 앞서 설명한 것과 동일하다.The mining device obtains the output value of the hash function based on the block header data (S2005). Here, the step of obtaining the output value of the hash function is the same as described above.

채굴 장치는 해쉬 함수의 출력 값과 체크 매트릭스를 입력 값으로 하는 디코딩 함수 출력 값으로 출력워드를 획득한다(S2007). 여기에서 사용하는 디코딩 함수는 앞서 설명한 것과 동일하다.The mining device obtains the output word as the output value of the hash function and the output value of the decoding function using the 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 previous mining process. The set of conditions for verification may be collectively set for all mining devices, and may be delivered together when a block is broadcast.

채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하는 경우 브로드캐스팅된 블록을 승인하고 이를 기존의 블록 체인에 연장하여 원장을 업데이트한다(S2011). If the output word satisfies the condition set as a result of the determination, the mining device approves the broadcast block and updates the ledger by extending it to the existing block chain (S2011).

반면에, 채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하지 못하는 경우 브로드캐스팅된 블록이 정당한 블록이 아니라고 판단하여 브로드캐스팅된 블록 승인을 거절한다(S2013). On the other hand, if the output word does not satisfy the condition set as a result of the determination, 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 condition set is met by putting the received value into a known (or preset) decoding function. Compared to the process of completing proof, it is a relatively simple verification method suitable for blockchain. Therefore, even if an external attacker manipulates the contents of the block, the validator can easily know whether the block has been manipulated, thus satisfying the requirement 2) of the new proof-of-work algorithm.

도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 체크 매트릭스를 통해 설명하는 도면이다.5 is a diagram for explaining a method of adjusting the mining difficulty in the proof-of-work algorithm according to an embodiment of the present invention through an 8 by 16 check matrix.

도 5(a)는 8 바이 16 체크 매트릭스의 예이다. 실제로는 이것보다 훨씬 큰 크기의 체크 매트릭스를 사용하나 설명의 용이성을 위해 8 바이 16 체크 매트릭스를 예시로 설명한다.5( a ) is an example of an 8 by 16 check matrix. In reality, a check matrix with a size much larger than this is used, but for ease of explanation, an 8 by 16 check matrix is described as an example.

도 5(b)는 (a)에서의 체크 매트릭스에 기초하여 코드워드 값을 정리한 표이다. n은 코드워드의 해밍 가중치(Hamming weight)를 나타내는데, 다시 말해서 코드워드에 포함된 0이 아닌 수의 개수를 지칭한다. Vn은 1을 해밍 가중치에서 인디케이팅 하는 수만큼 가지고 있는 조건 셋을 나타낸다. p는 전체 코드워드의 개수 중 Vn 조건셋에 포함되는 코드워드 개수의 비율을 나타낸다.5(b) is a table in which codeword values are arranged based on the check matrix in (a). n represents the Hamming weight of the codeword, that is, refers to the number of non-zero numbers included in the codeword. V n represents a set of conditions having 1 as many as the number indicated by the Hamming weight. p represents the ratio of the number of codewords included in the V n conditional 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 1s is different, and the share of each can be known. Therefore, it is possible to determine the hamming weight according to the difficulty of the cryptographic puzzle to be adjusted. For example, in the case of lowering the difficulty, 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 that a codeword satisfying the condition set will be selected differs by about 55% and 2.5%, respectively. In the latter case, more operations must be performed to obtain a codeword value that satisfies the condition set. As a result, the difficulty of proof-of-work increases. That is, the difficulty of the puzzle can be flexibly adjusted by changing the code rate and adjusting the size of the matrix to control the amount of computing required to solve the decoder puzzle, thus satisfying the requirement 4) of the new proof-of-work algorithm.

상기되는 채굴 난이도의 조절은 도 7이하에서 다른 실시예를 통하여 더 구체적으로 설명한다. The above-mentioned adjustment of the mining difficulty will be described in more detail through another embodiment in FIG. 7 or less.

도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.6 is a block diagram illustrating a mining apparatus according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 채굴 장치는 제어부(110), 네트워크부(120) 및 저장부(130)을 포함한다.A mining apparatus 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 includes a current block header data obtaining unit 111 , an input value generating unit 112 , a hash function applying unit 113 , a codeword obtaining unit 114 , and a block generating unit. (115).

현재 블록 헤더 데이터 획득부(111)는 채굴하고자 하는 현재 블록의 헤더를 추출하여 헤더에 포함된 데이터를 획득한다. 여기에서 현재 블록 헤더 데이터 획득부(111)가 획득하는 데이터는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다.The current block header data obtaining unit 111 obtains data included in the header by extracting the header of the current block to be mined. Here, the data acquired by the current block header data acquisition unit 111 may include at least one of version information, difficulty information, timestamp information, nonce information, hash value information of a previous block, and 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 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 the 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. Here, the other header data value may be, for example, at least one of version information, difficulty information, and timestamp 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 generation unit 112 as an input value. Here, the hash function may be a SHA function, and other security-secured functions are also applicable.

출력워드 획득부(114)는 체크 매트릭스와 해쉬 함수 출력 값에 기초하여 출력워드를 획득한다. 일 실시 예에서 출력워드 매핑 알고리즘은 출력워드는 입력 값에서 가까운 하나의 코드워드를 찾는 방법으로 획득될 수 있다. 또 다른 실시 예에서, 출력워드 매핑 알고리즘은 graph codeword mapping이 사용될 수 있다.The output word acquisition unit 114 acquires an output word based on the check matrix and the hash function output value. In an embodiment, the output word mapping algorithm may be obtained by a method of finding one codeword close to the output word from the input value. In another embodiment, as the output word mapping algorithm, graph codeword mapping may be used.

블록생성부(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. When the obtained output word satisfies the condition set, the block generating unit 115 stores a corresponding nonce value and generates a block. On the other hand, when the output word does not satisfy the condition set, the block generating unit 115 changes the nonce value and receives a new output word value from the output word obtaining unit again to perform verification operation.

네트워크부(120)는 유무선 통신 장치이다. 네트워크부(120)는 다른 채굴 장치와 연결을 수행하고, 생성된 블록을 브로드캐스팅한다. 또한 네트워크부(120)는 다른 채굴장치가 생성한 블록을 수신하여 이를 현재 블록 헤더 데이터 획득부(111)에 전달할 수도 있다.The network unit 120 is a wired/wireless communication device. The network unit 120 connects with other mining devices and broadcasts the generated block. Also, the network unit 120 may receive a block generated by another mining device and transmit it to the current block header data obtaining unit 111 .

저장부(130)는 제어부(110)에서 사용되는 각종 인스트럭션을 저장한다. 또한 저장부(130)는 제어부(110)에서 생성된 블록이 연결된 블록 체인 원장을 저장한다. 저장부(130)는 메모리 장치일 수 있다.The storage unit 130 stores various instructions used in the control unit 110 . In addition, the storage unit 130 stores the block chain ledger to which the block generated by the control unit 110 is connected. The storage unit 130 may be a memory device.

이하에서는 상기 채굴 난이도를 미세하게 조절하는 다른 실시예를 제시한다. 이하의 설명은 이미 제시된 설명을 그대로 적용되는 것을 일 예로 하므로, 구체적인 설명이 없는 부분은 이미 제시된 설명이 적용될 수 있다. Hereinafter, another embodiment of finely adjusting the mining difficulty is presented. Since the following description is an example of applying the previously presented description as it is, the previously presented description may be applied to a portion without a specific description.

도 7은 네 개의 체크 메트릭스를 사용하여 채굴 난이도를 미세하게 조절하는 것을 나타내는 그래프이다. 7 is a graph illustrating fine adjustment of mining difficulty using four check metrics.

도 7을 참조하면, 상기 체크 매트릭스의 열의 수가 64개, 28, 256, 및 512개인 경우에 열의 개수가 증가함에 따라서 채굴 난이도가 상승할 수 있는 것을 나타낸다. Referring to FIG. 7 , when the number of columns of the check matrix is 64, 28, 256, and 512, it is shown that the mining difficulty may increase as the number of columns increases.

도 5에 제시된 바와 같이 체크 매트릭스의 크기가 8 바이 16의 경우에, 상기 해밍 가중치를 선택하는 경우의 수는 해밍 가중치의 조합으로 결정될 수 있다. As shown in FIG. 5 , when the size of the check matrix is 8 by 16, the number of cases in which the Hamming weights are selected may be determined by a combination of the Hamming weights.

예를 들어, 상기 채굴 난이도를 극단적으로 높게 하고자 하는 경우에는 점유율이 가장 낮은 단일의 해밍 가중치를 설정할 수 있다. 상기 채굴 난이도를 극단적으로 낮게 하고자 가능한 모든 해밍 가중치를 설정할 수 있다. 이는, 상기 해밍 가중치의 조합(combination)의 문제이다. 상기 해밍 가중치의 조합을 통하여 다양한 경우의 수로, 조건 셋을 만족하는 코드워드가 선택될 확률을 조절할 수 있다. 이를 통하여 채굴 난이도를 조절할 수 있다. For example, if the mining difficulty is to be extremely high, a single Hamming weight having the lowest share may be set. All possible hamming weights can be set to make the mining difficulty extremely low. This is a problem of the combination of the Hamming weights. Through the combination of the Hamming weights, it is possible to control the probability of selecting a codeword satisfying a set of conditions by the number of various cases. Through this, the difficulty of mining can be adjusted.

상기 채굴 난이도와 대응하는 상기 해밍 가중치 설정의 조합은 서로 대응되어 미리 결정될 수 있다. The combination of the mining difficulty and the corresponding Hamming weight setting may be predetermined to correspond to each other.

상기 채굴 난이도에 대응하는 상기 해밍 가중치 설정의 조합은 미리 계산되어 메모리(도 9의 330참조)에 미리 저장되어 있을 수 있다. 도 7에서 오른쪽으로부터 첫 번째 우상향 곡선은, 체크 매트릭스의 크기가 48 바이 64인 경우에, 상기 채굴 난이도가 가장 낮은 해밍 가중치 설정일수록 앞에 위치하고, 상기 채굴 난이도가 가장 높은 해밍 가중치 설정일수록 뒤에 위치하는 것을 도시한다. The combination of the Hamming weight settings corresponding to the mining difficulty may be calculated in advance and stored in advance in a memory (refer to 330 of FIG. 9 ). In Fig. 7, the first upward curve from the right shows that when the size of the check matrix is 48 by 64, the Hamming weight setting with the lowest mining difficulty is located at the front, and the Hamming weight setting with the highest mining difficulty is located at the back show

상기 그래프 정보는, 매칭 테이블 또는 매칭을 위한 함수 정보로서 상기 메모리(330)에 저장될 수 있다. The graph information may be stored in the memory 330 as a matching table or function information for matching.

상기 채굴 난이도는, 상기 체크 매트릭스에 따라서 최고 난이도가 결정되어 있다. 예를 들어, 도 5의 경우에는 상기 해밍 가중치가 14인 경우에 조건 셋을 만족하는 코드워드가 선택될 확률이 0.46%로 가장 낮다. 따라서, 더 높은 채굴 난이도를 설정하기 위해서는 더 복잡한 체크 메트릭스를 적용해야 한다. As for the mining difficulty, the highest difficulty is determined according to the check matrix. For example, in the case of FIG. 5 , when the Hamming weight is 14, the probability of selecting a codeword satisfying the condition set is the lowest at 0.46%. Therefore, in order to set a higher mining difficulty, more complex check metrics must be applied.

더 복잡한 체크 메트릭스를 구현하기 위하여, 체크 메트릭스의 크기를 증가시킬 수 있다. In order to implement a more complex check matrix, the size of the check matrix may be increased.

도 7에서 오른쪽으로부터 두번째 우상향 곡선은, 체크 매트릭스의 크기가 96 바이 128인 경우에, 상기 채굴 난이도가 가장 낮은 해밍 가중치 설정일수록 앞에 위치하고, 상기 채굴 난이도가 가장 높은 해밍 가중치 설정일수록 뒤에 위치하는 것을 도시한다. The second upward curve from the right in FIG. 7 shows that when the size of the check matrix is 96 by 128, the Hamming weight setting with the lowest mining difficulty is located at the front, and the Hamming weight setting with the highest mining difficulty is located at the back. do.

마찬가지로, 도 7에서 세번째 우상향 곡선은 체크 매트릭스의 크기가 192 바이 256인 경우이고, 도 7에서 네번째 우상향 곡선은 체크 매트릭스의 크기가 384 바이 512인 경우를 나타낸다. Similarly, the third upward curve in FIG. 7 shows a case in which the size of the check matrix is 192 by 256, and the fourth upward curve in FIG. 7 shows the case in which the size of the check matrix is 384 by 512.

이와 같은 방식으로 상기 채굴 난이도는 무한하게 어렵게 조정해 나갈 수 있다. 물론, 어느 때에는 이전보다 높은 채굴 난이도로 변경할 수도 있고, 어느 때에는 이전보다 낮은 채굴 난이도로 변경할 수도 있다. 따라서, 현재 상태에 적응적인 채굴 난이도를 구현할 수 있다.In this way, the mining difficulty can be adjusted with infinite difficulty. Of course, at some times it is possible to change to a higher mining difficulty than before, and at other times to change it to a lower mining difficulty than before. Therefore, it is possible to implement the mining difficulty adaptive to the current state.

한편, 어느 하나의 체크 매트릭스로부터 획득 가능한 최고의 채굴 난이도를 넘어서는 경우에는, 다른 하나의 체크 매트릭스로 이동하여 더 높은 채굴 난이도를 구현할 수 있는 것은 당연하다. On the other hand, if it exceeds the highest possible mining difficulty from one check matrix, it is natural to move to another check matrix to implement a higher mining difficulty.

도 8은 본 발명의 다른 실시 예에 따른 개선된 조건을 만족하는 작업 증명 알고리즘을 나타내는 흐름도이다. 본 실시예는 블록체인 시스템을 모니터링하여 채굴 난이도를 결정하는 것이 추가되는 것이 특징적으로 다르고, 그외에는 도 2에 제시되는 설명이 그대로 적용될 수 있다. 8 is a flowchart illustrating a proof-of-work algorithm satisfying an improved condition according to another embodiment of the present invention. This embodiment is characteristically different in that it is added to monitor the blockchain system to determine the mining difficulty, and otherwise, the description presented in FIG. 2 can be applied as it is.

도 8을 참조하면, 채굴 장치는 현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득한다(S3001). 여기에서 현재 블록이란, 채굴자가 현재 만들고자 하는 블록으로, 아직 작업증명이 완료되지 않아 체인에 연결되지 않은 블록을 말한다. 블록 체인에 포함된 블록 헤더에는 블록에 관한 하나 이상의 정보를 포함할 수 있다. 블록 헤더가 포함하는 정보는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다. Referring to FIG. 8 , the mining device obtains a data value for proof of work from the current block header ( S3001 ). Here, the current block refers to a block that the miner wants to create and is not connected to the chain because proof-of-work has not been completed yet. A block header included in a block chain may include one or more pieces of information about a block. The information included in the block header may include at least one of version information, difficulty information, timestamp information, nonce information, hash value information of a previous block, or transaction set information.

채굴 장치는 풀 블록체인 노드(full blockchain node)와 접속하여 현재 블록체인 시스템의 상태를 파악하고, 그에 따라서 채굴 난이도를 결정할 수 있다(S3003). The mining device may connect with the full blockchain node to determine the current state of the blockchain system, and determine the mining difficulty accordingly (S3003).

예를 들어, 채굴장치는, 현재 채굴 난이도가 낮아 다수의 채굴 및 악의적인 채굴이 있는 경우에는, 채굴 난이도를 높이도록 채굴 난이도를 결정할 수 있다. 채굴장치는, 현재 채굴에 참여하는 채굴자의 숫자가 적은 경우 경우에는, 채굴 난이도를 낮추도록 채굴 난이도를 결정할 수 있다. For example, the mining apparatus may determine the mining difficulty to increase the mining difficulty when the current mining difficulty is low and there are a large number of mining and malicious mining. When the number of miners currently participating in mining is small, the mining apparatus may determine the mining difficulty to lower the mining difficulty.

이후에는 결정된 난이도에 따라서, 채굴 장치는 획득한 데이터 값에 포함된 제 1 값에 기초하여 체크 매트릭스를 생성하고(S3005). 및 채굴 장치는 획득한 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성하는 것(S3007) 등의 도 2에 제시되는 과정이 동일하게 수행될 수 있다. Thereafter, according to the determined difficulty, the mining device generates a check matrix based on the first value included in the acquired data value (S3005). And the mining device generates a hash tree based on the second value included in the acquired data value (S3007), etc. The process shown in FIG. 2 may be performed in the same way.

한편, 상기 코드워드가 기 설정된 조건 셋을 만족하는지 여부를 판단하는 것에 있어서는, 결정된 채굴 난이도를 구현하는 해밍 가중치 조합에 대응하는 조건 셋에 의해서 동작될 수 있다. Meanwhile, in determining whether the codeword satisfies a preset condition set, the operation may be performed according to a condition set corresponding to a Hamming weight combination that implements the determined mining difficulty.

다시 한번 설명하거니와, 이때, 상기 작업 증명 알고리즘의 동작은 현재 상태에 대응하여 결정된 채굴 난이도를 준수하여 수행된다. 구체적으로, 상기 체크 매트릭스의 선택과 상기 해밍 가중치는, 결정된 상기 채굴 난이도에 대응하는 값으로 결정될 수 있다. 이때 도 7에 제시되는 그래프에 대응하여 수행될 수 있다. 도 7과 관련되는 정보는 메모리(330)에 저장될 수 있다. Once again, in this case, the operation of the proof-of-work algorithm is performed in compliance with the mining difficulty determined corresponding to the current state. Specifically, the selection of the check matrix and the Hamming weight may be determined as values corresponding to the determined mining difficulty. In this case, it may be performed corresponding to the graph shown in FIG. 7 . Information related to FIG. 7 may be stored in the memory 330 .

도 9는 다른 실시 예에 따른 채굴 장치를 나타내는 블록도이다. 본 실시예는 채굴 난이도 결정부가 포함되는 것이 특징적으로 다르다. 따라서 본 도면에서 구체적으로 제시되지 않은 설명은 도 6에 제시되는 채굴 장치의 설명이 적용될 수 있다.9 is a block diagram illustrating a mining apparatus according to another embodiment. This embodiment is characteristically different in that a mining difficulty determining unit is included. Therefore, descriptions not specifically presented in this figure may be applied to the description of the mining apparatus shown in FIG. 6 .

도 9를 참조하면, 본 발명의 다른 실시 예에 따른 채굴 장치는 제어부(210), 네트워크부(220) 및 저장부(230)을 포함한다. Referring to FIG. 9 , a mining apparatus according to another embodiment of the present invention includes a control unit 210 , a network unit 220 , and a storage unit 230 .

상기 제어부(210)는, 현재 블록 헤더 데이터 획득부(211), 채굴 난이도 결정부(212), 입력 값 생성부(213), 해쉬 함수 적용부(214), 코드워드 획득부(215) 및 블록생성부(216)를 포함할 수 있다.The control unit 210 includes a current block header data acquisition unit 211 , a mining difficulty determination unit 212 , an input value generation unit 213 , a hash function application unit 214 , a codeword acquisition unit 215 , and a block. A generator 216 may be included.

상기 채굴 난이도 결정부(211)는 현재 블록체인 시스템에 적용할 난이도를 결정하는 블럭이다. 그 외에 제어부에 포함되는 구성요소들은 도 6에 제시되는 설명이 그대로 적용될 수 있다. The mining difficulty determining unit 211 is a block that determines the difficulty level to be applied to the current blockchain system. In addition to the components included in the control unit, the description presented in FIG. 6 may be applied as it is.

도 10은 상기 채굴 난이도 결정부를 상세하게 보이는 도면이다. 10 is a detailed view of the mining difficulty determining unit.

도 10을 참조하면, 상기 채굴 난이도 결정부(211)에는, 블록체인 시스템의 상태를 파악하는 모니터링부(320)가 포함된다. 상기 모니터링부(320)는 풀 블럭체인 노드에 접속하여 현재 및 과거의 채굴상태를 파악할 수 있다. Referring to FIG. 10 , the mining difficulty determination unit 211 includes a monitoring unit 320 for determining the state of the block chain system. The monitoring unit 320 can connect to the full blockchain node and grasp the current and past mining status.

상기 모니터링부(320)에서 감지된 정보에 따라서 채굴 난이도를 결정하는 난이도 결정부(310)가 더 포함될 수 있다.A difficulty determining unit 310 for determining the mining difficulty according to the information sensed by the monitoring unit 320 may be further included.

상기 채굴 난이도의 결정은 다양하게 결정되어, 현재 블록생성이 적용될 수 있다. 예를 들어, 현재 채굴 난이도가 낮아 다수의 채굴 및 악의적인 채굴이 있는 경우에는 채굴 난이도를 높이도록 채굴 난이도를 결정할 수 있다. 현재 채굴에 참여하는 채굴 장치의 참여수가 적은 경우에는 채굴 난이도를 낮추도록 채굴 난이도를 결정할 수 있다. The determination of the mining difficulty is variously determined, so that the current block generation can be applied. For example, if the current mining difficulty is low and there are a lot of mining and malicious mining, the mining difficulty may be determined to increase the mining difficulty. If the number of mining devices currently participating in mining is small, the mining difficulty may be determined to lower the mining difficulty.

상기 채굴 난이도 결정부(310)에서 결정된 상기 채굴 난이도를 구현하기 위하여, 어느 체크 매트릭스를 적용할 지를 결정하는 체크 매트릭스 결정부(340)가 더 포함될 수 있다. In order to implement the mining difficulty determined by the mining difficulty determining unit 310, a check matrix determining unit 340 for determining which check matrix to apply may be further included.

상기 채굴 난이도 결정부(310)에서 결정된 상기 채굴 난이도를 구현하기 위하여, 어느 해밍 가중치를 적용할 지를 결정하는 해밍 가중치 결정부(340)가 더 포함될 수 있다.In order to implement the mining difficulty determined by the mining difficulty determination unit 310, a Hamming weight determination unit 340 for determining which Hamming weight is to be applied may be further included.

이미 설명된 바와 같이, 체크 매트릭스의 크기가 크면 클수록 더 많은 컴퓨팅이 요구된다. 따라서 낮은 채굴 난이도에 적용하기 위하여 엘레멘트의 수가 많은 체크 매트릭스를 적용할 필요는 없다. 채굴 난이도가 높은 경우에는 엘레멘트의 수가 작은 체크 매트릭스로는 구현할 수가 없다. 이 두 가지 관점을 만족하는 체크 매트릭스를 상기 체크 매트릭스 결정부(340)에서 결정할 수 있다. As already explained, the larger the size of the check matrix, the more computation is required. Therefore, it is not necessary to apply a check matrix with a large number of elements in order to apply it to a low mining difficulty. If the mining difficulty is high, it cannot be implemented with a check matrix with a small number of elements. The check matrix determining unit 340 may determine a check matrix that satisfies these two points of view.

도 7에서 설명된 바와 같이, 상기 해밍 가중치의 조합을 통하여 동일한 체크 매트릭스를 통하여 미세하게 채굴 난이도를 조정할 수 있다. 도 7에서는 상기 체크 매트릭스 결정부(340)에서 결정된 체크 매트릭스에서 결정된 채굴 난이도를 구현하는 해밍 가중치를 결정할 수 있다. As described in FIG. 7 , it is possible to finely adjust the mining difficulty through the same check matrix through the combination of the Hamming weights. In FIG. 7 , it is possible to determine a Hamming weight that implements the mining difficulty determined in the check matrix determined by the check matrix determiner 340 .

한편, 본 실시예에 따르면, 채굴 난이도를 최적으로 미세하게 조정하는 것이 가능하다. On the other hand, according to this embodiment, it is possible to optimally fine-tune the mining difficulty.

예를 들어, 어느 하나의 제 1 체크 매트릭스에서 구현되는 난이도는 최고 난이도가 10(설명을 위한 숫자로서 높을 수록 난이도가 큰 것을 의미할 뿐으로서, 이하 동일하다)까지이고, 다른 하나의 제 2 체크 매트릭스에서 구현되는 난이도는 최고 난이도가 100까지 일 수 있다. For example, the difficulty implemented in any one of the first check matrices is up to the highest difficulty of 10 (as a number for explanation, the higher the number, the greater the difficulty, hereinafter the same), and the second check of the other The difficulty implemented in the matrix may have a maximum difficulty of 100.

이 경우에, 현재 미세하게 조정하고자 하는 적용 채굴 난이도는 8이라고 하자. 이 경우에 상기 제 1 체크 매트릭스에서, 해밍 가중치를 조정하여 얻을 수 있는 8과 인접하는 채굴 난이도는 7.4, 및 8.1이 있다. 마찬가지로 상기 제 2 체크 매트릭스에서, 해밍 가중치를 조정하여 얻을 수 있는 8과 인접하는 채굴 난이도는 7.95 및 8.2가 있을 수 있다. 이 경우에, 상기 체크 매트릭스 결정부(340)는 상기 제 2 체크 매트릭스를 사용 체크 매트릭스로서 결정할 수 있다. In this case, let's say that the applied mining difficulty that we want to fine-tune now is 8. In this case, in the first check matrix, the mining difficulty adjacent to 8 obtained by adjusting the Hamming weight is 7.4, and 8.1. Similarly, in the second check matrix, there may be 7.95 and 8.2 for the mining difficulty adjacent to 8, which can be obtained by adjusting the Hamming weight. In this case, the check matrix determiner 340 may determine the second check matrix as a used check matrix.

물론, 이 경우에 상기 해밍 가중치 결정부(350)는 제 2 체크 매트릭스의 해밍 가중치 조합을 선택하여 채굴 난이도를 7.95로 결정할 수 있다. Of course, in this case, the Hamming weight determiner 350 may select the Hamming weight combination of the second check matrix to determine the mining difficulty as 7.95.

위와 같은 방법으로 결정된 체크 매트릭스와 해밍 가중치에 따라서, 도 6과 동일한 과정이 수행될 수 있다.According to the check matrix and Hamming weight determined by the above method, the same process as in FIG. 6 may be performed.

이와 같은 제어에 필요한 정보는 메모리(330)에 미리 저장되어 도출될 수 있다. Information necessary for such control may be previously stored in the memory 330 and derived.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as computer-readable code on a medium in which a program is recorded. The computer-readable medium includes all kinds of recording devices in which data readable by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. there is this Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.

Claims (10)

거래가 발생하면 블록을 생성하고, 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치에 있어서,
블록체인 시스템을 모니터링하여, 채굴 난이도를 높이거나 낮추도록 결정하는 채굴 난이도 결정부가 포함되고, 상기 채굴 난이도 결정부에서 결정된 적용 채굴 난이도에 따라서 블록을 생성하여 작업 증명을 완료하는 제어부; 및
상기 생성된 블록을 다른 채굴 장치로 브로드캐스팅하는 네트워크부를 포함하고,
상기 채굴 난이도 결정부에는,
상기 블록체인 시스템을 모니터링하는 모니터링부;
상기 모니터링부에서 모니터링된 결과에 따라서, 상기 적용 채굴 난이도를 결정하는 난이도 결정부; 및
상기 적용 채굴 난이도를 구현하기 위하여, 채굴 장치에 사용될 체크 매트릭스를 결정하는 체크 매트릭스 결정부가 포함되고,
상기 체크 매트릭스는, 채굴하고자 하는 현재 블록의 헤더로부터 작업 증명을 위한 데이터 값에 기초하는 제 1 입력 값에 기초하여 구현되는 채굴 장치.
In a mining device that creates a block when a transaction occurs, and performs proof-of-work through a proof-of-work consensus mechanism to form a block chain,
a control unit comprising a mining difficulty determining unit that monitors the block chain system to determine whether to increase or decrease the mining difficulty; and
and a network unit that broadcasts the generated block to other mining devices,
In the mining difficulty determining unit,
a monitoring unit for monitoring the block chain system;
a difficulty determination unit for determining the applied mining difficulty according to the monitored result by the monitoring unit; and
In order to implement the applied mining difficulty, a check matrix determining unit that determines a check matrix to be used in a mining device is included,
The check matrix is implemented based on a first input value based on a data value for proof of work from a header of a current block to be mined.
제 1 항에 있어서,
상기 채굴 난이도 결정부에는,
상기 체크 매트릭스 결정부에서 사용하기로 결정된 체크 매트릭스에서 상기 적용 채굴 난이도를 구현하는 해밍 가중치를 결정하는 해밍 가중치 결정부가 포함되는 채굴 장치.
The method of claim 1,
In the mining difficulty determining unit,
and a Hamming weight determination unit configured to determine a Hamming weight that implements the applied mining difficulty in the check matrix determined to be used by the check matrix determination unit.
제 2 항에 있어서,
적어도 한 개의 상기 체크 매트릭스 및 상기 체크 매트릭스에 의해서 구현되는 상기 해밍 가중치의 조합에 의해서 구현되는 채굴 난이도와 대응하는 정보가 저장되는, 메모리가 포함되는 채굴 장치.
3. The method of claim 2,
Mining apparatus comprising a memory, in which information corresponding to the difficulty of mining implemented by a combination of at least one of the check matrix and the Hamming weight implemented by the check matrix is stored.
제 3 항에 있어서,
상기 메모리에는 적어도 두 개의 상기 체크 매트릭스 및 상기 적어도 두 개의 체크 매트릭스에 의해서 구현되는 해밍 가중치에 의해서 구현되는 채굴 난이도와 대응하는 정보가 저장되는 채굴장치.
4. The method of claim 3,
The memory stores at least two check matrices and information corresponding to a mining difficulty implemented by a Hamming weight implemented by the at least two check matrices.
블록체인 시스템을 모니터링하여 적용 채굴 난이도를 결정하는 단계;
현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득하고, 획득한 데이터 값에 포함된 제 1 값에 기초하여 상기 적용 채굴 난이도를 구현할 체크 매트릭스가 결정되는 단계;
획득한 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성하는 단계;
획득한 데이터 값에 포함된 제 3 값 및 해쉬 트리에 기초하여 입력 셋을 생성하는 단계;
입력 셋을 해쉬 함수에 적용하여 결과 벡터를 획득하는 단계;
상기 결과 벡터 및 상기 체크 매트릭스에 기초하여 코드워드를 획득하는 단계;
상기 코드워드가 기 설정된 조건 셋을 만족하는지 여부를 판단하는 단계; 및
판단 결과에 기초하여 새로운 블록을 생성하거나, 다른 넌스 값을 사용하여 다시 코드워드를 획득하는 단계를 포함하는 채굴 장치 동작 방법.
monitoring the blockchain system to determine the applied mining difficulty;
obtaining a data value for proof of work from a current block header, and determining a check matrix to implement the applied mining difficulty based on a first value included in the obtained data value;
generating a hash tree based on a second value included in the acquired data value;
generating an input set based on a third value and a hash tree included in the acquired data value;
applying the input set to the hash function to obtain a result vector;
obtaining a codeword based on the result vector and the check matrix;
determining whether the codeword satisfies a preset condition set; and
A method of operating a mining device, comprising the step of generating a new block based on a determination result or acquiring a codeword again using a different nonce value.
제 5 항에 있어서,
상기 코드워드가 기 설정된 조건 셋을 만족하는지 여부를 판단하는 단계는,
작업 증명 과정의 난이도 조정을 위해 기 설정된 조건 셋을 조정하는 것이 포함되고,
상기 기 설정된 조건 셋은 상기 체크 매트릭스 별로 서로 다른, 채굴 장치 동작 방법.
6. The method of claim 5,
The step of determining whether the codeword satisfies a preset condition set comprises:
It includes adjusting a set of preset conditions to adjust the difficulty of the proof-of-work process,
The preset condition set is different for each check matrix, the method of operating a mining device.
제 6 항에 있어서,
조건 셋을 조정하는 단계는,
코드워드에 포함된 1의 개수를 지칭하는 해밍 가중치의 조합을 결정하는 것에 의해서 조정되는 채굴 장치 동작 방법.
7. The method of claim 6,
The steps to adjust the condition set are:
A method of operating a mining device adjusted by determining a combination of Hamming weights indicating the number of 1s included in a codeword.
제 6 항에 있어서,
새로운 블록이 생성된 경우 블록을 다른 채굴 장치로 브로드캐스팅하는 단계를 더 포함하고,
상기 블록을 다른 채굴 장치로 브로드캐스팅하는 단계는, 상기 조정된 조건 셋 정보를 블록과 함께 브로드캐스팅하는 단계를 포함하는 채굴 장치 동작 방법.
7. The method of claim 6,
Broadcasting the block to other mining devices when a new block is created;
The step of broadcasting the block to other mining devices includes broadcasting the adjusted condition set information together with the block.
제 5 항에 있어서,
상기 적용 채굴 난이도를 구현할 체크 매트릭스를 결정하는 단계는, 다수의 체크 매트릭스 중에서, 상기 채굴 난이도와 가장 근접하는 채굴 난이도를 구현할 수 있는 체크 매트릭스로 결정되는 채굴 장치 동작 방법.
6. The method of claim 5,
The step of determining the check matrix to implement the applied mining difficulty is determined as a check matrix capable of implementing the mining difficulty closest to the mining difficulty among a plurality of check matrices.
제 9 항 중에 있어서,
상기 체크 매트릭스, 및 그 체크 매트릭스에 의해서 구현되는 해밍 가중치의 조합은, 미리 메모리에 저장되는 채굴 장치 동작 방법.
10. The method of claim 9,
The combination of the check matrix and the Hamming weight implemented by the check matrix is stored in a memory in advance.
KR1020190151246A 2019-08-13 2019-11-22 Error-correction code based crypto currency system KR102288769B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190099153 2019-08-13
KR1020190099153 2019-08-13

Publications (2)

Publication Number Publication Date
KR20210019922A KR20210019922A (en) 2021-02-23
KR102288769B1 true KR102288769B1 (en) 2021-08-12

Family

ID=74688189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190151246A KR102288769B1 (en) 2019-08-13 2019-11-22 Error-correction code based crypto currency system

Country Status (1)

Country Link
KR (1) KR102288769B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291627B2 (en) * 2016-10-17 2019-05-14 Arm Ltd. Blockchain mining using trusted nodes
KR102514457B1 (en) * 2017-01-10 2023-03-29 한국전자통신연구원 Method and system for managing transaction information of public organization using blockchain technology
KR102382127B1 (en) * 2017-04-05 2022-04-04 삼성에스디에스 주식회사 System for processing data based on blockchain and Operating method thereof
KR102384340B1 (en) * 2017-04-05 2022-04-07 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof

Also Published As

Publication number Publication date
KR20210019922A (en) 2021-02-23

Similar Documents

Publication Publication Date Title
US20230120742A1 (en) Quantumproof blockchain
Al-Bassam et al. Fraud proofs: Maximising light client security and scaling blockchains with dishonest majorities
Konig et al. Unconditional security from noisy quantum storage
KR100742450B1 (en) Quantum key delivery method and communication device
KR101311057B1 (en) Digital signatures for network coding
Al-Bassam et al. Fraud and data availability proofs: Maximising light client security and scaling blockchains with dishonest majorities
EP3831012B1 (en) Bidirectional blockchain
US10885814B2 (en) Share recovery system, share recovery apparatus, share recovery method, and program
Sengupta et al. Retricoin: Bitcoin based on compact proofs of retrievability
TW201118555A (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
JP2018196097A (en) Generation device, consensus formation system, program, and generation method
JP5609892B2 (en) Verification device, secret information restoration device, verification method, program, and secret sharing system
CN110633071B (en) Random number generation method and device
KR102231257B1 (en) mining apparatus and operation methof of the same
US20100031128A1 (en) Shared information generating apparatus and recovering apparatus
KR101675674B1 (en) Quantum signature apparatus for quantum message
JPWO2008093690A1 (en) Distributed information generation apparatus, restoration apparatus, restoration result verification apparatus, secret information distribution system, method, and program
US9940195B2 (en) Encryption of slice partials
van der Linde et al. Post-quantum blockchain using one-time signature chains
KR102288769B1 (en) Error-correction code based crypto currency system
KR102211648B1 (en) Electronic device capable of data communication through electronic signatures based on syndrome and operating method thereof
KR20210134408A (en) mining equipment
CN112184441A (en) Data processing method, data processing device, node equipment and storage medium
JP2009169316A (en) Hash function operational device, signature device, program and hash function operational method
JP2020061696A (en) Blockchain management system, blockchain management method, and blockchain management program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right