WO2021010720A1 - 채굴 장치 - Google Patents

채굴 장치 Download PDF

Info

Publication number
WO2021010720A1
WO2021010720A1 PCT/KR2020/009222 KR2020009222W WO2021010720A1 WO 2021010720 A1 WO2021010720 A1 WO 2021010720A1 KR 2020009222 W KR2020009222 W KR 2020009222W WO 2021010720 A1 WO2021010720 A1 WO 2021010720A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
mining
generic
mining device
proof
Prior art date
Application number
PCT/KR2020/009222
Other languages
English (en)
French (fr)
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 광주과학기술원
Priority to KR1020217033618A priority Critical patent/KR102720562B1/ko
Publication of WO2021010720A1 publication Critical patent/WO2021010720A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files

Definitions

  • a distributed consensus mechanism is needed to ensure 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.
  • Bitcoin is a representative cryptocurrency that uses the Proof-of-work (PoW) [2] algorithm.
  • PoW Proof-of-work
  • Proof-of-work is the most commonly used consensus algorithm in blockchain-based cryptocurrencies. In short, computing power is used to reach consensus by finding and checking hash values that meet specific requirements.
  • Proof-of-work is the process of finding a nonce value that makes the block hash value smaller than the target value. Nonce is one of the information specified in the block header.
  • a nonce set which is a set of nonce values, is defined, and a nonce value is selected one by one from the nonce set and assigned to the hash function. At this time, the nonce value used once is excluded from the nonce set and is not used again.
  • the target value represents the difficulty of calculating the nonce value, and is adjusted to generate a single block every 10 minutes on average.
  • a mining device that forms a block chain by performing proof of work through a proof of work consensus mechanism creates a block chain when the network unit and the transaction occurs, and any one of a plurality of generic IDs in the ID pool And a control unit for broadcasting the generated block to another mining device corresponding to the selected generic ID.
  • the plurality of generic IDs may be IDs corresponding to members of a closed blockchain community who have agreed on an operation method.
  • the control unit may broadcast the generated block only to mining devices corresponding to the plurality of generic IDs.
  • the plurality of generic IDs may be generated using fingerprints of mining devices owned by the members.
  • control unit may return to the previous mining device.
  • the controller may insert the selected generic ID into a block header and broadcast the block including the block header into which the generic ID is inserted.
  • FIG. 1 shows a general block and a block chain to which blocks are connected.
  • FIG. 2 is a flowchart showing an improved proof-of-work algorithm according to an embodiment of the present invention.
  • FIG. 6 is a block diagram showing a mining apparatus according to an embodiment of the present invention.
  • Block chain (2) is a form in which a number of blocks (1) are connected.
  • Block 1 is a bundle of a number of valid transaction information.
  • the block header 3 displays block information.
  • the block header contains the hash value of the previous block.
  • the block hash (4) is a value obtained by calculating the block header with a hash function.
  • the hash function is a function that maps data of an arbitrary length to data of a fixed length.
  • the peer node is also referred to as a miner or mining device, and means a computing device or a set of computing devices that perform proof of work.
  • the computing device could be a computer with a high-performance graphics card and processor.
  • a block can be created at the same time in several peer nodes and the chain can be branched.
  • the peer nodes reach consensus using a predetermined consensus algorithm and expand the consensus chain.
  • the Bitcoin consensus mechanism considers only the longest chain to be the correct chain.
  • the difficulty of the crypto puzzle is gradually increasing because the number of companies participating in bitcoin mining increases, and the hash power of the entire mining network increases.
  • the higher the hash power the faster the proof-of-work speed and consequently the faster the speed of generating blocks.
  • the Bitcoin protocol aims to fill the block generation time by one block every 10 minutes on average. To this end, the bitcoin protocol reconstructs the hash difficulty level every 2016 block [1]. Therefore, as the hash power increases, the difficulty level increases. Due to this, more power is consumed for mining.
  • 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].
  • the ASIC chip is relatively expensive, but the hash power of the few miners who mine through the ASIC chip is optimized for proof of work in Bitcoin, which accounts for a large portion of the hash power of the entire network, and has overwhelming mining influence. I got it.
  • the new proof-of-work algorithm is required to solve the re-centralization of such a blockchain network.
  • the new proof-of-work algorithm is required to meet the following requirements.
  • the difficulty level of the puzzle must be adjustable.
  • FIG. 2 is a flowchart showing a proof-of-work algorithm that satisfies an improved condition according to an embodiment of the present invention.
  • the proof-of-work algorithm described in FIG. 2 may be performed through the above-described mining device, and specifically, may be performed in a processor such as a CPU provided in the mining device.
  • the mining apparatus generates a check matrix based on the first value included in the acquired data value (S1003).
  • the first value used to generate the check matrix may be a hash value of the previous block.
  • the mining apparatus may generate the check matrix Ft by using the hash value ht-1 of the previous block at the current block index t (positive integer).
  • the check matrix one generally known in the field of code theory can be used.
  • the mining device generates a hash tree based on the second value included in the acquired data value (S1005).
  • the second value used to generate the hash tree may be transaction set information.
  • the mining device may generate a hash tree value based on the second value.
  • the mining apparatus generates an input set S based on the generated hash tree and the third value included in the acquired data value (S1007).
  • the third value used herein may be at least one of version information, difficulty level information, or timestamp information of a previous block. Also, other information included in the block header may be additionally used as the third value.
  • 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 whose security has been verified may be used.
  • the mining device generates a result vector that is an output of the hash function for a specific nonce value.
  • 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 an error generated by the channel.
  • An error correction code is used to catch and correct this error.
  • the transmitter generates a codeword by 1-to-1 mapping, that is, encoding a 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.
  • a decoder or decoding function is called a decoding function that recovers the transmitted codeword by solving the inverse problem of the encoding function.
  • the size of the codeword vector Nc is made longer than the size of the message vector Nm.
  • R Nm/Nc is called code rate. The smaller the code rate, the more robust it is to channel errors; But decoding requires more computing.
  • the synthesized function created in this way satisfies 1) of the requirements of the proof-of-work algorithm.
  • graph-decoder may be used as the decoding function.
  • an algorithm capable of the fastest codeword mapping in the linear graph-decoder field may be used as an additional decoding function.
  • the mining device determines that proof of work has been completed, creates a new block while recording the current nonce value, and broadcasts it to other mining devices (S1017). . Therefore, in contrast to determining whether the proof of work is completed only with the output value of the hash function in the existing proof of work in Bitcoin, the process of verifying the output word value using a decoding function is added. A problem that may occur in a standardized algorithm (using ASIC Re-centralization).
  • the check matrix which is one of the inputs of the decoder part
  • a different decoder puzzle must be performed for each block as proof of work.
  • the check matrix depends on the previous block hash value
  • a different input value is used for each block, and as a result, the appearance of ASIC chips can be suppressed.
  • anyone with a relatively low hash power can participate in proof-of-work, thus satisfying the requirement 5) of the new proof-of-work algorithm.
  • the function used for decoding can also be changed to another type of function having a one-way characteristic, which is also a factor that suppresses the appearance of ASIC chips due to a fixed algorithm. Also, even if a nonce value for a specific puzzle problem is found, a different input value for each block is used to create the puzzle, 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 work algorithm.
  • the mining apparatus excludes the previously used nonce value from the nonce set, selects a new nonce value not used in the nonce set, and returns to step S1009 (S1015). .
  • the mining apparatus repeats each step while selecting a new nonce value until the mapped output word satisfies the condition.
  • FIG. 4 is a flowchart illustrating a verification process of a mining apparatus according to an embodiment of the present invention.
  • the steps described above 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 proof of work is completed. In addition, if the broadcasted block is verified by other mining devices and recognized as a legitimate block, the mining devices update the blockchain ledger by adding the block to the existing block chain.
  • the mining device acquires block header data of a block broadcast from another mining device that has generated the block (S2001).
  • the block header data acquired by the mining device is the same as described above.
  • the mining apparatus generates a check matrix based on the hash value included in the block header data (S2003).
  • the method of generating the check matrix is the same as described above.
  • the mining apparatus obtains an output value of the hash function based on the block header data (S2005).
  • the step of obtaining the output value of the hash function is the same as described above.
  • the mining apparatus obtains an output word as an output value of a hash function and an output value of a decoding function using a check matrix as an input value (S2007).
  • the decoding function used here is the same as described above.
  • the mining device determines whether the output word satisfies the condition (S2009).
  • 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 transmitted together when a block is broadcast.
  • the mining device approves the broadcast block and updates the ledger by extending it to the existing block chain (S2011).
  • FIG. 5 is a diagram illustrating 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) is an example of an 8 by 16 check matrix.
  • a check matrix of a much larger size is used, but an 8 by 16 check matrix is described as an example for ease of explanation.
  • Fig. 5(b) is a table in which codeword values are summarized based on the 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 condition set having 1 as much as the number indicated by the Hamming weight.
  • p represents the ratio of the number of codewords included in the Vn condition set among the total number of codewords.
  • the size of the condition set including n number of 1s is different, and the respective occupancy rate for it 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, when the difficulty level 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 set of conditions differs by about 55% and 2.5%, respectively.In the latter case, more operations are required to obtain a codeword value that satisfies the set of conditions. As a result, the difficulty of proof-of-work increases. That is, the difficulty level of the puzzle can be flexibly adjusted by changing the code rate and adjusting the size of the matrix to adjust the amount of computing required to solve the decoder puzzle, thus satisfying the requirement 4) of the new proof-of-work algorithm.
  • FIG. 6 is a block diagram showing a mining apparatus according to an embodiment of the present invention.
  • the mining apparatus includes a control unit 110, a network unit 120, and a storage unit 130.
  • the control unit 110 may refer to a processor, and may include a microprocessor or a controller.
  • the current block header data acquisition unit 111 obtains data included in the header by extracting the header of the current block to be mined.
  • the data acquired by the current block header data acquisition unit 111 may include at least one of version information, difficulty level information, timestamp information, nonce information, hash value information of a previous block, or transaction set information.
  • the input value generator 112 generates a plurality of input values based on the current block header data.
  • the input value generator 112 may generate a check matrix based on a previous block hash value.
  • the input value generator 112 may generate a hash tree value based on a transaction set.
  • the input value generator 112 may generate a hash function input set based on a hash tree value and other header data.
  • the other header data value may be at least one of version information, difficulty level information, and timestamp information, for example.
  • the hash function application unit 113 obtains an output of the hash function by using the input set generated by the input value generation unit 112 as an input value.
  • the hash function may be a SHA function, and other functions with secured security can also be applied.
  • the network unit 120 is a wired/wireless communication device.
  • the network unit 120 connects with other mining devices and broadcasts the generated block.
  • the network unit 120 may receive a block generated by another mining device and transmit it to the current block header data acquisition unit 111.
  • the storage unit 130 stores various instructions used by the control unit 110.
  • the storage unit 130 stores a block chain ledger to which blocks generated by the control unit 110 are connected.
  • the storage unit 130 may be a memory device.
  • FIG. 7 is a diagram for describing a method of establishing block chain governance.
  • the physical copy protection function cannot replicate the pattern and thus can be utilized as a fingerprint. Therefore, the owner of the chip can create a private key using the physical copy protection function.
  • a hybrid policy that combines on-chain policy and off-chain policy can be used to break away from centralization and realize an equal blockchain.
  • the off-chain policy may mean political, economic, and social agreements between people.
  • on-chain policy is the insertion of the policy into the blockchain in the form of computer code through programming.
  • the policy is automatically realized through the computer API.
  • third party In the off-chain policy, there may be a third party that manages registration of generic IDs for each mining device. This is to prevent Sybil Attacks, such as registering multiple registrations on a single computer.
  • third party may be used interchangeably with the term third party server.
  • a plurality of generic IDs corresponding to a plurality of mining devices may be stored in the blockchain. And only mining devices with a generic ID may be allowed to participate in mining.
  • the off-chain policy there may be a third party that manages registration of each individual's generic ID.
  • fingerprints of each user may be registered with a third party.
  • the third party can generate a generic ID of the mining device representing each member. That is, one member can have one registered generic ID.
  • the generated generic IDs can be stored in the blockchain. And only mining devices with a generic ID may be allowed to participate in mining.
  • an ID pool composed of a plurality of generic IDs may be configured.
  • the generic ID can be composed of a 256-bit string.
  • the mining device to perform the mining operation may be determined by selecting any one generic ID from among a plurality of generic IDs in the ID pool. That is, by using a third party, immutability can be maintained.
  • the controller 110 of the mining device may determine the next mining device with a unique ID called to mine the next block.
  • the input may be a block header excluding the ID field and a set of all IDs.
  • the output may be the following ID.
  • control unit 110 may acquire all field elements of the block header of the first block #1 except for the ID.
  • the controller 110 may determine a single ID from a set of all ID vectors. As one method of determining a single ID, the control unit 110 may select a method having the smallest Hamming distance to the hash function output y.
  • the selected single ID may be the ID (ID_next) of the next mining device (miner).
  • controller 110 may return the ID (ID_next) of the next mining device.
  • a mining device hereinafter referred to as a second mining device
  • the second mining device may start a mining routine for the second block #2.
  • the controller of the second mining apparatus may read the ID field of the block header of the announced first block.
  • the controller of the second mining device may collect transactions to form the body of the second block #2.
  • the above-described mining routine may fail.
  • the on-chain policy may include a time limit for the next block generation.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Primary Health Care (AREA)
  • Quality & Reliability (AREA)
  • Finance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

채굴장치가 개시된다. 거래가 발생하면 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치에 있어서, 채굴 장치는, 네트워크부, 및, 상기 거래가 발생하면 블록을 생성하고, ID 풀 내 복수의 제네릭 ID 중 어느 하나의 제네릭 ID를 선택하고, 상기 선택된 제네릭 ID에 대응하는 다른 채굴 장치로 상기 생성된 블록을 브로드캐스팅 하는 제어부를 포함한다.

Description

채굴 장치
본 발명은, 온 라인 정책과 오프라인 정책을 모두 고려함으로써, 중앙화에서 탈피하여 평등한 블록 체인을 실현할 수 있는 채굴 장치에 관한 것이다.
2009년 사토시 나카모토가 개발한 비트코인[1]으로부터 블록 체인 기반의 암호화폐가 등장했다. 블록 체인은 공공 분산 원장을 위한 분산 데이터 처리 기술이다. Peer-to-Peer(P2P) 트랜잭션 데이터는 블록으로 기록되며, 이들 블록은 블록의 링크드 리스트(다시 말해서, 체인)를 형성한다. 네트워크의 각 사용자는 중앙 권한 없이 분산된 방식으로 전체 데이터를 저장한다. 블록 체인의 각 블록이 이전 블록의 해쉬 값을 포함하는 블록 체인을 구성하기 때문에, 블록 체인 기반 암호 화폐에서 트랜잭션을 조작하는 것을 매우 어렵게 만든다.
대규모 P2P 네트워크에서 단일 블록 체인을 유지하려면 피어 노드 간에 결과를 상호 검증하여 시스템 무결성을 보장하는 분산 합의 메커니즘이 필요하다. 이 합의 메커니즘은 새로운 블록을 누가 만들었는지, 그리고 체인은 유효한지를 판단하는 것이 가능해야 한다.
비트코인은 작업 증명(Proof-of-work, PoW)[2] 알고리즘을 사용하는 대표적인 암호화폐이다. 작업증명은 블록 체인 기반 암호화폐에서 가장 일반적으로 사용되는 합의 알고리즘이다. 요컨대, 특정 요구 사항을 충족하는 해쉬 값을 찾아서 확인하여 합의를 도출하는데 컴퓨팅 능력이 사용된다. 작업 증명은 블록 해쉬 값을 목표 값보다 작게 만드는 넌스(nonce) 값을 찾는 프로세스이다. 넌스는 블록 헤더에 지정된 정보 중 하나이다. 넌스 값의 집합인 넌스 셋이 정의되고, 넌스 셋에서 넌스 값을 하나씩 선택하면서 해쉬 함수에 대입한다. 이때, 한번 사용된 넌스 값은 넌스 셋에서 제외되어 다시 사용되지 않는다. 특정의 넌스 값에서 상기의 요구사항을 만족하는 해쉬 값이 발견되는 경우 해당 넌스 값을 기록하고, 블록 헤더에 삽입하여 블록을 생성한다. 이러한 일련의 과정이 작업 증명이라고 지칭된다. 작업증명 과정에서 목표 값은 넌스 값 계산의 어려움을 나타내며, 평균 10분마다 단일 블록을 생성하도록 조절된다.
[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.
[3] Harald Vranken, in Current Opinion in Environmental Sustainability, 2017, 28: 1 - 9
[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
본 발명은, 온 라인 정책과 오프라인 정책을 모두 고려함으로써, 중앙화에서 탈피하여 평등한 블록 체인을 실현할 수 있는 채굴 장치를 제공하기 위함이다.
거래가 발생하면 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치는, 네트워크부, 및, 상기 거래가 발생하면 블록을 생성하고, ID 풀 내 복수의 제네릭 ID 중 어느 하나의 제네릭 ID를 선택하고, 상기 선택된 제네릭 ID에 대응하는 다른 채굴 장치로 상기 생성된 블록을 브로드캐스팅 하는 제어부를 포함한다.
이 경우 상기 복수의 제네릭 ID는, 운영 방법을 합의한 닫힌 블록 체인 커뮤니티의 구성원들에 대응하는 ID일 수 있다.
상기 제어부는, 상기 복수의 제네릭 ID에 대응하는 채굴장치 들에만 상기 생성된 블록을 브로드캐스팅 할 수 있다.
한편 상기 복수의 제네릭 ID는, 상기 구성원들이 소유한 채굴 장치들의 핑거 프린트을 이용하여 생성될 수 있다.
한편 상기 복수의 제네릭 ID는, 상기 구성원들의 핑거 프린트를 이용하여 생성될 수 있다.
이 경우 상기 구성원들은, 각각 하나의 제네릭 ID를 가질 수 있다.
한편 상기 제어부는, 이전 채굴 장치로부터 블록을 수신하고, 상기 수신된 블록의 블록 헤더에 포함되는 제네릭 ID가 상기 채굴 장치의 제네릭 ID와 일치하면 작업을 수행할 수 있다.
이 경우 상기 제어부는, 특정 시간 안에 블록이 생성되지 않는 경우, 상기 이전 채굴 장치에 리턴할 수 있다.
한편 상기 제어부는, 상기 선택된 제네릭 ID를 블록 헤더에 삽입하고, 상기 제네릭 ID가 삽입된 블록 헤더를 포함하는 상기 블록을 브로드캐스팅 할 수 있다.
도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.
도 2는 본 발명의 일 실시 예에 따른 개선된 작업 증명 알고리즘을 나타내는 흐름도이다.
도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 채굴 장치의 검증 프로세스를 나타내는 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 체크 매트릭스를 통해 설명하는 도면이다.
도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.
도 7은 블록 체인 거버넌스(governance)의 수립 방법을 설명하기 위한 도면이다.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시 예를 상세하게 설명한다. 그러나 본 발명의 사상은 이하의 실시 예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에 포함되는 다른 실시 예를 구성요소의 부가, 변경, 삭제, 및 추가 등에 의해서 용이하게 제안할 수 있을 것이나, 이 또한 본 발명 사상의 범위 내에 포함된다고 할 것이다.
첨부 도면은 발명의 사상을 이해하기 쉽게 표현하기 위하여 전체적인 구조를 설명함에 있어서는 미소한 부분은 구체적으로 표현하지 않을 수도 있고, 미소한 부분을 설명함에 있어서는 전체적인 구조는 구체적으로 반영되지 않을 수도 있다. 또한, 설치 위치 등 구체적인 부분이 다르더라도 그 작용이 동일한 경우에는 동일한 명칭을 부여함으로써, 이해의 편의를 높일 수 있도록 한다. 또한, 동일한 구성이 복수 개가 있을 때에는 어느 하나의 구성에 대해서만 설명하고 다른 구성에 대해서는 동일한 설명이 적용되는 것으로 하고 그 설명을 생략한다.
본 발명을 설명하기에 앞서, 블록체인 기반의 암호화폐에서 수행되는 작업 증명을 간단히 설명하고, 관련 용어를 간단히 정의한다.
도 1은 일반적인 블록 및 블록들이 연결된 블록 체인을 나타낸다.
블록 체인(2)은 다수의 블록(1)이 연결된 형태이다.
블록(1)이란 다수의 유효한 거래 정보의 묶음이다.
블록 헤더(3)는 블록의 정보를 표시한다. 블록 헤더는 이전 블록의 해쉬 값을 가지고 있다.
블록 해쉬(4)는 블록 헤더를 해쉬 함수로 계산한 값이다. 여기에서 해쉬 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
작업 증명 알고리즘에서는 앞서 설명한 바와 같이 블록 해쉬와 목표 값을 비교하여 작업 증명 성공 여부를 판단한다. 구체적으로 작업 증명은 소위 피어 노드에서 수행되는데, 각각의 피어 노드는 헤더 정보 중 넌스 값을 바꿔가면서 해쉬 계산을 하여 목표 값 보다 작은 값이 나오는지 여부를 판단한다.
여기에서 피어 노드는 채굴 업자 또는 채굴 장치라고도 지칭되며, 작업 증명을 수행하는 연산 장치 또는 연산 장치의 집합을 의미한다. 예를 들어 연산 장치는 고성능의 그래픽 카드 및 프로세서를 갖춘 컴퓨터가 될 수 있다.
피어 노드는 블록 해쉬가 목표 값 보다 작을 때까지 넌스를 바꾸며, 블록 해쉬가 목표 값 보다 작으면 작업 증명 성공으로 판단하고 블록에 포함된 모든 거래를 유효한 거래로 확정한다. 그리고 유효한 블록이 생성되면, 피어 노드는 생성된 블록을 전체 네트워크로 브로드캐스팅하고, 이를 다른 피어 노드들이 승인하고 블록 체인에 추가하면 거래가 완료된다.
여기에서, 블록이 여러 피어 노드에서 동시에 생성되어 체인이 분기될 수 있는데, 이 때, 피어 노드들은 정해진 합의 알고리즘을 사용하여 합의에 이르고, 합의된 체인을 확장시켜나간다. 가령, 비트코인 합의메커니즘은 가장 긴 체인만을 옳은 체인으로 간주한다.
상술한 작업 증명 기반 암호화폐인 비트코인은 몇 가지 문제가 있다.
먼저, 작업 증명을 위해 너무 많은 전력을 소비한다는 것이 있다[3]. 소위 채굴 난이도라고 불리는 암호 퍼즐 난이도가 점차 증가하고 있는데 이는 비트코인 채굴에 참여하는 업자의 수가 늘어나고, 채굴네트워크 전체의 해쉬파워가 증가하기 때문이다. 해쉬파워가 클수록 작업 증명의 속도가 빠르며 결과적으로 블록을 생성하는 속도가 빨라진다. 비트코인 프로토콜은 블록 생성 시간을 평균적으로 10분마다 한 블록씩 채우는 것을 목표로 한다. 이를 위해 비트 코인 프로토콜은 2016 블록마다 해쉬 난이도를 재구성한다[1]. 따라서, 해쉬파워가 커지면 난이도는 증가하게 된다. 이로 인하여, 채굴을 위해 더 많은 전력이 소비가 되는 것이다.
암호 화폐에 대한 채굴업자의 수가 많을수록 가능한 공격에 대한 보호 기능이 향상되므로 블록 체인 불변성 및 암호 화폐의 신뢰성 유지에 도움이 된다. 비트 코인 네트워크의 초기 단계(2010 ~ 2013년)에서는 가정용 컴퓨터를 사용하는 일반 사람들도 비트코인의 작업증명을 수행할 수 있었다.
그러나, 시간이 갈수록 가정용 컴퓨터의 컴퓨팅 파워만으로는 작업 증명을 빠르게 수행할 수 없었으며, 비트코인 채굴을 위한 컴퓨팅 플랫폼이 GPU, FPGA에서 최근에 ASIC에 이르면서 소수의 채굴업자들이 컴퓨팅 파워를 독점하는 현상이 나타나고 있다. 이를 통해 비트코인 네트워크가 중앙 집중화되어 비트코인 블록체인의 정체성인 탈-중앙화(decentralization)와 멀어지고 있다. 따라서, 압도적인 컴퓨팅 파워를 갖는 소수의 채굴업자에 의해 블록체인이 변조될 가능성이 대두되면서 블록체인에 대한 대중의 신뢰가 붕괴되고 있는 시점이다.
이러한 비트코인을 포함한 모든 작업증명(Proof-of-Work) 기반 블록체인 네트워크의 재-중앙화(recentralization) 문제가 유발되는 원인으로, 암호 퍼즐의 제한된 가용성(limited availability)이 있다. 비트코인 합의메커니즘에서의 작업 증명 방식은 고정된 해쉬함수 (e.g. SHA-256) 알고리즘에 따라 이루어져, 결과적으로 비트코인 작업 증명 알고리즘에 최적화된 ASIC 칩을 탄생시켰다[4]. ASIC 칩은 상대적으로 고가이나, 비트코인 작업 증명에 최적화되어 ASIC 칩을 통해 채굴을 수행하는 소수의 채굴업자들이 가진 해쉬파워가, 전체네트워크의 해쉬파워에 큰 부분을 차지하여, 압도적인 채굴 영향력을 갖게 되었다.
따라서 이러한 블록체인 네트워크의 재-중앙화를 해소하기 위해서 새로운 작업 증명 알고리즘이 요구되고 있다. 새로운 작업 증명 알고리즘은 아래와 같은 요건을 만족할 것이 요구된다.
1) 퍼즐은 풀기 어려워야 하나, 반대로 체크는 쉬워야 한다.
2) 퍼즐은 외부 공격으로부터 견고한 저항성을 가져야 한다.
3) 풀린 퍼즐의 넌스 값은 재 사용되지 않는다.
4) 퍼즐의 난이도는 조절 가능하여야 한다.
5) CPU를 갖고 있는 정도라면 누구든지 작업 증명에 참여할 수 있어야 한다.
이하에서는 상술한 요구 조건을 만족하는 본 발명의 일 실시 예에 따른 개선된 PoW기반 블록체인 네트워크에서의 작업 증명 알고리즘을 설명한다. 개선된 요구 조건 중 하나는
6) 작업증명에 쓰이는 함수가 매 블록마다 변화하여 바뀔 수 있어야 한다.
이다.
도 2는 본 발명의 일 실시 예에 따른 개선된 조건을 만족하는 작업 증명 알고리즘을 나타내는 흐름도이다.
도 2에서 설명하는 작업 증명 알고리즘은 상술한 채굴 장치를 통해 수행될 수 있으며, 구체적으로 채굴 장치에 마련된 CPU와 같은 프로세서에서 수행될 수 있다.
채굴 장치는 현재 블록 헤더로부터 작업 증명을 위한 데이터 값을 획득한다(S1001). 여기에서 현재 블록이란, 채굴자가 현재 만들고자 하는 블록으로, 아직 작업증명이 완료되지 않아 체인에 연결되지 않은 블록을 말한다. 블록 체인에 포함된 블록 헤더에는 블록에 관한 하나 이상의 정보를 포함할 수 있다. 블록 헤더가 포함하는 정보는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다.
채굴 장치는 획득한 데이터 값에 포함된 제 1 값에 기초하여 체크 매트릭스를 생성한다(S1003). 여기에서 체크 매트릭스를 생성하는데 사용되는 제 1 값은 이전 블록의 해쉬 값일 수 있다. 체크 매트릭스는 Galois Field GF(q) 의 엘레멘트 (q = 2 인 경우는 0 또는 1 바이너리 엘레멘트)로 구성되는 Nc - Nm 바이 Nc 매트릭스일 수 있다. 가령 N m=128 이고 N c=256 이 될 수 있다. 채굴 장치는 현재 블록 인덱스 t (양의정수) 에서 이전 블록의 해쉬 값(ht-1)을 이용하여 체크 매트릭스(Ft)를 생성할 수 있다. 여기에서 체크 매트릭스의 생성은 부호이론 분야에서 일반적으로 알려진 것을 사용할 수 있다.
채굴 장치는 획득한 데이터 값에 포함된 제 2 값에 기초하여 해쉬 트리를 생성한다(S1005). 여기에서 해쉬 트리를 생성하는데 사용되는 제 2 값은 트랜잭션 셋 정보일 수 있다. 일 실시 예에서, 채굴 장치는 제 2 값에 기초하여 해쉬 트리 값을 생성할 수 있다.
채굴 장치는 획득한 데이터 값에 포함된 제 3 값 및 생성된 해쉬 트리에 기초하여 입력 셋(S)을 생성한다(S1007). 여기에서 사용되는 제 3 값은 이전 블록의 버전 정보, 난이도 정보 또는 타임스탬프 정보 중 적어도 하나일 수 있다. 또한, 블록 헤더에 포함된 다른 정보가 추가적으로 제 3 값으로 사용될 수도 있다.
채굴 장치는 입력 셋을 해쉬 함수에 적용하여 결과 벡터(r)를 획득한다(S1009). 여기에서 사용되는 해쉬 함수는 SHA 256 [5] 함수일 수 있으며, 그 밖에 보안성이 검증된 다른 함수를 사용할 수도 있다. 이 때 채굴 장치는 특정의 넌스 값에 대한 해쉬 함수 출력인 결과 벡터를 생성한다.
채굴 장치는 해쉬 함수의 출력인 결과 벡터(r)와 단계 S1003에서 생성한 체크 매트릭스를 입력 값으로 하여 디코딩 함수에 적용한다(S1011). 채굴 장치는 디코딩 함수의 출력 값으로 출력워드(c^)를 획득할 수 있다.
여기에서 디코딩 함수는 Error-Correction Code의 디코더, 통신이론의 Sphere-Decoding 신호수신기, 압축센싱의 Sparse 신호복원 알고리즘 또는 수학의 Inverse 문제의 해를 구하는 알고리즘 등 하나의 입력 값에 대한 유일한 출력값을 만드는 함수가 사용될 수 있다.
바람직한 일 실시 예로서, Error correction coding에 관한 디코딩 함수가 사용되는 경우, Error-Correction Code는 Noisy 채널을 사이로 송신기와 수신기가 통신할 때 사용한다. Noisy채널을 통해 수신한 워드는 채널이 발생시키는 에러 때문에 송신한 워드와 다르게 된다. 이 에러를 잡아내고 정정하기 위해 오류정정부호가 사용된다. 송신기는 메시지 벡터를 1-대-1 매핑하여, 즉 인코딩 (Encoding) 하여 코드워드를 생성하고, 메시지 벡터 대신에 생성된 코드워드를 수신기로 전송한다. 수신기는 수신한 에러를 포함한 수신워드를 Decoding 하여 채널에서 발생한 오류를 제거할 수 있다. 수신워드를 입력해주면 Encoding 하는 함수의 역 문제를 풀어 송신된 코드워드를 복원하는 복원함수를 Decoder 또는 디코딩 함수라고 부른다.
에러를 스스로 제거 할 수 있은 여유를 만들어 내기 위해서, 코드워드 벡터의 크기 Nc 를 메시지 벡터의 크기 Nm 보다 길게 만든다. 그리고, R = Nm/Nc 을 코드 Rate이라고 칭한다. 코드 Rate이 작으면, 채널 에러에 더욱 강인 해 진다; 그러나 Decoding하기위해 보다 많은 컴퓨팅을 필요로 한다.
본 발명은 Error-Correction Code에서 쓰는 Decoder를 작업증명에 적용하는 것을 발명의 한 실시 예로 보여준다. Decoder 함수를 SHA-256과 같은 암호함수와 묶어 합성함수를 만드는 것이다. 즉, 암호함수의 출력 값을 디코딩 함수의 입력 값의 하나로 넣는 것이다.
작업 증명에서는 합성된 함수의 출력워드가 주어진 조건을 만족하는 합성함수의 입력값, 즉 넌스 값을 찾는 것은 매우 어렵지만, 일단 찾은 코드워드 값이 조건에 적합한지 여부를 검증하는 것은 쉬운 경우를 말한다. 그러므로 이렇게 만들어낸 합성함수는 작업 증명 알고리즘의 요건 중 1)을 만족시킨다. 바람직한 실시 예에서, 디코딩 함수로서 graph-decoder 가 사용될 수 있다. 또한, 추가적으로 디코딩 함수는 리니어 graph-decoder 분야에서 가장 빠른 코드워드 매핑이 가능한 알고리즘이 사용될 수 있다.
채굴 장치는 획득한 Decoder의 출력워드가 기 설정된 조건을 만족하는지 여부를 판단한다(S1013). 채굴 장치는 매핑된 출력워드에 관한 조건 셋을 미리 가지고 있으며, 단계 S1011에서 획득한 출력워드 값이 코드워드인지 여부와 코드워드인 경우 기 설정된 조건 셋을 만족하는지 여부를 판단한다.
도 3은 앞서 설명한 코드워드와 조건 셋을 나타낸다.
도 3에서 예를 든 바와 같이, 2256개의 벡터(예를 들어 SHA 함수의 출력)가 있으며, 그 중 1/4 코드 레이트로 264개 정도의 코드워드가 존재한다. 디코딩 함수(Dec())에 벡터를 입력하는 경우에 하나의 출력워드로 매핑이 되는데, 여기에서 매핑된 출력워드가 조건 셋에 포함되는 코드워드인지 여부를 채굴 장치가 판단한다.
다시 도 2로 돌아온다.
앞서 설명한 바와 같이, 매핑된 출력워드가 조건 셋을 만족하는 경우, 채굴 장치는 작업 증명이 완료되었다고 판단하여 현재의 넌스 값을 기록하면서 새로운 블록을 생성하고 이를 다른 채굴 장치로 브로드캐스팅한다(S1017). 따라서, 기존 비트코인 작업 증명에서 해쉬 함수 출력 값만으로 작업 증명 완료 여부를 판단하는 것과 달리 디코딩 함수를 이용하여 출력워드 값을 검증하는 과정이 추가되는바 정형화된 알고리즘에서 발생할 수 있는 문제(ASIC을 이용한 재중앙화)를 해결할 수 있다.
다시 말해서, 본 발명의 일 실시 예에 따른 합성함수에 의한 작업 증명 알고리즘에서는 Decoder부분의 입력 중 하나인 체크 매트릭스를 매 블록마다 변경할 수 있기 때문에, 매 블록마다 다른 Decoder 퍼즐을 작업 증명으로 수행해야 한다. 이전 블록 해쉬 값에 체크 매트릭스가 의존하는 바 역시 매 블록마다 다른 입력 값이 사용되어 결과적으로 ASIC 칩의 출현을 억제할 수 있다. 즉, ASIC 칩을 사용한 채굴을 힘들게 함으로써, 상대적으로 해쉬파워가 떨어지는 CPU 로도 누구나 작업증명에 참여할 수 있으므로 새로운 작업 증명 알고리즘의 요건 5) 를 만족한다. 또한, 디코딩에 사용되는 함수 또한 원웨이 특성을 갖는 또 다른 종류의 함수로 변경 가능한 것으로 이 역시 고정화된 알고리즘으로 인한 ASIC 칩의 출현을 억제하는 요소가 된다. 또한 특정 퍼즐문제에 대한 넌스 값을 찾았더라도 매 블록마다 다른 입력 값이 퍼즐을 만드는데 사용되므로, 기존의 넌스 값을 새로운 블록의 넌스 값으로 재사용 할 수 없다. 즉, 새로운 작업 알고리즘의 요건 3)을 만족한다.
만약, 매핑된 출력워드가 조건 셋을 만족하지 못하는 경우, 채굴 장치는 기 사용한 넌스 값을 넌스 셋에서 제외하고, 넌스 셋에서 사용되지 않은 새로운 넌스 값을 선택하여 다시 단계 S1009로 돌아간다(S1015). 채굴 장치는 매핑된 출력워드가 조건을 만족할 때까지 새로운 넌스 값을 선택하면서 각 단계를 반복한다.
도 4는 본 발명의 일 실시 예에 따른 채굴 장치의 검증 프로세스를 나타내는 흐름도이다.
앞서 도 2 내지 3에서 설명한 단계는 채굴 장치의 채굴 프로세스이며, 채굴 장치는 작업 증명이 완료되면 새롭게 생성된 블록을 다른 채굴 장치로 브로드캐스팅한다. 그리고 브로드캐스팅된 블록을 다른 채굴 장치들이 검증하여 정당한 블록임이 인정된다면 채굴 장치들은 해당 블록을 기존의 블록 체인에 더하여 블록 체인 원장을 업데이트 한다.
채굴 장치는 블록을 생성한 다른 채굴 장치로부터 브로드캐스팅 된 블록의 블록 헤더 데이터를 획득한다(S2001). 여기에서 채굴 장치가 획득하는 블록 헤더 데이터는 앞서 설명한 것과 동일하다.
채굴 장치는 블록 헤더 데이터에 포함된 해쉬 값에 기초하여 체크 매트릭스를 생성한다(S2003). 여기에서 체크 매트릭스를 생성하는 방법은 앞서 설명한 것과 동일하다.
채굴 장치는 블록 헤더 데이터에 기초하여 해쉬 함수의 출력 값을 획득한다(S2005). 여기에서 해쉬 함수의 출력 값을 획득하는 단계는 앞서 설명한 것과 동일하다.
채굴 장치는 해쉬 함수의 출력 값과 체크 매트릭스를 입력 값으로 하는 디코딩 함수 출력 값으로 출력워드를 획득한다(S2007). 여기에서 사용하는 디코딩 함수는 앞서 설명한 것과 동일하다.
채굴 장치는 출력워드가 조건을 만족하는지 여부를 판단한다(S2009). 여기에서 조건은 앞서 채굴 프로세스에서의 조건과 동일한 조건으로 설정되는 것이다. 검증을 위한 조건 셋은 전체 채굴 장치에 대하여 일괄적으로 설정된 것일 수 있으며, 블록이 브로드캐스팅될 때 함께 전달될 수도 있다.
채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하는 경우 브로드캐스팅된 블록을 승인하고 이를 기존의 블록 체인에 연장하여 원장을 업데이트한다(S2011).
반면에, 채굴 장치는 판단 결과 출력워드가 조건 셋을 만족하지 못하는 경우 브로드캐스팅된 블록이 정당한 블록이 아니라고 판단하여 브로드캐스팅된 블록 승인을 거절한다(S2013).
결과적으로 상술한 검증 방법은 이미 알고 있는(또는 기 설정되어 있는) 디코딩 함수에 전달 받은 값을 넣어 조건 셋에 부합하는지 여부만 검증하면 되는 것으로, 넌스 값을 변경하면서 조건에 맞는 코드워드를 찾아 작업증명을 완료하는 과정에 비해, 상대적으로 매우 간단하여 블록 체인에 적합한 검증 방법이다. 따라서, 외부의 공격자가 블록의 내용을 조작하더라도 검증자가 조작여부를 쉽게 알 수 있으므로 새로운 작업 증명 알고리즘의 요건 2)를 만족한다.
도 5는 본 발명의 일 실시 예에 따른 작업 증명 알고리즘에 있어서 채굴 난이도를 조절하는 방법을 8 바이 16 체크 매트릭스를 통해 설명하는 도면이다.
도 5(a)는 8 바이 16 체크 매트릭스의 예이다. 실제로는 이것보다 훨씬 큰 크기의 체크 매트릭스를 사용하나 설명의 용이성을 위해 8 바이 16 체크 매트릭스를 예시로 설명한다.
도 5(b)는 (a)에서의 체크 매트릭스에 기초하여 코드워드 값을 정리한 표이다. n은 코드워드의 해밍 가중치(Hamming weight)를 나타내는데, 다시 말해서 코드워드에 포함된 0이 아닌 수의 개수를 지칭한다. Vn은 1을 해밍 가중치에서 인디케이팅 하는 수만큼 가지고 있는 조건 셋을 나타낸다. p는 전체 코드워드의 개수 중 Vn 조건셋에 포함되는 코드워드 개수의 비율을 나타낸다.
도 5(b)의 표에서 나타내는 바와 같이 n 개의 1을 포함하는 조건 셋의 크기가 다름을 알 수 있으며, 그에 대한 각각의 점유율을 알 수 있다. 따라서, 조절하고자 하는 암호 퍼즐의 난이도에 따라 해밍 가중치를 결정할 수 있다. 예를 들어 난이도를 낮게 하는 경우에 해밍 가중치를 7 내지 10으로 설정할 수 있다. 반대로 난이도를 높이고자 하는 경우 해밍 가중치를 3으로 설정할 수 있다. 각각의 경우 조건 셋을 만족하는 코드워드가 선택될 확률이 각각 약55%와 2.5%로 차이가 나는바, 후자의 경우 더 많은 연산을 수행하여야 조건 셋을 만족하는 코드워드 값을 획득할 수 있어 결과적으로 작업 증명의 난이도가 상승하게 된다. 즉, 상기한 코드 Rate을 바꾸고, 메이트릭스의 크기를 조절하여 Decoder 퍼즐을 푸는데 필요한 컴퓨팅량을 조절하여 퍼즐의 난이도를 유연하게 조절할 수 있으므로 새로운 작업 증명 알고리즘의 요건 4) 를 만족한다.
도 6은 본 발명의 일 실시 예에 따른 채굴 장치를 나타내는 블록도이다.
본 발명의 일 실시 예에 따른 채굴 장치는 제어부(110), 네트워크부(120) 및 저장부(130)을 포함한다.
제어부(110)는 프로세서를 지칭할 수 있으며, 마이크로 프로세서 또는 제어기를 포함할 수 있다.
도 6에 도시된 바와 같이, 제어부(110)는 현재 블록 헤더 데이터 획득부(111), 입력 값 생성부(112), 해쉬 함수 적용부(113), 코드워드 획득부(114) 및 블록생성부(115)를 포함할 수 있다.
현재 블록 헤더 데이터 획득부(111)는 채굴하고자 하는 현재 블록의 헤더를 추출하여 헤더에 포함된 데이터를 획득한다. 여기에서 현재 블록 헤더 데이터 획득부(111)가 획득하는 데이터는 버전 정보, 난이도 정보, 타임스탬프 정보, 넌스 정보, 이전 블록의 해쉬 값 정보 또는 트랜잭션 셋 정보 중 적어도 하나를 포함할 수 있다.
입력 값 생성부(112)는 현재 블록 헤더 데이터에 기초하여 복수의 입력 값을 생성한다. 일 실시 예에서 입력 값 생성부(112)는 이전 블록 해쉬 값에 기초하여 체크 매트릭스를 생성할 수 있다. 또 다른 실시 예에서 입력 값 생성부(112)는 트랜잭션 셋에 기초하여 해쉬 트리 값을 생성할 수 있다. 또 다른 실시 예에서 입력 값 생성부(112)는 해쉬 트리 값 및 다른 헤더 데이터에 기초하여 해쉬 함수 입력 셋을 생성할 수 있다. 여기에서 다른 헤더 데이터 값이란 예를 들어 버전 정보, 난이도 정보 또는 타임스탬프 정보 중 적어도 어느 하나일 수 있다.
해쉬 함수 적용부(113)는, 입력 값 생성부(112)에서 생성된 입력 셋을 입력 값으로 하여 해쉬 함수 출력을 획득한다. 여기에서 해쉬 함수는 SHA 함수일 수 있으며, 다른 보안성이 확보된 함수도 적용 가능하다.
출력워드 획득부(114)는 체크 매트릭스와 해쉬 함수 출력 값에 기초하여 출력워드를 획득한다. 일 실시 예에서 출력워드 매핑 알고리즘은 출력워드는 입력 값에서 가까운 하나의 코드워드를 찾는 방법으로 획득될 수 있다. 또 다른 실시 예에서, 출력워드 매핑 알고리즘은 graph codeword mapping이 사용될 수 있다.
블록생성부(115)는 획득한 출력워드를 검증하여 검증 결과에 따라 블록을 생성한다. 블록생성부(115)는 넌스 값을 발생시키고, 해당 넌스값에 대응하는 출력워드가 조건 셋을 만족하는지 여부를 판단한다. 블록생성부(115)는 획득한 출력워드가 조건 셋을 만족하는 경우 해당 넌스값을 저장하고 블록을 생성한다. 반면에 블록생성부(115)는 출력워드가 조건 셋을 만족하지 못하는 경우 넌스 값을 바꾸고 다시 출력워드 획득부로부터 새로운 출력워드값을 받아 검증 작업을 수행한다.
네트워크부(120)는 유무선 통신 장치이다. 네트워크부(120)는 다른 채굴 장치와 연결을 수행하고, 생성된 블록을 브로드캐스팅한다. 또한 네트워크부(120)는 다른 채굴장치가 생성한 블록을 수신하여 이를 현재 블록 헤더 데이터 획득부(111)에 전달할 수도 있다.
저장부(130)는 제어부(110)에서 사용되는 각종 인스트럭션을 저장한다. 또한 저장부(130)는 제어부(110)에서 생성된 블록이 연결된 블록 체인 원장을 저장한다. 저장부(130)는 메모리 장치일 수 있다.
도 7은 블록 체인 거버넌스(governance)의 수립 방법을 설명하기 위한 도면이다.
좋은 블록 체인 거버넌스란, 중앙화에서 탈피하여 평등한 블록 체인을 실현하는 것이다.
그리고 엔티티(채굴 장치 또는 채굴자)를 식별하는 일반적인(generic) 기술이 있는 경우, 평등한 블록 체인의 설계가 쉬워진다.
예를 들어 예를 들어 제네릭(genetic) ID 기술이 존재한다고 가정한다. 그리고 복수의 노드 각각은 단일의(single), 일반적이고(generic), 위조 불가능한 ID를 가지고 있다. 여기서 위조 불가능 하다는 것은, 노드의 소유자가 채굴 권한을 주장하기 위하여 참인(true) ID를 제시해야 하는 것을 의미한다. 그리고 타인에 의해 요구되는 경우에는, 실제 ID가 제공될 수 없어야 한다.
이 경우 복수의 노드가 라운드 로빈 (round robin) 방식으로 채굴을 수행할 수 있다. 구체적으로 복수의 노드가 교대로 또는 무작위로 채굴 권한을 가짐으로써, 채굴 권한은 모든 참여 노드들에게 동일하게 분배될 수 있다. 따라서 제네릭 ID가 존재하는 경우, 온 체인 정책으로 평등한 블록 체인의 실현이 쉬워진다(On-chain policy).
다만 제네릭 ID 기술은 실현되기 힘들다. 예를 들어 물리적 복제 방지 기능(PUF)을 가정한다.
물리적 복제 방지 기능은, 그 패턴을 복제할 수 없으며 따라서 핑거프린트로 활용될 수 있다. 따라서 칩의 소유자는 물리적 복제 방지 기능을 사용하여 개인 키(private key)를 만들 수 있다.
다만 개인 키의 사이퍼 데이터(cypher data)가 비 휘발성 메모리에 저장되어 도난 당하거나, 개인 키가 물리적으로 도난 당하는 경우가 발생할 수 있다. 또한 칩의 소유자는 물리적 복제 방지 기능 외에도 개인 키(private key)를 생성하는 다른 수단을 가지고 있을 수 있다.
따라서 물리적 복제 방지 기능은 시빌 공격(Sybil Attacks)에 대한 해결책을 제시하지 못한다.
이와 같이 제네릭 ID 기술이 존재하지 않기 때문에, 온 체인 정책과 오프 체인 정책이 적절히 조화되는 것이 중요하다.
중앙화에서 탈피하여 평등한 블록 체인을 실현하기 위하여 온 체인 정책(On-chain policy)과 오프 체인 정책(Off-chain policy)을 혼합한 혼합 정책이 사용될 수 있다.
여기서 오프 체인 정책(Off-chain policy)이란, 사람들 간의 정치, 경제, 사회적인 합의를 의미할 수 있다.
또한 온 체인 정책(On-chain policy)란, 정책을 프로그래밍을 통해 컴퓨터 코드의 형태로 블록 체인에 삽입하는 것이다. 이 경우 블록 체인이 운용되면, 컴퓨터 API를 통해서 정책이 자동으로 실현된다.
앞서 설명한 바와 같이 제네릭 ID 기술이 없기 때문에 퍼블릭(public) 블록 체인에서는 평등한 블록 체인을 실현하는데 문제가 발생할 수 있다.
따라서 오프 체인 정책(Off-chain policy)으로, 운영 방법을 합의한 닫힌 블록 체인 커뮤니티가 구성될 수 있다. 이 경우 닫힌 블록 체인 커뮤니티의 구성원들에 의해 블록 체인이 운용된다. 따라서 제네릭 ID 기술이 없더라도, 서로가 상대방의 ID를 확인하고 채굴에 참여시킬 수 있다. 이에 따라 평등한 블록 체인의 실현이 가능하다.
오프 체인 정책(Off-chain policy)에서, 각 채굴 장치에 대한 제네릭 ID의 등록을 관리하는 서드 파티(third party)가 존재할 수 있다. 이것은 하나의 컴퓨터에서 여러 개의 등록을 하는 것과 같은 시빌 공격(Sybil Attacks)을 방지하기 위함이다. 여기서 용어 서드 파티는, 용어 서드 파티 측 서버와 혼용되어 사용될 수 있다.
또한 커뮤니티 구성원들이 소유한 채굴 장치들의 핑거 프린트가 서드 파티에 등록될 수 있다. 이 경우 서드 파티는 채굴 장치들의 핑거 프린트를 수집하고, 각 채굴 장치에 대응하는 제네릭 ID를 생성할 수 있다.
한편 온 체인 정책으로, 복수의 채굴 장치에 각각 대응하는 복수의 제네릭 ID는 블록 체인 내에 저장될 수 있다. 그리고 제네릭 ID를 가지는 채굴 장치들만 채굴에 참여하도록 허용될 수 있다.
그리고 하나의 칩(제네릭 ID) 당 하나의 표(vote)를 부여함으로써, 장치 평등의 블록 체인(Device-egalitarian blockchainis)을 달성할 수 있다.
한편 한 사람이 많은 칩을 소유하는 문제가 발생할 수 있다. 구체적으로 한명의 사람이 여러 개의 디바이스를 등록시켜서 복수의 칩을 확보함으로써, 합의에 이르는데 필요한 표(vote)를 다수 차지하는 문제가 발생할 수 있다.
따라서 개인 등록 정책을 통해, 개인 평등 주의 블록 체인 커뮤니티를 달성할 수 있다.
구체적으로 오프 체인 정책(Off-chain policy)에서, 각 개인의 제네릭 ID의 등록을 관리하는 서드 파티(third party)가 존재할 수 있다. 또한 각 사용자의 핑거 프린트가 서드 파티에 등록될 수 있다. 이 경우 서드 파티는 각 구성원을 대표하는 채굴 장치의 제네릭 ID를 생성할 수 있다. 즉 한명의 구성원은 하나의 등록된 제네릭 ID를 가질 수 있다.
한편 온 체인 정책으로, 생성된 제네릭 ID들은 블록 체인에 저장될 수 있다. 그리고 제네릭 ID를 가지는 채굴 장치들만 채굴에 참여하도록 허용될 수 있다.
한편 복수의 제네릭 ID로 구성되는 ID 풀이 구성될 수 있다. 그리고 제네릭 ID는 256 비트의 문자열로 구성될 수 있다.
그리고 채굴 작업을 수행할 채굴 장치는, ID 풀 내 복수의 제네릭 ID 중 어느 하나의 제네릭 ID를 선택하는 방식으로 결정될 수 있다. 즉 서드 파티를 사용함으로써 불변성(Immutability)이 유지될 수 있다.
다음은 도 7을 참고하여, 채굴 장치(다음 채굴자)를 선택하는 방법에 대하여 더욱 구체적으로 설명한다.
채굴 장치의 제어부(110)는 다음 블록을 채굴하기 위하여 호출되는 고유의 ID를 가지고 다음 채굴 장치를 결정할 수 있다.
구체적으로 제1 블록(#1)으로부터 제2 블럭(#2)으로 이동하는 루틴에 대하여 설명한다.
여기서 입력은 ID 필드를 제외한 블록 헤더와 모든 ID들의 세트일 수 있다. 또한 출력은 다음 ID일 수 있다.
구체적으로, 제어부(110)는 ID를 제외한 제1 블록(#1)의 블록 헤더의 모든 필드 요소를 획득할 수 있다.
그리고 제어부(110)는 제1 블록(#1)의 블록 헤더의 모든 필드 요소를 입력 값으로 하여 해쉬 함수 출력을 획득하고, 해쉬 함수 출력(y)을 저장할 수 있다. 여기서 해쉬 함수는 SHA 함수일 수 있다.
한편 제어부(110)는 모든 ID 벡터들의 세트로부터 단일의(single) ID를 결정할 수 있다. 단일의(single) ID를 결정하는 하나의 방법으로, 제어부(110)는 해쉬 함수 출력(y)까지의 해밍 거리가 가장 작은 것을 선택하는 방법이 있을 수 있다.
한편 선택된 단일의 ID는 다음 채굴 장치(채굴자)의 ID (ID_next)가 될 수 있다.
한편 제어부(110)는 다음 채굴 장치의 ID (ID_next)를 리턴할 수 있다.
다음은 채굴 루틴을 설명한다.
제1 블록(#1)의 어나운스먼트 (announcement)가 만들어지고, 제1 블록(#1)에서 다음 블록의 채굴 장치(이하 제2 채굴 장치라 함)가 선택될 수 있다. 이 경우 제2 채굴 장치는 제2 블록(#2)에 대한 채굴 루틴을 시작할 수 있다.
제2 채굴 장치에서, 입력은 제2 블록(#2)에 대한 트랜잭션 및 제1 블록(#1)의 블록 헤더의 세트일 수 있다. 또한 출력은 채굴된 제2 블록(#2)의 어나운스먼트 (announcement)일 수 있다.
제2 채굴 장치의 제어부는 어나운스된(announced) 제1 블록의 블록헤더의 ID 필드를 읽을(read) 수 있다.
그리고 제2 채굴 장치의 제어부는, 제1 블록의 블록 헤더에 포함되는 ID(제1 블록에서 선택된 단일의 ID)가 자신의 ID와 일치하면, 작업을 계속 할 수 있다. 반면에 제1 블록의 블록 헤더에 포함되는 ID가 자신의 ID와 동일하지 않으면, 제2 채굴 장치의 제어부는 작업을 종료할 수 있다.
한편, 제2 채굴 장치의 제어부는 트랜잭션을 수집하여 제2 블록(#2)의 바디를 형성할 수 있다.
그리고 제2 채굴 장치의 제어부는, 머클 루트 해시((Merkel root hash)와 블록헤더 필드의 나머지를 찾고, 블록 헤더를 RS 루틴으로 전달할 수 있다.
또한 제2 채굴 장치의 제어부는 다음 채굴 장치(이하 제3 채굴 장치라 함)를 결정할 수 있다. 여기서 제3 채굴 장치를 결정하는 방법은, 앞서 제2 채굴 장치를 결정하는 방식이 적용될 수 있다,
그리고 나서 제2 채굴 장치의 제어부는 제3 채굴 장치의 ID를 블록헤더에 삽입함으로써 블록 헤더를 완성하고, 제2 블록(#2)의 어나운스먼트 (announcement)를 만들 수 있다.
한편 선택된 노드(제3 채굴 장치)가 사용될 수 없거나 현재 채굴 작업을 수행할 수 없는 경우, 전술한 채굴 루틴은 실패할 수 있다.
그리고 이러한 실패를 방지하기 위하여, 온 체인 정책(on chain policy)에는 다음 블록 생성에 대한 시간 제한이 포함될 수 있다.
즉 특정 시간 안에 다음 블록이 생성되지 않는 경우, 채굴 장치는 이전 채굴 장치로 리턴하여 다음 채굴 장치를 다시 결정하도록 할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (9)

  1. 거래가 발생하면 작업 증명 합의 메커니즘을 통해 작업 증명을 수행하여 블록 체인을 형성하는 채굴 장치에 있어서,
    네트워크부; 및
    상기 거래가 발생하면 블록을 생성하고, ID 풀 내 복수의 제네릭 ID 중 어느 하나의 제네릭 ID를 선택하고, 상기 선택된 제네릭 ID에 대응하는 다른 채굴 장치로 상기 생성된 블록을 브로드캐스팅 하는 제어부;를 포함하는
    채굴장치.
  2. 제 1항에 있어서,
    상기 복수의 제네릭 ID는,
    운영 방법을 합의한 닫힌 블록 체인 커뮤니티의 구성원들에 대응하는 ID인
    채굴장치.
  3. 제 1항에 있어서,
    상기 제어부는,
    상기 복수의 제네릭 ID에 대응하는 채굴장치 들에만 상기 생성된 블록을 브로드캐스팅 하는
    채굴 장치.
  4. 제 2항에 있어서,
    상기 복수의 제네릭 ID는,
    상기 구성원들이 소유한 채굴 장치들의 핑거 프린트을 이용하여 생성되는
    채굴 장치.
  5. 제 2항에 있어서,
    상기 복수의 제네릭 ID는,
    상기 구성원들의 핑거 프린트를 이용하여 생성되는
    채굴 장치.
  6. 제 5항에 있어서,
    상기 구성원들은, 각각 하나의 제네릭 ID를 가지는
    채굴 장치.
  7. 제 1항에 있어서,
    상기 제어부는,
    이전 채굴 장치로부터 블록을 수신하고, 상기 수신된 블록의 블록 헤더에 포함되는 제네릭 ID가 상기 채굴 장치의 제네릭 ID와 일치하면 작업을 수행하는
    채굴 장치.
  8. 제 7항에 있어서,
    상기 제어부는,
    특정 시간 안에 블록이 생성되지 않는 경우, 상기 이전 채굴 장치에 리턴하는
    채굴 장치.
  9. 제 1항에 있어서,
    상기 제어부는,
    상기 선택된 제네릭 ID를 블록 헤더에 삽입하고, 상기 제네릭 ID가 삽입된 블록 헤더를 포함하는 상기 블록을 브로드캐스팅 하는
    채굴 장치.
PCT/KR2020/009222 2019-07-12 2020-07-13 채굴 장치 WO2021010720A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217033618A KR102720562B1 (ko) 2019-07-12 2020-07-13 채굴 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0084800 2019-07-12
KR20190084800 2019-07-12

Publications (1)

Publication Number Publication Date
WO2021010720A1 true WO2021010720A1 (ko) 2021-01-21

Family

ID=74210991

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/009222 WO2021010720A1 (ko) 2019-07-12 2020-07-13 채굴 장치

Country Status (1)

Country Link
WO (1) WO2021010720A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160300234A1 (en) * 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
KR20190012969A (ko) * 2017-07-31 2019-02-11 서강대학교산학협력단 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
KR20190074666A (ko) * 2017-12-20 2019-06-28 주식회사 유니로보틱스 블록체인시스템을 이용한 사물간 재화 또는 서비스 제공방법
KR20190075264A (ko) * 2017-12-21 2019-07-01 최명수 블록체인 플랫폼에서 분산 트랜잭션 처리 및 트레이딩을 위한 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160300234A1 (en) * 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
KR20190012969A (ko) * 2017-07-31 2019-02-11 서강대학교산학협력단 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
KR20190074666A (ko) * 2017-12-20 2019-06-28 주식회사 유니로보틱스 블록체인시스템을 이용한 사물간 재화 또는 서비스 제공방법
KR20190075264A (ko) * 2017-12-21 2019-07-01 최명수 블록체인 플랫폼에서 분산 트랜잭션 처리 및 트레이딩을 위한 장치 및 방법

Also Published As

Publication number Publication date
KR20210134408A (ko) 2021-11-09

Similar Documents

Publication Publication Date Title
CN110998556B (zh) 区块链网络中的数据隔离
US6996712B1 (en) Data authentication system employing encrypted integrity blocks
CN110300112A (zh) 区块链密钥分层管理方法
US9294473B1 (en) Server methods and apparatus for processing passcodes generated by configurable one-time authentication tokens
US20230216661A1 (en) Data block modification
US20050210248A1 (en) Method and device for generating approximate message authentication codes
CN111786812B (zh) 节点管理方法、装置、计算机设备和存储介质
JPH0816104A (ja) 分散化した照合子による情報保全検証方法及び装置
CN112383389B (zh) 一种区块链随机数生成方法及系统
WO2017116062A1 (ko) 파일에 대한 공증 및 검증을 수행하는 방법 및 서버
US6941461B2 (en) System and method of uniquely authenticating each replication of a group of soft-copy documents
WO2020138733A1 (ko) 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
EP3465528B1 (en) Apparatus and method of creating a data chain in a data structure that can be cryptographically proven to contain valid data
WO2018038444A1 (ko) 생체 코드를 등록 및 인증하는 방법 및 장치
Bray Implementing cryptography using Python
US11895222B1 (en) Systems and methods for data encryption, decryption, and authentication
WO2019125069A1 (ko) 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템
CN117978376A (zh) 一种数字身份标识符的生成及更新方法
WO2021010720A1 (ko) 채굴 장치
CN117792765A (zh) 一种身份认证方法及电子设备
CN115943609A (zh) 区块链网络中中毒交易的区块传播
TW202034651A (zh) 分散式系統中資訊驗證方法
US20230224150A1 (en) Bio-locked seed
WO2020017908A1 (ko) 채굴 장치, 및 채굴 장치 동작 방법

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217033618

Country of ref document: KR

Kind code of ref document: A

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.04.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20839611

Country of ref document: EP

Kind code of ref document: A1