KR102000936B1 - Method to improve consensus algorithm of virtual money - Google Patents
Method to improve consensus algorithm of virtual money Download PDFInfo
- Publication number
- KR102000936B1 KR102000936B1 KR1020180018359A KR20180018359A KR102000936B1 KR 102000936 B1 KR102000936 B1 KR 102000936B1 KR 1020180018359 A KR1020180018359 A KR 1020180018359A KR 20180018359 A KR20180018359 A KR 20180018359A KR 102000936 B1 KR102000936 B1 KR 102000936B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- user
- block hash
- value
- generated
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
본 발명은 가상화폐의 합의 알고리즘 개선방법에 관한 것으로서, 특히 특정 조건을 만족하는 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴 보상을 분산시키고 채굴 경쟁을 완화시킬 수 있는 가상화폐의 합의 알고리즘 개선방법에 관한 것이다.The present invention relates to a method of improving the algorithm of a sum of virtual money, and more particularly, to a method of improving the algorithm of a virtual currency by distributing mining rewards and mitigating mining competition by allowing low- And a method for improving the agreement algorithm.
IT 기술과 인터넷과 같은 네트워크 기술이 발달함에 따라 전자 상거래 서비스가 확산되고 있다. 전자 상거래는 일반적으로 기업과 기업 사이의 거래(B2B: Business to Business), 기업과 개인 사이의 거래(B2C: Business to Customer), 개인과 개인 사이의 거래(C2C: Customer to Customer) 및 기업과 정부 사이의 거래(B2G: Business to Government)로 구분할 수 있는데, 여기에는 유선 또는 무선으로 연결된 네트워크 시스템을 통해서 이루어지는 금전의 이동뿐만 아니라, 물건의 구매와 배송과 마케팅, 서비스 제공 등의 일련의 행위가 포함될 수 있다.Electronic commerce services are spreading as network technology such as IT technology and the Internet develops. E-commerce is generally defined as business to business (B2B), business to customer (B2C), customer to customer (C2C) (B2G: Business to Government), which includes a series of actions such as purchasing, shipping, marketing, and providing services, as well as moving money through network systems connected by wire or wireless .
이러한 전자 상거래와 관련하여 최근에는 가상의 전자화폐, 즉 가상화폐를 이용한 결제방법이 관심의 대상이 되고 있다. Recently, with regard to such electronic commerce, virtual electronic money, that is, a payment method using virtual money has become a subject of interest.
가상화폐는 지폐나 동전과 같은 실물이 없이 네트워크로 연결된 가상 공간에서 전자적 형태로 사용되는 디지털 화폐 또는 전자화폐로서, 정부에 의해 통제를 받지 않고 개발자가 발행 및 관리하며 특정한 가상 커뮤니티에서만 통용되는 결제 수단을 말한다.Virtual currency is digital money or electronic money that is used electronically in a virtual space connected to a network without any bills or coins. It is issued by a developer without being controlled by the government, .
가상화폐에는 비트코인, 네임코인, 오로라코인, 도지코인, 라이트코인, 바이트코인, 이더리움, 대시, 리플 등이 있으며, 이들의 거래는 주로 동등 계층간 통신망(P2P: peer-to-peer network) 기반의 분산 데이터 베이스에 의하여 이루어진다.The transactions are mostly peer-to-peer networks (P2P), such as bit coin, name coin, aurora coin, doji coin, light coin, byte coin, etherium, dash, Based distributed database.
이러한 가상화폐의 거래는 블록체인 기술을 이용하여 이중거래의 위험을 방지하는데 이때 블록체인 기술에 적용되는 가상화폐의 합의 알고리즘은 블록 생성 난이도를 지키면서 블록을 생성하도록 한다.The transaction of the virtual money prevents the risk of the double transaction by using the block chain technique. At this time, the algorithm of the virtual currency summing applied to the block chain technique generates the block while maintaining the block generation difficulty.
그런데 가상화폐의 합의 알고리즘에 따르면 블록 생성을 위하여 수많은 해쉬 계산을 해야 하므로 비트코인 채굴 전용 하드웨어(ASIC)나 대용량 연산에 특화된 GPU를 사용해야 하는 문제가 있다.However, according to the agreement algorithm of virtual money, since there are many hash calculations for block generation, it is necessary to use bit coin digging dedicated hardware (ASIC) or GPU specialized for large capacity operation.
또한 블록을 생성하는 채굴자에게 가상화폐의 보상이 집중되게 되고, 이에 따라 채굴자들 사이의 채굴 경쟁으로 인해 전기가 과도하게 낭비되는 문제가 발생한다.Also, the compensation of the virtual money is concentrated on the miner who generates the block, and the electricity is excessively wasted due to the mining competition among the miners.
따라서 특정 조건을 만족하는 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴 보상을 분산시키고 채굴 경쟁을 완화시킬 필요가 있다.Therefore, it is necessary to disperse mining compensation and mitigate mining competition by allowing low - complexity block generation through collaboration between users and miners satisfying certain conditions.
본 발명은 이러한 문제점을 해결하기 위하여 안출된 것으로서, 특정 조건을 만족하는 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴 보상을 분산시키고 채굴 경쟁을 완화시킬 수 있는 가상화폐의 합의 알고리즘 개선방법을 제공하는 것을 그 기술적 과제로 한다.SUMMARY OF THE INVENTION The present invention has been made in order to solve such problems and it is an object of the present invention to provide a settlement algorithm of virtual money which can distribute mining compensation and mitigate mining competition by allowing low- And to provide an improvement method.
상기 목적을 달성하기 위한 수단으로서 본 발명에 따른 가상화폐의 합의 알고리즘 개선방법은, 네트워크상의 사용자들 중 제1사용자로 하여금 네트워크상의 가상화폐의 트랜젝션을 소정 개수 모아서 하나의 블록을 생성하도록 하는 단계와, 상기 제1사용자로 하여금 상기 블록에 대한 블록해쉬를 생성하도록 하는데, 이때 상기 제1사용자가 생성한 블록해쉬의 제일 앞자리로부터 연이어 위치한 0들(이하 '생성 블록해쉬의 0들'이라 한다)의 개수가 가상화폐의 합의 알고리즘에서 정하는 소정의 기준값보다 더 적은 블록해쉬(이하 '생성 블록해쉬'라고 한다)를 생성하도록 하는 단계와, 상기 제1사용자로 하여금 상기 생성 블록해쉬를 네트워크상에 전파하도록 하는 단계와, 네트워크상의 사용자 중 제2사용자로 하여금 상기 생성 블록해쉬에서 상기 생성 블록해쉬의 0들을 모두 제외하고 남은 값 중 그 제일 앞자리로부터 상기 기준값과 상기 생성 블록해쉬의 0들의 개수의 차만큼의 자릿수를 가지는 값(이하 '블록해쉬의 차이값'이라 한다)을 선택하도록 하는 단계와, 상기 제2사용자로 하여금 상기 생성 블록해쉬 중에서 상기 블록해쉬의 차이값을 포함하면서 상기 블록해쉬의 차이값의 앞, 뒤 또는 앞과 뒤의 자릿수를 포함하여 전체 자릿수가 소정의 비교값만큼의 자릿수인 값(이하 '블록해쉬의 소정값'이라 한다)을 특정하도록 하는 단계와, 상기 제2사용자로 하여금 자신의 공개키가 상기 블록해쉬의 소정값을 포함하는 경우 상기 제1사용자에게 상기 블록을 요청하도록 하는 단계와, 상기 제2사용자로 하여금 상기 블록에 이어지는 다른 블록을 생성하도록 하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for improving a sum agreement algorithm of a virtual money according to the present invention, comprising: causing a first user among users on a network to collect a predetermined number of transactions of virtual money on a network to generate one block; , The first user generates a block hash for the block. At this time, 0s (hereinafter referred to as " 0s of generated block hashes ") located consecutively from the first position of the block hash generated by the first user Generating a block hash (hereinafter referred to as a " generated block hash ") whose number is smaller than a predetermined reference value defined by the algorithm of the sum of virtual money, and causing the first user to propagate the generated block hash on the network A second user of a user on the network, (Hereinafter referred to as " difference value of block hash ") having the same number of digits as the difference between the reference value and the number of zeros of the generated block hash from among the remaining values excluding all 0s of the lock hash The method of
여기에서 상기 비교값은 가상화폐의 트랜젝션에서 사용되는 공개키를 16진수로 표현할 때의 자릿수보다 같거나 작은 값에서 선택되며, 상기 기준값과 상기 생성 블록해쉬의 0들의 개수의 차보다 같거나 큰 값인 것이 바람직하다.Here, the comparison value is selected from a value equal to or smaller than the number of digits for representing the public key used in the transaction of the virtual currency in hexadecimal, and is equal to or larger than the difference between the reference value and the number of zeros in the generated block hash .
또한 본 발명에 따른 가상화폐의 합의 알고리즘 개선방법은 상기 제2사용자로 하여금 소정의 가상화폐를 보상받도록 하는 단계를 더 포함하는 것이 바람직하다.In addition, the method of improving the algorithm for summing a virtual money according to the present invention may further include the step of causing the second user to receive a predetermined virtual money.
여기에서 상기 제2사용자의 공개키에 가상화폐의 잔고가 생성된 시점이 1개월 이내인 경우에만 상기 제2사용자로 하여금 소정의 가상화폐를 보상받도록 하는 것이 바람직하다.Here, it is preferable that the second user is compensated for the predetermined virtual currency only when the balance of the virtual money is generated in the public key of the second user within one month.
본 발명에 따르면 특정 조건을 만족하는 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴 보상을 분산시키고 채굴 경쟁을 완화시킬 수 있는 가상화폐의 합의 알고리즘 개선방법을 제공할 수 있다.According to the present invention, it is possible to provide a method of improving the agreement algorithm of a virtual currency that can distribute mining compensation and alleviate mining competition by allowing low-difficulty blocks to be generated through cooperation between a mining user and a user satisfying a specific condition.
도 1은 증여자의 트랜젝션 및 수증자의 트랜젝션을 나타내는 개념도.
도 2는 본 발명에 따라 선택된 생성 블록해쉬와 공개키와의 관계를 나타내는 개념도.1 is a conceptual diagram showing a transaction of a donor and a transaction of a veterinarian;
FIG. 2 is a conceptual diagram illustrating a relationship between a generated block hash selected according to the present invention and a public key. FIG.
이하의 실시예 또는 도면에 나타난 구성은 본 발명의 바람직한 예에 불과한 것으로서 이를 대체할 수 있는 다양한 변형예가 있음을 밝혀 둔다.It is to be understood that the following embodiments and drawings are only examples of preferred embodiments of the present invention, and various modifications may be made therefor.
먼저 가상화폐의 거래 과정을 구체적으로 설명하면 다음과 같다.First, the transaction process of virtual currency will be described as follows.
가상화폐의 거래를 위해서는 전자지갑이 필요하게 되는데, 전자지갑은 비밀키(private key), 공개키(public key) 등 각종 키를 생성 및 보관하고 이러한 키들을 사용하여 가상화폐의 거래를 가능케 하며 가상화폐의 거래상황을 볼 수 있도록 하는 프로그램이다.In order to trade virtual money, an electronic wallet is required. The electronic wallet creates and stores various kinds of keys such as a private key and a public key, enables the transactions of virtual currency using these keys, It is a program that allows you to view the transaction status of money.
여기에서 공개키(public key)는 네트워크상의 누구에게나 공개된 정보인 반면, 비밀키(private key)는 일인 또는 소수의 사용자에게만 공개된 정보이다. 비밀키를 알면 공개키를 알 수 있으나 그 반대는 불가능하게 되어 있다.Here, the public key is information that is open to anyone on the network, while the private key is information that is only open to one or a small number of users. Knowing the secret key reveals the public key, but the opposite is impossible.
사용자는 자신의 비밀키를 이용하여 자신의 전자서명(signiture)을 생성하며, 예컨대 전자서명은 비밀키 정보를 포함한다. 이와 같이 전자서명은 사용자의 비밀키를 이용하여 생성하지만 사용자의 공개키만으로도 확인할 수 있는 정보이다. 따라서 전자서명이 있으면 공개키를 이용하여 누구의 전자서명인지 확인할 수 있게 된다.A user creates his or her own signatures using his / her secret key, e.g., the digital signature includes secret key information. In this way, the digital signature is generated using the user's secret key, but it is information that can be confirmed by the user's public key alone. Therefore, if there is an electronic signature, it is possible to confirm who is the electronic signature by using the public key.
가상화폐의 거래는 증여자(가상화폐를 보내는 자)가 수증자(가상화폐를 받는 자)에게 가상화폐를 보내고 수증자는 자신이 받은 가상화폐를 다른 수증자에게 다시 보내는 형태로 이루어진다.The transaction of virtual currency consists of sending the virtual money to the donor (the person who sends the virtual currency) to the veterinarian (the person who receives the virtual currency), and the veterinarian to send the virtual money received to the other veterinarian again.
구체적으로 먼저 증여자(가상화폐를 보내는 자)가 수증자(가상화폐를 받는 자)에게 가상화폐를 보내는 거래내역(증여자의 트랜젝션, 10)을 생성하고, 그 다음으로 상기 수증자가 다른 수증자에게 가상화폐를 보내는 거래내역(수증자의 트랜젝션, 20)을 생성한다.Specifically, first, a donor (a person who sends a virtual currency) generates a transaction detail (a transaction of a donor, 10) that sends a virtual money to a deceiver (a person who receives a virtual currency), and then the deceased sends the virtual money (Transaction of the veteran, 20).
이때 상기 증여자의 트랜젝션 정보(10)에는 증여자의 공개키(11), 증여자의 전자서명(12), 전송금액(13) 및 자물쇠(14)가 포함된다.At this time, the
여기에서 자물쇠(14)는 수증자의 공개키(21)를 이용하여 생성되며, 예컨대 자물쇠(14)는 수증자의 공개키 정보를 포함한다.Here, the
한편 수증자가 증여자로부터 받은 가상화폐를 다시 거래하는 경우 수증자는 증여자의 경우와 마찬가지로 수증자의 트랜젝션 정보(20)를 생성하는데, 상기 수증자의 트랜젝션 정보(20)에는 수증자의 전자서명(수증자가 자신의 비밀키를 이용하여 생성한 전자서명, 22)이 포함된다.On the other hand, when the deputy trades the virtual money received from the presenter, the deputee creates
이러한 트랜젝션 정보들은 전세계의 사용자들에게 전파되며, 전세계의 사용자들은 수증자의 전자서명(수증자의 트랜젝션 정보 중 일부, 22)을 이용하여 자물쇠(증여자의 트랜젝션 정보 중 일부, 14)를 풂으로써 수증자가 증여자로부터 해당 금액의 가상화폐를 받아서 보유하고 있었는지를 검증한다.These transactional information is spread to users all over the world, and users around the world use the electronic signature of the voucher (part of the voucher's transaction information, 22) to remove the lock (part of the transaction information of the presenter, 14) The virtual currency of the corresponding amount is received and held.
이러한 가상화폐의 거래는 블록체인 기술을 이용하여 이중거래의 위험을 방지한다.These virtual currency transactions use the block chain technique to prevent the risk of double transactions.
블록체인(block chain) 기술이란 네트워크상의 다수의 트랜젝션 정보들을 모아서 블록을 형성하고 이들 블록들의 집합체인 블록체인을 형성하는 기술을 말한다.A block chain technique is a technique of collecting a plurality of transaction information on a network to form a block and forming a block chain which is an aggregate of the blocks.
블록체인은 네트워크상의 여러 사용자들에 걸쳐 분산되어 저장 및 관리되며 블록에는 트랜젝션 정보가 포함되어 있으므로 블록체인은 모든 트랜젝션 정보를 포함하는 거대한 분산형 거래장부라고 할 수 있다.The block chain is distributed and stored across multiple users on the network. Since the blocks contain transaction information, the block chain can be said to be a large distributed transaction book containing all transaction information.
한편 가상화폐의 거래는 P2P 네트워크상에서 이루어지므로 네트워크상의 임의의 사용자가 대표로서 네트워크상의 트랜젝션 정보들을 모아서 블록으로 기록하여야 한다.Since the transaction of virtual money is performed on the P2P network, any user on the network should collect transaction information on the network and record it as a block.
이때 블록을 기록하는 프로토콜을 정한 것을 합의 알고리즘이라고 하고, 가장 많이 쓰이는 합의 알고리즘으로는 작업증명(PoW: Proof of Work) 등이 있다.At this time, a protocol for recording a block is defined as an agreement algorithm, and the most common agreement algorithm is a proof of work (PoW).
가상화폐의 합의 알고리즘을 보다 구체적으로 설명하면 다음과 같다.The algorithm of the settlement of virtual money will be described in more detail as follows.
네트워크상의 사용자들 중 제1사용자는 네트워크 상에서 발생하는 가상화폐의 트랜젝션 정보들을 모아서 하나의 블록을 생성하는데 이때 상기 블록의 내용을 해쉬함수에 넣어서 블록해쉬를 생성한다.The first user among the users on the network collects the transaction information of the virtual currency occurring on the network to generate one block. At this time, the contents of the block are inserted into the hash function to generate the block hash.
여기에서 해쉬함수는 임의 길이의 데이터를 입력하면 특정 길이의 데이터를 출력하는 함수로서, 입력을 알면 출력을 계산할 수 있으나 출력을 가지고 입력을 알아내는 것은 계산상 불가능하도록 되어 있다.Here, the hash function is a function that outputs data of a certain length when inputting data of arbitrary length. It is possible to calculate the output by knowing the input, but it is impossible to calculate the input with the output.
또한 블록해쉬는 블록의 내용을 해쉬함수에 넣은 결과로서 특정 길이의 랜덤한 데이터이다.A block hash is random data of a specific length as a result of putting the contents of a block into a hash function.
한편 블록의 내용에는 논스(Nonce)라는 일종의 쓰레기값이 포함되는데, 논스를 바꾸면 블록해쉬가 바뀌게 되어 있다.On the other hand, the content of the block includes a kind of garbage value called "Nonce". When the nonce is changed, the block hash is changed.
상기 제1사용자는 상기 논스를 바꿔가면서 상기 블록의 내용을 해쉬함수에 넣어서 여러 가지의 블록해쉬들을 생성한다.The first user changes the nonce and inserts the contents of the block into a hash function to generate various block hashes.
이때 상기 제1사용자는 자신이 생성한 블록해쉬의 제일 앞자리로부터 연이어 위치한 0들(이하 '생성 블록해쉬의 0들'이라 한다)의 개수가 소정의 기준값보다 더 큰 블록해쉬(이하 '생성 블록해쉬'라고 한다)를 생성한다.At this time, the first user generates a block hash (hereinafter referred to as a " generated block hash ") having a number of 0s (hereinafter, Quot;).
여기에서 상기 기준값은 가상화폐의 합의 프로토콜에서 정한 특정한 값으로서 생성 블록해쉬의 0들의 개수가 상기 기준값보다 더 많아야 함을 의미한다.Here, the reference value is a specific value defined by the protocol of the sum of virtual money, which means that the number of zeros of the generated block hash must be larger than the reference value.
이와 같이 네트워크상의 사용자가 가상화폐의 트랜젝션 정보들을 모아서 블록을 생성할 때에 해당 블록의 생성 블록해쉬의 0들의 개수가 가상화폐의 합의 프로토콜에서 정한 소정의 기준값보다 더 많아야 하는데 이를 "블록 생성 난이도"라 한다.In this way, when a user on the network collects transaction information of virtual money and generates a block, the number of zeros of the generated block hash of the corresponding block must be larger than a predetermined reference value set by the protocol of the sum of virtual money. This is called " do.
결국 상기 기준값은 블록 생성 난이도를 결정하는 값이다.As a result, the reference value is a value for determining the block generation difficulty level.
이러한 블록 생성 난이도는 2주마다 조정되는데, 예컨대 10분마다 1개의 블록이 생성될 정도의 블록 생성 난이도라면 하루 동안 24*6=144개의 블록이 생성되고 2주 동안 2016개의 블록이 생성되게 된다.This block generation difficulty is adjusted every two weeks. For example, if the block generation difficulty is such that one block is generated every 10 minutes, 24 * 6 = 144 blocks are generated for one day and 2016 blocks are generated for two weeks.
만일 블록을 2016개 생성했을 때 그 기간이 2주보다 짧으면 상기 기준 블록해쉬의 0들의 개수를 증가(난이도 증가)시키고, 그 기간이 2주보다 길면 상기 기준 블록해쉬의 0들의 개수를 감소(난이도 감소)시키는 방식으로 10분마다 블록이 1개씩 생성되도록 블록 생성 난이도가 조절된다.If the period is shorter than two weeks, the number of zeros of the reference block hash is increased (the degree of difficulty is increased). If the period is longer than two weeks, the number of zeros of the reference block hash is decreased The degree of difficulty of block generation is adjusted so that one block is generated every 10 minutes.
그런데 위와 같은 블록 생성 난이도를 지키면서 블록을 생성하려면 수많은 해쉬 계산을 해야 하므로 비트코인 채굴 전용 하드웨어(ASIC)나 대용량 연산에 특화된 GPU를 사용해야 하는 문제가 있다.However, in order to generate a block while maintaining the block generation difficulty as described above, many hash calculations must be performed. Therefore, there is a problem in that it is necessary to use a bit coin dedicated hardware (ASIC) or a GPU specialized for large capacity operation.
특히 이러한 가상화폐의 합의 알고리즘에 따르면 블록을 생성하는 채굴자에게 가상화폐의 보상이 집중되게 되고, 이에 따라 채굴자들 사이의 채굴 경쟁으로 인해 전기가 과도하게 낭비되는 문제점이 있다.Especially, according to the algorithm of the settlement of the virtual money, the compensation of the virtual money is concentrated on the miner who generates the block, and the electricity is excessively wasted due to the mining competition among the miners.
따라서 특정 조건을 만족하는 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴 보상을 분산시키고 채굴 경쟁을 완화시킬 필요가 있다.Therefore, it is necessary to disperse mining compensation and mitigate mining competition by allowing low - complexity block generation through collaboration between users and miners satisfying certain conditions.
이러한 문제를 해결하기 위한 본 발명의 실시예는 다음과 같은 구성을 가진다.An embodiment of the present invention for solving such a problem has the following configuration.
1단계로서 네트워크상의 사용자들 중 제1사용자로 하여금 네트워크상의 가상화폐의 트랜젝션을 소정 개수 모아서 하나의 블록을 생성하도록 한다.As a first step, a first user among users on the network collects a predetermined number of transactions of virtual money on the network to generate one block.
2단계로서 상기 제1사용자로 하여금 상기 블록에 대한 블록해쉬를 생성하도록 하는데, 이때 상기 제1사용자가 생성한 블록해쉬의 제일 앞자리로부터 연이어 위치한 0들(41, 이하 '생성 블록해쉬의 0들'이라 한다)의 개수가 가상화폐의 합의 알고리즘에서 정하는 소정의 기준값(30)보다 더 적은 블록해쉬(40, 이하 '생성 블록해쉬'라고 한다)를 생성하도록 한다.In
즉 2단계에서 상기 제1사용자는 상기 기준값(30)에 의하여 결정된 것보다 더 낮은 블록 생성 난이도의 블록해쉬를 생성한다.That is, in
예컨대 도 2에는 상기 기준값(30)이 10일때 생성 블록해쉬의 0들(41)의 개수가 6인 경우가 도시되어 있다.For example, FIG. 2 shows a case where the number of
3단계로서 상기 제1사용자로 하여금 상기 생성 블록해쉬(40)를 네트워크상에 전파하도록 한다.In a third step, cause the first user to propagate the generated
4단계로서 네트워크상의 사용자 중 제2사용자로 하여금 상기 생성 블록해쉬(40)에서 상기 생성 블록해쉬의 0들(41)을 모두 제외하고 남은 값 중 그 제일 앞자리로부터 상기 기준값(30)과 상기 생성 블록해쉬의 0들(41)의 개수의 차만큼의 자릿수를 가지는 값(42, 이하 '블록해쉬의 차이값'이라 한다)을 선택하도록 한다.In
예컨대 도 2에서 상기 블록해쉬의 차이값(42)은 10(기준값) - 6(생성 블록해쉬의 0들의 개수) = 4자리의 숫자인 "1234"가 된다.For example, in FIG. 2, the
5단계로서 상기 제2사용자로 하여금 상기 생성 블록해쉬(40) 중에서 상기 블록해쉬의 차이값(42)을 포함하면서 상기 블록해쉬의 차이값(42)의 앞, 뒤 또는 앞과 뒤의 자릿수를 포함하여 전체 자릿수가 소정의 비교값(50)만큼의 자릿수인 값(43, 44, 45, 이하 '블록해쉬의 소정값'이라 한다)을 특정한다.In
여기에서 상기 비교값(50)은 가상화폐의 트랜젝션에서 사용되는 공개키를 16진수로 표현할 때의 자릿수보다 같거나 작은 값에서 선택될 수 있으며, 이 경우 상기 기준값(30)과 상기 생성 블록해쉬의 0들(41)의 개수의 차보다 같거나 커야 한다.Here, the
예컨대 공개키는 64 Bytes(=512 bits)이고 16진수 표현으로는 128자리의 수이므로 상기 비교값(50)은 128보다 작은 숫자 중에서 6을 선택할 수 있다.For example, since the public key is 64 Bytes (= 512 bits) and the hexadecimal notation is 128 digits, the
이때 상기 기준값(30)이 10이고 상기 생성 블록해쉬의 0들(41)의 개수가 6이라면 상기 비교값(50)으로 선택된 6은 10(기준값) - 6(상기 생성 블록해쉬의 0들의 개수) = 4보다 크므로 적합한 비교값이 된다.If the
도 2에는 기준값(30)이 10, 생성 블록해쉬의 0들(41)의 개수가 6, 비교값(50)이 6인 경우를 도시하고 있다. 2 shows a case where the
이 경우 블록해쉬의 소정값(43, 44, 45)은 비교값(50)인 6의 자릿수를 가지는 값으로서 블록해쉬의 차이값(42)인 "1234"를 포함하는 값이므로 "001234", "012345" 또는 "123456"의 세 가지 값이 가능하다.In this case, the
6단계로서 상기 제2사용자로 하여금 자신의 공개키가 상기 블록해쉬의 소정값(43, 44, 45)을 포함하는 경우 상기 제1사용자에게 상기 블록을 요청하도록 한다.If the public key includes the predetermined value (43, 44, 45) of the block hash, the second user is requested to request the block by the first user.
7단계로서 상기 제2사용자로 하여금 상기 블록에 이어지는 다른 블록을 생성하도록 한다.In
이 경우 상기 제2사용자로 하여금 소정의 가상화폐를 보상받도록 하는 단계를 더 포함하는 것이 바람직하다.In this case, it is preferable that the step of causing the second user to receive a predetermined virtual currency is compensated.
이때 제2사용자는 상기 다른 블록 내에 상기 제2사용자의 공개키 소유를 증명하는 트랜잭션을 포함시킬 수 있다.At this time, the second user may include a transaction proving that the second user has the public key in the other block.
여기에서 공개키 소유의 증명은 해당 공개키 주소에 보유된 가상화폐를 다른 공개키 주소로 이동시키는 것이 될 수 있다.Here, the proof of ownership of the public key may be to move the virtual currency held at the public key address to another public key address.
한편 상기 제2사용자는 상기 블록과 상기 다른 블록을 네트워크에 전파할 수 있고, 네트워크상의 다른 사용자들은 이들 2개의 블록을 받아 한꺼번에 검증할 수 있다.Meanwhile, the second user can propagate the block and the other block to the network, and other users on the network can receive and verify the two blocks at once.
네트워크상의 다른 사용자들은 상기 블록의 블록 생성 난이도가 부족한 것을 확인하면 그 뒤에 이어지는 상기 다른 블록에서 공개키 소유의 증명을 찾을 수 있다.When other users on the network confirm that the block generation difficulty of the block is insufficient, the other blocks following the block can find the proof of possession of the public key.
만일 공개키 소유의 증명이 있다면 상기 블록의 블록 생성 난이도를 인정해 주고, 상기 다른 블록의 블록 생성 난이도는 무시할 수 있다.If there is a proof of ownership of the public key, the block creation difficulty of the block is recognized, and the block generation difficulty of the other block is ignored.
이 경우 채굴자가 공개키를 무제한으로 생성하여 보상을 독점하는 것을 막기 위해서 예컨대 다음과 같은 제약이 추가적으로 필요할 수 있다.In this case, for example, the following restrictions may be additionally required to prevent the digger from generating an unlimited number of public keys to monopolize the reward.
① 해당 공개키에 가상화폐의 잔고가 있어야 함.① There should be a balance of virtual currency in the public key.
② 해당 공개키에 가상화폐의 잔고가 생성된 시점이 1개월 이내이어야 함.② The time when the balance of virtual money is generated in the public key should be within one month.
이러한 구성의 본 발명에 따르면 상기 기준값에 의하여 결정된 것보다 더 낮은 블록 생성 난이도의 블록해쉬를 생성하는 것이 가능하게 되며, 그 대신에 상기 블록해쉬의 소정값을 포함하는 공개키를 가진 사용자가 있으면 블록 생성 난이도를 인정하고 해당 공개키의 소유자에게 보상을 줄 수 있게 된다.According to the present invention having such a configuration, it is possible to generate a block hash of a block generation difficulty lower than that determined by the reference value, and instead, if there is a user having a public key including a predetermined value of the block hash, It is possible to recognize the generation difficulty and reward the owner of the corresponding public key.
따라서 사용자와 채굴자의 협력을 통해 저난이도의 블록 생성을 허용함으로써 채굴자에게 집중된 채굴 보상을 분산시킬 수 있게 된다.Therefore, it is possible to distribute concentrated mining compensation to the miners by allowing the user to create blocks with low difficulty through cooperation of miners.
또한 채굴자들의 채굴 경쟁을 완화시켜 전기가 낭비되는 문제를 해결할 수 있게 된다.It can also solve the problem of wasting electricity by easing the mining competition of miners.
10 : 증여자의 트랜젝션 정보 11 : 증여자의 공개키
12 : 증여자의 전자서명 13 : 전송금액
14: 자물쇠 20 : 수증자의 트랜젝션 정보
21 : 수증자의 공개키 22 : 수증자의 전자서명
23 : 전송금액 24 : 자물쇠
30 : 기준값 40 : 생성 블록해쉬
41 : 생성 블록해쉬의 0들 42 : 블록해쉬의 차이값
43, 44, 45 : 블록해쉬의 소정값 50 : 비교값10: Transaction information of the presenter 11: Public key of the presenter
12: Digital signature of the presenter 13: Transfer amount
14: Lock 20: Voucher's transaction information
21: public key of the voucher 22: electronic signature of the voucher
23: Transfer amount 24: Lock
30: Reference value 40: Generation block hash
41: 0 of generated block hash 42: Difference value of block hash
43, 44, 45: predetermined value of the block hash 50: comparison value
Claims (4)
네트워크상의 사용자들 중 제1사용자의 단말기가 네트워크상의 가상화폐의 트랜젝션을 소정 개수 모아서 하나의 블록을 생성하는 단계와,
상기 제1사용자의 단말기가 상기 블록에 대한 블록해쉬를 생성하는데, 이때 상기 제1사용자의 단말기가 생성한 블록해쉬의 제일 앞자리로부터 연이어 위치한 0들(41, 이하 '생성 블록해쉬의 0들'이라 한다)의 개수가 가상화폐의 합의 알고리즘에서 정하는 소정의 기준값(30)보다 더 적은 블록해쉬(40, 이하 '생성 블록해쉬'라고 한다)를 생성하는 단계와,
상기 제1사용자의 단말기가 상기 생성 블록해쉬(40)를 네트워크상에 전파하는 단계와,
네트워크상의 사용자 중 제2사용자의 단말기가 상기 생성 블록해쉬(40)에서 상기 생성 블록해쉬의 0들(41)을 모두 제외하고 남은 값 중 그 제일 앞자리로부터 상기 기준값(30)과 상기 생성 블록해쉬의 0들의 개수의 차만큼의 자릿수를 가지는 값(42, 이하 '블록해쉬의 차이값'이라 한다)을 선택하는 단계와,
상기 제2사용자의 단말기가 상기 생성 블록해쉬(40) 중에서 상기 블록해쉬의 차이값(42)을 포함하면서 상기 블록해쉬의 차이값(42)의 앞, 뒤 또는 앞과 뒤의 자릿수를 포함하여 전체 자릿수가 소정의 비교값(50)만큼의 자릿수인 값(43, 44, 45, 이하 '블록해쉬의 소정값'이라 한다)을 특정하는 단계와,
상기 제2사용자의 공개키가 상기 블록해쉬의 소정값(43, 44, 45)을 포함하는 경우 상기 제2사용자의 단말기가 상기 제1사용자의 단말기에게 상기 블록을 요청하는 단계와,
상기 제2사용자의 단말기가 상기 블록에 이어지는 다른 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 가상화폐의 합의 알고리즘 개선방법.1. A method for improving an algorithm of a sum of virtual money,
The terminal of the first user among the users on the network collecting a predetermined number of transactions of virtual money on the network to generate one block,
The terminal of the first user generates a block hash for the block, and at this time, 0s 41 (hereinafter, referred to as '0s of the generated block hash') successively positioned from the first position of the block hash generated by the terminal of the first user Generating a block hash 40 (hereinafter, referred to as a " generated block hash ") whose number is smaller than a predetermined reference value 30 defined by a virtual money summing algorithm;
The terminal of the first user propagating the generated block hash 40 on the network,
The terminal of the second user among the users on the network removes all 0s 41 of the generated block hash from the generated block hash 40 from the first of the remaining values of the generated block hash, Selecting a value 42 (hereinafter, referred to as 'difference value of block hash') having a number of digits equal to the difference of the number of zeros;
The terminal of the second user may include the difference value 42 of the block hash among the generated block hash 40 and the number of digits before, after, or after the difference value 42 of the block hash, (43, 44, 45, hereinafter referred to as a "predetermined value of the block hash") whose number of digits is a predetermined number of digits of the comparison value (50)
The terminal of the second user requests the block of the first user to the terminal if the public key of the second user includes the predetermined value (43, 44, 45) of the block hash;
The terminal of the second user generating another block following the block. ≪ RTI ID = 0.0 > 11. < / RTI >
상기 비교값(50)은 가상화폐의 트랜젝션에서 사용되는 공개키를 16진수로 표현할 때의 자릿수보다 같거나 작은 값에서 선택되며, 상기 기준값(30)과 상기 생성 블록해쉬의 0들(41)의 개수의 차보다 같거나 큰 값인 것을 특징으로 하는 가상화폐의 합의 알고리즘 개선방법.The method according to claim 1,
The comparison value 50 is selected from a value equal to or smaller than the number of digits used to represent the public key used in the transaction of the virtual currency in hexadecimal notation. The reference value 30 and the value of the zero 41 of the generated block hash The sum of the number of the virtual moneys is equal to or larger than the difference of the number of the virtual moneys.
상기 제2사용자의 단말기가 소정의 가상화폐를 보상받는 단계를 더 포함하는 것을 특징으로 하는 가상화폐의 합의 알고리즘 개선방법.3. The method according to claim 1 or 2,
Further comprising the step of the terminal of the second user compensating for a predetermined virtual currency.
상기 제2사용자의 공개키에 가상화폐의 잔고가 생성된 시점이 1개월 이내인 경우에만 상기 제2사용자의 단말기가 소정의 가상화폐를 보상받는 것을 특징으로 하는 가상화폐의 합의 알고리즘 개선방법.The method of claim 3,
Wherein the terminal of the second user is compensated for a predetermined virtual currency only when the balance of the virtual currency is generated within the public key of the second user within one month.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018359A KR102000936B1 (en) | 2018-02-14 | 2018-02-14 | Method to improve consensus algorithm of virtual money |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018359A KR102000936B1 (en) | 2018-02-14 | 2018-02-14 | Method to improve consensus algorithm of virtual money |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102000936B1 true KR102000936B1 (en) | 2019-07-17 |
Family
ID=67512760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180018359A KR102000936B1 (en) | 2018-02-14 | 2018-02-14 | Method to improve consensus algorithm of virtual money |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102000936B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101827373B1 (en) * | 2017-08-29 | 2018-02-08 | 주식회사 더블체인 | Block window module having agreement algorithm for limiting mining, managing server and virtual money exchange system and method |
-
2018
- 2018-02-14 KR KR1020180018359A patent/KR102000936B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095720A (en) * | 2015-02-03 | 2016-08-12 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR101827373B1 (en) * | 2017-08-29 | 2018-02-08 | 주식회사 더블체인 | Block window module having agreement algorithm for limiting mining, managing server and virtual money exchange system and method |
Non-Patent Citations (1)
Title |
---|
인터넷 카탈로그(HewlettPackard Enterprise), "2. 비트코인 채굴과 채굴 과정(페이지 5, 27 참조)" (2017.11)* * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7221355B2 (en) | Method and Apparatus for Distributed Database Containing Anonymous Entries | |
JP7480222B2 (en) | Method and system for efficient transfer of cryptocurrency associated with payroll payments on a blockchain resulting in an automated payroll payment method and system based on smart contracts | |
CN110337665B (en) | System and method for information protection | |
CN110089069B (en) | System and method for information protection | |
CN109937557B (en) | System and method for information protection | |
CN110730963B (en) | System and method for information protection | |
US10700850B2 (en) | System and method for information protection | |
WO2019109003A1 (en) | Blockchain system for confidential and anonymous smart contracts | |
AU2016202841A1 (en) | Device, method and system for virtual asset transactions | |
CN110419053A (en) | System and method for information protection | |
CN110278266B (en) | Resource processing method and device based on block chain | |
KR20190093011A (en) | The block-chain system with enhanced security and the method of generating a data block using a double block-chain structure | |
CN114631110A (en) | Distributing digital assets using blockchain transactions | |
KR102000936B1 (en) | Method to improve consensus algorithm of virtual money | |
Van Hee et al. | A new digital currency system | |
Bhatt | What’s new in computers: Cryptocurrencies: An introduction | |
İşcan et al. | A Product Production and Transfer Application with Blockchain | |
JP2024099697A (en) | Method and system for efficient transfer of cryptocurrency associated with payroll payments on a blockchain resulting in an automated payroll payment method and system based on smart contracts | |
WO2021033026A1 (en) | Techniques for enhanced data privacy in smart contracts for royalty distribution via a distributed ledger network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |