KR102389465B1 - Apparatus and method for generating block chain - Google Patents
Apparatus and method for generating block chain Download PDFInfo
- Publication number
- KR102389465B1 KR102389465B1 KR1020200025619A KR20200025619A KR102389465B1 KR 102389465 B1 KR102389465 B1 KR 102389465B1 KR 1020200025619 A KR1020200025619 A KR 1020200025619A KR 20200025619 A KR20200025619 A KR 20200025619A KR 102389465 B1 KR102389465 B1 KR 102389465B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- public key
- header
- generating
- private key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명의 일 실시예에 따른 블록 체인 생성 장치는 다른 노드와 통신하는 통신 모듈; 적어도 하나의 프로세서; 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제2 블록의 바디에 트랜잭션을 기록하고, 공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장하며, 상기 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키를 계산하여 제2 블록을 생성하는 명령어들을 저장한다. A block chain generating apparatus according to an embodiment of the present invention includes a communication module for communicating with other nodes; at least one processor; and a memory electrically coupled to the processor, wherein, when executed, the processor records a transaction in the body of the second block and generates a public key for encrypting the third block through a public key algorithm. and stored in the header of the second block, and instructions for generating the second block by calculating the private key corresponding to the public key pair encrypted with the first block are stored.
Description
본 발명은 공개키와 개인키를 블록 헤더에 기록하는 방법으로 블록을 생성하는 블록 체인 생성 장치 및 방법에 관한 것이다.The present invention relates to a block chain generating apparatus and method for generating a block by recording a public key and a private key in a block header.
통상적으로, 블록체인은 P2P(Peer-to-peer) 네트워크에 참여한 피어들 또는 트랜잭션을 생성하기 위한 참여자들이 P2P 네트워크에서 생성된 모든 블록을 복제해 저장하도록 이루어지는 컴퓨터 기반의 탈중앙화된 분산 시스템이다. In general, a blockchain is a computer-based decentralized distributed system in which peers participating in a peer-to-peer (P2P) network or participants to create a transaction copy and store all blocks generated in the P2P network.
종래에는 중앙 집중형 서버에서 데이터 기록, 저장 및 관리가 이루어지는 반면, 블록체인은 거래에 참여하는 모든 사용자가 거래 내역이 저장된 블록들을 공유하며 다수의 노드들이 블록들을 대조하는 방식으로 검증을 수행하기 때문에 데이터 위조 및 해킹을 효과적으로 예방할 수 있어 보안이 우수한 장점을 갖는다. Conventionally, data recording, storage, and management are performed in a centralized server, whereas in a blockchain, all users participating in a transaction share blocks in which transaction details are stored, and multiple nodes perform verification by collating blocks. It can effectively prevent data forgery and hacking, so it has excellent security.
이러한 블록체인은 단순히 온라인 가상화폐에만 적용되는 기술이 아니라, 다른 파일 시스템에 적용될 경우, 데이터베이스(DB)의 유지보수 및 보안에 따른 막대한 비용을 절감시킬 수 있는 장점으로 인해 그 사용 분야 및 수요도가 기하급수적으로 증가하고 있는 추세이다.This block chain is not simply a technology applied only to online virtual currency, but when applied to other file systems, its use field and demand are increasing due to the advantage of reducing huge costs due to database (DB) maintenance and security. It is an exponentially increasing trend.
도 1은 종래의 블록체인을 설명하기 위한 예시도이고, 도 2는 도 1의 블록을 설명하기 위한 블록도이다.1 is an exemplary diagram for explaining a conventional block chain, and FIG. 2 is a block diagram for explaining the block of FIG. 1 .
도 1의 종래의 블록체인은 기 설정된 블록생성주기 마다 생성되되, 블록생성주기 동안 거래된 트랜잭션 정보가 저장되는 블록(10-1,10-2)들과 블록(10-1,10-2)들 사이의 데이터 링크인 체인으로 이루어진다.In the conventional block chain of FIG. 1, blocks (10-1, 10-2) and blocks (10-1, 10-2) in which transaction information transacted during the block generation period are stored are generated every preset block generation cycle. It consists of a chain, which is a data link between them.
블록(10-1,10-2)은 기 설정된 블록생성주기 마다 신규 생성되며, 블록생성주기 동안 거래된 트랜잭션 정보가 저장된다. 이때 신규 생성된 블록은 이전 블록의 다음 자리에 배치되어 체인에 의해 서로 연결된다.Blocks 10-1 and 10-2 are newly created every preset block generation cycle, and transaction information transacted during the block generation cycle is stored. At this time, the newly created block is placed next to the previous block and connected to each other by the chain.
또한 블록(10-1,10-2)은 도 2에 도시된 바와 같이, 헤더(11)와, 바디(12)로 이루어진다.Also, blocks 10-1 and 10-2 include a
이때 헤더(11)에는 블록 헤더 버전, 블록 생성 시간, 이전 블록의 해시 값, 머클트리(Merkle Tree)의 모든 거래 내역을 요약한 데이터, 블록 생성에 필요한 작업증명의 난이도, 작업 증명 알고리즘에 사용되는 이전 블록 헤더 해시와 논스(nonce)들이 저장되고, 바디(12)에는 블록생성주기 동안 거래되었던 트랜잭션 정보가 저장된다.At this time, the
일반적으로 블록의 해시값은 해당 블록의 생성일시, 버전, 비츠(bits), 루트해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등을 조합한 후 해시로 변환하여 생성한다. 해당 블록의 생성일시, 버전, 난이도, 루트해시와 이전 블록의 해시값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 논스 값을 수없이 바꿔가면서 하나씩 대입하다가 새로 생성된 해시값이 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. In general, the hash value of a block is created by combining the block creation date and time, version, bits, root hash, hash of the previous block, and a temporary value called a nonce, and then converting it into a hash. The creation date and time, version, difficulty, root hash, and hash value of the previous block of the block have already been determined and have a set value, but as the temporary value called nonce changes, the block hash value generated as a result of the hash operation will also vary. can For example, the hash value when the nonce is 1 and the hash value when the nonce is 2 are completely different. A new block is successfully created when the newly generated hash value is smaller than a certain target value while changing this nonce value countless times and substituting it one by one.
이와 같이 구성되는 종래의 블록체인(10)은 비가역적 해시 함수를 이용하여, 임의의 수를 입력하여 결과값보다 크기가 작은 논스값을 찾음으로써, 블록을 생성하는데, 이 때 논스값을 찾기 위한 크기를 조절함으로써 난이도를 조절했다. The
따라서, 종래의 블록체인에서는 어느 한계 이상 난이도를 올리는데 어려움이 따르므로 난이도 조절은 블록체인의 채굴 타임 조절에 있어서 한계로 작용했다. Therefore, in the conventional blockchain, it is difficult to raise the difficulty beyond a certain limit, so the difficulty adjustment acted as a limit in controlling the mining time of the blockchain.
본 발명은 난이도 조절이 자유로운 블록 체인 생성 장치 및 방법을 제공하고자 한다.An object of the present invention is to provide an apparatus and method for creating a block chain with free difficulty control.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the problem(s) mentioned above, and another problem(s) not mentioned will be clearly understood by those skilled in the art from the following description.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록 체인 생성 장치는 다른 노드와 통신하는 통신 모듈; 적어도 하나의 프로세서; 및 상기 프로세서에 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제2 블록의 바디에 트랜잭션을 기록하고, 공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장하며, 상기 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키를 계산하여 제2 블록을 생성하는 명령어들을 저장하는 명령어들을 저장한다. A block chain generating apparatus according to an embodiment of the present invention for achieving the above object includes a communication module for communicating with other nodes; at least one processor; and a memory electrically coupled to the processor, wherein, when executed, the processor records a transaction in the body of the second block and generates a public key for encrypting the third block through a public key algorithm. and stored in the header of the second block, and instructions for storing instructions for generating the second block by calculating the private key corresponding to the public key pair encrypted with the first block are stored.
바람직하게는, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 블록의 헤더 해시를 공개키 생성에 사용한 랜덤 소수 p로 나눈 나머지를 제1 개인키로 하는 명령어들을 저장한다. Preferably, the memory, when executed, stores instructions in which the processor divides the header hash of the block by a random prime number p used to generate the public key and uses the remainder as the first private key.
바람직하게는, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키가 되도록 하는 논스를 구하여 상기 제2 블록 헤더에 추가하는 명령어들을 저장한다. Preferably, the memory stores instructions that, when executed, add to the second block header by obtaining a nonce that causes the processor to become a private key corresponding to a public key pair encrypted with the first block.
바람직하게는, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키를 제2 블록 헤더에 추가하는 명령어들을 저장한다. Preferably, the memory stores, when executed, instructions for the processor to add a private key corresponding to a public key pair that has encrypted the first block to a second block header.
바람직하게는 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 제2 블록의 헤더에 공개키 생성의 난이도를 기록하는 명령어들을 더 저장한다. Preferably, the memory further stores instructions that, when executed, record the difficulty of generating the public key in the header of the second block by the processor.
바람직하게는 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 제1 블록의 헤더 해시를 제2 블록에 기록되는 공개키 생성을 위한 시드로 사용하는 명령어들을 더 저장한다. Preferably, the memory further stores instructions that, when executed, use, by the processor, a header hash of the first block as a seed for generating a public key written to a second block.
상기 메모리는, 실행 시에, 상기 프로세서가, 상기 제2 블록의 헤더에 버전, 타임스탬프 및 머클 루트(Merkle root)를 기록하는 명령어들을 더 저장한다.The memory further stores instructions that, when executed, cause the processor to write a version, a timestamp, and a Merkle root to a header of the second block.
본 발명의 일 실시예에 따른 블록 체인 생성 장치에 의한 블록 체인 생성 방법으로서, 제2 블록의 바디에 트랜잭션을 기록하는 단계; 공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장하는 단계; 상기 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키 및 논스(nonce)를 계산하는 단계; 및 상기 논스를 제2 블록의 헤더에 추가하여 제2 블록을 생성하는 단계를 포함한다. A method of generating a block chain by a block chain generating apparatus according to an embodiment of the present invention, the method comprising: recording a transaction in a body of a second block; generating a public key for encrypting the third block through a public key algorithm and storing it in the header of the second block; calculating a private key and a nonce corresponding to a public key pair encrypted with the first block; and adding the nonce to the header of the second block to generate a second block.
상기 제2 블록을 암호화한 공개키 쌍에 대응하는 제2 개인키 및 논스(nonce)를 계산하는 단계는, 상기 블록의 헤더 해시를 공개키 생성에 사용한 랜덤 소수 p로 나눈 나머지를 개인키로 하고, 이전 블록의 공개키에 해당하는 개인키가 되도록 하는 논스를 구하는 것을 특징으로 한다. In the step of calculating a second private key and nonce corresponding to the public key pair encrypted with the second block, the remainder obtained by dividing the header hash of the block by a random prime number p used to generate the public key is the private key, It is characterized in that the nonce is obtained so that the private key corresponding to the public key of the previous block is obtained.
본 발명의 일 실시예에 따른 블록 체인 생성 장치에 의한 블록 체인 생성 방법으로서, 제2 블록의 바디에 트랜잭션을 기록하는 단계; 공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장하는 단계; 제1 블록을 암호화한 공개키 쌍에 대응하는 개인키를 계산하는 단계; 및 상기 개인키를 제2 블록의 헤더에 추가하여, 제2 블록을 생성하는 단계를 포함한다. A method of generating a block chain by a block chain generating apparatus according to an embodiment of the present invention, the method comprising: recording a transaction in a body of a second block; generating a public key for encrypting the third block through a public key algorithm and storing it in the header of the second block; calculating a private key corresponding to a public key pair encrypted with the first block; and adding the private key to the header of the second block to generate a second block.
바람직하게는 블록 체인 생성 장치에 의한 블록 체인 생성 방법은, 헤더에 상기 제1 블록을 암호화하는 공개키를 포함하는 제2 제네시스 블록, 상기 제2 제네시스 블록을 암호화하는 공개키를 포함하는 제1 제네시스 블록을 생성하는 단계를 더 포함한다. Preferably, in the block chain generation method by the block chain generation device, a second genesis block including a public key for encrypting the first block in a header, and a first genesis including a public key for encrypting the second genesis block The method further includes generating a block.
본 발명은 종래의 블록 헤더의 해시 값이 일정 값 이하가 되도록 하는 nonce 값을 찾는 방식에서는 난이도를 올리는 한계값이 있었으나, 공개키 알고리즘의 난이도를 조절함에는 한계가 없으므로, 난이도를 적절하게 조절하여, 복잡한 암호학적 기법 없이 타임 릴리즈 블록체인을 구현할 수 있으며 컴퓨터의 계산능력 증가에 효과적으로 대응할 수 있다.In the present invention, there is a limit value for increasing the difficulty in the conventional method of finding a nonce value that causes the hash value of a block header to be less than or equal to a certain value, but there is no limit to adjusting the difficulty of the public key algorithm. , it is possible to implement a time-release blockchain without complex cryptographic techniques and effectively respond to the increase in computing power of computers.
도 1은 종래의 블록체인을 설명하기 위한 예시도이다.
도 2는 도1의 블록의 세부구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 4는 본 발명의 제1 실시예에 따른 블록체인을 설명하기 위한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 블록구조의 일 예를 도시한 도면이다.
도 6은 본 발명의 제1 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명하는 흐름도이다.
도 7은 본 발명의 제1 실시예에 따른 공개키 생성 방법을 설명하는 흐름도다.
도 8은 본 발명의 제1 실시예에 따른 논스 생성 방법을 설명하는 흐름도이다.
도 9는 본 발명의 제1 실시예에 따라 개인키만 계산한 경우와 nonce를 계산한 경우의 소요 시간을 비교한 그래프이다.
도 10은 본 발명의 제2 실시예에 따른 블록체인을 설명하기 위한 블록도이다.
도 11은 본 발명의 제2 실시예에 따른 블록구조의 일 예를 도시한 도면이다.
도 12는 본 발명의 제2 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명하는 흐름도이다.
도 13은 본 발명의 제2 실시예에 따른 공개키 알고리즘의 순서도이다. 1 is an exemplary diagram for explaining a conventional block chain.
FIG. 2 is a block diagram for explaining the detailed configuration of the block of FIG. 1 .
3 is a block diagram illustrating a configuration of an electronic device according to various embodiments of the present disclosure.
4 is a block diagram for explaining a block chain according to the first embodiment of the present invention.
5 is a diagram illustrating an example of a block structure according to the first embodiment of the present invention.
6 is a flowchart illustrating a method of generating a block chain of an electronic device according to the first embodiment of the present invention.
7 is a flowchart illustrating a method for generating a public key according to the first embodiment of the present invention.
8 is a flowchart illustrating a nonce generating method according to the first embodiment of the present invention.
9 is a graph comparing the time required for calculating only the private key and calculating the nonce according to the first embodiment of the present invention.
10 is a block diagram for explaining a block chain according to the second embodiment of the present invention.
11 is a diagram illustrating an example of a block structure according to a second embodiment of the present invention.
12 is a flowchart illustrating a method for generating a block chain of an electronic device according to a second embodiment of the present invention.
13 is a flowchart of a public key algorithm according to a second embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 3은 본 발명의 다양한 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다. 3 is a block diagram illustrating a configuration of an electronic device according to various embodiments of the present disclosure.
도 3을 참조하면, 전자 장치(100)는 프로세서(110), 메모리(130) 및 통신 모듈(150)을 포함할 수 있다.Referring to FIG. 3 , the
프로세서(110)는 메모리(130)에 저장된 프로그램에 기반하여 구동될 수 있다. 예를 들어, 메모리(130)는 프로세서(110)로 하여금 다양한 동작들을 수행하도록 하는 명령들을 저장할 수 있다. 이하에서, 프로세서(110)의 동작은 메모리(130)에 저장된 명령들에 따라서 수행된 것 일 수 있다. 일 실시예에서, 프로세서(110)는 전자 장치(100)의 다른 구성들을 제어하도록 설정될 수 있다. The
메모리(130)는 전자 장치(100)의 동작과 관련된 다양한 정보를 저장할 수 있다.The
통신 모듈(150)은 전자 장치(100)와 다른 전자 장치 간의 유선 통신 또는 무선 통신을 제공할 수 있다.The
예를 들면, 통신 모듈(150)는 전자 장치(100)와 다른 노드 간의 유선 통신 또는 무선 통신을 제공할 수 있다.For example, the
상술한 전자 장치(100)는 후술할 블록 체인의 노드(node) 또는 블록 체인 생성 장치일 수 있다.The above-described
이하에서, 다르게 설명되지 않으면, 전자 장치(100)의 동작은 프로세서(110)에 의하여 수행된 동작으로 지칭될 수 있다.Hereinafter, unless otherwise described, an operation of the
제1 first 실시예Example
도 4는 본 발명의 제1 실시예에 따른 블록체인을 설명하기 위한 블록도이고, 도 5는 본 발명의 제1 실시예에 따른 블록구조의 일 예를 도시한 도면이다. 4 is a block diagram for explaining a block chain according to a first embodiment of the present invention, and FIG. 5 is a diagram showing an example of a block structure according to the first embodiment of the present invention.
도 4에 도시된 바와 같이, 2개의 제네시스 블록을 시작점으로 해서 각각의 블록들이 연결된 구조를 블록체인이라고 한다. As shown in Fig. 4, a structure in which each block is connected with two genesis blocks as a starting point is called a block chain.
본 발명의 일 실시예에서는 트랜잭션을 바디에 기록하고, 이전 블록을 암호화한 공개키와 쌍을 이루는 개인키를 계산하고, 계산된 개인키를 이용하여 논스(nonce)값을 구함으로써 블록을 생성한다. 이후, 공개키 생성함수를 이용하여 다음 블록의 공개키를 생성하여 블록의 헤더에 저장한다. 본 발명의 일 실시예에서의 공개키 생성함수는 엘가말(elgamal) 암호화 방식을 수정하여 사용하였다. In one embodiment of the present invention, a block is created by recording a transaction in the body, calculating a private key paired with the public key that encrypted the previous block, and obtaining a nonce value using the calculated private key. . Thereafter, the public key of the next block is generated using the public key generation function and stored in the header of the block. The public key generation function in an embodiment of the present invention is used by modifying the elgamal encryption method.
이하에 본 발명의 블록체인 구조에 대하여 상세히 설명한다. Hereinafter, the block chain structure of the present invention will be described in detail.
본 발명의 일 실시예에서는 2개의 제네시스 블록을 시작점으로 한다. In an embodiment of the present invention, two genesis blocks are used as starting points.
각각의 제네시스 블록은 각각 2 블록 후의 블록의 공개키를 저장한다. 즉, 제1 제네시스 블록(G1)은 제1 블록에 기록되는 개인키와 쌍을 이루는 공개키를 저장하고, 제2 제네시스 블록(G2)은 제2 블록에 기록되는 개인키와 쌍을 이루는 공개키를 저장한다. 제1 제네시스 블록(G1)에 기록되는 공개키에 의해 제2 제네시스 블록(G2)이 암호화되고, 제2 제네시스 블록(G2)에 기록되는 공개키에 의해 제1 블록이 암호화된다. Each genesis block stores the public key of the
이는 추후에 상세히 설명한다. 설명에 앞서, 도 5를 참조하여, 본 발명의 제1 실시예에 따른 블록구조를 살펴보면, 블록(500)은 헤더(510)와 바디(530)를 포함할 수 있다.This will be described in detail later. Prior to the description, referring to FIG. 5 , referring to the block structure according to the first embodiment of the present invention, the block 500 may include a
블록(500)의 헤더(510)의 구성요소는 버전(511), 타임 스탬프(512), 머클 루트(513), 난이도(514), 논스(515), 다음 블록 공개키(516)를 포함한다. 바디(530)는 트랜잭션을 포함한다. Components of
버전(511)은 소프트웨어/프로토콜 업그레이드 추적을 위한 버전번호를 포함한다. 버전번호의 크기는 4bytes이다.
타임 스탬프(512)는 블록이 생성된 시간을 포함할 수 있다. 타임 스탬프(512)는 유닉스 타임스탬프일 수 있다. 타임 스탬프의 크기는 4bytes이다. 유닉스 타임스탬프란 1970년 1월 1일 0시 0분 0초 (UTC) 로부터 몇 초나 지난것인지를 표현한 것이다.The
머클(Merkle) 루트(513)는 해당 블록의 바디(530)에 포함된 트랜잭션으로부터 생성된 머클 트리의 루트에 대한 해시이다. 머클 해시의 크기는 32bytes이다.The
난이도(514)는 블록의 작업증명을 위한 난이도 조절용 수치이다. The
난이도는 블록의 생성 시간과 관련되어 있다. 예를 들어, 비트코인의 경우 블록은 평균 10분을 주기로 생성되며 이 주기에 따라 통화 발행 빈도와 트랜잭션 정산 속도가 정해진다. 이 주기는 단기간이 아니라 수십 년 동안 일정하게 유지 되어야한다. 채굴에 참여하는 컴퓨터의 수나 그 성능은 시간에 따라 변하기 때문에 채굴 난이도를 적절하게 조절하여 채굴에 걸리는 시간을 조정할 수 있다.The difficulty is related to the creation time of the block. For example, in the case of Bitcoin, blocks are created with an average cycle of 10 minutes, and the frequency of currency issuance and transaction settlement speed are determined according to this cycle. This cycle should be kept constant for decades, not for a short period of time. Since the number of computers participating in mining and their performance change over time, the time taken for mining can be adjusted by appropriately adjusting the mining difficulty.
완벽하게 분산화된 네트워크에서 위와 같은 난이도 재설정은 자동적으로 모든 노드에서 독립적으로 실행된다. 비트코인의 경우 2,016개의 블록마다 난이도가 재설정한다. 재설정 방정식을 통해 마지막 2,016번째 블록을 찾는데 걸리는 시간을 측정하고 측정 시간과 예상시간(20,160분)을 비교하여 난이도를 재설정한다. 네트워크가 블록을 예상시간보다 빠르게 찾아내면 난이도는 올라가고, 느리게 찾아내면 난이도는 내려간다. In a perfectly decentralized network, the above difficulty reset is automatically executed independently on every node. In the case of Bitcoin, the difficulty resets every 2,016 blocks. Measure the time it takes to find the last 2,016th block through the reset equation, and reset the difficulty by comparing the measured time and the estimated time (20,160 minutes). If the network finds a block faster than the expected time, the difficulty goes up, and if it finds a block slowly, the difficulty goes down.
종래의 블록체인에서 해시 함수의 난이도는 해시 함수보다 작아야 한다는 한계가 있으나, 본 발명의 일 실시예에 따르면 난이도 설정에 있어서 특별한 한계없이 자유롭게 설정할 수 있다. 난이도 필드에 할당된 크기는 4bytes이다.In the conventional block chain, there is a limit that the difficulty of the hash function must be smaller than that of the hash function, but according to an embodiment of the present invention, it can be freely set without any particular limitation in setting the difficulty. The size assigned to the difficulty field is 4 bytes.
논스(515)는 블록의 헤더 해시를 p로 나눈 나머지가 이전 블록을 암호화하는 (두 블록 앞 블록의 헤더에 저장된) 공개키(P1)와 쌍을 이루는 개인키(R1)가 되도록 하는 값이다. 개인키는 1 내지 (p-1) 중 하나이다. 블록의 내용은 논스를 재계산 하지 않고는 변경할 수 없다. 논스의 크기는 4bytes이다.The nonce 515 is a value such that the remainder obtained by dividing the header hash of the block by p becomes the private key (R1) paired with the public key (P1) (stored in the header of the block two blocks before) that encrypts the previous block. The private key is one of 1 to (p-1). The contents of a block cannot be changed without recalculating the nonce. The size of the nonce is 4 bytes.
다음 블록 공개키(516)는 두 블록 뒤 블록에 기록된 개인키와 쌍을 이루는 공개키(P3)이고, 다음 블록을 암호화하는 공개키(P3)이다. 다음 블록을 암호화하는 공개키(516)는 이전 블록의 헤더 해시에 의해 결정된다. 공개키의 크기는 가변될 수 있다. The next block
제2 블록은 제2 제네시스 블록의 헤더에 포함된 공개키(P2)를 이용하여, 트랜잭션을 암호화한다. The second block encrypts the transaction by using the public key (P2) included in the header of the second genesis block.
블록(500)의 바디(530)는 거래에 대한 트랜잭션을 포함한다. The
보다 구체적으로 바디(530) 필드는 예를 들어, 트랜잭션 카운트, 코인베이스 트랜잭션, 트랜잭션 등을 포함할 수 있다. 트랜잭션 카운트는 블록 바디에 있는 트랜잭션 수를 의미한다. 코인베이스트 블록 채굴 보상을 지불하는 트랜잭션을 포함할 수 있다. In more detail, the
도 6은 본 발명의 제1 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명하는 흐름도이고, 도 7은 본 발명의 제1 실시예에 따른 공개키 생성 방법을 설명하는 흐름도이며, 도 8은 본 발명의 제1 실시예에 따른 논스 생성 방법을 설명하는 흐름도이다. 도 9는 본 발명의 제1 실시예에 따라 개인키만 계산한 경우와 nonce를 계산한 경우의 소요 시간을 비교한 그래프이다. 6 is a flowchart illustrating a method of generating a block chain of an electronic device according to a first embodiment of the present invention, FIG. 7 is a flowchart illustrating a method of generating a public key according to the first embodiment of the present invention, and FIG. 8 is It is a flowchart for explaining the nonce generating method according to the first embodiment of the present invention. 9 is a graph comparing the time required for calculating only the private key and calculating the nonce according to the first embodiment of the present invention.
다음, 도 4 내지 도 8을, 참조하여, 본 발명의 일 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명한다. Next, a block chain generation method of an electronic device according to an embodiment of the present invention will be described with reference to FIGS. 4 to 8 .
먼저, 제1 제네시스 블록 및 제2 제네시스 블록이 생성된 것을 가정한다. First, it is assumed that the first genesis block and the second genesis block are generated.
2개의 제네시스 블록은 하드코딩된 상태이다. 제네시스 블록은 이전 블록에 대한 공개키를 갖지 않으므로 논스를 포함하지 않는다. The two genesis blocks are hardcoded. The genesis block does not contain a nonce because it does not have the public key for the previous block.
제1 제네시스 블록은 헤더에 제1 블록에 기록된 개인키와 쌍을 이루는 공개키(P1)를 포함하고, 제2 제네시스 블록은 헤더에 제2 블록에 기록된 개인키와 쌍을 이루는 공개키(P2)를 포함한다. The first genesis block includes a public key (P1) paired with the private key recorded in the first block in the header, and the second genesis block includes a public key (P1) paired with the private key recorded in the second block in the header P2).
먼저, 빈 블록의 바디에 트랜잭션을 추가한다(S100). 이 때, 블록 채굴 보상에 대한 트랜잭션이나, 트랜잭션을 증명하는 서명 등을 함께 추가할 수 있다. First, a transaction is added to the body of the empty block (S100). At this time, you can add a transaction for block mining rewards or a signature that proves the transaction.
상기 제2 블록의 헤더에 공개키 생성의 난이도를 기록한다(S120). 본 발명의 제1 실시예에서는 난이도는 공개키의 길이가 된다. 또한 단계 S120에서 상기 제2 블록의 헤더에 버전, 타임스탬프, 머클 루트를 더 기록한다. The difficulty of generating the public key is recorded in the header of the second block (S120). In the first embodiment of the present invention, the difficulty is the length of the public key. Also, in step S120, a version, a timestamp, and a merkle root are further recorded in the header of the second block.
공개키 알고리즘을 통해 제4 블록에 기록되는 개인키 쌍의 공개키를 생성하여 제2 블록의 헤더에 저장한다(S140). 제2 블록의 헤더에 저장된 공개키에 의해 제3 블록의 트랜잭션이 암호화되고, 제4 블록의 헤더에 저장된 개인키에 의해 제3 블록의 트랜잭션이 복호화된다. The public key of the private key pair recorded in the fourth block is generated through the public key algorithm and stored in the header of the second block (S140). The transaction of the third block is encrypted by the public key stored in the header of the second block, and the transaction of the third block is decrypted by the private key stored in the header of the fourth block.
공개키 생성은 도 7을 참조하여 설명한다. 도 7에 도시된 공개키 알고리즘은 일 예일 뿐, 이에 한정하는 것은 아니다. The public key generation will be described with reference to FIG. 7 . The public key algorithm shown in FIG. 7 is only an example, and is not limited thereto.
일반적으로 공개키 암호화에서는 공개키를 생성하는 시점에서는 이미 개인키가 만들어져 있거나, 개인키와 공개키가 동시에 생성된다. 개인키를 모르는 상태에서 공개키를 생성하여 암호화하기 위해서는 랜덤하게 생성된 공개키가 유효한 공개키인지를 검증하는 방식을 이용하여야 한다. In general, in public key encryption, a private key is already created at the time of generating a public key, or a private key and a public key are generated at the same time. In order to generate and encrypt a public key without knowing the private key, a method of verifying whether a randomly generated public key is a valid public key must be used.
먼저 이전 블록의 헤더 해시를 시드로 사용하여 공개키를 생성한다.First, a public key is generated using the header hash of the previous block as a seed.
보다 구체적으로, 이전 블록 헤더 해시를 시드(seed)로 한 랜덤 소수 p를 찾는다. 차수가 소수 p인 순환군 G와 이의 생성원(generator) A를 정한다. More specifically, a random prime p with the previous block header hash as a seed is found. Determine a circular group G of degree p and its generator A.
생성원(generator)은 소수 p의 원시근(primitive root)을 찾는 것과 같은 방법으로 진행된다. 생성원(generator) 찾는 과정은 아래와 같다.The generator proceeds in the same way as finding the primitive root of a prime number p. The process of finding a generator is as follows.
1. 소수 p의 (p), p-1을 s라 하고, s의 소인수 분해한 결과를 a*b*c라고 가장한다. 여기서 기존의 소인수분해 방법은 큰 수에 대하여 오랜 시간을 소요하므로, 아래와 같은 방법으로 진행한다.1. prime number p (p), p-1 is assumed to be s, and the result of prime factorization of s is assumed to be a*b*c. Here, since the existing prime factorization method takes a long time for a large number, it proceeds as follows.
1-1. 임의의 소수 q를 선택한다. 1-1. Pick any prime number q.
1-2. p = 2*q + 1를 만족한다면, q는 p의 소인수이다. 1-2. If p = 2*q + 1, then q is a prime factor of p.
1-3. p = p/q로 하고, 1-1 단계부터 다시 진행한다. 1-3. Let p = p/q, and proceed from step 1-1 again.
2. 이때, 임의의 정수 g에 대해 a ^ (b*c), b ^ (a*c), c ^ (a*b)의 mod s의 결과가 모두 1이 아닌 수가 나온다면, g는 소수 p의 원시근이다. 2. At this time, for any integer g, if the result of mod s of a ^ (b*c), b ^ (a*c), c ^ (a*b) is a number other than 1, g is a prime number. is the primitive root of p.
3. 또한 임의의 정수 n에 대해 gcd (g ^ n , p)가 1이면, g ^ n 역시 생성원이 된다.3. Also, if gcd (g ^ n , p) is 1 for any integer n, g ^ n is also a generator.
다음 생성된 공개키가 유효한지 검증을 수행하고 유효하지 않다고 판단되면 다시 공개키를 생성하는 단계로 되돌아간다. 공개키가 유효하다고 판단되면 공개키를 출력한다. 이와 같이 이전 블록의 헤더 해시를 랜덤 시드로 이용하므로, 권한 없는 개인키를 통해 공개키를 생성하는 부정한 채굴을 방지할 수 있다. Then, verification is performed on whether the generated public key is valid, and if it is determined that the generated public key is invalid, the process returns to the step of generating the public key again. If it is determined that the public key is valid, the public key is output. As such, since the header hash of the previous block is used as a random seed, illegal mining that generates a public key through an unauthorized private key can be prevented.
다시 도 6으로 되돌아가서, 제1 블록을 암호화한 제1 공개키 쌍에 대응하는 개인키를 이용하여 논스를 생성한다(S160). Returning to FIG. 6 again, a nonce is generated using the private key corresponding to the first public key pair encrypted with the first block (S160).
보다 구체적으로 도 8을 참조하여, 논스를 0부터 1씩 증가시켜 블록의 헤더 해시를 엘가멜(Elgamal) 암호화의 P로 나눈 나머지가 이전 블록의 공개키에 해당하는 캐인키가 되도록 하는 논스를 찾는다. 개인키는 1 ~ (p-1) 중 하나이므로 위와 같은 작업증명을 통해 반드시 논스를 구할 수 있다.More specifically, with reference to FIG. 8, by increasing the nonce from 0 to 1, the nonce that divides the header hash of the block by P of Elgamal encryption becomes the key key corresponding to the public key of the previous block. . Since the private key is one of 1 to (p-1), the nonce must be obtained through the above proof-of-work.
논스를 찾은 개인키가 유효한 키인지 확인하고, 유효하다고 판단되면 이때의 개인키와 논스를 출력한다. 이와 같이 블록을 생성하는 것은 마이닝(mining)이라고 칭할 수도 있다. 논스를 찾은 개인키가 유효한 키가 아니라고 판단되면, 개인키를 찾는 단계로 되돌아간다. It checks whether the private key that found the nonce is a valid key, and if it is determined that it is valid, the private key and the nonce at this time are output. Creating a block in this way may be referred to as mining. If it is determined that the private key that found the nonce is not a valid key, the process returns to the step of finding the private key.
제1 개인키를 제2의 블록의 헤더에 추가하여, 생성된 제2 블록을 인접 노드에 브로드캐스트 방법으로 전파한다(S180). The first private key is added to the header of the second block, and the generated second block is propagated to neighboring nodes by a broadcast method (S180).
여기서, 암호화되지 않은 트랜잭션은 즉시 펜딩(pending) 상태가 되어 블록의 바디에 기록되어지기를 기다린다. 암호화된 트랜잭션은 해당 공개키를 사용하는 블록에 기록되지 못하면 해당 트랜잭션은 취소된다. Here, the unencrypted transaction immediately becomes a pending state and waits to be recorded in the body of the block. If an encrypted transaction cannot be recorded in a block using the corresponding public key, the transaction is canceled.
도 6과 같은 방법에 의해 생성된 블록을 전파받은 노드는 블록을 검증한 후 채택한다. A node that has received the block generated by the method as shown in FIG. 6 verifies the block and then adopts it.
본 발명의 제1 실시예에 따르면, 블록에서는 내용 수정시, 머클루트가 변경되며 그로 인해 헤더 해시도 크게 변하므로 논스 값을 새로 계산해야 한다. 이와 같이 내용 수정에 따른 논스 계산이, 최초 채굴과 다른 점은, 개인키를 알고 있다는 점이다. 하지만 논스 값에 따라 헤더 해시가 어떻게 변할지 알 수 없으므로, 개인키를 알고 있다 하더라도 최초 채굴 시간과 비슷한 시간이 걸릴 것이다. According to the first embodiment of the present invention, when the contents are modified in a block, the merkle root is changed and thus the header hash is also greatly changed, so the nonce value must be newly calculated. In this way, the nonce calculation according to the content modification differs from the initial mining in that the private key is known. However, since it is not known how the header hash will change depending on the nonce value, it will take a similar amount of time to the initial mining time even if the private key is known.
한편, 이전 블록의 개인키만 계산하는 공격 방식을 예상하면, n번 시도해서 개인키를 찾을 못 확률은 이므로 채굴을 n번 시도해서 논스를 못 찾을 확률인 에 비해서 작은 값이다. 적당히 큰 소수인 2,147,483,647을 p로 두고 n번 시도해서 개인키를 못 찾을 확률은 도 9와 같다.On the other hand, if you anticipate an attack method that calculates only the private key of the previous block, the probability of not finding the private key after n attempts is Therefore, the probability of not finding a nonce after n attempts to mine is is a small value compared to The probability of not finding the private key by trying n times with 2,147,483,647, which is a moderately large prime number, as p is shown in FIG. 9 .
A1은 개인키만 계산한 경우이고, B1은 논스를 계산한 경우이다. 하지만 이와 같은 공격은 네트워크에 끼치는 영향이 크지 않다. 또한, 이와 같은 채굴은 채굴 보상을 받을 수 없으므로 개인키만 계산하는 방식의 공격방식을 채택하는 공격자는 거의 없을 것이다.A1 is the case where only the private key is calculated, and B1 is the case where the nonce is calculated. However, such an attack has little effect on the network. In addition, since such mining cannot receive mining rewards, there will be few attackers who adopt an attack method that calculates only the private key.
제2 second 실시예Example
도 10은 본 발명의 제2 실시예에 따른 블록체인을 설명하기 위한 블록도이고, 도 11은 본 발명의 제2 실시예에 따른 블록구조의 일 예를 도시한 도면이다. 10 is a block diagram for explaining a block chain according to a second embodiment of the present invention, and FIG. 11 is a diagram showing an example of a block structure according to a second embodiment of the present invention.
도 10에 도시된 바와 같이, 제네시스 블록을 시작점으로 해서 각각의 블록들이 연결된 구조를 블록체인이라고 한다. As shown in FIG. 10, a structure in which each block is connected with the genesis block as a starting point is called a block chain.
본 발명의 일 실시예에서는 2개의 제네시스 블록을 시작점으로 한다. In an embodiment of the present invention, two genesis blocks are used as starting points.
트랜잭션을 바디에 기록하고, 상기 이전 블록을 암호화한 공개키와 쌍을 이루는 개인키를 계산하고, 계산된 개인키를 헤더에 저장하여 블록을 생성한다. 이후, 공개키 생성함수를 이용하여 다음 블록을 암호화하는 공개키를 생성하여 블록의 헤더에 저장한다. A transaction is recorded in the body, a private key paired with the public key that encrypted the previous block is calculated, and the calculated private key is stored in a header to generate a block. Thereafter, a public key for encrypting the next block is generated using the public key generation function and stored in the header of the block.
각각의 제네시스 블록은 2 블록 후의 블록에 기록된 개인키와 쌍을 이루는 공개키를 포함한다. 즉, 제1 제네시스 블록(G1)은 제1 블록에 기록된 개인키와 쌍을 이루는 공개키를 포함하고, 제2 제네시스 블록(G2)은 제2 블록에 기록된 개인키와 쌍을 이루는 공개키를 저장한다. Each genesis block contains a public key paired with a private key recorded in blocks two blocks later. That is, the first genesis block G1 includes a public key paired with the private key recorded in the first block, and the second genesis block G2 includes a public key paired with the private key recorded in the second block. save the
이는 추후에 상세히 설명한다. 설명에 앞서, 도 10를 참조하여, 본 발명의 일 실시예에 따른 블록구조를 살펴보면, 블록(600)은 헤더(610)와 바디(630)를 포함할 수 있다.This will be described in detail later. Prior to the description, referring to FIG. 10 , referring to the block structure according to an embodiment of the present invention, the
블록(600)의 헤더(610)는 버전(611), 타임 스탬프(612), 머클 루트(613), 난이도(614), 이전 블록 개인키(615), 다음 블록 공개키(616)을 포함한다. 바디(630)는 트랜잭션을 포함한다.
버전(611)은 소프트웨어/프로토콜 버전을 포함한다.
타임 스탬프(612)는 블록이 생성된 시간을 포함할 수 있다.The
머클 루트(613)는 바디(630)의 내용 검증을 위한 머클 트리의 루트를 포함할 수 있다. The
난이도(614)는 난이도 조절용 수치를 포함할 수 있다. 후술하는 바와 같이 종래의 블록체인에서 해시 함수의 난이도 적용과는 달리 본 발명의 일 실시예에 따르면 난이도를 자유롭게 설정할 수 있다. 즉, 난이도 설정에 있어 한계가 없다. The
이전 블록 개인키(615)는 두 블록 앞 블록의 헤더에 저장된 공개키(P1)와 쌍을 이루는 개인키(R1)이다. 즉, 이전 블록 개인키(615)는 바로 앞 블록을 암호화한 공개키(P1)와 쌍을 이룬다. The previous block
다음 블록 공개키(616)는 두 블록 뒤 블록의 헤더에 저장된 개인키와 쌍을 이루는 공개키(P3)이다. 즉, 제2 블록은 제1 블록의 헤더에 포함된 공개키(P3)를 이용하여, 트랜잭션을 암호화한다. 암호화된 제2 블록의 트랜잭션은 상기 제3 블록이 채굴되어 공개키(P3)과 쌍을 이루는 개인키(R3)가 채굴되면 복호화된다. The next block
블록(600)의 바디(630)는 거래에 대한 트랜잭션을 포함한다.The
도 12는 본 발명의 일 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명하는 흐름도이고, 도 13은 본 발명의 제2 실시예에 따른 공개키 생성 방법을 설명하는 흐름도이다. 다음, 도 10 내지 도 13을, 참조하여, 본 발명의 일 실시예에 따른 전자 장치의 블록 체인 생성 방법을 설명한다. 12 is a flowchart illustrating a method of generating a block chain of an electronic device according to an embodiment of the present invention, and FIG. 13 is a flowchart illustrating a method of generating a public key according to a second embodiment of the present invention. Next, a block chain generation method of an electronic device according to an embodiment of the present invention will be described with reference to FIGS. 10 to 13 .
먼저, 제1 제네시스 블록 및 제2 제네시스 블록이 생성된 것을 가정한다. 제1 제네시스 블록은 헤더에, 제1 블록에 기록된 개인키와 쌍을 이루는 공개키(R1)를 포함하고, 제2 제네시스 블록은 헤더에, 제2 블록에 기록된 개인키(R2)과 쌍을 이루는 공개키를 포함한다. First, it is assumed that the first genesis block and the second genesis block are generated. The first genesis block includes a public key (R1) paired with the private key recorded in the first block in the header, and the second genesis block is paired with the private key (R2) recorded in the second block in the header contains the public key constituting the
먼저, 빈 블록의 바디에 트랜잭션을 추가한다(S200). 이 때, 블록 채굴 보상에 대한 트랜잭션이나, 트랜잭션을 증명하는 서명 등을 함께 추가할 수 있다. First, a transaction is added to the body of the empty block (S200). At this time, you can add a transaction for block mining rewards or a signature that proves the transaction.
상기 제2 블록의 헤더에 공개키 생성의 난이도를 기록한다(S220). 또한 상기 제2 블록의 헤더에 버전, 타임스탬프, 머클 루트를 더 기록한다. The difficulty of generating the public key is recorded in the header of the second block (S220). In addition, a version, a timestamp, and a merkle root are further recorded in the header of the second block.
공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장한다(S240). 참고로, 제3 블록을 암호화하는 공개키와 쌍을 이루는 개인키는 제4 블록의 헤더에 기록된다. A public key for encrypting the third block is generated through the public key algorithm and stored in the header of the second block (S240). For reference, the private key paired with the public key for encrypting the third block is recorded in the header of the fourth block.
보다 구체적으로 도 13을 참조하여, 공개키를 생성하는 방법을 설명한다. 도 13에 도시한 바와 같이, 본 발명의 제2 실시예에 따른 공개키 알고리즘은 쌍곡선 알고리즘을 이용한다. 다만 도 13에 도시된 공개키 알고리즘은 일 예일 뿐, 이에 한정하는 것은 아니다. 공개키를 (r,s,x,y)라고 상정한다. 공개키의 길이 즉 난이도에 따라 블록을 풀리는 속도가 상이하므로, 공개키의 길이를 조절하여 난이도를 제어할 수 있고, 이에 따라 블록 생성 속도를 조정할 수 있다. In more detail, a method of generating a public key will be described with reference to FIG. 13 . 13, the public key algorithm according to the second embodiment of the present invention uses a hyperbolic algorithm. However, the public key algorithm shown in FIG. 13 is only an example and is not limited thereto. Assume that the public key is (r,s,x,y). Since the speed of unlocking a block is different depending on the length of the public key, that is, the difficulty level, the difficulty can be controlled by adjusting the length of the public key, and accordingly, the block generation speed can be adjusted.
도 13에 도시된 바와 같이, 상기 제1 블록의 공개키에 의해 암호된 결과값을 상기 공개키 알고리즘의 제3 블록의 공개키 생성을 위한 시드로 사용한다. As shown in FIG. 13, the result value encrypted by the public key of the first block is used as a seed for generating the public key of the third block of the public key algorithm.
다시 도 12로 되돌아와서, 제1 블록을 암호화한 공개키 쌍에 대응하는 1 개인키를 계산함으로써, 제2 블록을 생성한다(S260). 이와 같이 블록을 생성하는 것은 마이닝(mining)이라고 칭할 수도 있다. Returning to FIG. 12 again, the second block is generated by calculating one private key corresponding to the public key pair encrypted with the first block (S260). Creating a block in this way may be referred to as mining.
제1 개인키를 제2의 블록의 헤더에 추가하여, 생성된 제2 블록을 인접 노드에 브로드캐스트 방법으로 전파한다(S280). 제1 개인키가 채굴됨으로써 제1 블록의 트랜잭션은 복호화된다. The first private key is added to the header of the second block, and the generated second block is propagated to neighboring nodes by a broadcast method (S280). As the first private key is mined, the transaction of the first block is decrypted.
여기서, 암호화되지 않은 트랜잭션은 즉시 팬딩(pending) 상태가 되어 블록의 바디에 기록되어지기를 기다린다. 암호화된 트랜잭션은 해당 공개키를 사용하는 블록에 기록되지 못하면 해당 트랜잭션은 취소된다. Here, the unencrypted transaction immediately becomes a pending state and waits to be recorded in the body of the block. If an encrypted transaction cannot be recorded in a block using the corresponding public key, the transaction is canceled.
도 13과 같은 방법에 의해 생성된 블록을 전파받은 노드는 블록을 검증한 후 채택한다. A node that has received the block generated by the method as shown in FIG. 13 verifies the block and then adopts it.
앞서 설명한 바와 같이, 본원발명의 일 실시예에 따른 타임 릴리즈 블록체인은 블록체인의 합의 알고리즘 중 작업증명(PoW, Proof of Work)을 이용하여 블록의 내용을 암호화 후 일정 기간 이후에 내용을 복호화 할 수 있는 키를 찾도록 하여 일정 시간 지연 후에 내용을 공개할 수 있는 기능을 제공하는 블록체인이다. As described above, the time release block chain according to an embodiment of the present invention encrypts the contents of the block using Proof of Work (PoW) among the consensus algorithms of the block chain and decrypts the contents after a certain period of time. It is a blockchain that provides the ability to reveal the contents after a certain time delay by finding a key that can be used.
블록을 암호화 하는데 사용되는 공개키는 블록체인 네트워크에 참여하는 노드들의 계산 능력에 의해 난이도가 적절하게 조절되어 복잡한 암호학적 기법 없이 타임 릴리즈 블록체인을 구현할 수 있으며 컴퓨터의 계산능력 증가에 효과적으로 대응할 수 있다. The difficulty of the public key used to encrypt the block is appropriately adjusted by the computational power of the nodes participating in the blockchain network, so that a time-release blockchain can be implemented without complex cryptographic techniques, and it can effectively respond to the increase in computational power of the computer. .
또한 이렇게 생성된 값을 스마트 컨트랙트에서 활용하여 선거에 사용된 표를 투표 기간에는 암호화하여 보호하다가 투표기간이 종료되면 채굴 노드에 의해 표가 복호화되어 저절로 개표가 이루어지게 하는 등 다양한 분야에서 사용될 수 있다.In addition, the generated value is utilized in a smart contract to encrypt and protect the votes used in the election during the voting period, and when the voting period is over, the votes are decrypted by the mining node to automatically count the votes, etc. .
또한, 본 발명의 일 실시예에 따르면, 블록헤더의 해시값을 2개 뒤의 블록의 공개키 생성에 사용하므로, 위변조된 블록을 포함하지 않고, 변조된 블록 이후의 블록을 재계산하면 된다. 따라서, 블록체인을 더욱 빠르고 안전하게 대중화할 수 있도록 도모한다. In addition, according to an embodiment of the present invention, since the hash value of the block header is used to generate the public key of the two blocks later, the block after the modulated block is recalculated without including the forged block. Therefore, it aims to popularize the blockchain more quickly and safely.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.The computer-readable recording medium includes a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at with respect to preferred embodiments thereof. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.
Claims (14)
적어도 하나의 프로세서; 및
상기 프로세서에 전기적으로 연결된 메모리를 포함하고,
상기 메모리는, 실행 시에, 상기 프로세서가,
제2 블록의 바디에 트랜잭션을 기록하고, 공개키 알고리즘을 통해 제3 블록을 암호화하는 공개키를 생성하여 제2 블록의 헤더에 저장하며, 제1 블록을 암호화한 제2 블록 공개키 쌍에 대응하는 개인키를 계산하여 제2 블록을 생성하는 명령어들을 저장하는 블록 체인 생성 장치.a communication module for communicating with other nodes;
at least one processor; and
a memory electrically coupled to the processor;
The memory, when executed, causes the processor to:
A transaction is recorded in the body of the second block, and a public key for encrypting the third block is generated through a public key algorithm and stored in the header of the second block, and corresponds to the second block public key pair encrypted with the first block A block chain generating device that stores instructions for generating a second block by calculating a private key.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 블록의 헤더 해시를 공개키 생성에 사용한 랜덤 소수 p로 나눈 나머지를 개인키로 하는 명령어들을 더 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating device further storing commands using the remainder of dividing the header hash of the block by the random prime p used to generate the public key as a private key.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 제1 블록을 암호화한 제2 블록 공개키 쌍에 대응하는 개인키가 되도록 하는 논스를 구하여 상기 제2 블록 헤더에 추가하는 명령어들을 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating apparatus for storing instructions for obtaining a nonce to become a private key corresponding to a second block public key pair encrypted with the first block and adding the nonce to the second block header.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 제1 블록을 암호화한 제2 블록 공개키 쌍에 대응하는 개인키를 제2 블록 헤더에 추가하는 명령어들을 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating apparatus for storing instructions for adding a private key corresponding to a second block public key pair encrypted with the first block to a second block header.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 제1 블록의 헤더 해시를 제2 블록에 기록되는 제4 블록 공개키의 생성을 위한 시드로 사용하는 명령어들을 더 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating apparatus further storing instructions using the header hash of the first block as a seed for generating a fourth block public key recorded in a second block.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 제2 블록의 헤더에 공개키 생성의 난이도를 기록하는 명령어들을 더 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating apparatus further storing instructions for recording the difficulty of generating a public key in the header of the second block.
상기 메모리는, 실행 시에, 상기 프로세서가,
상기 제2 블록의 헤더에 버전, 타임스탬프 및 머클 루트(Merkle root)를 기록하는 명령어들을 더 저장하는 블록 체인 생성 장치.According to claim 1,
The memory, when executed, causes the processor to:
A block chain generating apparatus further storing instructions for recording a version, a timestamp, and a Merkle root in the header of the second block.
제2 블록의 바디에 트랜잭션을 기록하는 단계;
공개키 알고리즘을 통해 제3 블록을 암호화하는 제4 블록 공개키를 생성하여 제2 블록의 헤더에 저장하는 단계;
제1 블록을 암호화한 제2 블록 공개키 쌍에 대응하는 개인키 및 논스(nonce)를 계산하는 단계; 및
상기 논스를 제2 블록의 헤더에 추가하여 제2 블록을 생성하는 단계;
를 포함하는 블록 체인 생성 방법. A block chain generation method by a block chain generation device, comprising:
recording the transaction in the body of the second block;
generating a fourth block public key for encrypting the third block through a public key algorithm and storing the fourth block public key in the header of the second block;
calculating a private key and a nonce corresponding to a second block public key pair that encrypted the first block; and
generating a second block by adding the nonce to a header of a second block;
A method of creating a blockchain that includes
상기 제2 블록을 암호화한 공개키 쌍에 대응하는 제2 개인키 및 논스(nonce)를 계산하는 단계는,
상기 블록의 헤더 해시를 공개키 생성에 사용한 랜덤 소수 p로 나눈 나머지를 개인키로 하고, 이전 블록의 공개키에 해당하는 개인키가 되도록 하는 논스를 구하는 것을 특징으로 하는 블록 체인 생성 방법.9. The method of claim 8,
Calculating a second private key and a nonce corresponding to the public key pair encrypted with the second block,
A method of generating a block chain, characterized in that the remainder obtained by dividing the header hash of the block by the random prime number p used to generate the public key is used as a private key, and a nonce is obtained so that the private key corresponding to the public key of the previous block is obtained.
제2 블록의 바디에 트랜잭션을 기록하는 단계;
공개키 알고리즘을 통해 제3 블록을 암호화하는 제4 블록 공개키를 생성하여 상기 제2 블록의 헤더에 저장하는 단계;
제1 블록을 암호화한 제2 블록 공개키 쌍에 대응하는 개인키를 계산하는 단계; 및
상기 개인키를 제2 블록의 헤더에 추가하여, 제2 블록을 생성하는 단계
를 포함하는 블록 체인 생성 방법. A block chain generation method by a block chain generation device, comprising:
recording the transaction in the body of the second block;
generating a fourth block public key for encrypting a third block through a public key algorithm and storing the fourth block public key in a header of the second block;
calculating a private key corresponding to a second block public key pair encrypted with the first block; and
generating a second block by adding the private key to the header of the second block;
A method of creating a blockchain that includes
상기 제2 블록의 헤더에 공개키 생성의 난이도를 기록하는 단계를 더 포함하는 블록 체인 생성 방법. 11. The method of claim 8 or 10,
The block chain generation method further comprising the step of recording the difficulty of public key generation in the header of the second block.
상기 제3 블록을 암호화하는 제4 블록 공개키를 생성하여 제2 블록의 헤더에 저장하는 단계에서,
상기 제1 블록의 헤더 해시를 제2 블록에 기록되는 제4 블록 공개키 생성을 위한 시드로 사용하는 블록 체인 생성 방법. 11. The method of claim 8 or 10,
In the step of generating a fourth block public key for encrypting the third block and storing it in the header of the second block,
A block chain generation method using the header hash of the first block as a seed for generating a fourth block public key recorded in the second block.
상기 제2 블록의 헤더에 버전, 타임스탬프, 머클 루트를 기록하는 단계를 더 포함하는 블록 체인 생성 방법. 11. The method of claim 8 or 10,
The method further comprising the step of recording a version, a timestamp, and a merkle root in the header of the second block.
상기 제2 블록의 바디에 트랜잭션을 기록하는 단계 이전에,
헤더에 상기 제1 블록을 암호화하는 제2 블록 공개키를 포함하는 제2 제네시스 블록, 상기 제2 제네시스 블록을 암호화하는 제1 블록 공개키를 포함하는 제1 제네시스 블록을 생성하는 단계
를 포함하는 블록 체인 생성 방법.
11. The method of claim 8 or 10,
Before recording the transaction in the body of the second block,
generating, in a header, a second genesis block including a second block public key for encrypting the first block, and a first genesis block including a first block public key for encrypting the second genesis block;
A method of creating a blockchain that includes
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200025619A KR102389465B1 (en) | 2020-02-28 | 2020-02-28 | Apparatus and method for generating block chain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200025619A KR102389465B1 (en) | 2020-02-28 | 2020-02-28 | Apparatus and method for generating block chain |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210110110A KR20210110110A (en) | 2021-09-07 |
KR102389465B1 true KR102389465B1 (en) | 2022-04-22 |
Family
ID=77797452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200025619A KR102389465B1 (en) | 2020-02-28 | 2020-02-28 | Apparatus and method for generating block chain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102389465B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024776A (en) * | 2022-01-05 | 2022-02-08 | 北京理工大学 | Encryption transmission method and system supporting timing decryption |
KR20230153779A (en) * | 2022-04-29 | 2023-11-07 | 금오공과대학교 산학협력단 | Auto Integrated Mining Method for Private Wireless Blockchain Network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837000B1 (en) | 2017-07-05 | 2018-03-12 | (주)지란지교시큐리티 | Method for proving e-mail transmission/reception and recording medium storing program for executing the same, and program stored in recording medium for executing the same |
KR102025409B1 (en) | 2017-07-31 | 2019-09-25 | 서강대학교산학협력단 | Data access management system based on blockchain and method thereof |
KR102051372B1 (en) | 2018-04-26 | 2019-12-03 | 염귀덕 | Block Chain based Event Drawing Method |
-
2020
- 2020-02-28 KR KR1020200025619A patent/KR102389465B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837000B1 (en) | 2017-07-05 | 2018-03-12 | (주)지란지교시큐리티 | Method for proving e-mail transmission/reception and recording medium storing program for executing the same, and program stored in recording medium for executing the same |
KR102025409B1 (en) | 2017-07-31 | 2019-09-25 | 서강대학교산학협력단 | Data access management system based on blockchain and method thereof |
KR102051372B1 (en) | 2018-04-26 | 2019-12-03 | 염귀덕 | Block Chain based Event Drawing Method |
Also Published As
Publication number | Publication date |
---|---|
KR20210110110A (en) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7289298B2 (en) | Computer-implemented system and method for authorizing blockchain transactions using low-entropy passwords | |
TWI706275B (en) | System and method for information protection | |
US20230120742A1 (en) | Quantumproof blockchain | |
JP6714156B2 (en) | System and method for information protection | |
Tian et al. | Blockchain-based secure deduplication and shared auditing in decentralized storage | |
CN108885741B (en) | Tokenization method and system for realizing exchange on block chain | |
CN109829326B (en) | Cross-domain authentication and fair audit de-duplication cloud storage system based on block chain | |
KR102580509B1 (en) | Computer-implemented system and method enabling secure storage of large-scale blockchains through multiple storage nodes | |
Chen et al. | Onion ring ORAM: Efficient constant bandwidth oblivious RAM from (leveled) TFHE | |
Gazzoni Filho et al. | Demonstrating data possession and uncheatable data transfer | |
CN110741600A (en) | Computer-implemented system and method for providing a decentralized protocol to retrieve encrypted assets | |
CN111523133B (en) | Block chain and cloud data collaborative sharing method | |
US10951394B2 (en) | System and method for publication of private data using a blockchain network | |
TW202020711A (en) | System and method for information protection | |
CN111526197B (en) | Cloud data secure sharing method | |
KR102389465B1 (en) | Apparatus and method for generating block chain | |
WO2021009496A1 (en) | Peer-to-peer network and method | |
Giri et al. | A survey on data integrity techniques in cloud computing | |
Sultan et al. | Internet of Things security issues and their solutions with blockchain technology characteristics: A systematic literature review | |
CN107360252B (en) | Data security access method authorized by heterogeneous cloud domain | |
Qi et al. | Blockchain-Based Light-Weighted Provable Data Possession for Low Performance Devices. | |
Yang et al. | Public auditing scheme for cloud data with user revocation and data dynamics | |
CN113055392B (en) | Block chain-based unified identity authentication method | |
US20240106639A1 (en) | Method of Calculating Cipher and Electronic Device Performing the Method | |
Tezcan | Cryptographic Foundations of Blockchain Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |