KR102077397B1 - Method and system for connecting chain based on dynamic time delay in proof of population based blockchain - Google Patents
Method and system for connecting chain based on dynamic time delay in proof of population based blockchain Download PDFInfo
- Publication number
- KR102077397B1 KR102077397B1 KR1020180085539A KR20180085539A KR102077397B1 KR 102077397 B1 KR102077397 B1 KR 102077397B1 KR 1020180085539 A KR1020180085539 A KR 1020180085539A KR 20180085539 A KR20180085539 A KR 20180085539A KR 102077397 B1 KR102077397 B1 KR 102077397B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- transaction
- chain
- merger
- delay time
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 6
- 108091028732 Concatemer Proteins 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 14
- 238000005065 mining Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000001186 cumulative effect Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004900 laundering Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 201000004569 Blindness Diseases 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- 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
-
- 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/22—Payment schemes or models
-
- 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/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- 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
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명의 실시예들은 PoP 기반 블록체인에서의 동적 시간 지연 기반의 체인 연결 방법 및 시스템을 제공한다. 일실시예에 있어서, 블록체인 네트워크에 참여하는 노드의 체인 연결 방법은 상기 블록체인 네트워크의 병합자에 의해 생성된 블록을 수신하는 단계, 상기 수신된 블록에 대한 동적 지연 시간을 산출하는 단계 및 상기 병합자에 의해 생성된 이전 블록의 생성 시각과 상기 수신된 블록의 생성 시각의 차이와 상기 동적 지연 시간과의 비교를 통해 상기 수신된 블록의 유효성을 검증하는 단계를 포함할 수 있다.Embodiments of the present invention provide a dynamic time delay based chain connection method and system in a PoP based blockchain. In one embodiment, a method of chaining nodes participating in a blockchain network may include receiving a block generated by an amalgamator of the blockchain network, calculating a dynamic delay time for the received block, and And validating the received block by comparing the difference between the generation time of the previous block generated by the concatemer and the generation time of the received block and the dynamic delay time.
Description
아래의 설명은 PoP 기반 블록체인에서의 동적 시간 지연 기반의 체인 연결 방법 및 시스템을 제공한다.The following description provides a dynamic time delay based chain connection method and system in a PoP based blockchain.
사토시 나가모토(Satoshi Nakamoto)의 기발한 생각으로 인해, p2p 공개 장부는 익명의 네트워크 내에서 구현 가능한 것으로 보인다. 임의의 인터넷 유저는 네트워크에 참여하고 그들의 컴퓨팅 능력 또는 작업 증명(proof-of-work)를 제공함으로써 p2p 네트워크에 기여할 수 있다. 작업 증명은 익명의 참가자들에 의한 영리한 1 CPU 당 1표 구현이고, 이는 비트코인 장부가 불법적인 변형이 되지 않도록 한다. 그들의 작업에 대해 노드들을 보상하기 위하여, 비트코인이라 불리는 암호화폐가 발행되고 각 노드들에게 주어진다. 예를 들어, 한국공개특허 제10-2016-0024185호는 SE(Secure Element)를 이용하여 암호화폐를 관리하는 시스템 및 그 방법에 대해 개시하고 있다.Because of Satoshi Nakamoto's brilliant idea, the p2p public ledger seems to be feasible within an anonymous network. Any Internet user can contribute to a p2p network by participating in the network and providing their computing power or proof-of-work. The proof-of-work is a clever one vote per CPU by anonymous participants, which ensures that the Bitcoin book is not an illegal variant. To reward the nodes for their work, a cryptocurrency called Bitcoin is issued and given to each node. For example, Korean Patent Laid-Open No. 10-2016-0024185 discloses a system and method for managing cryptocurrency using Secure Element (SE).
그러나, 장부 및 암호화폐의 그 익명성은 그 기술이 법정화폐 경제에서 사용되는 것을 막는다. 암호화폐들은 자금 세탁 또는 조세 회피를 위해 사용될 지라도 추적 불가능하며, 암호화폐들의 가치는 안정적이지 않으며 격렬히 요동친다.However, the anonymity of books and cryptocurrencies prevents the technology from being used in the fiat currency economy. Cryptocurrencies are untraceable, even if used for money laundering or tax avoidance, and their value is not stable and fluctuates violently.
PoP(Proof of Population) 기반의 블록체인 네트워크에서 병합자가 이전 블록의 생성 시간으로부터 동적 지연 시간 이내에 블록을 생성하지 못하도록 하는 블록의 체인 연결 규칙을 규정함으로써, PoP 기반의 블록체인에서 경합하는 체인을 처리할 수 있는 체인 연결 방법 및 시스템을 제공한다.In the PoP (Proof of Population) -based blockchain network, the block chaining rules of the block are prevented from being merged by the merger to create the block within the dynamic delay time from the creation time of the previous block, thereby handling the contention chains in the PoP-based blockchain. Provides a method and system for chain connection.
블록체인 네트워크에 참여하는 노드의 체인 연결 방법에 있어서, 상기 블록체인 네트워크의 병합자에 의해 생성된 블록을 수신하는 단계; 상기 수신된 블록에 대한 동적 지연 시간을 산출하는 단계; 및 상기 병합자에 의해 생성된 이전 블록의 생성 시각과 상기 수신된 블록의 생성 시각의 차이와 상기 동적 지연 시간과의 비교를 통해 상기 수신된 블록의 유효성을 검증하는 단계를 포함하는 체인 연결 방법을 제공한다.A method of chaining nodes participating in a blockchain network, the method comprising: receiving a block generated by an amalgamator of the blockchain network; Calculating a dynamic delay time for the received block; And validating the received block by comparing the difference between the generation time of the previous block generated by the merger and the generation time of the received block and the dynamic delay time. to provide.
일측에 따르면, 상기 동적 지연 시간을 산출하는 단계는, 상기 이전 블록으로부터 계산되는 다음 블록을 위한 최적 서명자들의 아이디들과 상기 수신된 블록의 서명에 참여하는 실제 서명자들의 아이디들간의 거리를 거리 함수를 통해 계산하고, 상기 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 할 수 있다.According to one side, calculating the dynamic delay time, the distance function between the IDs of the optimal signers for the next block calculated from the previous block and the IDs of the actual signers participating in the signature of the received block. And calculate the dynamic delay time to be proportional to the calculated distance exponentially, linearly, or stepwise.
다른 측면에 따르면, 상기 동적 지연 시간을 산출하는 단계는, 상기 이전 블록으로부터 계산되는 다음 블록을 위한 최적 병합자의 아이디와 상기 수신된 블록의 서명에 참여하는 실제 병합자의 아이디간의 거리를 거리 함수를 통해 계산하고, 상기 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 할 수 있다.According to another aspect, the calculating of the dynamic delay time may include calculating a distance between an ID of an optimal merger for a next block calculated from the previous block and an ID of an actual merger participating in a signature of the received block through a distance function. And calculating the dynamic delay time to be proportional to the calculated distance exponentially, linearly, or stepwise.
또 다른 측면에 따르면, 상기 동적 지연 시간을 산출하는 단계는, 상기 실제 병합자의 블록 생성 빈도에 기초하여 결정되는 난이도 변수와 상기 계산된 거리간의 곱에 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 할 수 있다.According to another aspect, the step of calculating the dynamic delay time, the dynamic to be exponentially, linearly or stepwise proportional to the product of the difficulty distance and the calculated distance determined based on the block generation frequency of the actual merger It may be characterized by calculating the delay time.
또 다른 측면에 따르면, 상기 동적 지연 시간을 산출하는 단계는, 최종 블록의 생성 시각과 현재 시각의 차이에 기초하여 결정되는 난이도 변수가 증가할수록 상기 동적 지연 시간이 증가하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 할 수 있다.According to another aspect, the calculating of the dynamic delay time may include calculating the dynamic delay time such that the dynamic delay time increases as a difficulty variable determined based on a difference between a generation time of a final block and a current time increases. It may be characterized by.
또 다른 측면에 따르면, 상기 유효성을 검증하는 단계는, 상기 수신된 블록의 시간 순서의 유효성, 상기 수신된 블록이 포함하는 트랜잭션의 유효성 및 상기 수신된 블록이 포함하는 서명의 유효성을 더 검증하는 것을 특징으로 할 수 있다.According to another aspect, the validating step further includes validating a validity of a time sequence of the received block, a validity of a transaction included in the received block, and a signature included in the received block. It can be characterized.
또 다른 측면에 따르면, 상기 체인 연결 방법은, 상기 유효성이 검증된 블록을 소프트포크에 의해 분리된 서로 다른 복수의 체인 각각에 연결하는 단계를 더 포함할 수 있다.According to another aspect, the chain connection method may further include connecting the validated block to each of a plurality of different chains separated by soft forks.
또 다른 측면에 따르면, 상기 체인 연결 방법은, 상기 유효성이 검증된 블록이 연결되어 소프트포크로부터 m(상기 m은 2 이상의 자연수) 개 이상의 블록이 연결된 체인이 존재하는 경우, 상기 서로 다른 복수의 체인 중 소프트포크로부터 m 개 미만의 블록이 연결된 체인을 삭제하는 단계를 더 포함할 수 있다.According to another aspect of the present invention, the chain linking method may include: when the validated blocks are connected and there are chains in which m or more blocks (m is a natural number of 2 or more) are connected from a soft fork, the plurality of different chains may be different. The method may further include deleting a chain having fewer than m blocks from the soft fork.
컴퓨터와 결합되어 상기 체인 연결 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.In combination with a computer, a computer program stored in a computer-readable recording medium for executing the chain linking method on a computer is provided.
상기 체인 연결 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록매체를 제공한다.Provided is a computer-readable recording medium having recorded thereon a program for executing the chain connection method on a computer.
블록체인 네트워크에 참여하는 노드에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 상기 블록체인 네트워크의 병합자에 의해 생성된 블록을 수신하고, 상기 수신된 블록에 대한 동적 지연 시간을 산출하고, 상기 병합자에 의해 생성된 이전 블록의 생성 시각과 상기 수신된 블록의 생성 시각의 차이와 상기 동적 지연 시간과의 비교를 통해 상기 수신된 블록의 유효성을 검증하는 노드를 제공한다.A node participating in a blockchain network, comprising: at least one processor implemented to execute computer readable instructions, wherein the at least one processor receives a block generated by an amalgamator of the blockchain network Calculates a dynamic delay time for the received block, compares the difference between the generation time of the previous block generated by the merger and the generation time of the received block, and the dynamic delay time. Provide a node to validate the block.
PoP(Proof of Population) 기반의 블록체인 네트워크에서 병합자가 이전 블록의 생성 시간으로부터 동적 지연 시간 이내에 블록을 생성하지 못하도록 하는 블록의 체인 연결 규칙을 규정함으로써, PoP 기반의 블록체인에서 경합하는 체인을 처리할 수 있다.In the PoP (Proof of Population) -based blockchain network, the block chaining rules of the block are prevented from being merged by the merger to create the block within the dynamic delay time from the creation time of the previous block, thereby handling the contention chains in the PoP-based blockchain. can do.
도 1은 본 발명의 일실시예에 따른 P2P 장부 프로토콜의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 서명된 블록 체인에 추가된 새로운 블록이 포함하는 정보의 예를 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 종전 블록에 기반하여 새로운 블록을 위한 서명자들이 선택하는 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 p2p 장부가 블록 위조(forking a block)에 대한 보호되는 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 네트워크 시스템의 동작 환경의 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 컴퓨터 장치의 내부 구성의 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 서명 방법의 예를 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 있어서, 거래 블록 추가 방법의 예를 도시한 흐름도이다.
도 9는 블록체인에서의 소프트포크와 블록의 확정 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 블록 유효성 검증 과정의 예를 도시한 흐름도이다.
도 11은 본 발명의 일실시예에 있어서, 유효성이 검증된 블록을 처리하는 과정의 예를 도시한 흐름도이다.1 is a diagram illustrating an example of a P2P ledger protocol according to an embodiment of the present invention.
2 is a diagram for one example of information included in a new block added to a signed blockchain according to one embodiment of the present invention.
FIG. 3 is a diagram for one example of selecting signers for a new block based on a previous block according to one embodiment of the present invention.
4 is a diagram illustrating an example in which a p2p book is protected against forking a block according to an embodiment of the present invention.
5 is a diagram illustrating an example of an operating environment of a network system according to an embodiment of the present invention.
6 is a diagram illustrating an example of an internal configuration of a computer device according to one embodiment of the present invention.
7 is a flowchart illustrating an example of a signature method in an embodiment of the present invention.
8 is a flowchart illustrating an example of a method for adding a transaction block according to an embodiment of the present invention.
9 is a diagram illustrating a soft fork and an example of a block in a block chain.
10 is a flowchart illustrating an example of a block validation process according to an embodiment of the present invention.
11 is a flowchart illustrating an example of a process of processing a validated block according to an embodiment of the present invention.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.
본 발명의 실시예들에서는 어떠한 암호화폐를 발행하지 않고도 법정화폐에 대한 보편적인 금융 플랫폼을 구현하는 p2p 장부에 대한 기술들을 설명한다. 이에 대해, 본 발명의 실시예들에서는 실명 신원에 기반하는 "인구 증명(Proof of Population)"이라는 새로운 개념을 도입한다. 그것은 은행들을 위한 p2p 장부로서 사용될 수 있고, 결제를 위한 영향력 있는 도구로서 사용될 수 있고, 임의의 금융 거래(transaction)들을 위해 사용될 수 있다. 나아가, 그것은 제3자에 의해 장악되었던 비용을 중앙 집중화될 수 없는 피어들에게 분산시킨다. 에너지 요구가 매우 낮기 때문에 본 발명의 실시예들에 따른 소프트웨어를 스마트폰이나 개인용 컴퓨터 상에 실행하는 것이 가능하다.Embodiments of the present invention describe techniques for a p2p ledger that implements a universal financial platform for fiat currencies without issuing any cryptocurrencies. In contrast, embodiments of the present invention introduce a new concept of "Proof of Population" based on real name identity. It can be used as a p2p ledger for banks, as an influential tool for settlement, and can be used for any financial transactions. Furthermore, it distributes the costs held by third parties to peers that cannot be centralized. Since the energy requirements are very low, it is possible to run software according to embodiments of the present invention on a smartphone or personal computer.
또한, PoP 기반의 블록체인에서 블록의 체인 연결 규칙을 규정함으로써 PoP 기반의 블록체인에서 경합하는 체인들을 처리하는 체인 연결 방법 및 시스템을 설명한다.In addition, a chain linking method and system for processing contention chains in a PoP-based blockchain by defining a block chaining rule of a block in a PoP-based blockchain will be described.
1. 소개1. Introduction
제3 신뢰 기관은 신뢰받은 방법으로 기록 거래를 하기 위하여 필요한 것으로 가정된다. 이 모델에서, 참가자들이 기록들이 변형되지 않는다는 것을 믿기 위해서는 신뢰가 필요가 필요하다. 신뢰를 제공하는 대신에, 제3 신뢰 기관은 참가자들로부터 거래 비용을 받는다. 이는 네트워크 내의 참가자들이 일반적으로 은행과 같은 제3 신뢰 기관을 운용하는 비용에 동의한다면 잘 이루어진다. 그러나, 기술적, 경제적, 정치적으로 거래를 보호하는 제3 신뢰 기관을 설치하는 것이 불가능하다면, 분산되지만 위조가 불가능한 온라인 거래 기록이 필요하다. 또한, 이미 제3 신뢰 기관이 존재하더라도, 제3 신뢰 기관을 유지하는 비용이 너무 커서 기술적 또는 경제적으로 불가피한 것이 아니라 부당한 이익을 창출할 때, 구현 가능하다면, 분산된 장부를 사용하는 것이 더 바람직하다. 분산된 장부를 제공하는 것과 제3 기관을 제거하는 것은 제3 기관에 의존하지 않는 또 다른 경쟁 기술을 제공함으로써 신뢰 기관에 의해 운영되는 시장에 큰 영향을 미친다.A third trusted authority is assumed to be required to conduct records transactions in a trusted manner. In this model, participants need trust to believe that the records are not modified. Instead of providing trust, the third trust authority receives transaction costs from the participants. This is well done if the participants in the network generally agree on the cost of running a third party, such as a bank. However, if it is impossible to establish a third-party trust institution that technically, economically and politically protects the transaction, then a decentralized but not counterfeit online transaction record is needed. Furthermore, even if a third trust authority already exists, it is more preferable to use a distributed ledger if feasible, when the cost of maintaining the third trust authority is too large to create an unfair advantage, rather than technically or economically unavoidable. . Providing decentralized ledgers and eliminating third parties has a significant impact on markets run by trust institutions by providing another competitive technology that does not rely on third parties.
2009년, 비트코인은 중앙 집중화된 화폐 주조국을 제거하고 온라인 화폐 시스템에 대한 장부를 탈중앙화한다는 개념을 제공했다. 비트코인 네트워크에서 코인들은 피어들이 하나의 세계적인 불변 장부를 관리함으로써 분산된 방법으로 발행된다. 장부가 변하지 않도록 하기 위하여, 나카모토는 익명의 피어들의 투표에 의해 장부 내 불일치를 해결할 수 있는 새로운 투표 메커니즘을 개발했다. 인터넷 내의 노드들은 정확하게 구별될 수 없기 때문에, 1노드 당 1투표를 실현하기 위한 메커니즘이 요구된다. IP 주소와 같은 신원들은 쉽게 장악될 수 있으므로, 비트코인은 1CPU 당 1투표라는 추상적인 개념을 효과적으로 구현하기 위하여 소위 작업 증명(proof-of-work, PoW)을 사용한다.In 2009, Bitcoin provided the concept of removing the centralized currency foundry and decentralizing the books of the online currency system. In the Bitcoin network, coins are issued in a distributed way by peers managing a single global constant ledger. To keep the books unchanged, Nakamoto has developed a new voting mechanism that resolves discrepancies in the books by voting by anonymous peers. Since nodes in the Internet cannot be accurately distinguished, a mechanism for realizing one vote per node is required. Because identities such as IP addresses can be easily captured, Bitcoin uses so-called proof-of-work (PoW) to effectively implement the abstract concept of one vote per CPU.
현재의 PoW 기반 암호화폐 시스템들에는 그것들이 거래를 위한 실물화폐로서 사용되지 못하게 하는 몇몇 기술적인 한계들이 있다.Current PoW-based cryptocurrency systems have some technical limitations that prevent them from being used as real currency for trading.
- 에너지: 디지코노미스트(Digiconomist)에 의한 비트코인 에너지 소비 지수에 따르면, 비트코인에 의해 전력을 공급받을 수 있는 미국 가정의 수는 4,049,860 가정이다.Energy: According to the Bitcoin Energy Consumption Index by Digiconomist, the number of US homes powered by Bitcoin is 4,049,860.
- 느린 승인: 이론적으로 블록이 완성되는 데 적어도 60분이 걸리지만, 일반적으로 제한된 블록 크기 및 대량 거래에 실질적으로 더 의존한다.Slow acknowledgment: In theory, blocks take at least 60 minutes to complete, but generally rely more substantially on limited block size and bulk transactions.
- 확장 가능성: 초 당 처리될 수 있는 거래의 개수는 단지 4-20개이다. 이는 큰 스케일의 네트워크를 위한 후보군이 될 수 없다.Scalability: Only 4-20 transactions can be processed per second. This cannot be a candidate for a large scale network.
PoW를 사용하는 대신, 지분 증명(proof-of-stake, PoS)을 사용하는 암호화폐 시스템들이 있다. 지분 소유자들이 투표하기 위해 그들의 지분을 거는 PoS 기반 시스템은 이른바 상기 문제들을 해결한다. PoS 공격의 유효성에 대해 여전히 논란들이 있지만, 몇몇 체인들을 동시 위조하는 것이 가능하고, 심지어 수익성이 있다고 주장된다.Instead of using PoW, there are cryptocurrency systems that use proof-of-stake (PoS). PoS-based systems in which stakeholders stake their stake to vote so-called solve the above problems. There is still debate about the effectiveness of PoS attacks, but it is argued that it is possible to forge several chains simultaneously and even profitable.
이제 암호화폐의 다른 측면들인 익명성과 탈중앙화에 대해 알아본다.Now let's look at the other aspects of cryptocurrency: Anonymity and Decentralization.
- 비 투명성: 모든 거래들은 소유자가 확인될 수 없는 임의의 주소들 하에서 처리된다.Non-Transparency: All transactions are processed under arbitrary addresses whose owner cannot be verified.
- 비 탈중앙화: 파워 또는 지분을 해싱하는 것은 소규모 그룹인 사람들에 의해 장악됐다.Non-decentralization: Hashing of power or equity is dominated by small groups of people.
1.1. 투명성1.1. Transparency
암호화폐들은 실물화폐만큼 추적 불가능하도록 온라인 화폐 시스템을 효율적으로 실현한다. 비트코인이 도입된 이후로, 암호화폐에 많은 초점이 쏠렸고, 이는 여러 가지의 암호화폐 시스템들의 홍수(암호화폐의 수는 약 1,300 여 개)를 촉발했다. 그러나, 블록 체인(block chain) 개념을 사용하는 거의 모든 암호화폐들은 추적이 불가능하다. 실세계에서의 현금이 자금 세탁 및 조세 회피와 같은 범죄에 사용될 때조차 추적하는 것이 쉽지 않은 것처럼, 암호화폐들은 거래소에서 실물화폐로 교환될 때를 제외하고는 추적할 수 없다. 그러나, 현대 사회는 신용 카드, 체크 카드 및 급여로 인하여 보다 투명한 경제로 나아간다. 현재의 현금 모델은 이러한 대안제들에 의해 점진적으로 사라지고 있다. 그러나, 비트코인으로 대표되는 암호화폐들은 우리가 나아가고 있는 방향과 반대로 나아간다. 그 불투명성을 보여주는 한 사례는 2017년 3월, 미국 증권거래위원회(US SEC)에서 거래의 불투명성 때문에 윙클보스 비트코인 트러스트(Winklevoss Bitcoin Trust)가 상장되지 않도록 결정한 것이다.Cryptocurrencies efficiently realize online money systems so that they are not traceable as real currencies. Since the introduction of Bitcoin, much focus has been placed on cryptocurrencies, which has triggered a flood of cryptocurrency systems (about 1,300 cryptocurrencies). However, almost all cryptocurrencies using the block chain concept are untraceable. Just as cash in the real world is not easy to track even when used for crimes such as money laundering and tax avoidance, cryptocurrencies can't be tracked except when they are exchanged for real currency on an exchange. However, modern society is moving toward a more transparent economy due to credit cards, check cards and pay. The current cash model is gradually being eliminated by these alternatives. However, the cryptocurrencies represented by Bitcoin go in the opposite direction. An example of that opacity was in March 2017 that the US SEC decided not to list the Winklevoss Bitcoin Trust due to the opacity of the transaction.
1.2. 탈중앙화1.2. Decentralization
본 발명의 실시예들에 따른 p2p 플랫폼은 어떤 암호화폐도 생성하지 않기 때문에, 탈중앙화란 네트워크에 대한 기여와 보상이 참여자들에게 균일하게 분배되는 것을 의미한다. Bolckchain.info에 따르면, 상위 7개의 채굴 그룹들은 세계 해싱 파워의 70% 이상을 점유하고 있다. 최근에 암호화폐들은 처음 제안됐을 때 기대되었던 것만큼 탈중앙화되지는 않은 것으로 추측된다. 지분 증명은 또한 고지분 소유자들이 장부를 제어하도록 하며, 이중 지급(double spending)이 가능한 것으로 보고된다. 소규모 그룹인 사람들에 의한 중앙화를 방지하기 위하여, 1인-1투표만이 해결책이고 다른 대안들은 단지 유사한 것들에 불과하다.Since the p2p platform according to embodiments of the present invention does not generate any cryptocurrency, decentralization means that the contributions and rewards for the network are distributed evenly to the participants. According to Bolckchain.info, the top seven mining groups occupy more than 70% of the world's hashing power. It is speculated that cryptocurrencies have not been as decentralized as expected when they were first proposed. Proof of ownership also allows high- stakeholders to control their books and reports that double spending is possible. To prevent centralization by small groups of people, one-on-one voting is the solution and other alternatives are just similar ones.
1.3. 적은 수의 그룹들에 의해 장악될 수 없는 고-탈중앙화된 공개 장부들 및 거래 상의 고-투명성 공개 장부들이라는 요구를 만족하기 위한 본 발명의 실시예들에 따른 아이디어는 실명 기반 투표를 사용하는 것이다. 금융 거래들이 실명으로 수행되어야 한다는 것을 고려할 때, 본 발명의 실시예들에서는 익명의 네트워크를 고수할 필요가 없다. 본 발명의 실시예들에서는 장부 상 프라이버시를 보호하는 반면, 진정한 탈중앙화 및 높은 수준의 투명성을 모두 성취할 수 있는 p2p 금융 플랫폼을 제안한다. 비효율적인 PoW 기반 투표를 사용하는 대신에, 본 발명의 실시예에 따른 시스템은 훨씬 더 안전하고, 빠르고, 확장 가능하며, 친환경적인 인구 증명(proof-of-population, PoP) 기반 투표를 사용한다.1.3. The idea according to embodiments of the present invention to satisfy the requirement of high-decentralized open books and high-transparent open books on a transaction that cannot be secured by a small number of groups is to use blindness-based voting. will be. Given that financial transactions must be conducted in real name, there is no need to adhere to an anonymous network in embodiments of the present invention. Embodiments of the present invention propose a p2p financial platform that can achieve both true decentralization and high levels of transparency while protecting book-level privacy. Instead of using inefficient PoW based voting, the system according to an embodiment of the present invention uses a much safer, faster, scalable and eco-friendly proof-of-population (PoP) based voting.
이제, 암호화폐에 대해 논의한다. 비트코인 설계자들의 목표는 거창하지만 비트코인은 화폐가 될 수 없다. 사람들은 상품을 구매하기 위해 그것을 사용하길 원하지 않고, 투기하는 것을 원하며, 이에 대한 여러 이유가 있다. 하나는 그것이 실물화폐에서 분리되어 독자적인 생태계에서 기능한다는 것이며, 다른 하나는 높은 채굴 비용이다.Now let's discuss cryptocurrencies. The goal of bitcoin designers is huge, but bitcoin cannot be a currency. People don't want to use it to buy a product, they want to speculate, and there are many reasons for this. One is that it separates from real money and functions in its own ecosystem, and the other is high mining costs.
- 폐쇄된 생태계: 화폐 장부 기술들은 채굴자들의 경제적인 인센티브를 안정적으로 유지하기 위하여 폐쇄된 생태계에 의존한다. 즉, 암호화폐는 보상이고 거래는 오직 암호화폐로 이루어진다.Closed ecosystems: Bookkeeping technologies rely on closed ecosystems to maintain stable economic incentives for miners. In other words, cryptocurrency is a reward and transactions are made only of cryptocurrencies.
- 채굴 비용: PoW 기반 장부들은 높은 채굴 비용 때문에 소액 거래를 처리하는 데 적합하지 않다.Mining costs: PoW-based books are not suitable for processing small transactions because of high mining costs.
1.4. 암호화폐의 폐쇄된 생태계1.4. Closed ecosystem of cryptocurrency
현재 암호화폐 네트워크들에서, 보상은 네트워크 내에서 암호화폐로 주어지며, 장부 상 거래들은 오직 같은 암호화폐로 이루어진다. 이러한 폐쇄된 생태계는 공격자들의 인센티브에 대한 가치를 매우 안정적으로 유지하는 효과를 주지만, 다른 한편 장부의 사용을 오직 암호화폐와 관련된 거래들로 제한한다. 장부 내 거래들을 위한 화폐와 보상에 대한 암호화폐가 다르다면, 경제적인 인센티브는 채굴자들을 유인할 수 없다. 비트코인 장부가 USD 거래들을 처리하고, 거래 비용 및 코인베이스(coinbase)를 포함하는 보상들은 비트코인으로 주어진다고 가정하자. 비트코인의 가치가 급락하고 보상들이 블록들 내 거래들보다 더 작아질 때, 이러한 화폐 분리는 명백하게 공격자들로 하여금 정직하게 채굴하지 않도록 할 것이고, 잘못된 행동(거래 블록들을 위조하는 것)을 하도록 장려한다. 가치가 매우 높을 때, 거래 비용은 너무 높아서 소액 거래들을 처리하기에 너무 높을 것이다. 이는 대부분의 암호화폐들이 그들의 네트워크에서 재귀적으로 정의되는 이유이다. 거래를 위한 화폐와 보상을 위한 화폐를 분리할 수 없음에도 불구하고, 채굴자들에게 실제의 경제적인 인센티브를 주기 위하여 화폐 가치를 평가하는 방법이 있음에 틀림없다. 암호화폐 거래소들은 이러한 목적을 위해 존재하지만, 암호화폐들의 가치는 투기에 의해 급변하고 있다.In current cryptocurrency networks, rewards are given in cryptocurrencies within the network, and book transactions only consist of the same cryptocurrency. This closed ecosystem has the effect of keeping the value of incentives of attackers very stable, but on the other hand, restricts the use of books only to transactions related to cryptocurrencies. Economic incentives cannot attract miners if the currency for books and transactions is different. Suppose that the bitcoin ledger processes USD transactions, and the rewards, including transaction costs and coinbase, are given in bitcoin. When the value of Bitcoin plummets and rewards become smaller than transactions in blocks, this monetary separation will obviously prevent attackers from mining honestly, encouraging them to do something wrong (forge trading blocks). do. When the value is very high, the transaction cost will be so high that it will be too high to handle small transactions. This is why most cryptocurrencies are defined recursively in their networks. Despite the inability to separate the currency for trade and the currency for reward, there must be a way to evaluate the value of money to give miners real economic incentives. Cryptocurrency exchanges exist for this purpose, but the value of cryptocurrencies is changing rapidly due to speculation.
1.5. 채굴 비용1.5. Mining cost
다른 한편, PoW를 풀어내며 블록들을 채굴하기 위한 비용은 최근 매우 높아서 적은 양의 거래를 융통하는 데 사용하기가 어렵다. 예를 들어, 초대형 채굴 풀인 AntMiner S9에 의한 한 블록 채굴은 하드웨어 비용을 고려하지 않더라도 19,598.50 USD의 비용이 든다. https://grisha.org/blog/2017/09/28/electricity-cost-of-1- bitcoin/. 그러므로, 우리가 소액 거래를 처리하는 데 비트코인을 사용할 수 없다는 점은 꽤 명백하다.On the other hand, the cost of mining blocks by unleashing PoW has been very high lately, making it difficult to use to finance small transactions. For example, a block mining by AntMiner S9, a very large mining pool, costs $ 19,598.50 without considering hardware costs. https://grisha.org/blog/2017/09/28/electricity-cost-of-1- bitcoin /. Therefore, it is quite clear that we cannot use Bitcoin to process small transactions.
결과적으로, 실물 경제와 분리된 폐쇄된 생태계 및 높은 채굴 비용은 PoW/PoS 기반 암호화폐들이 실물 거래에 적용될 수 없게 한다. 이를 극복하기 위하여, 우리는 암호화폐 대신에 법정화폐(fiat currency) 사용을 제안한다. 이것 또한 장부 상 화폐의 재귀적인 사용이지만, 이러한 설계 선택은 폐쇄된 생태계 문제를 단순화한다. 본 발명의 실시예들에 따른 장부 상 화폐는 이미 현실의 바로 그 화폐(법정화폐)이다. 암호화폐를 법정화폐와 교환하기 위해서 어떠한 거래소도 필요하지 않다. 어떠한 암호화폐도 본 발명의 실시예들에 따른 시스템에서 생성되지 않는다. 본 발명의 실시예들에 따른 p2p 플랫폼(사실상, 임의의 암호화폐의 거래를 처리하기 위해 사용될 수 있는)이 특정 종류의 화폐에 제한되지 않을지라도, 본 발명의 실시예들에 따른 플랫폼 상에서 화폐에 대한 분산된 장부를 운영하는 방법을 보여줄 것이다. 장부 상에 법정화폐를 취급하기 때문에, 그것은 가치 변동과 상관없이 상업 및 온라인, 오프라인 지불을 위해 자유로이 사용될 수 있다. 블록을 만들기 위한 증명을 생성하는 비용은 PoW와 비교할 때 매우 평범한, 서명들을 생성하고 모으는 것이다. 그러므로, 채굴자들을 위한 경제적인 인센티브는 클 필요가 없으며, 이는 소액 거래들이 네트워크 상에서 효율적으로 처리될 수 있다는 것을 의미한다.As a result, closed ecosystems and high mining costs that separate from the real economy make PoW / PoS-based cryptocurrencies inapplicable to real trading. To overcome this, we propose to use fiat currency instead of cryptocurrency. This is also a recursive use of book money, but this design choice simplifies the problem of closed ecosystems. Book currency according to embodiments of the present invention is already the very currency (legal currency) of reality. No exchange is required to exchange cryptocurrencies for fiat. No cryptocurrency is generated in the system according to embodiments of the present invention. Although the p2p platform according to embodiments of the present invention (which in fact may be used to process transactions of any cryptocurrency) is not limited to a particular kind of currency, It will show you how to run a distributed ledger. Because it treats fiat money on books, it can be used freely for commercial, online and offline payments regardless of value changes. The cost of generating proof to make a block is to generate and collect signatures, which are very common when compared to PoW. Therefore, economic incentives for miners need not be large, which means that small transactions can be efficiently processed on the network.
전술한 모든 문제들을 해결함으로써, 본 발명의 실시예들에 따른 p2p 금융 플랫폼은 은행들이 금융 상품을 판매하도록 할 수 있으며, 소비자들로 하여금 중앙 서버에서 운영되지 않는 계좌를 개설하도록 할 수 있다.By solving all the above-mentioned problems, the p2p financial platform according to embodiments of the present invention can enable banks to sell financial products, and allow consumers to open accounts that do not operate on a central server.
2. 배경2. Background
비트코인에 의해 해결된 문제는 BGP(Byzantine Generals Problem)라고 불리며, 이는 불완전한 통신 네트워크 및 불완전한 대중들이라는 가정 하에서, 대중들 사이에서의 일치를 만드는 것이다. 비트코인은 인터넷 상의 '같지 않은' 익명의 사용자들 사이에서 BGP를 해결하기 위한 시도이다. 비트코인 네트워크는 인터넷으로 연결된 참여자들이 익명성을 유지한 채 네트워크에 자유롭게 참여하고 떠날 수 있는 인터넷상의 불변의 공개 장부를 만들기 위해 구축되었다. 심지어 더 심하게, 그들은 그들 고유의 이익을 찾기 위하여 공개 장부를 훼손(corrupt)시키려고 한다. 이때, 훼손에 의해 동시에 존재하는 다수의 장부들이 있을 가능성이 있다. 단일한 공개 장부에 합의를 하기 위한 명확한 방법은 투표이지만, 익명의 사용자들 사이에서 신뢰받고 안전한 방법으로 투표하는 것은 쉽게 수행될 수 없다. 단일한 장부를 위해 투표하는 방법은 인터넷 내 BGP와 관련된다. 비트코인은 1투표를 위한 1CPU를 효율적으로 구현하는 작업 증명(PoW)으로 문제를 해결한다. PoW와 함께 다수의 거래들을 보유하는 블록들은 블록 체인으로 구성되는 하나의 공개 장부에 연결된다. PoW는 "채굴자"라고 불리는 네트워크 참여자들에 의해 계산되고 채굴자들은 암호화폐의 형태로 거래 비용 및 코인베이스(coinbase)를 보상받는다. 장부를 변형하기 위하여, 공격자들은 현존 블록 체인에 다른 거래를 더하고, 현존 체인을 찾아내어(catch up) 치환(override)하는 PoW를 더함으로써 체인을 포크(fork)시킨다. 이것을 하기 위해, 공격자는 블록 체인에 대한 PoW를 계산하기 위하여 더 많은 컴퓨팅 파워를 가져야 한다. 만들어진 블록 체인이 현존 체인보다 길어지는 지점에 다다를 때, 공격자는 위조한 체인을 공개하고 이 새로운 체인으로 치환할 것을 요청한다. 공격자 또는 공격자들의 그룹은 공격을 성공하기 위하여 51% 또는 그 이상의 컴퓨팅 파워를 가져야 한다(51% 공격).The problem solved by Bitcoin is called the Byzantine Generals Problem (BGP), which creates a consensus among the public, under the assumption that it is an incomplete communication network and an incomplete public. Bitcoin is an attempt to resolve BGP among `` unlike '' anonymous users on the Internet. The Bitcoin network was created to create a permanent public ledger on the Internet that allows Internet-connected participants to remain free and join and leave the network anonymously. Even worse, they are trying to corrupt their open books in search of their own interests. At this time, there is a possibility that there are a plurality of books that exist simultaneously due to damage. The obvious way to agree on a single open book is to vote, but voting in a trusted and secure way among anonymous users cannot be easily performed. The method of voting for a single book is related to BGP on the Internet. Bitcoin solves the problem with Proof of Work (PoW), which efficiently implements 1 CPU for one vote. Blocks holding multiple transactions with PoW are linked to one public ledger organized by blockchain. PoW is calculated by network participants called "miners" and miners are rewarded with transaction costs and coinbase in the form of cryptocurrencies. To modify the book, attackers fork the chain by adding other transactions to the existing blockchain and adding PoWs that catch up and override the existing chain. To do this, the attacker must have more computing power to calculate the PoW for the blockchain. When the created blockchain reaches a point longer than the existing chain, the attacker opens the forged chain and asks to replace it with this new chain. The attacker or group of attackers must have 51% or more computing power to succeed in the attack (51% attack).
익명의 네트워크 상 투표의 어려움은 비트코인의 PoW 기반 블록 체인의 가치이다. 그러나, 익명성은 자금 세탁 및 조세 회피 관점에서 실물 금융 플랫폼에 대한 블록 체인 기술의 적용을 방해한다. 그러므로, 금융 서비스 부문의 기구들은 '프라이빗 블록 체인(private block chain)' 및 '컨소시움 블록 체인(consortium block chain)' 기술에 흥미를 갖는다. 프라이빗/컨소시움 블록 체인 네트워크에서, 이해 관계가 있는 개체들은 프라이빗/컨소시움 블록 체인에 참여하고 훼손된 장부는 일부 개체에 손실을 주기 때문에, 개체들은 어떠한 '코인' 또는 '채굴' 보상 없이도 네트워크를 운영하는 것이 가능하다. 블록 체인의 진정한 의미는 이해 관계 없는 익명의 참여자들 사이에서 합의를 만들 수 있는 공개 장부에 있다는 관점에서, 참여 노드들의 신원이 서로에게 알려지고 노드들이 기구들에 의해 운영되는 프라이빗/컨소시움 블록 체인들은 단지 보안 목적을 위한 데이터베이스들의 중복된 분산으로 여겨질 수 있다. 본 발명의 실시예들에서는 프라이빗 또는 컨소시움 블록 체인 내 개체들이 실제 신원을 가지며, 서로 쉽게 신원 보장이 가능하고, 이에 따라 데이터베이스에서 불일치가 발생할 때 PoW/PoS 없이 쉽게 합의할 수 있다는 점에 주목한다. 프라이빗 또는 컨소시움 블록 체인에 기반하는 현재의 실험적인 프로젝트들은 이해관계를 갖는 개체들에 의한 중복 데이터베이스 관리에 의해 얻어지는 보안 및 분산 데이터베이스 시스템들 간 통일성(coherence)의 효율에 집중하고 있다. 이해관계가 있는 제 3자들 사이에서의 거래들을 다루기 위하여, PBFT(practical Byzantine fault tolerance protocols)의 변형들이 프라이빗 체인을 위해 채택되어 왔다. 그러나, 대부분의 PBFT 프로토콜들은 퍼블릭 체인 네트워크에서 사용되기에 충분할 정도로 확장 가능하지 않다. 그러므로, 프라이빗/컨소시움의 의미는 제한된다.The difficulty of voting on anonymous networks is the value of Bitcoin's PoW-based blockchain. However, anonymity hinders the application of blockchain technology to real financial platforms in terms of money laundering and tax avoidance. Therefore, institutions in the financial services sector are interested in 'private block chain' and 'consortium block chain' technologies. In a private / consortium blockchain network, it is not possible for an entity to operate the network without any 'coin' or 'mining' rewards, since interested entities participate in the private / consortium blockchain and damaged ledgers lose some. It is possible. In the sense that the true meaning of the blockchain is in a public ledger that can create consensus among anonymous participants of no interest, private / consortium blockchains in which the identity of participating nodes are known to each other and the nodes are operated by organizations It can only be seen as a redundant distribution of databases for security purposes. In the embodiments of the present invention, it is noted that the entities in the private or consortium blockchain have real identity and can easily be identified with each other, and thus can easily agree without PoW / PoS when a mismatch occurs in the database. Current experimental projects based on private or consortium blockchains focus on the efficiency of coherence between security and distributed database systems obtained by redundant database management by interested entities. In order to deal with transactions between interested third parties, variants of practical Byzantine fault tolerance protocols (PBFTs) have been adopted for private chains. However, most PBFT protocols are not scalable enough to be used in public chain networks. Therefore, the meaning of private / consortium is limited.
현존 블록 체인들과는 달리, 우리의 블록 체인은 공개 장부(Public Block Chain)의 개방성 및 프라이빗 장부(Private Block Chain)의 높은 처리량 모두를 갖는다. 한편, 익명의 노드들이 아니라 실명 인증된 노드들에 의해 동작하기 때문에 프라이빗 블록 체인으로 보인다. 다른 한편, 노드들이 우리의 네트워크에 자유롭게 참여하고 떠날 수 있다는 점 및 블록들이 이해 관계없는 임의적인 노드들에 의해 서명된다는 점에서, 퍼블릭 체인으로도 보인다. 이는 익명의 네트워크가 아니지만 실명 인증된 피어들에 의해 작동되는 네트워크이므로, 기록되는 모든 거래들은 필요하다면 정부 당국에 의해 신원 확인이 가능하다. 새로운 장부는 실물화폐와 암호화폐를 포함하는 임의 유형의 자산을 다루는 궁극적인 P2P 금융 플랫폼으로서 작용할 수 있다. 이 플랫폼을 사용함으로써, 은행의 장부가 은행 서버가 아닌 스마트폰 및 컴퓨터들을 사용하여 피어들에 의해 운영되는 분산된 불변 장부 내에서 관리되는 P2P 은행이 생긴다. 은행의 역할은 그들의 소비자들을 매핑하고 네트워크 상에서 금융 상품들을 판매하는, 가명(pseudonym) 및 실제 신원 관리를 포함한다.Unlike existing blockchains, our blockchain has both the openness of the Public Block Chain and the high throughput of the Private Block Chain. On the other hand, it appears to be a private blockchain because it is operated by anonymous, authenticated nodes rather than anonymous nodes. On the other hand, it also appears to be a public chain, in that nodes can freely join and leave our network and blocks are signed by arbitrary nodes of no interest. This is not an anonymous network, but a network operated by real name authenticated peers, so all recorded transactions can be identified by government authorities if necessary. The new ledger can serve as the ultimate P2P financial platform for dealing with any type of asset, including physical and cryptocurrencies. By using this platform, there is a P2P bank where banks' books are managed in a distributed, constant ledger operated by peers using smartphones and computers rather than bank servers. The role of banks includes pseudonym and real identity management, mapping their consumers and selling financial products on the network.
3. 동기(motivation)3. Motivation
퍼블릭 블록 체인의 혁신은 PoW에 의한 익명 투표를 가능하게 함으로써, 장부 불일치를 해결하는 것에 있다. 노드의 신원이 알려지지 않더라도, 하나의 노드에서 오는 두 개의 투표(중복 투표)인지 또는 다른 노드들에서 오는 두 개의 투표(2개의 유효한 투표)인지 구별하는 방법이 있다면, 장부 불일치를 해결하기 위하여 투표 수를 카운트할 수 있다. 중복 투표의 경우, 두 개의 투표 중 하나는 무시될 수 있다. 이 경우, 비싼 PoW 계산이 필요하지 않고 투표를 카운트할 수 있다. 실명 기반 식별자 및 그 디지털 서명은 이 목적을 위해 기능할 수 있다. 실명 식별은 단지 투표만을 위해서라면 과도하지만, 고-탈중앙화, 고-투명성 장부들을 위한 실명 추적 가능 플랫폼을 목적으로 하기 때문에, 본 발명의 실시예들에 따른 목적에 완벽히 부합한다.The innovation of the public blockchain is to resolve book mismatches by enabling anonymous voting by PoW. Even if the identity of a node is unknown, if there is a way to distinguish between two votes coming from one node (duplicate votes) or two votes coming from other nodes (two valid votes), Can be counted. In the case of duplicate votes, one of the two votes may be ignored. In this case, votes can be counted without expensive PoW calculations. The real name based identifier and its digital signature may serve for this purpose. Although real name identification is excessive for voting only, it aims to be a real name traceable platform for high-decentralized, high-transparent ledgers, thus perfectly meeting the purposes according to embodiments of the present invention.
실명 기반 가명 및 디지털 서명을 사용하는 본 발명의 실시예들에 따른 p2p 장부는 블록이 명백한 과반수 투표에 의해 확인되는 프라이빗/컨소시움 블록 체인의 변형으로 보일 수 있다. 그러나, 본 발명의 실시예들에 따른 장부는 일단 실명으로 식별되면 누구라도 네트워크에 자유롭게 접근하고 떠날 수 있으며, 장부 접근은 누구에게도 제어되지 않고 블록은 임의적인 피어들에 의해 서명될 수 있다는 점에서 퍼블릭 블록 체인의 일종이다. 또한, 퍼블릭 체인의 작동 환경은 프라이빗 체인과 다르다. 서명자(signer)의 수는 많고, 과도한 포킹(forking)은 큰 네트워크 지연에 의해 빈번하게 발생한다. 그러므로, 우리는 하이퍼레저(Hyperledger)와 같은 프라이빗/컨소시움 블록 체인에서 취하는 PBFT 기반 과반수 투표 알고리즘과는 다른 전략이 필요하다.A p2p ledger according to embodiments of the present invention using real name based pseudonyms and digital signatures may be seen as a variant of the private / consortium blockchain in which the block is identified by an explicit majority vote. However, in accordance with embodiments of the present invention, a book can be freely accessed and left by anyone once it is identified by its real name, and the book access is not controlled by anyone and the block can be signed by arbitrary peers. It is a kind of public blockchain. In addition, the operating environment of the public chain is different from the private chain. The number of signers is large, and excessive forking is frequently caused by large network delays. Therefore, we need a different strategy from the PBFT-based majority voting algorithm that is taken by private / consortium blockchains such as Hyperledger.
프라이빗/컨소시움 블록 체인에서는 블록에 이해 관계가 있는 서명자들이 블록에 서명해야 하는 반면, 본 발명의 실시예들에 따른 p2p 플랫폼에서 서명 기반 과반수 투표는 누가 블록에 서명했는지에 관심이 없고 얼마나 많은 투표자들이 블록에 서명했는지에만 관심이 있다. 그러므로, 서명들은 특정 수의 피어들이 블록에 투표했다는 사실을 증명하는 데 사용된다. 간단히 말하면, PoP는 채굴자(본 발명의 실시예들에서의 "합병자(merger)")가 서명자의 신원과 상관없이 블록에 대해 N 개의 서명을 가장 빨리 모은다면, 보상을 얻는 게임이다. 이는 해시 퍼즐을 가장 빨리 푼 채굴자가 게임을 이기는 PoW와 유사하다. 블록을 추가하기 위하여, 참여자들 사이의 N 명의 임의의 피어들은 그들의 서명을 블록에 추가함으로써 블록을 위한 투표를 한다. 여기서 N≥1이다. 체인이 길어질수록, 더 많은 투표자들이 체인을 지지한다. 그러므로, 장부 상 불일치가 발생할 때, 더 많은 투표자들을 갖는 체인 포크가 선택될 것이고, 이는 과반수 투표의 정확한 구현이다. 여기서 문제는 분산 p2p 네트워크에서 효율적이고, 안전하고 탈중앙화된 방법으로 서명 기반 과반수 투표를 구현하는 방법이다. 문제에 대한 우리의 접근은 1) 거래량, 거래 비용 및 완성 시간에 의한 공격자들의 이득과 손실을 신중하게 균형 잡는 것 및 2) 완전 추적성을 통해 장부를 위조하지 못하도록 공격자들을 방해하는 실명 기반 플랫폼의 장점을 취하는 것이다.In a private / consortium blockchain, signers interested in the block must sign the block, whereas in the p2p platform according to embodiments of the present invention, the signature-based majority vote is not interested in who signed the block and how many voters We are only interested in signing the block. Therefore, signatures are used to prove that a certain number of peers have voted on the block. In short, PoP is a game where a miner ("merger" in embodiments of the present invention) is rewarded if he collects N signatures for the block fastest, regardless of the identity of the signer. This is similar to PoW, where the miner who solved the hash puzzle fastest wins the game. To add a block, N random peers between participants vote for the block by adding their signature to the block. Where N≥1. The longer the chain, the more voters support the chain. Therefore, when a book mismatch occurs, a chain fork with more voters will be selected, which is the correct implementation of the majority vote. The problem here is how to implement signature-based majority voting in an efficient, secure and decentralized way in a distributed p2p network. Our approach to the problem is to: 1) carefully balance the gains and losses of attackers by transaction volume, transaction cost, and completion time; and 2) to prevent attackers from counterfeiting their books through full traceability. Take advantage.
4. P2P 장부 프로토콜4. P2P Book Protocol
새로운 블록 체인을 현실화하기 위하여, 디지털 서명을 사용하는 인구 증명(PoP)은 개인들에 의한 명백한 투표 실현인 PoW 또는 PoS(Proof of Stake) 대신 사용된다. 누적된 컴퓨팅 파워 및 지분의 양에 의존하는 PoW 및 PoS와는 달리, PoP는 블록을 지지하는 사람들의 누적된 수에 따라서 결정을 한다. 그러므로, 포킹(forking)이 여러 버전의 체인을 생성하는 공격 또는 비동기화에 의해 발생할 때, 더 많은 인구를 갖는 체인 또는 더 많은 투표자에 의해 지지되는 체인이 게임을 이기는 체인으로 선택된다.In order to make the new blockchain a reality, Population Proof (Pop) using digital signatures is used instead of PoW or Proof of Stake, which is an explicit voting realization by individuals. Unlike PoW and PoS, which rely on accumulated computing power and amount of stake, PoP makes decisions based on the cumulative number of people who support the block. Therefore, when forking occurs by an attack or asynchronous that generates several versions of the chain, a chain with a larger population or a chain supported by more voters is chosen as the chain that wins the game.
4.1. 노드: 서명자(Signer) 및 합병자(Merger)4.1. Nodes: Signer and Merger
PoP 네트워크에는 두 종류의 노드가 있다. 한 종류의 노드는 디지털적으로 블록에 서명함으로써 공개 장부를 유지하는 데 기여하고, 다른 종류의 노드는 다수의 거래를 하나의 블록으로 모으고, 블록에 대해 노드들에게 서명 요청을 하고, 서명(signature)들을 모아서, 이것을 현존하는 블록 체인에 연결함으로써 기여한다. 전자의 노드는 서명자라고 불리고 후자의 노드는 합병자라고 불린다. 서명자는 거래 블록에 대한 서명 요청을 받을 때 PoP 지갑이 서명을 생성해야 하는지 확인하는 메시지를 사용자에게 보여준다. 이는 자동적인 서명을 위한 사전 동의를 설정함으로써 자동적으로 수행될 수 있다. 본 발명의 실시예에서는 서명 모듈이 스마트폰과 같이 어플리케이션의 설치가 가능한 단말 상에서 실행되는 경우를 고려한다. 서명자는 자신의 단말에 본 발명의 실시예들에 따른 어플리케이션을 설치함으로써, 서명자는 블록에 서명하는 것에 대한 보상으로서 얼마의 돈을 벌 수 있다. 합병자는 거래 블록을 구성하기 위하여 특정한 수의 거래들을 수집하고 검증한다. 또한, 각 거래 블록에 대하여, 합병자는 서명자들로부터 블록에 대한 일정 수의 유효한 서명들을 수집하고 그것들을 블록에 삽입해야 한다. 합병자의 소프트웨어(유효한 서명들의 수집 및 삽입을 위한 모듈) 또한 스마트폰 또는 데스크탑/서버 컴퓨터와 같은 합병자의 단말 상에서 실행될 수 있다. 합병자 노드는 더 많은 서명자들이 그들의 네트워크에 참여하게 해서 필요한 만큼 많은 서명들을 빠르게 수집하기 위하여 스스로를 알리거나 프로모션을 해야 한다. 서명자가 네트워크에 참여할 때, 스스로를 합병자들에 등록할 것이고 합병자들은 서명자에게 블록에 서명하라고 요청할 것이다. 서명자가 다수의 합병자들에 참여할 때, 서명자는 합병자들 사이에서 우선순위를 설정해야 한다. PoP 네트워크에 참여하는 노드들은 네트워크를 유지하기 위하여 그들의 작업에 대한 보상을 받아야 한다. 합병자 노드들은 거래 수집/검증 및 이러한 거래를 위한 서명들을 수집하는 것에 대한 보상을 받고, 서명자 노드들은 서명을 생성한 그들의 기여에 대해 보상을 받는다. 이 보상은 장부 상의 그들의 계좌에 실제 화폐로 주어진다.There are two kinds of nodes in a PoP network. One kind of node contributes to maintaining the open ledger by digitally signing the block, while the other kind of node gathers multiple transactions into one block, requests nodes to sign the block, and signs ) And contribute by linking it to an existing blockchain. The former node is called the signer and the latter node is called the merger. When the signer receives a signature request for a transaction block, the signer displays a message to the user confirming that the PoP wallet should generate a signature. This can be done automatically by setting up informed consent for automatic signatures. In the embodiment of the present invention, a case where the signature module is executed on a terminal capable of installing an application such as a smartphone is considered. By installing an application according to embodiments of the present invention on its terminal, the signer can make some money as a reward for signing the block. The merger collects and verifies a certain number of transactions to construct a trading block. In addition, for each trading block, the merger must collect a certain number of valid signatures for the block from the signers and insert them into the block. The merger's software (module for collecting and inserting valid signatures) may also be run on the merger's terminal, such as a smartphone or desktop / server computer. The aggregator node has to advertise or promote itself in order to get more signers to join their network and quickly collect as many signatures as needed. When the signer joins the network, it will register itself with the mergers and the mergers will ask the signer to sign the block. When a signer participates in multiple mergers, the signer must set priorities among the mergers. Nodes participating in a PoP network must be compensated for their work in order to maintain the network. Merger nodes are rewarded for collecting / verifying transactions and collecting signatures for such transactions, and signer nodes are rewarded for their contributions that generated the signature. These rewards are given in real money in their accounts on the books.
도 1은 본 발명의 일실시예에 따른 P2P 장부 프로토콜의 예를 도시한 도면이다. 제1 점선박스(110)는 본 실시예에 따른 P2P 장부로서의 서명된 블록 체인의 예를 나타내고 있으며, 도 1은 합병자(120)가 사용자간의 거래들 및/또는 사용자와 상인들간의 거래들을 하나의 블록으로 합병하여 제1 점선박스(110)에 표시된 서명된 블록 체인의 새로운 블록(111)으로 추가하고자 하는 경우의 예를 나타내고 있다. 도 1에서는 거래 1(131)과 거래 2(132)를 도시하고 있으나 실제로는 새로이 추가하고자 하는 블록(111)의 종전 블록(112)이 승인된 이후에 발생되어 합병자(120)에게 전달된 복수의 거래들을 포함할 수 있다.1 is a diagram illustrating an example of a P2P ledger protocol according to an embodiment of the present invention. The first dashed
예를 들어, 거래가 A에서 B로 발생할 때, 금액의 양, 날짜/시간, 거래 목적 및 그들(A와 B)의 ID들을 포함하는 거래 기록은 A 및 B의 개인 서명 키들을 이용하여 서명되고 A와 B 중 어느 하나에 의해 합병자들로 보내진다. 다시 말해, 도 1에서 사용자와 사용자간의 거래 1(131)은 금액의 양, 날짜/시간, 거래 목적에 대한 정보와 두 사용자들의 ID들을 포함할 수 있다. 또한, 거래 1(131)은 두 사용자들의 개인 서명 키들에 의해 서명(133)되어 합병자들에게 전송될 수 있다. 도 1에서는 하나의 합병자(120)를 대표적으로 도시하고 있으나, 실질적으로는 복수의 합병자들 각각으로 거래 기록이 전달될 수 있다. 이와 유시하게, 도 1에서 사용자와 상인간의 거래 2(132)는 금액의 양, 날짜/시간, 거래 목적에 대한 정보와 사용자의 ID 및 상인의 ID를 포함할 수 있다. 또한, 거래 2(132)는 사용자의 개인 서명 키와 상인의 개인 서명 키에 의해 서명(134)되어 합병자들에게 전송될 수 있다.For example, when a transaction occurs from A to B, the transaction record including the amount of money, the date / time, the purpose of the transaction and their IDs (A and B) is signed using A's and B's private signature keys and A Sent to the mergers by either B or B; In other words, in FIG. 1, the
이때, 거래들(131, 132)은 서명자들(141, 142, 143)에 의해 서명될 수 있다. 도 1에서는 대표적으로 세 명의 서명자들(141, 142, 143)이 합병자(120)의 요청에 따라 새로운 블록(111)을 위한 서명들(151, 152, 153)을 제공함에 대해 도시하고 있다. 이때, 새로운 블록(111)에 대한 서명에 참여할 서명자들은 이후 설명될 방식에 따라 선택될 수 있다.At this time, the
합병자(120)는 새로운 블록(111)에 서명(121)하여 모든 합병자들에게 브로드캐스팅할 수 있으며, 합병자들에 의해 승인된 새로운 블록(111)은 제1 점선박스(110)에 나타난 서명된 블록 체인의 마지막 블록으로 추가될 수 있다. 합병자들이 블록을 승인하는 방식에 대해서는 이후 더욱 자세히 설명한다.The
이처럼 본 발명의 실시예들에 따른 PoP 네트워크에서 거래는 계좌 소유자에 의해 서명되고 합병자에게 보내질 수 있으며, 다수의 거래를 포함하는 블록은 서명자들 및 합병자들에게 서명될 수 있다.As such, in a PoP network in accordance with embodiments of the present invention, a transaction may be signed by an account holder and sent to a merger, and a block containing multiple transactions may be signed to signers and mergers.
도 2는 본 발명의 일실시예에 있어서, 서명된 블록 체인에 추가된 새로운 블록이 포함하는 정보의 예를 도시한 도면이다. 도 2는 도 1을 통해 설명한 서명된 블록 체인의 마지막에 추가되는 새로운 블록(111)이 서명(141)된 거래 1(131)과 서명(142)된 거래 2(132)를 포함하며, 이러한 새로운 블록(111)이 서명자들(141, 142, 143)에 의해 서명(151, 152, 153)되어 있음을 나타내고 있다. 또한, 합병자(120) 역시 새로운 블록(111)에 서명(121)하였음을 나타내고 있다.2 is a diagram for one example of information included in a new block added to a signed blockchain according to one embodiment of the present invention. FIG. 2 includes
4.2. PoP 네트워크에 노드로서의 참여 및 계좌 개설4.2. Participation as a node and opening an account in the PoP network
PoP 네트워크는 얼마나 많은 사람들이 블록을 지원하는지를 요구하기 때문에, 개인은 네트워크에 입장하기 전에 p2p 은행에 의해 실명으로 신원을 인증 받아야 한다. 사용자가 인증을 받으면, 스스로 고유의 공개 키(public key)/비밀 키(private key) 쌍 및 가명(pseudonym)을 생성하고 p2p 은행으로부터 그 쌍에 대한 서명을 받는다. 그러므로, p2p 은행의 역할은 사용자를 인증하고 가명 및 공개 키 쌍에 대한 공개 키 인증서를 발행하는 것이다. 사용자는 이 모든 것을 전자 지갑에 저장하지만, p2p 은행에 의해 서명을 받은 공개 키 및 가명 쌍은 블록 체인에 등록되고 p2p 은행은 실명을 저장하며 공개 키 및 가명은 데이터베이스 내에 튜플(tuple)로 저장된다. 다수의 p2p 은행들에 의해 생성된 이 데이터베이스는 노드들을 구분하기 위하여 공유되어야 하거나 단일한 신뢰 당국에 의해 관리받을 수 있다. 여기서 당국의 역할이 실명 및 가명 쌍들의 관리에 제한되지만 거래 처리와는 관련이 없다. 공개 키는 필요하다면 장부 상에 새로운 공개 키 및 가명 쌍을 추가함으로써 업데이트될 수 있다. 유사하게, 가명은 데이터베이스 내에 재등록함으로써 업데이트될 수 있지만 체인지 로그도 관리되어야 한다.Because PoP networks require how many people support the block, an individual must be authenticated in real name by a p2p bank before entering the network. When the user is authenticated, he creates his own public key / private key pair and pseudonym and gets the signature from the p2p bank. Therefore, the role of the p2p bank is to authenticate the user and issue public key certificates for aliases and public key pairs. The user stores all of this in the wallet, but the public key and alias pair signed by the p2p bank are registered on the blockchain, the p2p bank stores the real name, and the public key and alias are stored as tuples in the database. . This database, created by multiple p2p banks, must be shared to distinguish nodes or can be managed by a single trust authority. The role of the authorities here is limited to the management of blind and pseudonym pairs, but not related to transaction processing. The public key can be updated by adding new public key and alias pairs on the book if needed. Similarly, aliases can be updated by re-registering in the database, but change logs must also be maintained.
장부 상에 인증을 성공적으로 등록받은 사용자는 서명자, 합병자 및/또는 원한다면 소비자로서 역할을 할 수 있다.A user who has successfully registered an authentication on a book can serve as a signer, a consolidator and / or a consumer if desired.
4.3. p2p 은행에서의 거래 처리4.3. Transaction processing at p2p banks
도 1을 통해 설명한 바와 같이, 거래가 A에서 B로 발생할 때, 금액의 양, 날짜/시간, 거래 목적 및 그들의 ID들을 포함하는 거래 기록은 A 및 B의 개인 서명 키들을 이용하여 서명되고 A와 B 중 어느 하나에 의해 합병자들로 보내진다. 합병자들은 지갑 내에 프로파일된 합병자들 순위에 따라 송신자에 의해 선택된다. 이제, 거래 기록을 받은 합병자는 그 기록의 유효성을 검증하고, 일부 기록들을 합병함으로써 거래 블록을 만든다. 블록이 구성될 때, 합병자는 블록을 체인에 추가하기 위하여 가능한 빠르게 미리 정해진(그러나 주기적으로 조정되는) 수의 서명들을 수집한다. 서명자와 합병자는 오직 그들이 네트워크에 참여한 후에 생성된 블록에 대해서만 서명을 만들 수 있다. 블록에 대한 서명자들은 합병자에 의해 임의로 선택되지 않고, 종전 블록의 거래 기록들의 임의적(random)이어서 예측 불가능하지만 결정적(deterministic)이어서 입력에 따라 출력이 결정되는 함수의 출력 결과인 해시 값에 의해 선택될 수 있다. 일례로, 해시 값은 합병자들 각각에서 미리 설정된 해시 함수를 통해 생성할 수 있다. 이때, 종전 블록의 거래 기록들로부터 추출되는 정보를 파라미터로 갖는 해시 함수를 통해 그 결과값인 해시 값에 따라 서명자들이 선택될 수 있다. 그러므로 공격을 위해 서명 그룹을 변화시키기 위해서는, 종전 블록의 거래들을 변화시켜 그들의 해시 값이 공격자들의 서명자 그룹을 선택하도록 하는 것이 필요하다. 이때, 이미 설명한 바와 같이 종전 블록의 거래들을 변화시키기 위해서는 그 이전 블록의 거래들을 변화시켜야만 한다. 결과적으로, 한 블록의 서명 그룹을 변화시키는 것은 선행하는 모든 블록들 및 모든 후속 블록들의 모든 서명 그룹을 변화시키는 것과 관련된다.As explained through FIG. 1, when a transaction occurs from A to B, the transaction record, including the amount of money, date / time, transaction purpose and their IDs, is signed using A and B's private signature keys and A and B Sent to the mergers by either. Mergers are selected by the sender according to the rank of the mergers profiled in the wallet. Now, the merger who receives the transaction record validates the record and merges some records to create a transaction block. When a block is constructed, the merger collects a predetermined (but periodically adjusted) number of signatures as soon as possible to add the block to the chain. Signers and mergers can only create signatures for blocks created after they join the network. The signers for a block are not arbitrarily chosen by the merger, but are chosen by a hash value that is the output of a function whose output is random because it is random and unpredictable but deterministic, depending on the input. Can be. For example, the hash value may be generated through a hash function preset in each of the mergers. At this time, the signers may be selected according to the hash value as a result of the hash function having the information extracted from the transaction records of the previous block as a parameter. Therefore, to change the signature group for an attack, it is necessary to change the transactions of the previous block so that their hash value selects the attacker's signer group. At this time, as described above, in order to change the transactions of the previous block, the transactions of the previous block must be changed. As a result, changing the signature group of one block involves changing all signature groups of all preceding blocks and all subsequent blocks.
도 3은 본 발명의 일실시예에 있어서, 종전 블록에 기반하여 새로운 블록을 위한 서명자들이 선택하는 예를 도시한 도면이다. 도 3은 도 1을 통해 설명한 새로운 블록(111)과 새로운 블록의 종전 블록(112)을 도시하고 있다. 이때, 종전 블록(112)은 거래 a(310), 거래 b(320) 및 거래 c(330)에 대한 정보를 포함할 수 있으며, 도 2를 통해 설명한 바와 유사하게 서명자들의 서명들, 그리고 합병자의 서명을 포함할 수 있다. 또한, 앞서 설명한 바와 같이, 종전 블록(112)은 종전 블록(112)의 이전 블록에 기반하여 생성된 이전 해시 값(340)을 포함할 수 있다.FIG. 3 is a diagram for one example of selecting signers for a new block based on a previous block according to one embodiment of the present invention. 3 illustrates a
합병자(일례로, 도 1을 통해 설명한 합병자(120))는 종전 블록(112)에 포함된 거래 a(310), 거래 b(320) 및 거래 c(330)에 대한 정보를 파라미터로 갖는 해시 함수(350)를 통해 새로운 블록(111)을 위한 해시 값을 생성할 수 있다. 새롭게 생성된 해시 값은 도 3에 도시된 이전 해시 값(360)과 같이 새로운 블록(111)에 포함될 수 있다. 한편, 합병자는 해시 함수(350)를 통해 생성된 해시 값에 기반하여 서명자들(370)을 선택할 수 있다. 예를 들어, 도 1의 서명자들(141, 142, 143)은 합병자(120)가 해시 값에 기반하여 계산된 서명자 ID들에 의해 선택될 수 있다.The merger (eg, the
이후에는 도 1을 통해 설명한 바와 같이, 합병자가 서명자들(370)에게 새로운 블록(111)을 보내어 서명자들(370)의 서명들(151, 152, 153)을 받아 합병할 수 있다. 이처럼 본 발명의 실시예들에 따른 PoP 네트워크 내 블록은 서명자들 및 합병자들에게 서명될 수 있으며, 서명자 그룹은 종전 블록의 거래에 대한 해시 값에 의해 강제될 수 있다.Thereafter, as described with reference to FIG. 1, the merger may send a
1) 거래는 합병자의 네트워크에 브로드캐스트되고 합병자들은 일부 거래량이 수집될 때까지 기다린다.1) The transaction is broadcast to the merger's network and the merger waits for some transaction volume to be collected.
2) 합병자는 거래들을 블록에 수집하고, 서명자 ID를 계산하고, 합병자의 서명자 관리목록에 등록된 서명자들 중에서 가장 가까운 ID를 갖는 서명자들을 찾고, 그 서명자들에게 블록을 보낸다.2) The merger collects the transactions in the block, calculates the signer ID, finds the signers with the closest ID among the signers registered in the signer management list of the merger, and sends the block to the signers.
3) 서명자는 블록의 유효성을 확인하고, 블록 상의 서명을 통해 합병자에게 응답한다.3) The signer verifies the validity of the block and responds to the merger via the signature on the block.
4) 합병자는 블록 상의 일부 서명들을 얻을 때까지 기다리고, 성공적으로 얻는다면 블록에 서명하고 모든 합병자들에게 복수 서명된 블록을 브로드캐스팅한다.4) The merger waits until it gets some signatures on the block, and if successful, signs the block and broadcasts the multi-signed block to all mergers.
5) 합병자들은 블록이 유효하고 중복 지급되지 않을 때만 블록을 승인한다.5) Mergers approve a block only if the block is valid and is not paid in duplicate.
6) 합병자들은 종전 해시로서 승인된 블록의 해시를 사용하여, 체인에 다음 블록을 생성하는 작업을 함으로써 블록 승인을 통지한다.6) Mergers use the hash of the approved block as the previous hash to notify block approval by working to create the next block in the chain.
서명자는 서명한 모든 블록 ID들을 보유해야 한다. 서명자는 아래와 같은 내용을 확인한 후에 블록에 대한 서명을 한다.The signer must hold all block IDs signed. The signer checks the following and signs the block.
- 블록 내 시간 스탬프는 분산된 네트워크 상의 시간 동기화 에러를 고려한 현재 시간과 매치되지 않으면, 당국에 보고하고 블록을 무시한다(예를 들어, 비트코인 네트워크에서, 블록은 타임 스탬프가 마지막 11개 블록의 중앙값보다 크면 유효한 것으로 승인된다).If the time stamp in the block does not match the current time considering the time synchronization error on the distributed network, report it to the authority and ignore the block (e.g. in a Bitcoin network, the block has a time stamp of the last 11 blocks. If greater than the median, it is accepted as valid).
- 서명 요청이 서명자가 네트워크에 참여하기 전에 생성된 블록에 대한 것이라면 무시한다.Ignore if the signature request is for a block created before the signer joined the network.
- 요청이 마지막으로 서명된 블록이 완성되기 전에 생성된 블록에 대한 것이라면, 합병자로부터의 서명 요청은 자동적으로 거절될 것이다.If the request is for a block created before the last signed block is completed, the signing request from the merger will be automatically rejected.
- 요청이 이미 서명된 블록 상의 거래들에 대한 정보를 포함하는 또 다른 블록에 대한 것이라면, 서명자는 요청을 무시하고 합병자에게 이를 통지한다. 이 통지는 "당신은 늦었습니다. 거래는 이미 추가되었습니다."라는 메시지를 합병자에게 신속하게 알리는 효과가 있다.If the request is for another block that contains information about transactions on a block that is already signed, the signer ignores the request and notifies the merger. This notice has the effect of prompting the merger with the message "You are late. The transaction has already been added."
- 요청이 서명된 것과 일치하지 않는 거래를 포함하는 블록에 대한 것이라면, 해당 요청을 한 사용자를 네트워크 밖으로 쫓아내기 위하여 서명자는 당국에 보고하고 합병자 ID 및 송신자 ID를 네트워크에 브로드캐스팅한다. 이제, 이 공격자로부터의 모든 요청들은 무시될 것이다.If the request is for a block containing a transaction that does not match the signed one, the signer reports to the authorities and broadcasts the merger ID and sender ID to the network to drive the user who made the request out of the network. Now all requests from this attacker will be ignored.
서명자들은 거래 비용의 공평한 분배를 위해 합병자에 의하여 시간이 지나면 자격이 박탈될 수 있다.Signers may be disqualified over time by the merger to ensure an even distribution of transaction costs.
4.4. 다수의 투표자들을 갖는 포크4.4. Fork with multiple voters
블록이 체인(O)에 추가될 때, 새로운 체인(N)을 형성하기 위하여 결과를 전체적인 네트워크에 퍼뜨리는 데에는 수 초가 걸린다. 그러므로, 그 시간 동안, 또 다른 합병자는 또 다른 블록을 체인(O)에 추가하려고 할 수 있으며, 이는 또 다른 체인(N')을 만드는 체인 포킹을 유발한다. 체인 포킹은 명백히 해결되어야 하는 두 가지 버전의 장부가 존재하는 것을 의미한다. PoP 네트워크에서, 적절한 체인을 선택하는 것은 투표에 의해 수행된다. 둘 이상의 포크들이 주된 체인이 되기 위해 서로 경쟁할 때, 합병자들은 더 많이 누적된 수의 서명을 갖는 포크를 선택하며, 이는 더 많은 사람들이 체인을 지지한다는 것을 의미한다.When a block is added to the chain (O), it takes several seconds to spread the result over the entire network to form a new chain (N). Therefore, during that time, another merger may try to add another block to the chain O, which causes chain forking to make another chain N '. Chain forking means that there are two versions of books that must be resolved explicitly. In a PoP network, selecting the appropriate chain is done by voting. When two or more forks compete with each other to become the main chain, the mergers choose forks with a more accumulated number of signatures, which means that more people support the chain.
4.5. 승인 레벨4.5. Approval level
블록 가 체인에 추가되고 다음 블록 이 그 체인에 추가될 때 는 네트워크로부터 하나의 승인을 받는다. 미리 결정된 수의 승인들이 있은 후, 블록은 영구적으로 체인에 추가되며, 이 영구적인 승인 후에는 또 다른 포킹 요청이 승인되지 않을 것이다. 그러므로, 합병자는 경합하는 포크 블록 체인들 중에서 최신의 영구적인 승인에 대한 가장 빠른 타임 스탬프를 갖는 하나를 선택해야 한다. 이는 최신의 영구적인 승인 이후의 시간 프레임 내로 포킹 논의를 제한시킨다.block Is added to the chain and the next block Is added to the chain Receives one approval from the network. After a predetermined number of grants, the block is permanently added to the chain and after this permanent grant another forking request will not be granted. Therefore, the consolidator must choose one of the competing fork blockchains with the earliest time stamp for the latest permanent approval. This limits the forking discussion into the time frame after the latest permanent approval.
처리량(throughput)을 향상시키기 위하여, 본 발명의 실시예들에서는 GHOST(Greedy Heaviest-Observed Sub-Tree)를 채택할 수 있다. 개념은 경합하는 브랜치를 제거하는 것이 아니라 브랜치가 포크되어 나오는 블록을 지원하도록 브랜치를 남기는 것이다. 이제 가장 긴 체인을 선택하는 대신에, 우리는 가장 큰 인구가 지원하는 가장 무거운 체인을 선택한다.In order to improve throughput, embodiments of the present invention may adopt GHOST (Greedy Heaviest-Observed Sub-Tree). The idea is not to eliminate contending branches, but to leave branches to support the blocks from which the branches are forked. Now instead of choosing the longest chain, we choose the heaviest chain that the largest population supports.
4.6. 서명자 그룹 선택4.6. Select signer group
블록 에 대한 서명자 그룹은 종전 블록들 상 거래 내용과, 서명 및 체인 해시가 제외된 서명자 그룹 내 서명자들의 리스트를 해시함으로써 선택된다. 즉, 리스트는 에 의해 계산될 수 있으며, 여기서 는 i번째 블록 상의 거래 및 서명자 리스트들이며, t(1)는 최종 임계 값이다. 서명 그룹의 이러한 소급성 및 적용되지만 예측 불가능한 선택은 장부의 훼손을 더 어렵게 만든다.block The signer group for is selected by hashing the transaction content on the previous blocks and the list of signers in the signer group, excluding signatures and chain hashes. In other words, the list is Can be calculated by Is the list of transactions and signers on the i th block, t ( 1) is the final threshold. This traceability of the signature group and the applied but unpredictable choice makes it more difficult to damage the books.
4.7. 해밍 거리(Hamming distance) 내 가장 가까운 서명자 ID4.7. Nearest signer ID in Hamming distance
서명자가 아직 참여하지 않았거나 ID를 갖는 서명자가 활성화되지 않았을 수 있기 때문에 해시 값에 의해 선택된 서명자 ID는 유효하지 않을 수 있다. 이러한 경우, 해밍 거리 내 가장 가까운 ID가 선택될 것이고 가장 긴 체인을 선택하는 스코어는 아래 수학식 1과 같이 계산될 수 있다.The signer ID selected by the hash value may not be valid because the signer has not yet joined or the signer with the ID may not be activated. In this case, the closest ID in the hamming distance will be selected and the score for selecting the longest chain can be calculated as in
여기서 는 블록 내 서명자들의 수이고, 128은 ID의 비트 길이의 예일 수 있고, 는 j번째 서명자와 해시 출력 간의 해밍 거리이다.here Block The number of my signers, 128 could be an example of the bit length of the ID, Is the hamming distance between the j th signer and the hash output.
4.8. 난이도 조절: 서명자들의 수4.8. Difficulty adjustment: number of signers
새로운 서명자들은 합병자들을 통해 네트워크에 참여하고, 그들은 다음 블록으로부터 서명 처리에 참여한다. S는 블록에 서명하기 위한 서명자들의 수이다. 매 2초는 S개의 서명을 수집하기 위한 기준점이다. 이는 1,800개의 블록 생성 시간을 측정함으로써 계산되고, 그 수는 블록에 기록된다. S개의 서명을 모으기에는 너무 느리다면, 최소인 S(예를 들어, 5)만 보안 목적을 위해 유지된다.New signers join the network through mergers, and they participate in the signature processing from the next block. S is the number of signers to sign the block. Every 2 seconds is a reference point for collecting S signatures. This is calculated by measuring 1,800 block creation times, the number of which is recorded in blocks. If it is too slow to collect S signatures, only the minimum S (e.g. 5) is retained for security purposes.
5. 보안5. Security
5.1. 블록 위조5.1. Block forging
블록을 위조하기 위하여, 공격자는 두 가지 선택을 할 수 있다. 하나는 블록 내 서명들을 위조하는 것인데, 이는 서명의 EUF-CMA 보안성에 의해 실행 불가능하다. 암호 서명을 파괴하는 대신에, 블록의 서명 그룹을 매수할 수 있다. 이 방법은 서명자 그룹을 교체시키고 그들 소유 서명자 그룹의 서명들을 넣는 것이다.To forge a block, the attacker has two choices. One is to forge signatures in the block, which is not feasible by the EUF-CMA security of the signature. Instead of breaking the cryptographic signature, one can buy the signature group of the block. This method replaces the signer group and puts the signatures of their own signer group.
5.1.1. 서명자 그룹 교체5.1.1. Replace signer group
공격자가 를 얻기 위하여 한 블록 내 거래를 변형할 때, 서명자 그룹에 의해 서명된 를 얻어야 한다. 서명을 위조하지 않으려면 (암호학적으로 불가능하므로), 서명자 그룹을 교체시켜야 한다. 이에 대해, 서명자 그룹은 의 기록들에 의해 결정되기 때문에, 종전 블록 의 거래 기록들은 로 변형되어야 한다. 이는 결국 변형된 블록 의 재서명과 관련된다. 블록 의 서명자 그룹은 그들이 이미 시간 프레임 내에 서명되었기 때문에 에 재서명하지 않을 것이고, 이에 따라 에 대한 서명자 그룹은 변화되어야 한다. 결과적으로, 블록 의 변형은 , , …, 의 역행 회귀 변형과 관련된다. 또한, 내 거래를 변화시킴으로써, 내 저장된 체인 해시 및 의 서명자 그룹 모두가 변화된다. 결과적으로, 하나의 블록을 변화시키는 것은 순행 및 역행 체인 모두의 변형과 관련된다.Attacker One block to get When transforming my transaction, signed by a group of signers You should get If you do not want to forge a signature (it is cryptographically impossible), you must replace the group of signers. In this regard, the group of signers The previous block, as determined by the records of Transaction records It should be transformed into. Which in turn transforms the block It is related to the resignation of. block The signer group of is because they are already signed within the time frame Will not be resigned to The signer group for must change. As a result, the block Variation of , ,… , Is associated with the retrograde regression of. Also, By changing my deal, My saved chain hash and All of the signer groups in are changed. As a result, changing one block involves the modification of both the forward and backward chains.
도 4는 본 발명의 일실시예에 따른 p2p 장부가 블록 위조(forking a block)에 대한 보호되는 예를 도시한 도면이다. 도 4는 서명된 블록 체인의 일부로서, 블록 Bi-1(411), 타겟 블록 Bi(412) 및 블록 Bi+1(413)을 나타내고 있으며, 타겟 블록 Bi(412)가 서명자 그룹 a(421)에 의해 서명되었고, 블록 Bi+1(413)가 서명자 그룹 b(422)에 의해 서명되는 경우를 나타내고 있다.4 is a diagram illustrating an example in which a p2p book is protected against forking a block according to an embodiment of the present invention. 4 shows a
이때, 타겟 블록 Bi(412)가 승인되기 이전에 위조자가 위조 블록 Bi'(431)에 대한 승인을 받고자 하는 경우를 고려할 수 있다. 이미 설명한 바와 같이 서명자 그룹 a(421)는 블록 Bi-1(411)의 거래에 대한 해시 값에 기반하여 선택되기 때문에 위조자는 다른 서명자 그룹을 활용하여 위조 블록 Bi'(431)에 대한 서명을 받기 위해서는 블록 Bi-1(411)의 거래 내용을 위조해야 한다. 이는 위조자에게 블록 Bi-1(411)의 이전 블록들을 순차적으로 모두 위조해야 할 것을 요구한다.At this time, a case in which the counterfeiter wants to receive approval for the counterfeit block Bi '431 before the
또한, 위조자는 서명자들에 대한 공모를 시도할 수 있다. 그러나, 위조자가 공모자들을 모으기 위해서는 공개적으로 광고를 해야 한다는 부담이 있으며, 다음의 위조 블록 Bi+1'(432)에 서명을 받기 위한 서명자들이 위조 블록 Bi'(431)의 거래 내용에 의해 선택되기 때문에, 위조 블록 Bi+1'(432)를 위해 선택되는 서명자 그룹은 도 4에 도시된 바와 같이 서명자 그룹 x(441)로서 정상적인 블록 Bi+1(413)의 서명자 그룹 b(422)과 달라지게 된다. 다시 말해, 다음 위조 블록 Bi+1'(432) 뿐만 아니라, 이후에 새롭게 추가되어야 할 위조자의 모든 위조 블록들은 중복 서명에 의해 다수의 합병자들이 시도하는 정상적인 블록들과 지속적으로 경쟁해야만 하며, 이러한 경쟁은 서명된 블록 체인의 마지막 블록에 대해서까지 반복되어야만 한다.Forgers can also attempt to conspiracy against signers. However, the counterfeiter has a burden of public advertising in order to collect conspirators, and the signers for signing the following counterfeit block Bi + 1 '432 are selected by the transaction contents of the counterfeit block Bi' 431. Thus, the signer group selected for the forged block Bi + 1 '432 is different from the
5.1.2. 매수로 훼손되거나 도난 키로 협상된 서명자 그룹5.1.2. A group of signers compromised by bribery or negotiated with theft keys
블록을 위조하기 위하여 서명자 그룹을 매수하거나 키를 훔침으로써, 공격할 수 있다. 이렇게 하면, 현재 블록 에 대한 서명자 그룹이 변화되지 않아서 정확하지만 매수된 서명자 그룹에 의한 유효한 서명들이 부가되기 때문에, 공격자는 종전 블록들을 변화시킬 필요가 없다. 공격자는 오직 순행 위조에 대해서만 관심이 있다. 거래들 및 대응하는 서명들의 변화에 의해, 다음 블록 에 대한 서명자 그룹 및 체인 해시 값은 실제 체인 상의 블록의 것들과는 본질적으로 매치되지 않는다. 그러므로, 공격자는 블록 에 서명하기 위하여 새로운 서명자 그룹을 다시 매수하거나 협상해야만 한다. 이제, 변형된 블록 는 다른 서명자 그룹, 다른 체인 해시를 갖지만 같은 거래들을 가지며, 이는 다른 서명을 유발한다. 에 대해, 블록에 서명한 서명자 그룹은 공격자들에게 매수되어야 하고, 이는 체인의 마지막 블록까지 반복된다. 확정 투표로 되돌아가기 위한 매수된 서명자들의 요구되는 수는 너무 커서 위조된 거래량에 의해 보상되지 않는다.You can attack by buying a group of signers or stealing keys to forge blocks. This way, the current block The attacker does not need to change the previous blocks because the signer group for is not changed so that the valid but bought signatures of the signer group are added. The attacker only cares about forgery. The next block, due to changes in transactions and corresponding signatures The signer group and chain hash values for do not essentially match those of the block on the actual chain. Therefore, the attacker blocks The new signer group must be bought back or negotiated in order to sign. Now, the transformed block Has different signer groups, different chain hashes, but the same transactions, resulting in different signatures. For, the signer group that signed the block must be bought by attackers, which is repeated until the last block in the chain. The required number of bought signers to return to the confirmation ballot is too large to be compensated by the forged trade volume.
5.2. 보안 경제, 포상금 및 벌금5.2. Security economy, rewards and fines
공격자들이 장부 위조에 참여하지 않도록 하는 다수의 장치가 있다.There are a number of devices that prevent attackers from participating in forgery.
가장 중요한 첫 번째 장치는, 완전 추적 가능한 실명 기반 장부이다. 가장 강력한 동기는 모든 노드가 이미 실명 인증되었고 장부 상 모든 거래가 완전히 추적 가능하다는 사실로부터 온다. 그러므로, 네트워크 내 노드들은 범죄가 완벽히 추적 가능하고 색출될 가능성이 높다는 것을 충분히 안다.The first and most important device is a fully traceable blindness-based ledger. The strongest motivation comes from the fact that all nodes have already been authenticated blind and that all transactions on the books are fully traceable. Therefore, nodes in the network know enough that the crime is perfectly traceable and likely to be discovered.
두 번째 장치는, 비공개 포크가 불가능해서, 포킹을 위해서는 공개 광고가 불가피하다는 점이다. PoW 네트워크에서, 채굴자는 실제 체인(honest chain)을 치환하기 위하여 비공개 포크를 배포할 때까지 다른 채굴자들보다 빠르게 PoW를 계산함으로써 이중 지급에 대한 포크를 비밀리에 만들 수 있다. 그러나, PoP 네트워크에서, 포킹 체인을 만드는 것은 R개의 서명자 그룹이 약 R×S개(대략 200 서명자 또는 더 정확하게 )의 공모를 해야만 하기 때문에, 블록을 위조하는 합병자는 비공개 포킹을 할 수 없다. 그러나, 위조 합병자에 의해 제안받은 서명자들 중 적어도 하나는 블록이 이미 높은 확률로 완성되었다는 것을 알아야 한다(블록은 네트워크 거리의 시간 이후에 완성된다). 그러므로, 임의의 서명자는 당국에 이중 지급 시도를 신고할 것이다.The second device is that private forks are impossible, so public advertising is inevitable for forking. In a PoW network, miners can secretly make forks for double payments by calculating PoW faster than other miners until they distribute a private fork to replace the actual chain. However, in the PoP network, creating a forking chain is the signer of R R × S group of about two (or more accurately approximately 200 signatories The consolidator who forges the block will not be able to fork privately, since it must conspire. However, at least one of the signers proposed by the counterfeit merger should know that the block has already been completed with a high probability (the block is completed after the time of the network distance). Therefore, any signer will report a double payment attempt to the authority.
세 번째 장치는, 각 공모 서명자에게 주어지는 인센티브가 거래 비용보다 적다는 점이다. F%를 거래 비용 부분으로, TA를 블록 당 최대량 한도라고 하자. 또한, 단일한 거래는 TA의 M% 미만으로 제한된다. 또한, 및 R을 각각 블록에 대한 서명자 그룹 사이즈 및 확정을 위한 블록의 수라고 하자. 서명자들의 수 는 네트워크 속도에 의해 결정되고, R은 네트워크 거리에 의해 결정된다. 명료성을 위하여, S를 한 블록에 대한 서명자들의 평균 수라고 가정하자. 이때, 공격자를 위한 최고의 시나리오는 막 확정된 블록을 위조하는 것이고 이는 블록들의 최소 개수만 재서명될 필요가 있기 때문이다. 공격자는 블록을 위조해서 화폐 소비에 대한 자신의 거래가 제거되도록 한다. 위조된 블록은 공격자의 이중 지급에 대해 M×TA 개의 거래를 잃고, 따라서 M×F×TA는 위조된 블록의 공모 서명자들에게 보상되어야 한다. 다음 블록에 대한 서명자 그룹은 이제 새로운 그룹으로 변화하고, 그들은 다음 블록을 위조된 것에 서명해야 한다. 거래들은 변화하지 않기 때문에 후속 블록들은 같은 서명자 그룹들에 의해 서명되고, 그들은 새로운 서명으로부터 추가 수입을 얻지 않는다. 이제, 후속 블록들에 대한 공모 서명자들은 중복 서명 행위라는 것을 알면서 같은 블록에 또 다시 서명하라는 요청을 받는다. 이때, 공모 서명자들은 공모에 참여할지 말지 선택해야 한다. 공모 서명자들은 두 가지를 고려한다. 하나는 네트워크 노드들에 의해 이중 서명 행위로 당국에 신고될 가능성이 높다는 점이다. 다른 하나는 공모 서명자들이 이중 서명 행위가 거래 비용을 얻을 기회를 잃게 만들 수 있다는 점을 공모 서명자들이 알고 있다는 것이다. 이는 공모 서명자들이 서명한 종전 체인이 공모 서명자들이 공모하려는 후속 체인보다 거래 비용을 벌어들일 더 많은 가능성을 갖기 때문이다. 요약하면, 공모 서명자가 얻을 수 있는 지분은, 와 같이 계산될 수 있으며, 거래 비용은 와 같이 얻어질 수 있다.The third device is that the incentives given to each competition signer are less than the transaction cost. Let F % be the transaction cost and TA is the maximum limit per block. In addition, a single transaction is limited to less than M % of TA . Also, Let and R be the signer group size for the block and the number of blocks for confirmation, respectively. Number of signers Is determined by the network speed, and R is determined by the network distance. For clarity, suppose S is the average number of signers for a block. At this point, the best scenario for an attacker is to forge a block that has just been established because only the minimum number of blocks needs to be re-signed. The attacker falsifies the block so that his trade in money consumption is eliminated. The forged block loses M x TA transactions for the attacker's double payment, so M x F x TA must be compensated to the collusion signers of the forged block. The signer group for the next block now changes to the new group, and they must sign the next block forged. Since the transactions do not change, subsequent blocks are signed by the same signer groups, and they do not get additional income from the new signature. Now, collusion signers for subsequent blocks are asked to sign the same block again, knowing that it is a duplicate signing action. At this time, contest signers must choose whether or not to participate in the contest. Competition signers consider two things. One is that network nodes are likely to be notified to the authorities for double signing. The other is that the competition signers know that the signing of the competition can lead to the loss of the opportunity to obtain a transaction cost. This is because previous chains signed by competition signers have a greater chance of earning transaction costs than subsequent chains. In summary, the stake that can be obtained by the signatory of the competition is Can be calculated as Can be obtained as
그러므로, 서명자는 를 와 비교할 것이다. 간단한 대수에 의해, 가 얻어질 수 있다. 즉, F가 이상일 때, 서명자는 공모에 참여하지 않고, 정직하게 행동할 것이다. M = 10%이고, R = 10으로 설정한다면, F를 1% 미만으로 설정할 수 있다. 이는 블록 상 단일한 거래의 최대 부분이 10%로 제한되고, 그 블록을 포함하는 10개의 블록이 더해진 후에 하나의 블록이 확인된다면, 거래 비용 1%가 공모 공격을 방지하기에 충분하다는 것을 의미한다.Therefore, the signer To Will be compared with By simple algebra, Can be obtained. That is, F In this case, the signer will not participate in the contest and will act honestly. If M = 10% and R = 10, then F can be set to less than 1%. This means that if the maximum portion of a single transaction on a block is limited to 10% and one block is identified after the 10 blocks containing that block have been added, then 1% of the transaction cost is sufficient to prevent collusion attacks. .
네 번째 장치로, 포상금 및 벌금을 고려할 수 있다. 네트워크를 보호하기 위하여, 본 발명의 실시예들에서는 이중 지급자의 신고자에게 주어지는 포상금 및 공격자에 대한 벌금을 도입할 수 있다. 공개적으로 광고되어야 하고 공모하기 위하여 서명자들을 모집해야 한다는 점을 고려할 때 위조에 의한 이익보다 벌금이 크다면, 잠재적인 공격자는 거의 장부를 위조하려고 하지 않을 것이다. 불법 위조에 공모할 때 얻을 수 있는 지분보다 포상금이 더 높게 설정되기 때문에 임의의 서명자는 이중 지급자를 보고할 가능성이 더 높다. 이를 위해, 포상금 및 벌금은 보다 높게 설정되어야 한다.As a fourth device, rewards and fines can be considered. In order to protect the network, embodiments of the present invention may introduce a penalty to the notifier of the double payer and a penalty for the attacker. Considering that it must be publicly advertised and recruit signers to conspiracy, if the fines are greater than the benefits of counterfeiting, a potential attacker will rarely try to forge a book. Any signer is more likely to report a double payer because the reward is set higher than the equity that can be obtained when conspiring against illegal counterfeiting. To this end, rewards and fines Should be set higher.
마지막 장치를 위해, 공격에 의해 주어진 인센티브는 최대 거래 값(예를 들어, 블록 내 총합의 10%)을 설정하는 시스템 정책에 의해 제한될 수 있다. 거래의 가격이 높다면, 거래는 공격을 방해하기 위하여 많은 소규모 거래들로 분리시켜야 한다. 이렇게 함으로써, 공모자들이 얻는 최대 이익은 제한된다. 각 블록에 대해 TA를 작게 설정함으로써, 공격자들의 인센티브를 작게 한다. 예를 들어, TA를 USD 10,000으로, S를 10으로 각각 설정한다면, R = 10, M = 10% 및 F = 1%를 고려할 때, 각 공모자들에 대한 최대 이익은 단지 USD 9.9이다. USD 9.9는 완전 추적 가능한 네트워크 내에서 범죄에 가담할 정도로 충분하지는 않을 것이다.For the last device, the incentive given by the attack may be limited by system policy that sets the maximum transaction value (eg, 10% of the total in the block). If the price of a transaction is high, the transaction must be broken up into many smaller transactions to prevent attacks. In doing so, the maximum profits of the conspirators are limited. By setting the TA small for each block, the incentives for attackers are reduced. For example, if you set TA to USD 10,000 and S to 10, respectively, considering R = 10, M = 10% and F = 1%, the maximum profit for each conspirator is only USD 9.9. USD 9.9 will not be enough to engage in crime in a fully traceable network.
이처럼 블록 위조는 위조자가 공모자들을 모으기 위하여 공개적으로 광고해야 하고, 지분은 비용, 포상금 및 벌금에 비해 적기 때문에 유인이 적어진다.As such, block counterfeiting must be publicly advertised by counterfeiters to attract conspirators and less incentives because equity is less than costs, rewards and fines.
6. 기타6. Other
6.1. 로컬 블록 체인들 및 보간(interpolation)에 의한 크기 확장가능성6.1. Size scalability by local blockchains and interpolation
PoP 체인의 확장가능성에 대해, 모든 영역 범위(regional area)는 자체의 로컬 블록 체인을 갖는다. 영역 내에서 발생하는 모든 거래들은 전술한 바와 같이 처리된다. 반면, 거래가 두 로컬 블록 체인들 사이에서 발생하는 경우를 고려할 수 있다. 예를 들어, 올랜도(Orlando)에 있는 로컬 체인 상의 A(이하, 'A@Orlando')가 페어팩스(Fairfax)에 있는 로컬 체인 상의 B(이하, 'B@Fairfax)에게로 USD 5를 보내길 원하는 경우를 고려할 수 있다. "A@Orlando가 B@Fairfax에 USD 5를 보낸다"는 거래는 잔액을 확인함으로써 처음으로 검증되고 페어팩스(Fairfax)에 있는 로컬 체인 상에서 처리될 수 있다. 그러므로, 더 많은 합병자들 및 서명자들과 관련되기 때문에 거래 간 비용은 로컬 내부의 거래 처리 비용보다 높을 것이다. B@Fairfax가 보스턴(Boston)에 있는 로컬 체인 상의 C(이하, 'C@Boston')에 얼마의 금액을 보내길 원할 때, B@Fairfax의 잔액은 페어팩스(Fairfax)에 있는 로컬 체인 상에서 처음 유효화될 수 있다.For the scalability of the PoP chain, every regional area has its own local blockchain. All transactions occurring within the area are processed as described above. On the other hand, we can consider the case where a transaction occurs between two local blockchains. For example, if A (hereinafter 'A @ Orlando') on a local chain in Orlando wants to send USD 5 to B (hereafter 'B @ Fairfax) on a local chain in Fairfax May be considered. The transaction "A @ Orlando sends USD 5 to B @ Fairfax" can be verified for the first time by checking the balance and processed on the local chain at Fairfax. Therefore, the cost between transactions will be higher than the cost of processing transactions internally as it involves more mergers and signers. When B @ Fairfax wants to send some money to C ('C @ Boston') on a local chain in Boston, the balance of B @ Fairfax will be first validated on the local chain in Fairfax. Can be.
체인의 지역화(localization) 및 체인 간 상호 조작성(interoperability)은 크기와 속도 관점에서 장부가 관리 가능하도록 한다. 하나의 로컬 체인은 거래 규모 때문에 거래 처리는 지연되지 않고, 장부의 크기는 빠르게 증가하지 않으며, 오직 지역에서 발생하는 거래 기록들을 가지고 있다. 심지어 장부들을 작게 유지하면서, 상호 조작성에 의해 체인들 간 거래가 가능하다.Localization of chains and interoperability between chains makes the books manageable in terms of size and speed. One local chain does not delay transaction processing because of the size of the transaction, the size of the book does not increase rapidly, and only has local transaction records. Even keeping the books small, interoperability allows transactions between chains.
6.2. 모든 잔액을 새로운 체인으로 이동시키는 시간 확장가능성6.2. Time scalability to move all balances to new chain
체인들 간의 상호 조작성에 의해, 본 발명의 실시예들에 따른 시스템은 시간 확장이 가능해질 수 있다. 새로운 체인이 생성되고, 이는 오래된 체인을 사용하지 않도록 광고될 수 있으며, 오래된 체인 상의 모든 잔액들은 새로운 체인으로 이동될 수 있다. 이때, 오래된 체인은 피어들의 저장소(전체 노드들)에서 보관될 수 있다. 모든 잔액들이 새로운 체인으로 이동하지 않고 이후에 오래된 체인 상 거래 요청이 발생한다면, 보관된 체인은 여전히 새로운 체인으로 이동하는 데 사용될 수 있다.By interoperability between chains, the system according to embodiments of the present invention can be extended in time. A new chain is created, which can be advertised not to use the old chain, and all balances on the old chain can be transferred to the new chain. At this time, the old chain may be kept in the repository of peers (full nodes). If all balances do not move to the new chain and later a transaction request on the old chain occurs, the archived chain can still be used to move to the new chain.
6.3. 금액에 대한 프라이버시6.3. Privacy for amount
다수의 주소들은 추적을 어렵게 하기 위하여 금액에 대한 프라이버시 기술이 거래들을 분리시키는 데 사용될 수 있다.Multiple addresses can be used to separate transactions from privacy techniques for amounts to make tracking difficult.
6.4. 잔액 기반 장부6.4. Balance based ledger
거래 기록들뿐만 아니라 각 계좌의 잔액은 계좌 잔액 확인을 더 빠르게 만들기 위해 장부 내에 저장될 수 있다.The balance of each account as well as the transaction records can be stored in the book to make account balance confirmation faster.
6.5. 블록 체인 상의 영수증6.5. Receipt on blockchain
오직 재산 이동 정보를 저장하는 대신에, 우리는 매수할 수 없는 온라인 영수증을 체인 상에 실현하는 것이 가능하도록 문맥 정보를 저장할 수 있다. 장부의 저장소를 절약하고 더 나은 프라이버시 보호를 위해, 오직 거래의 해시 값은 장부에 저장되지만 고유 거래 정보는 은행에 의해 별도로 저장된다.Instead of storing only property movement information, we can store contextual information to make it possible to realize on the chain an unacceptable online receipt. To save the storage of the ledger and to better protect the privacy, only the hash value of the transaction is stored in the book but the unique transaction information is stored separately by the bank.
6.6. 종래 은행과의 거래6.6. Transaction with conventional bank
소비자들이 종래 은행 계좌(T)에서 우리의 p2p 은행 계좌(P)로 소정의 금액을 이체할 때, T 내의 잔액은 줄어들고 T에서 P로의 이체를 나타내는 거래는 생성된다. 거래를 포함하는 블록이 성공적으로 블록 체인에 연결될 때, 거래 처리는 완료된다. P에서 T로의 거래는 양 쪽 계좌 내 잔액들을 조정함으로써 유사하게 처리될 수 있다.When consumers transfer a certain amount of money from a conventional bank account (T) to our p2p bank account (P), the balance in T is reduced and a transaction is created indicating transfer from T to P. When the block containing the transaction is successfully connected to the blockchain, the transaction processing is completed. The transaction from P to T can be handled similarly by adjusting the balances in both accounts.
6.7. 국제 송금6.7. International money transfer
분명히 한 국가 내 한 체인에 있는 계좌로부터 다른 국가의 체인으로 돈을 국제적으로 송금하는 것은 가능하다. 환율을 적용함으로써, 출처 체인에 우선 거래를 기록하고 로컬 체인 상호 조작 절차를 사용하여 목적지 체인에 기록하는 것은 국제 송금을 완성시킨다.Clearly, it is possible to transfer money internationally from an account in one chain to a chain in another country. By applying exchange rates, recording preferred transactions in the source chain and recording them in the destination chain using local chain interaction procedures completes international remittances.
7. 현존하는 암호화폐 기술들과의 차이점7. Differences from existing cryptocurrency technologies
7.1. 완전 추적 가능한 실명 온라인 금융 플랫폼7.1. Fully traceable real name online financial platform
본 발명의 실시예들에 따른 블록 체인은 실명으로 신원 확인된 사용자들(노드들)에 의해 실행되고 사용되며, 따라서 가명 및 실명 매핑 테이블이 주어질 때 모든 거래는 추적 가능하다. 이는 조세 회피, 자금 세탁에 대한 정부의 고민을 해소시킴으로써 장부의 발전을 용이하게 할 것이다.The blockchain according to embodiments of the present invention is executed and used by users (nodes) identified with real names, so that all transactions are traceable when given a pseudonym and real name mapping table. This will ease the development of books by resolving government concerns about tax avoidance and money laundering.
7.2. 진정한 탈중앙화7.2. True decentralization
한 명의 사용자가 하나의 투표를 할 수 있다는 점에서 PoW 및 PoS와 비교할 때 더 민주적이다. PoW 또는 PoS를 사용하는 익명의 네트워크에서, 큰 컴퓨팅 능력 소유자 또는 고-지분 소유자는 다른 이들보다 더 많이 투표할 수 있다. 이런 관점에서 보다 민주적이라는 것은 많은 것을 의미한다. 예를 들어, 보다 민주적이라는 것은 네트워크의 더 나은 보안, 공평성 및 민주적 제어를 의미할 수 있다. 현재 PoW/PoS 네트워크들은 탈중앙화가 요구되지만 그들은 사실 높은 해시 능력 그룹들, 큰 암호화폐 거래소들 및 개발자들에 의해 중앙화된다. 반면, 본 발명의 실시예들에 따른 PoP는 암호화폐, PoW, PoS가 아닌 탈중앙화를 제공할 수 있다.It is more democratic compared to PoW and PoS in that one user can cast one vote. In anonymous networks using PoW or PoS, large computing power owners or high- stake owners can vote more than others. More democratic in this sense means a lot. For example, more democratic can mean better security, fairness and democratic control of the network. Currently PoW / PoS networks require decentralization but they are actually centralized by high hash capability groups, large cryptocurrency exchanges and developers. On the other hand, PoP according to embodiments of the present invention can provide decentralization rather than cryptocurrency, PoW, PoS.
7.3. 또한, PoP는 역행 또는 순행 위조 가능성에 의한 더 높은 보안성을 제공할 수 있다.7.3. In addition, PoP can provide higher security with the possibility of retrograde or counterfeiting.
7.4. 높은 거래 처리 속도7.4. High transaction processing speed
거래 처리량 및 에너지 소모의 관점에서, PoP는 PoW보다 낫다. 이는 PoP가 거래 처리를 위해 어떠한 거대한 계산도 유발하지 않기 때문이다. 결국, PoP 네트워크는 더 빠른 처리 속도 크기의 순서로 인해 PoW 네트워크에 비해 더 확장성이 있다. 현재 비트코인 네트워크의 처리 속도는 겨우 7 TPS(Transactions Per Second)이다.In terms of transaction throughput and energy consumption, PoP is better than PoW. This is because PoP does not cause any huge calculations for transaction processing. As a result, PoP networks are more scalable than PoW networks because of the order of magnitude of the faster processing speed. At present, the processing speed of Bitcoin network is only 7 Transactions Per Second (TPS).
7.5. 실물화폐에 대한 프로토콜7.5. Protocol for real money
현재 암호화폐 네트워크에서, 보상은 네트워크 내의 암호화폐로 주어지고, 거래는 오직 암호화폐로 된다. 네트워크 내부의 이러한 재귀적인 사용은 암호화폐와 현실 세계의 가치 간의 분리를 유발한다. 그것은 암호화폐의 현실세계 가치에 대해 어떠한 기준도 제공하지 않으나, 암호화폐의 자산 가치를 불안정하게 만든다. 실물화폐(예를 들어, USD)와 암호화폐 사이를 얽는 가치는 오직 암호화폐 거래소 시장에서 발생한다. 그 곳들이 오직 암호화폐의 시장 가치가 결정되고 그 가치에 대한 어떠한 기준(또는 앵커)도 없는 장소들이기 때문에 현재 거래 시장에서의 문제들이 발생한다. 거래소에서의 불안정성 및 암호화폐 거래에 대한 재귀적인 사용은 암호화폐들이 현실 세계의 화폐의 역할을 제공하는 것을 막는다. PoP 기반 p2p 은행은 암호화폐 대신 실물화폐 이체를 다루고, 이에 따라 거래 비용은 실물화폐로 주어진다. 전체적으로, p2p 은행을 위한 프로토콜은 가상으로 개설된 금융 시스템이 아니라 실제 금융 시스템을 위해 동작한다.In current cryptocurrency networks, rewards are given in cryptocurrencies within the network, and transactions are only cryptocurrencies. This recursive use inside the network causes a separation between cryptocurrency and real world values. It does not provide any criteria for the real world value of cryptocurrencies, but it destabilizes the value of cryptocurrencies' assets. The value entangled between the real currency (eg USD) and the cryptocurrency only arises in the cryptocurrency exchange market. Problems arise in the current trading market because those are the only places where the market value of the cryptocurrency is determined and there is no basis (or anchor) for that value. Instability on the exchange and recursive use of cryptocurrency trading prevents cryptocurrencies from serving as real world currencies. PoP-based p2p banks deal with real money transfers instead of cryptocurrencies, so transaction costs are given in real money. Overall, the protocol for p2p banks works for real financial systems, not virtually opened financial systems.
7.5. 디지털 서명7.5. Digital signature
PoP 네트워크에 대해, 임의의 보안(EU-CMA 보안) 디지털 서명은 RSA-OAEP, ECDSA, DSA, 페어링 기반 서명 등과 같은 플랫폼에서 동시에 사용될 수 있다. 네트워크 대역폭이 충분하지 않으면, 집합 서명(aggregate signature)이 다수의 서명들을 압축하기 위해 사용될 수 있다.For PoP networks, any secure (EU-CMA secure) digital signature can be used simultaneously on platforms such as RSA-OAEP, ECDSA, DSA, pairing based signatures, and the like. If network bandwidth is not sufficient, an aggregate signature can be used to compress multiple signatures.
7.6. 다른 어플리케이션들7.6. Other applications
금액 이체뿐만 아니라 임의 형태의 거래들을 위해 취급될 수 있다. 예를 들어, 암호화폐는 PoP 네트워크 상에서 취급될 수 있다. 책 판매 기록들, 음악/노래 판매 기록들은 사업 처리를 투명하게 하기 위해 장부에 저장될 수 있다.It can be handled for any form of transactions as well as for money transfers. For example, cryptocurrencies can be handled on PoP networks. Book sales records, music / song sales records may be stored in the book to make business processing transparent.
도 5는 본 발명의 일실시예에 있어서, 네트워크 시스템의 동작 환경의 예를 도시한 도면이다. 도 5는 금융 플랫폼(510), 복수의 서명자 노드들(510) 및 복수의 합병자 노드들(530)을 나타내고 있다. 이때, 금융 플랫폼(510), 복수의 서명자 노드들(510) 각각, 그리고 복수의 합병자 노드들(530) 각각은, 일례로 이후 도 6을 통해 설명되는 컴퓨터 장치(600)와 같은, 물리적인 하드웨어 장치로 구현될 수 있으며, 실시예에 따라 둘 이상의 컴퓨터 장치들이 결합된 형태로 구현될 수도 있다.5 is a diagram illustrating an example of an operating environment of a network system according to an embodiment of the present invention. 5 illustrates a
금융 플랫폼(510)은 앞서 설명한 p2p 은행에 대응할 수 있으며, 네트워크에 입장하고자 하는 복수의 사용자들 각각에 대해 실명으로 신원을 인증받아 상기 네트워크상에서의 사용자 식별자를 제공할 수 있다.The
복수의 합병자 노드들(520) 각각은 사용자들간의 거래에 대한 정보를 수집 및 병합하여 거래 블록을 생성하고, 생성된 거래 블록을 위한 서명자들을, 상기 생성된 거래 블록이 포함하는 거래에 대한 이해관계와 무관하게, 서명된 블록 체인의 완성된 마지막 블록의 거래에 기반하여 선택하고, 선택된 서명자들의 생성된 거래 블록에 대한 서명을 받아 생성된 거래 블록을 서명된 블록 체인에 추가시키고자 시도할 수 있다. 복수의 합병자 노드들(520) 각각은 앞서 설명한 합병자의 단말에 대응할 수 있다.Each of the plurality of
복수의 서명자 노드들(530) 각각은 복수의 합병자 노드들(520) 각각으로부터의 요청에 따라 복수의 합병자 노드들(520) 각각에서 생성된 거래 블록의 유효성을 확인하고, 유효성이 확인된 거래 블록에 서명할 수 있다. 복수의 서명자 노드들(530) 각각은 앞서 설명한 서명자의 단말에 대응할 수 있다.Each of the plurality of
이때, 금융 플랫폼(510), 복수의 서명자 노드들(510) 각각, 그리고 복수의 합병자 노드들(520) 각각은, 도 5에 도시된 네트워크(540)를 통해 서로 통신할 수 있다.In this case, the
이미 설명한 바와 같이, 거래가 A에서 B로 발생할 때, 금액의 양, 날짜/시간, 거래 목적 및 그들의 ID들을 포함하는 거래 기록은 A 및 B의 개인 서명 키들을 이용하여 서명되고 A와 B 중 어느 하나(송신자)에 의해 합병자들로 보내진다. 합병자들은 지갑 내에 프로파일된 합병자들 순위에 따라 송신자에 의해 선택된다.As already explained, when a transaction occurs from A to B, the transaction record, including the amount of money, date / time, transaction purpose and their IDs, is signed using A and B's private signature keys and is either A or B Sent by the sender to the mergers. Mergers are selected by the sender according to the rank of the mergers profiled in the wallet.
이때, 복수의 합병자 노드들(520)은 선택된 합병자들의 단말들에 대응할 수 있으며, 복수의 합병자 노드들(520)은, 복수의 서명자 노드들(530)로부터 서명된 거래 블록들이 대응하는 합병자 노드들에 의해 각각 브로드캐스트됨에 따라, 서명된 거래 블록들의 유효성을 확인하고, 유효성이 확인된 서명된 거래 블록들의 서명된 블록 체인으로의 추가를 승인할 수 있다. 이미 설명한 바와 같이, PoP 네트워크는 블록을 지원하는 사람들의 누적된 수(서명 수)에 따라서 새로운 블록 체인을 선택 및 현실화한다. 이때, 새로운 블록 이전의 확정된 블록 체인에 대해서는 누적된 사람들의 수가 동일하기 때문에 결국 새롭게 블록 체인에 추가되는 거래 블록의 수에 따라 새로운 블록 체인이 선택될 수 있다. 복수의 서명자 노드들(530) 각각은 브로드캐스트되는 새로운 거래 블록들의 유효성을 확인하고, 유효성이 확인된 서명된 거래 블록들을 블록 체인에 추가하는 것을 승인할 수 있으며, 이때 거래 블록을 지원하는 사람들의 누적된 수(서명 수)가 가장 많은 거래 블록의 추가를 승인하거나 또는 유효성이 확인된 거래 블록들이 추가된 새로운 블록 체인들 중 거래 블록을 지원하는 사람들의 누적된 수(서명 수)가 가장 많은 거래 블록이 추가된 블록 체인을 선택할 수 있다.In this case, the plurality of
한편, 복수의 합병자 노드들(520) 각각은, 서명된 블록 체인에 추가시키고자 하는 거래 블록의 이전 거래 블록에 포함된 거래에 대한 정보들을 입력으로 가지면서 예측 불가능(random)하지만 입력에 따라 출력이 결정(deterministic)되는 함수를 통해 출력되는 해시 값을 생성하고, 생성된 해시 값에 기반하여 추가시키고자 하는 거래 블록을 위한 서명자들을 선택하며, 선택된 서명자들에 대응하는 서명자 노드들로 추가시키고자 하는 거래 블록에 대한 서명을 요청할 수 있다.On the other hand, each of the plurality of
이 경우, 복수의 서명자 노드들(530) 각각은 자신이 서명한 거래 블록의 블록 식별자를 관리하고, 서명된 블록 체인에서 마지막으로 서명된 거래 블록이 완성되기 전에 생성된 거래 블록에 대한 서명 요청을 거절할 수 있다. 또한, 복수의 서명자 노드들(530) 각각은 자신이 이미 서명한 거래 블록 상의 거래들에 대한 정보를 포함하는 다른 거래 블록에 대한 서명 요청을 무시하며, 서명 요청의 무시에 대한 정보를 다른 거래 블록에 대응하는 합병자 노드에게 통지할 수 있다. 또한, 복수의 서명자 노드들(530) 각각은 서명된 것과 일치하지 않는 거래를 포함하는 블록에 대한 서명 요청을 금융 플랫폼(510)에 보고하고, 서명 요청에 따른 합병자의 식별자 및 상기 일치하지 않는 거래의 송신자의 식별자를 네트워크상에 브로드캐스팅할 수 있다.In this case, each of the plurality of
도 6은 본 발명의 일실시예에 있어서, 컴퓨터 장치의 내부 구성의 예를 도시한 도면이다. 앞서 설명한 바와 같이, 금융 플랫폼(510), 복수의 서명자 노드들(510) 각각, 그리고 복수의 합병자 노드들(530) 각각은, 도 6의 컴퓨터 장치(600)와 같은, 물리적인 하드웨어 장치로 구현될 수 있으며, 실시예에 따라 둘 이상의 컴퓨터 장치들이 결합된 형태로 구현될 수도 있다.6 is a diagram illustrating an example of an internal configuration of a computer device according to one embodiment of the present invention. As described above, the
이러한 컴퓨터 장치(600)는 도 6에 도시된 바와 같이, 메모리(610), 프로세서(620), 통신 인터페이스(630) 그리고 입출력 인터페이스(640)를 포함할 수 있다. 메모리(610)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(610)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(600)에 포함될 수도 있다. 또한, 메모리(610)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(610)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(610)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(630)를 통해 메모리(610)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(540)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(600)의 메모리(610)에 로딩될 수 있다.As illustrated in FIG. 6, the
프로세서(620)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(610) 또는 통신 인터페이스(630)에 의해 프로세서(620)로 제공될 수 있다. 예를 들어 프로세서(620)는 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The
통신 인터페이스(630)은 네트워크(540)를 통해 컴퓨터 장치(600)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(600)의 프로세서(620)가 메모리(610)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(630)의 제어에 따라 네트워크(540)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(540)를 거쳐 컴퓨터 장치(600)의 통신 인터페이스(630)를 통해 컴퓨터 장치(600)로 수신될 수 있다. 통신 인터페이스(630)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(620)나 메모리(610)로 전달될 수 있고, 파일 등은 컴퓨터 장치(600)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The
입출력 인터페이스(640)는 입출력 장치(650)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(640)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(650)는 컴퓨터 장치(600)와 하나의 장치로 구성될 수도 있다.The input /
또한, 다른 실시예들에서 컴퓨터 장치(600)는 도 6의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(600)는 상술한 입출력 장치(650) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Further, in other embodiments, the
도 7은 본 발명의 일실시예에 있어서, 서명 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 서명 방법은 일례로 앞서 설명한 서명자의 단말을 구현하는 컴퓨터 장치(600)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(600)의 프로세서(620)는 메모리(610)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(620)는 컴퓨터 장치(600)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(600)가 도 7의 방법이 포함하는 단계들(710 내지 730)을 수행하도록 컴퓨터 장치(600)를 제어할 수 있다.7 is a flowchart illustrating an example of a signature method in an embodiment of the present invention. The signature method according to the present embodiment may be performed by the
단계(710)에서 컴퓨터 장치(600)는 입장하고자 하는 복수의 사용자들에 대해 실명으로 신원이 인증된 네트워크상의 합병자 노드로부터 네트워크를 통해 상기 합병자 노드가 생성한 거래 블록에 대한 서명 요청을 수신할 수 있다. 여기서, 컴퓨터 장치(600)는 복수의 사용자들 중 서명자로서 선택된 사용자의 단말에 대응할 수 있으며, 합병자 노드 역시 복수의 사용자들 중 합병자로 선택된 사용자의 단말에 대응할 수 있다. 이때, 서명 요청은 해시 값에 기초하여 선택되는 네트워크상의 서명자 노드들에게 합병자 노드에 의해 전송될 수 있으며, 여기서 해시 값은 서명된 블록 체인의 마지막 거래 블록이 포함하는 거래들에 대한 정보들을 입력으로 가지면서 임의적(random)이어서 예측 불가능하지만 결정적(deterministic)이어서 입력에 따라 출력이 결정되는 함수를 통해 출력될 수 있다.In
단계(720)에서 컴퓨터 장치(600)는 서명 요청된 거래 블록의 유효성을 확인할 수 있다. 서명자가 거래 블록의 유효성을 확인하는 과정에 대해서는 앞서 여러 번 설명하였기에 반복적인 설명은 생략한다.In
단계(730)에서 컴퓨터 장치(600)는 유효성이 확인된 거래 블록에 서명할 수 있다. 이때, 컴퓨터 장치(600)는 서명된 거래 블록을 합병자 노드로 전송할 수 있다. 합병자 노드에서의 동작에 대해서는 도 8을 통해 설명한다.In
도 8은 본 발명의 일실시예에 있어서, 거래 블록 추가 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 거래 블록 추가 방법은 일례로 앞서 설명한 합병자의 단말을 구현하는 컴퓨터 장치(600)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(600)의 프로세서(620)는 메모리(610)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(620)는 컴퓨터 장치(600)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(600)가 도 8의 방법이 포함하는 단계들(810 내지 850)을 수행하도록 컴퓨터 장치(600)를 제어할 수 있다.8 is a flowchart illustrating an example of a method for adding a transaction block according to an embodiment of the present invention. The transaction block adding method according to the present embodiment may be performed by the
단계(810)에서 컴퓨터 장치(600)는 입장하고자 하는 복수의 사용자들에 대해 실명으로 신원이 인증된 네트워크를 통해 사용자들간의 거래에 대한 정보를 수집할 수 있다. 예를 들어, 거래가 사용자 A에서 사용자 B로 발생할 때, 금액의 양, 날짜/시간, 거래 목적 및 그들(사용자 A와 사용자 B)의 ID들을 포함하는 거래 기록은 사용자 A의 개인 서명 키 및 사용자 B의 개인 서명 키를 이용하여 서명되고 사용자 A와 사용자 B 중 어느 하나(송신자)에 의해 합병자들로 보내질 수 있다. 본 실시예에서 컴퓨터 장치(600)는 이러한 합병자들 중 하나의 단말일 수 있으며, 단계(810)에서와 같이 사용자들간의 거래에 대한 정보를 수집할 수 있다.In
단계(820)에서 컴퓨터 장치(600)는 수집된 거래에 대한 정보를 병합하여 거래 블록을 생성할 수 있다. 거래 블록은 적어도 하나의 송신자로부터 수신되는 거래에 대한 정보(앞선 예에서의 거래 기록)를 포함할 수 있다.In
단계(830)에서 컴퓨터 장치(600)는 생성된 거래 블록을 위한 서명자들을 생성된 거래 블록이 포함하는 거래에 대한 이해관계와 무관하게, 서명된 블록 체인의 완성된 마지막 블록의 거래에 기반하여 선택할 수 있다. 일례로, 도 3에서는 새로운 블록(111)의 종전 블록(112)이 포함하는 거래들(310, 320, 330)을 입력 파라미터로 갖는 해시 함수를 이용하여 계산되는 해시 값을 통해 새로운 블록(111)을 위한 서명자들(370)이 선택되는 예를 설명한 바 있다.In
단계(840)에서 컴퓨터 장치(600)는 선택된 서명자들의 생성된 거래 블록에 대한 서명을 요청할 수 있다. 이때, 서명자들 각각은 도 7을 통해 설명한 단계들(710 내지 730)을 통해 서명 요청을 수신하고, 거래 블록에 대한 유효성을 확인하여 유효한 거래 블록에 서명을 하여 도 8의 실시예에 따른 컴퓨터 장치(600)인 합병자 노드로 전송할 수 있다.In
단계(850)에서 컴퓨터 장치(600)는 서명자들로부터 서명된 거래 블록을 서명된 블록 체인에 추가시키기 위해, 서명된 거래 블록을 네트워크상의 복수의 합병자 노드들로 전송할 수 있다. 이때, 이미 설명한 바와 같이, 복수의 합병자 노드들 각각은 서명된 거래 블록의 유효성을 확인하고 유효성이 확인된 서명된 거래 블록을 서명된 블록 체인으로의 추가를 승인할 수 있다. 이 경우, 앞서 설명한 바와 같이 거래 블록을 지원하는 사람들의 누적된 수(서명 수)가 가장 많은 거래 블록의 추가를 승인하거나 또는 유효성이 확인된 거래 블록들이 추가된 새로운 블록 체인들 중 거래 블록을 지원하는 사람들의 누적된 수(서명 수)가 가장 많은 거래 블록이 추가된 블록 체인을 선택할 수 있다.In
도 5 내지 도 8에서 생략된 내용들은 그 앞의 설명들을 참고할 수 있으며, 이러한 네트워크 시스템이나 서명 방법 및 거래 블록 생성 방법이 갖는 효과들에 대해서도 앞서 자세히 설명한 바 있다.5 to 8 may refer to the foregoing descriptions, and the effects of the network system, the signature method, and the transaction block generation method have been described in detail above.
8. PoP 기반 블록체인에서의 동적 시간 지연 기반의 체인 연결 방법 및 시스템8. Dynamic time delay based chain connection method and system in PoP based blockchain
PoP(Proof of Population) 기반의 블록체인에서는 앞서 설명한 바와 같이 최소 서명자의 수 이상을 만족하면서 스코어 함수(일례로, 앞서 설명한 수학식 1의 함수)의 결과가 가장 큰 체인을 선택하도록 할 수 있다. 스코어 함수는 서명자의 수, 가장 가까운 서명자의 해밍 거리(Hamming distance), 블록 작성 시간과 같이 많은 매개 변수가 있다. 기초적인 설계에 있어서 한 블록에 서명하는 서명자의 수와 얼마나 빠르게 체인을 연결하는지는 중요하지 않다. 따라서 느리더라도 매우 높은 스코어를 가진 블록이 추가되었을 때, 이전에 합의되었던 모든 블록이 취소될 수 있기 때문에 더 많은 소프트포크를 야기할 수 있고, 최종적인 합의까지 걸리는 시간이 지체될 수도 있으며, 블록체인의 안정성을 저해할 우려가 있다.As described above, in a PoP (Proof of Population) -based blockchain, it is possible to select a chain having the largest result of a score function (for example, the function of
이러한 문제를 해결하기 위해 블록은 일정한 시간 안에 생성되어야 한다고 강제되거나 블록의 순번이 아닌 특정 시각의 스코어를 기준으로 체인을 선택하도록 할 수 있다. 전자의 경우 현실에서 발생하는 실제 트랜잭션이 없을 때를 위하여 빈 트랜잭션을 허용해줘야 하고, 후자의 경우 트랜잭션 요청을 모으지 않고 단지 빠르게 블록을 연결하는 것으로 스코어만을 높이려는 시도를 할 수 있다. 블록을 생성할 때마다 새롭게 생성되는 코인이 트랜잭션 처리를 위한 요금보다 더 비싸다면 블록체인을 교란할 수 있는 여지가 있어, 이를 위한 대비책이 요구된다.To solve this problem, a block can be forced to be created within a certain time, or a chain can be selected based on a score at a specific time rather than the order of the block. In the former case, an empty transaction should be allowed when there is no actual transaction occurring in the real world. In the latter case, an attempt can be made to increase the score by simply connecting blocks without collecting transaction requests. If a newly generated coin is more expensive than a transaction processing fee every time a block is generated, there is a possibility of disturbing the blockchain, and a countermeasure for this is required.
또한 어떠한 소수의 병합자가 더 많은 서명자를 관리하면, 더 높은 스코어 및 더 빠른 블록 연결을 가능하기 때문에, 소수의 병합자가 네트워크를 독점하는 상황을 막기 어렵다. 병합자의 대한 낮은 문턱 효과는 이를 어느 정도 완화하는 측면이 있지만, 이는 PoW(Proof of Work)나 PoS(Proof of Stake)에서 소수의 채굴자들이 네트워크를 독점하는 상황과 유사하다는 문제점이 있다.Also, if any few mergers manage more signers, it is difficult to prevent the situation where a few mergers monopolize the network, since higher scores and faster block concatenation are possible. The low threshold effect on the merger somewhat mitigates this, but it is similar to the situation where a few miners monopolize the network in PoW (Proof of Work) or PoS (Proof of Stake).
이하에서는 블록의 생성 지연 시간을 두어 이러한 문제점들을 완화하는 실시예들을 제시한다.In the following, embodiments are provided to mitigate these problems by providing a block generation delay time.
블록체인에서 이전 블록의 다음 블록이 될 수 있는 블록이 동시에 복수 개 존재하여 경합하는 경우, 즉 소프트포크가 발생하였을 때, 가장 빠르게 블록이 생성된 체인이 선택될 수 있다. 블록체인의 이전 몇 단계에서는 블록체인에 참여한 노드 사이의 전달 시간으로 인하여 서로 다른 복수의 체인을 이어갈 수 있다. 도 9는 블록체인에서의 소프트포크와 블록의 확정 예를 도시한 도면이다. 이때, 서로 다른 복수의 체인들 중 시간이 흐름에 따라 더 빠르게 블록이 연결되는 체인의 블록이 확정될 수 있다. 이런 이유에서 비트코인과 같은 블록체인에서는 6~7개 이상의 블록이 연결되었을 때에 최초 소프트포크가 발생한 블록에 기록된 내용이 확정된다.In a block chain, when a plurality of blocks that can be the next block of the previous block exist simultaneously and compete, that is, when a soft fork occurs, the chain in which the block is generated may be selected as soon as possible. In the previous several stages of the blockchain, the propagation time between nodes participating in the blockchain can lead to a plurality of different chains. 9 is a diagram illustrating a soft fork and an example of a block in a block chain. In this case, among the plurality of different chains, as the time passes, the block of the chain to which the block is connected faster may be determined. For this reason, in blockchains such as Bitcoin, the contents recorded in the block in which the first soft fork occurred when 6 to 7 or more blocks are connected are confirmed.
본 실시예에서는 블록의 체인 연결 규칙을 규정함으로써 PoP(Proof of Population) 기반의 블록체인에서 경합하는 체인이 존재하였을 때, 이를 해결하는 방법을 제공한다. 본 실시예에 따른 블록체인 네트워크에 참여하는 모든 노드(서명자, 합병자, 일반 사용자)는 모두 시간이 낮은 수준의 오차율을 가지고 동기화될 수 있다. 최근 컴퓨팅 환경은 초 단위나 늦더라도 분 단위의 동기화가 가능하다.The present embodiment provides a method for resolving a contention chain in a block chain based on a PoP (Proof of Population) by defining a chain connection rule of a block. All nodes (signers, mergers, general users) participating in the blockchain network according to the present embodiment can all be synchronized with a low error rate. Today's computing environment can synchronize in minutes, even seconds or late.
1) 기본 동작1) basic operation
도 10은 본 발명의 일실시예에 있어서, 블록 유효성 검증 과정의 예를 도시한 흐름도이다. 도 10은 블록체인 네트워크에 참여하는 노드가 외부의 병합자로부터 트랜잭션 및 서명들이 담겨진 블록을 수신한 경우의 블록 유효성 검증 과정의 예를 나타내고 있다. 이러한 노드는 앞서 설명한 도 6의 컴퓨터 장치(600)로 구현될 수 있다.10 is a flowchart illustrating an example of a block validation process according to an embodiment of the present invention. 10 illustrates an example of a block validation process when a node participating in a blockchain network receives a block containing transactions and signatures from an external consolidator. Such a node may be implemented with the
단계(1010)에서 노드는 블록을 수신할 수 있다. 노드는 블록체인 네트워크의 병합자에 의해 생성된 블록을 수신할 수 있으며, 이하에서와 같이 수신된 블록에 대한 시간 순서, 유효성 및 서명을 검증할 수 있다.In
단계(1020)에서 노드는 시간 순서를 검증할 수 있다. 시간 순서의 검증에 대해서는 이후 더욱 자세히 설명한다.In
단계(1030)에서 노드는 시간 순서가 올바른 경우 단계(1040)을 수행할 수 있고, 시간 순서가 올바르지 않은 경우 수신된 블록을 거절할 수 있다.In
단계(1040)에서 노드는 모든 체인에서 수신된 블록의 유효성을 검증할 수 있다. 이때, 노드는 트랜잭션에 대한 유효성뿐만 아니라, 동적 지연 시간에 대한 유효성을 더 검증할 수 있다. 동적 지연 시간은 병합자가 이전 블록의 생성 시각으로부터 동적 지연 시간 이내에 다른 블록을 생성하지 못하도록 제한하기 위해 계산되는 시간으로, 노드는 수신된 블록에 대한 동적 지연 시간을 산출하여 병합자가 산출된 동적 지연 시간을 지켜서 수신된 블록을 생성하였는지 여부를 판단함으로써, 수신된 블록의 동적 지연 시간에 대한 유효성을 검증할 수 있다.In
단계(1050)에서 노드는 트랜잭션이 유효한 체인이 존재하는 경우 단계(1060)을 수행할 수 있고, 트랜잭션이 유효한 체인이 존재하지 않는 경우 수신된 블록을 거절할 수 있다.In
단계(1060)에서 노드는 수신된 블록의 서명을 검증할 수 있다.In
단계(1070)에서 노드는 서명이 올바른 경우 수신된 블록의 처리를 시작할 수 있으며 서명이 올바르지 않은 경우 수신된 블록을 거절할 수 있다.In
도 11은 본 발명의 일실시예에 있어서, 유효성이 검증된 블록을 처리하는 과정의 예를 도시한 흐름도이다. 도 11은 블록체인 네트워크에 참여하는 노드가 유효성이 검증된 블록을 체인에 연결하는 처리 과정의 예를 나타내고 있다. 이러한 노드 역시 앞서 설명한 도 6의 컴퓨터 장치(600)로 구현될 수 있다.11 is a flowchart illustrating an example of a process of processing a validated block according to an embodiment of the present invention. 11 illustrates an example of a process in which a node participating in a blockchain network connects a block validated to a chain. Such a node may also be implemented with the
단계(1110)에서 노드는 새로운 블록이 존재하는 경우 단계(1120)를 수행하고 새로운 블록이 존재하지 않는 경우 블록의 처리 과정을 종료할 수 있다.In
단계(1120)에서 노드는 블록을 체인에 연결할 수 있다.In
단계(1130)에서 노드는 소프트포크로부터 m개 이상의 블록이 해당 체인에 연결된 경우 단계(1140)를 수행하고, m개 이상의 블록이 연결되지 않은 경우 블록의 처리 과정을 종료할 수 있다.In
단계(1140)에서 노드는 소프트포크로부터 m개 미만의 블록이 연결된 체인을 삭제할 수 있다. 예를 들어, 노드는 소프트포크에 의해 분리되어 존재하게 되는 서로 다른 복수의 체인들에 대한 정보를 저장소에 저장 및 관리할 수 있으며, 수신되는 블록의 유효성을 검증하여 서로 다른 복수의 체인들 각각에 연결할 수 있다. 이때, 소프트포크로부터 m개 이상의 블록이 연결된 체인이 존재하게 되면, 해당 체인을 제외한 나머지 체인(소프트포크로부터 m개 미만의 블록이 연결된 체인)에 대한 정보를 저장소에서 삭제함으로써 해당 체인들을 삭제할 수 있다.In
이처럼, 노드는 도 10에서 유효성이 검증된 블록을 도 11에서 노드가 알고 있는 체인에 연결할 수 있다. 이때, 소프트포크에 의해 복수의 체인이 동시에 존재할 수 있으며, 노드는 일정 길이 이상의 체인(소프트포크로부터 m개 이상의 블록이 연결된 체인)이 만들어지면 나머지 체인들(소프트포크로부터 m개 미만의 블록이 연결된 체인)과 해당 체인들에 연결된 모든 블록을 삭제할 수 있다.As such, the node may connect a block validated in FIG. 10 to a chain known to the node in FIG. 11. In this case, a plurality of chains may exist at the same time by the soft fork, and if a node has a chain of more than a certain length (chain connected with m or more blocks from the soft fork), the remaining chains (less than m blocks from the soft fork are connected) And all blocks connected to the chains can be deleted.
2) 블록 생성의 동적 시간 지연2) Dynamic time delay of block generation
병합자가 트랜잭션(및 이에 해당하는 사용자의 서명)을 모아 서명자들에게 보내고, 서명자들로부터 서명을 받은 뒤 병합 서명을 생성할 때, 본 실시예에서는 지연 시간을 두어 병합자가 트랜잭션과 서명들을 지키도록 할 수 있다. 블록 생성 지연 시간은 다른 블록 체인의 참여자에게도 공정하게 평가받을 수 있으며, 지연 시간을 지키지 않은 블록은 거절될 수 있다. 병합자는 이전 블록의 생성 시간으로부터 아래 수학식 2에 의해 생성되는 동적 지연 시간 t i 내에는 블록의 생성을 하지 않을 수 있다. 병합자가 블록을 위한 동적 지연 시간을 지켰는지 여부에 대한 판단은 앞서 도 10을 통해 설명한 단계(1040)에서 처리될 수 있다.When a merger collects a transaction (and the corresponding user's signature), sends it to the signers, generates a merge signature after receiving a signature from the signers, in this embodiment, there is a delay to allow the merger to keep transactions and signatures. Can be. The block generation delay time can be evaluated fairly by the participants of other blockchains, and blocks that do not keep the delay time can be rejected. The merger may not generate the block within the dynamic delay time t i generated by
인자 i는 블록의 순서, j는 서명자의 순번, k는 병합자의 순번을 의미할 수 있다. 여기서 t는 지연 시간을, δ는 네트워크 전파와 트랜잭션 수집을 위한 고정 지연 시간을, S는 서명에 참여하는 서명자의 수를, Δ는 이전 블록으로부터 계산되는 최적 서명자 아이디들로부터 현재 블록의 서명에 참여하는 서명자들의 아이디와의 거리를, Θ는 이전 블록으로부터 계산되는 최적 병합자 아이디로부터 현재 블록의 서명에 참여하는 병합자들의 아이디와의 거리를 각각 의미할 수 있다. D는 네트워크 상황을 고려한 난이도 변수를, B는 블록 병합 상황을 고려한 난이도 변수를, 함수 exp()는 임의의 밑을 갖는 지수 함수를 각각 의미할 수 있다.The argument i can mean the order of the blocks, j can be the order of the signers, and k can be the order of the mergers. Where t is the delay time, δ is the fixed latency for network propagation and transaction collection, S is the number of signers involved in the signature, and Δ is the signature of the current block from the optimal signer IDs computed from the previous block. Θ may mean a distance from the best merger ID calculated from the previous block to the IDs of the mergers participating in the signature of the current block. D may represent a difficulty variable considering a network situation, B may represent a difficulty variable considering a block merging situation, and a function exp () may mean an exponential function having an arbitrary base.
앞서 설명한 PoP 기반 블록체인은 블록의 생성에 참여하는 서명자의 수가 많을수록 스코어가 증가하도록 설계되었고 최소한의 서명자 수만 정의되었지만, 본 실시예들에서는 하나의 블록을 생성하기 위한 서명자의 수 S를 고정할 수 있다. Δ와 Θ는 블록의 생성에 참여하는 병합자들과 서명자들의 퀄리티를 측정하는 거리 함수로써 작으면 작을수록 병합자들 및 서명자들이 높은 퀄리티를 가지고 있다고 판단할 수 있다. 또한, 앞서 설명한 PoP 기반 블록체인에서는 해밍 거리를 사용하여 서명자의 퀄리티를 측정하였지만, 본 실시예들에서는 유클리드 거리, 맨하튼 거리 등 일반적인 두 벡터의 거리 함수를 사용할 수도 있다. 거리 Δ에 대해서 지연 시간 t는 지수적으로 증가할 수 있다. 다시 말해, 서명자들의 거리가 가까우면 가까울수록(즉, 퀄리티가 높을수록) 낮은 지연 시간을 가져 빠른 블록의 생성이 가능해질 수 있다. 또한 거리 Θ에 대해서도 지연 시간 t가 지수적으로 증가하게 된다. 다시 말해, 병합자들의 거리가 가까우면 가까울수록(즉, 퀄리티가 높을수록) 낮은 지연 시간을 가져 빠른 블록의 생성이 가능해질 수 있다. 물론, 이러한 지수 함수 이외에도 선형적인 증가나 단계적 증가 함수 등이 대신 사용될 수도 있다.Although the above-described PoP-based blockchain is designed such that the score increases as the number of signers participating in the generation of blocks increases, and only the minimum number of signers is defined, in this embodiment, the number of signers S for generating one block can be fixed. have. Δ and Θ are distance functions that measure the quality of the mergers and the signers participating in the generation of the block, and the smaller the smaller, the higher the quality of the mergers and the signers. In addition, in the above-described PoP-based blockchain, the quality of the signer is measured by using a hamming distance, but in the present embodiments, a distance function of two general vectors, such as Euclidean distance and Manhattan distance, may be used. For the distance Δ , the delay time t can increase exponentially. In other words, the closer the signers are, the closer they are (ie, the higher the quality), the lower the latency and the faster the block can be created. In addition, the delay time t increases exponentially with respect to the distance Θ . In other words, the closer the mergers are, the closer they are (i.e. the higher the quality), the lower the latency and the faster the block can be created. Of course, in addition to the exponential function, a linear increase or a step increase function may be used instead.
일례로, 블록을 수신하여 수신된 블록의 유효성을 검증하는 노드는 이전 블록으로부터 계산되는 다음 블록을 위한 최적 서명자들의 아이디들과 수신된 블록의 서명에 참여하는 실제 서명자들의 아이디들간의 거리를 거리 함수를 통해 계산하고, 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 동적 지연 시간을 계산할 수 있다. 다른 예로, 상기 노드는 이전 블록으로부터 계산되는 다음 블록을 위한 최적 병합자의 아이디와 수신된 블록의 서명에 참여하는 실제 병합자의 아이디간의 거리를 거리 함수를 통해 계산하고, 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 동적 지연 시간을 계산할 수 있다. 이때, 실시예에 따라 노드는 실제 병합자의 블록 생성 빈도에 기초하여 결정되는 난이도 변수와 계산된 거리간의 곱에 지수적, 선형적 또는 단계적으로 비례하도록 동적 지연 시간을 계산할 수도 있다.In one example, a node that receives a block and validates the received block is a distance function of the distance between the IDs of the best signers for the next block calculated from the previous block and the IDs of the actual signers participating in the signature of the received block. Calculate the dynamic delay time to be proportional to the calculated distance exponentially, linearly or stepwise. As another example, the node calculates the distance between the ID of the best merger for the next block calculated from the previous block and the ID of the actual merger participating in the signature of the received block through the distance function, and calculates the calculated distance and the exponential, linear The dynamic delay time can be calculated to be proportional to the product in steps or steps. In this case, according to an embodiment, the node may calculate the dynamic delay time to be exponentially, linearly or stepwise proportional to the product of the difficulty variable and the calculated distance determined based on the block generation frequency of the actual merger.
앞서 설명한 수학식 2는 서명자 1명당 일정한 지연 시간이 존재하는 것과 같다. 서명자의 수가 증가한다면 지연 시간이 증가하므로 빠르게 블록을 생성하길 원하는 병합자에게 있어서 불리한 측면이 있다. 병합자는 자신이 보유한 서명자 캐시 풀(cache pool)에서 수학식 2에 의해 가장 낮은 지연 시간을 갖는 서명자들(즉, 가장 높은 퀄리티를 가진 서명자들)을 선택하여 서명을 요청하고 이를 병합하여 블록을 생성할 수 있다. 만약 충분히 높은 퀄리티를 가진 서명자들이 자신의 서명자 캐시 풀에 없을 경우, 캐시 풀 밖의 서명자를 찾아서 서명을 요청할 수 있다.
만약, 어떠한 병합자가 블록을 생성할 때 지나치게 많은 의무 지연을 가져야 한다면 해당 병합자는 블록의 생성을 포기할 수 있을 것이다.If a merger has to have too much mandatory delay when creating a block, the merger may give up creating the block.
최종적으로, 더 빠르게 생성된 블록들로 연결된 체인은 더 높은 퀄리티의 병합자들과 서명자들이 서명한 집합이 된다.Finally, the chain of faster generated blocks becomes a set signed by higher quality mergers and signers.
3) 변수의 선택3) Variable Selection
이전 블록으로부터 선택된 다음 블록을 위한 서명자 아이디와 실제 서명자 아이디와의 거리 Δ는 서명자의 퀄리티를 의미하며 다양한 거리 함수를 사용하여 측정할 수 있다. 어떠한 거리 함수와 아이디를 어떠한 벡터로 측정할 것인가에 따라 실제 서명자들의 퀄리티가 달라지게 된다. 예를 들어, 서명자 아이디를 2진수 벡터(일례로, 아이디가 32비트일 때, {0, 1}32)로 해석하여 해밍 거리를 측정할 경우, 기준이 되는 서명자 아이디와 동일한 거리에 있는 서명자가 무수히 많게 된다. 반대로 서명자 아이디를 16진수 벡터(일례로, 아이디가 32비트일 때, {0, 1, 2, …, 15}8)로 해석하면 2진수 벡터일 때보다 동일 거리에 있는 서명자가 적어진다. 232진수 벡터(즉, 전체 아이디를 하나의 수로 보는 경우)로 해석하여 유클리드 거리를 측정하면 일정한 거리에 있는 서명자의 아이디는 2개씩 존재하게 된다. 만약 이를 해밍 거리로 측정하면 정확히 일치하는 경우만 1, 나머지의 경우 모두 0으로 계산된다. 만약 선택될 수 있는 서명자가 너무 많거나 적다면 서명자의 아이디를 해석하는 기준을 바꾸거나 이에 따라 적합한 거리 함수를 사용할 필요가 있다.The distance Δ between the signer's identity from the original signer's ID for the selected block from the next previous block can be measured by means of the quality of the signer uses a different distance functions. The quality of the actual signers depends on which distance function and ID to measure with which vector. For example, if the signer ID is interpreted as a binary vector (for example, {0, 1} 32 when the ID is 32 bits) and the Hamming distance is measured, the signer at the same distance as the reference signer ID It becomes innumerable. On the contrary, if the signer ID is interpreted as a hexadecimal vector (for example, {0, 1, 2, ..., 15} 8 when the ID is 32 bits), there are fewer signers at the same distance than the binary vector. If you interpret the Euclidean distance by interpreting it as a 32 hexadecimal vector (that is, seeing the entire ID as a single number), there will be two IDs for the signer at a certain distance. If it is measured with Hamming distance, it is calculated as 1 only for exact match and 0 for all others. If there are too many or fewer signers to choose from, you may need to change the criteria for interpreting the signer's identity or use the appropriate distance function accordingly.
난이도 변수 D와 B는 가장 빠른 블록으로부터 확정(finalization) 기준 m개의 이전 블록까지의 일정한 수(예를 들어, 1000)의 블록의 상태와 최종 블록 생성 시간과 현재 시간의 차이를 기반으로 결정될 수 있다. 만약 블록 생성 지연 시간이 상대적으로 길다면, D가 줄어들어 블록 생성 지연 시간이 짧아져서 빠른 블록 생성이 가능해진다. 그러나 블록 생성 지연 시간이 지나치게 짧다면, D가 늘어나서 블록 생성 지연 시간이 늘어날 수 있다. 이는 서명자와 병합자 사이의 시간 지연에 따른 문제와 서명자를 모으기 힘든 환경에서 병합자에게 더 낮은 퀄리티의 서명자들이 서명할 수 있게 하여 블록 체인의 안전성을 높이도록 할 수 있다. 일례로, 블록을 수신하여 수신된 블록의 유효성을 검증하는 노드는 최종 블록의 생성 시각과 현재 시각의 차이에 기초하여 결정되는 난이도 변수 D가 증가할수록 동적 지연 시간이 증가하도록 동적 지연 시간을 계산할 수 있다.Difficulty variables D and B may be determined based on the state of the final number of blocks from the earliest block to m previous blocks based on finalization (eg 1000) and the difference between the last block generation time and the current time. . If the block generation delay time is relatively long, D is reduced and the block generation delay time is shortened to enable fast block generation. However, if the block generation delay time is too short, D may increase to increase the block generation delay time. This can increase the blockchain's security by allowing lower quality signers to sign the merger in a time-consuming problem between signers and mergers and in environments where signers are difficult to collect. For example, the node receiving the block and validating the received block may calculate the dynamic delay time so that the dynamic delay time increases as the difficulty variable D determined based on the difference between the creation time and the current time of the final block increases. have.
또한, 만약 어느 병합자가 지나치게 많은 빈도수로 블록을 생성한다면 해당 B가 증가하여 블록 생성 지연 시간이 늘어나게 되고 반대라면 B가 감소하여 블록 생성 지연 시간이 줄어들게 된다. 이와 더불어 어떠한 병합자가 생성한 블록이 확정되고 일정한 수(0이 될 수 있음)의 블록이 체인에 더 연결될 때까지 다른 블록을 생성하지 못하도록 강제할 수 있다. 이 경우 블록이 확정되기 전에 폐기되면 해당 병합자는 바로 새로운 블록을 생성할 수 있다. 이는 소수의 병합자가 많은 서명자의 캐시 풀을 관리하고 블록 생성으로부터 발생하는 이득을 독점하지 못하도록 막는다. 이 경우, 병합자의 퀄리티는 블록 생성 빈도수에 영향을 받게 된다.In addition, if a merger generates blocks with too many frequencies, the corresponding B is increased to increase the block generation delay time, and conversely, B is decreased to reduce the block generation delay time. In addition, it is possible to force a merger to not create another block until a block generated by one merger is confirmed and a certain number of blocks (which can be zero) are further connected to the chain. In this case, if the block is discarded before it is confirmed, the merger can immediately create a new block. This prevents a small number of consolidators from managing the cache pool of many signers and monopolizing the benefits resulting from block generation. In this case, the quality of the merger is affected by the block generation frequency.
또한 서명자의 수 S는 난이도 변수 D와 연동될 수 있다. 만약 서명자의 수가 충분하지 않고 상대적으로 짧은 블록 생성 지연 시간에도 불구하고 블록이 생성되지 않는 경우, 요구되는 서명자의 수를 줄일 필요가 있다. 최종 블록 생성 시간으로부터 블록이 생성되지 않는 시간이 증가하여 D가 점차적으로 낮아지고 결국 최소 값이 도달하여도 블록이 생성되지 않으면 점진적으로 S를 줄여나가 서명자 모집의 부담을 줄일 수 있다. 반대로 D가 최대 값에 도달하였음에도 블록 생성 지연 시간이 줄어들지 않으면, 서명자가 네트워크에 충분하다는 의미이므로 더 높은 보안성을 위하여 S를 점진적으로 증가시킬 수 있다. The number of signers S can also be linked to the difficulty variable D. If the number of signers is not enough and no block is generated despite the relatively short block generation delay time, it is necessary to reduce the number of signers required. If D is gradually lowered from the last block generation time, and D is gradually lowered, and eventually the block is not generated even when the minimum value is reached, S can be gradually reduced to reduce the burden of signer recruitment. On the contrary, if the block generation delay time is not reduced even though D reaches the maximum value, it means that the signer is sufficient for the network, so that S may be gradually increased for higher security.
4) 블록의 유효성 검사4) Validation of the block
블록이 유효한지 검사하기 위해 본 실시예에서는 도 9를 통해 설명한 바와 같이, 시간 순서와 지연 시간과 트랜잭션의 유효성(잔고가 남아 있는지 등의)을 검사할 수 있다. 트랜잭션의 유효성 검사는 기존의 블록체인에서 사용하는 방법을 따른다.In order to check whether a block is valid, in this embodiment, as described with reference to FIG. 9, time order, delay time, and validity of a transaction (such as remaining balance) may be checked. Validation of transactions follows the method used in the existing blockchain.
블록을 수신한 노드는 현재의 시간을 알고 있다. 만약 현재의 시간보다 ε 만큼 빠른 서명자의 서명 생성 시간 및 병합자의 병합 서명 시간의 블록이 도착하였다면 해당 블록을 거절할 수 있다. ε은 시간 동기화의 기대 오차로 수초 정도로 정의할 수 있다. 또한 서명자의 서명 생성 시간은 병합자의 병합 서명 시간보다 빨라야 한다. 그렇지 않다면 해당 블록을 거절될 수 있다.The node receiving the block knows the current time. If a block of the signature generation time of the signer and the merge signature time of the merger arrives by ε earlier than the current time, the block may be rejected. ε can be defined as a few seconds as expected error of time synchronization. In addition, the signature generation time of the signer must be faster than the merge signature time of the merger. Otherwise, the block may be rejected.
블록의 생성 시간 순서가 올바르다면, 블록의 유효성을 검사해야 한다. 기존의 블록체인에서 사용하는 방법으로서 트랜잭션의 유효성을 검증하는 것 이외에 해당 블록이 블록 생성 지연 시간(수학식 2를 통해 설명한 동적 지연 시간)을 지켰는지 확인해야 한다. 만약 트랜잭션의 유효성에 문제가 있거나, 블록 생성 지연 시간이 공식을 통하여 얻어낸 것보다 더 빠르다면 해당 블록은 거절될 수 있다. 시간 지연을 결정하는 변수들은 소프트포크가 발생하여 경합하는 체인에서 다르게 설정될 수 있다. 어떠한 변수들은 시간의 영향을 받아 결정되기도 하며 어떠한 변수는 체인의 순번에 따라 결정되기도 한다. 병합자가 생성하는 블록은 항상 이전 블록을 명시적으로 지정해야 하고, 그에 따라 노드들은 결정된 체인과 현재의 시간을 통해 각 지연 시간을 검사할 수 있다.If the order of creation time of the blocks is correct, the blocks must be validated. In addition to validating transactions as a method used in the existing blockchain, it is necessary to check whether the block has kept the block generation delay time (dynamic delay time described by Equation 2). If there is a problem with the validity of the transaction, or if the block creation delay time is faster than that obtained through the formula, the block may be rejected. The variables that determine the time delay can be set differently in the contention chain where the softfork occurs. Some variables are determined by time and some variables are determined by chain sequence. The block created by the merger must always explicitly specify the previous block, so that nodes can check each delay through the determined chain and the current time.
상술한 모든 절차에 문제가 없다면 노드는 블록에 담겨 있는 서명들을 검증할 수 있다. RL(revocation list)에 담겨 있는 서명자의 서명이 블록에 포함되어 있거나 서명 자체가 올바르지 않다면 해당 블록은 거절될 수 있다.If there is no problem with all the above-described procedures, the node can verify the signatures contained in the block. If the block contains the signature of the signer contained in the revocation list (RL) or if the signature itself is incorrect, the block may be rejected.
5) 블록 체인의 연결5) Blockchain Connection
노드는 문제가 없다면 해당 블록을 자신이 보관하고 있는 체인에 연결하고, 체인의 소프트포크를 관리할 수 있다. 이러한 과정은 앞서 도 2를 통해 설명한 바 있다.If there is no problem, the node can connect the block to its own chain and manage the soft fork of the chain. This process has been described above with reference to FIG. 2.
이처럼 본 발명의 실시예들에 따르면, PoP(Proof of Population) 기반의 블록체인 네트워크에서 병합자가 이전 블록의 생성 시간으로부터 동적 지연 시간 이내에 블록을 생성하지 못하도록 하는 블록의 체인 연결 규칙을 규정함으로써, PoP 기반의 블록체인에서 경합하는 체인을 처리할 수 있다.As described above, according to the embodiments of the present invention, in a Proof of Population (PoP) -based blockchain network, by defining a chain linking rule of a block that prevents a merger from generating a block within a dynamic delay time from a generation time of a previous block, Can handle contention chains in the underlying blockchain.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). May be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For the convenience of understanding, the processing apparatus may be described as one used, but those skilled in the art will appreciate that the processing apparatus includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and may configure the processing device to operate as desired, or process independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. It can be embodied in. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The medium may be to continue to store a computer executable program, or to temporarily store for execution or download. In addition, the medium may be a variety of recording means or storage means in the form of a single or several hardware combined, not limited to a medium directly connected to any computer system, it may be distributed on the network. Examples of media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And ROM, RAM, flash memory, and the like, configured to store program instructions. In addition, examples of another medium may include a recording medium or a storage medium managed by an app store that distributes an application, a site that supplies or distributes various software, a server, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different manner than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.
Claims (10)
상기 블록체인 네트워크의 병합자에 의해 생성된 블록을 수신하는 단계;
상기 수신된 블록에 대한 동적 지연 시간을 산출하는 단계; 및
상기 병합자에 의해 생성된 이전 블록의 생성 시각과 상기 수신된 블록의 생성 시각의 차이와 상기 동적 지연 시간과의 비교를 통해 상기 수신된 블록의 유효성을 검증하는 단계
를 포함하고,
상기 유효성을 검증하는 단계는,
상기 수신된 블록의 시간 순서의 유효성, 상기 수신된 블록이 포함하는 트랜잭션의 유효성 및 상기 수신된 블록이 포함하는 서명의 유효성을 더 검증하는 것을 특징으로 하는 체인 연결 방법.In the method of chaining nodes participating in a blockchain network,
Receiving a block generated by an amalgamator of the blockchain network;
Calculating a dynamic delay time for the received block; And
Validating the received block by comparing a difference between the generation time of the previous block generated by the merger and the generation time of the received block and the dynamic delay time;
Including,
Validating the step,
And verifying validity of a time sequence of the received block, validity of a transaction included in the received block, and validity of a signature included in the received block.
상기 동적 지연 시간을 산출하는 단계는,
상기 이전 블록으로부터 계산되는 다음 블록을 위한 최적 병합자의 아이디와 상기 수신된 블록의 서명에 참여하는 실제 병합자의 아이디간의 거리를 거리 함수를 통해 계산하고, 상기 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 하는 체인 연결 방법.The method of claim 1,
Computing the dynamic delay time,
The distance between the ID of the best merger for the next block calculated from the previous block and the ID of the actual merger participating in the signature of the received block is calculated through a distance function, and the calculated distance and exponential, linear or stepwise. And calculating the dynamic delay time to be proportional to n.
상기 동적 지연 시간을 산출하는 단계는,
상기 실제 병합자의 블록 생성 빈도에 기초하여 결정되는 난이도 변수와 상기 계산된 거리간의 곱에 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 하는 체인 연결 방법.The method of claim 3,
Computing the dynamic delay time,
And calculating the dynamic delay time so as to be exponentially, linearly or stepwise proportional to the product of the difficulty variable and the calculated distance determined based on the block generation frequency of the actual merger.
상기 동적 지연 시간을 산출하는 단계는,
최종 블록의 생성 시각과 현재 시각의 차이에 기초하여 결정되는 난이도 변수가 증가할수록 상기 동적 지연 시간이 증가하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 하는 체인 연결 방법.The method of claim 1,
Computing the dynamic delay time,
And calculating the dynamic delay time such that the dynamic delay time increases as the difficulty variable determined based on a difference between a generation time of a final block and a current time increases.
상기 동적 지연 시간을 산출하는 단계는,
상기 이전 블록으로부터 계산되는 다음 블록을 위한 최적 서명자들의 아이디들과 상기 수신된 블록의 서명에 참여하는 실제 서명자들의 아이디들간의 거리를 거리 함수를 통해 계산하고, 상기 계산된 거리와 지수적, 선형적 또는 단계적으로 비례하도록 상기 동적 지연 시간을 계산하는 것을 특징으로 하는 체인 연결 방법.The method of claim 1,
Computing the dynamic delay time,
The distance between the IDs of the optimal signers for the next block calculated from the previous block and the IDs of the actual signers participating in the signature of the received block is calculated through a distance function, and the calculated distance and exponential and linear Or calculating the dynamic delay time to be proportional to each other.
상기 유효성이 검증된 블록을 소프트포크에 의해 분리된 서로 다른 복수의 체인 각각에 연결하는 단계
를 더 포함하는 체인 연결 방법.The method of claim 1,
Connecting the validated block to each of a plurality of different chains separated by soft forks
Chain connection method further comprising a.
상기 유효성이 검증된 블록이 연결되어 소프트포크로부터 m(상기 m은 2 이상의 자연수) 개 이상의 블록이 연결된 체인이 존재하는 경우, 상기 서로 다른 복수의 체인 중 소프트포크로부터 m 개 미만의 블록이 연결된 체인을 삭제하는 단계
를 더 포함하는 체인 연결 방법.The method of claim 7, wherein
When the valid block is connected and there is a chain in which m or more blocks are connected from the soft fork (m is a natural number of 2 or more), a chain of less than m blocks are connected from the soft fork among the plurality of different chains. Steps to delete
Chain connection method further comprising a.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180085539A KR102077397B1 (en) | 2018-07-23 | 2018-07-23 | Method and system for connecting chain based on dynamic time delay in proof of population based blockchain |
PCT/KR2018/008400 WO2020022531A1 (en) | 2018-07-23 | 2018-07-25 | Method and system for dynamic time delay-based chain connection in pop-based blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180085539A KR102077397B1 (en) | 2018-07-23 | 2018-07-23 | Method and system for connecting chain based on dynamic time delay in proof of population based blockchain |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200010905A KR20200010905A (en) | 2020-01-31 |
KR102077397B1 true KR102077397B1 (en) | 2020-02-13 |
Family
ID=69181765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180085539A KR102077397B1 (en) | 2018-07-23 | 2018-07-23 | Method and system for connecting chain based on dynamic time delay in proof of population based blockchain |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102077397B1 (en) |
WO (1) | WO2020022531A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111369367A (en) * | 2020-04-02 | 2020-07-03 | 中国工商银行股份有限公司 | Transaction flow combination method and device |
KR20210150174A (en) * | 2020-06-03 | 2021-12-10 | 삼성전자주식회사 | Electronic device using blockchain and a method thereof |
CN112996080B (en) * | 2021-01-26 | 2022-11-04 | 杭州网银互联科技股份有限公司 | POP point selection access method in SD-WAN network |
CN113298508B (en) * | 2021-06-17 | 2024-03-22 | 中国人民银行数字货币研究所 | Digital currency transaction method and system |
CN113592652B (en) * | 2021-08-02 | 2023-05-30 | 杭州复杂美科技有限公司 | Delay transaction method, computer device and storage medium |
CN113807968B (en) * | 2021-09-22 | 2024-02-23 | 网易(杭州)网络有限公司 | Block chain user request processing method and device, entrusting server and storage medium |
KR20230086501A (en) * | 2021-12-08 | 2023-06-15 | 고려대학교 산학협력단 | System for trading shared asset based on blockchain, method therefor and computer readable medium for performing the method |
CN114710425B (en) * | 2022-03-30 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | Block chain link point connection method, device, medium and equipment |
CN115099681B (en) * | 2022-07-18 | 2023-01-31 | 北京师范大学 | Library management system and method based on block chain |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101727525B1 (en) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | Block chain based distributed storage method and device thereof |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101660627B1 (en) * | 2015-02-03 | 2016-09-28 | 한양대학교 에리카산학협력단 | Method and apparatus for protecting transasction of encrypted currency |
KR102050129B1 (en) * | 2016-05-03 | 2019-11-28 | 안규태 | Block chain supporting multiple one-way functions used for verification of blocks |
KR101950912B1 (en) * | 2016-08-01 | 2019-02-21 | 서강대학교산학협력단 | Verification system and method for transaction based block chain |
KR101837167B1 (en) * | 2016-10-26 | 2018-03-09 | 주식회사 코인플러그 | Method for issuing and paying money in use of merkle tree structure on the basis of unspent transaction output protocol, and server using the same |
KR101877335B1 (en) * | 2017-01-02 | 2018-08-09 | 주식회사 코인플러그 | Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain and merkle tree structure related thereto, and terminal and server using the same |
-
2018
- 2018-07-23 KR KR1020180085539A patent/KR102077397B1/en active IP Right Grant
- 2018-07-25 WO PCT/KR2018/008400 patent/WO2020022531A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101727525B1 (en) * | 2016-09-05 | 2017-04-17 | 주식회사 스케일체인 | Block chain based distributed storage method and device thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20200010905A (en) | 2020-01-31 |
WO2020022531A1 (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102077397B1 (en) | Method and system for connecting chain based on dynamic time delay in proof of population based blockchain | |
US11720887B1 (en) | System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat | |
Ghosh et al. | Security of Cryptocurrencies in blockchain technology: State-of-art, challenges and future prospects | |
Xu et al. | A taxonomy of blockchain-based systems for architecture design | |
US11562333B1 (en) | System, method and program product for generating and utilizing stable value digital assets | |
US20200211011A1 (en) | Scalable Distributed Ledger System | |
US11436595B2 (en) | Method for issuing, using, refunding, settling and revoking electronic voucher using updated status of balance database by respective blocks in blockchain, and server using the same | |
CN108885761B (en) | Method for secure point-to-point communication on a blockchain | |
WO2023183151A1 (en) | Non-fungible token (nft) purchase and transfer system | |
AU2022204696A1 (en) | Scalable distributed ledger system, transaction privacy and combating fraud, theft and loss | |
CN114008969A (en) | Extensibility of transactions contained in blockchains | |
US20220067717A1 (en) | Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof | |
US20230316272A1 (en) | Divisible tokens | |
CN115136542A (en) | Intelligent contract | |
Ji et al. | Generalized proof of liabilities | |
Ye et al. | An anonymous and fair auction system based on blockchain | |
KR102039570B1 (en) | P2p ledger for fiat money without cryptocurrency | |
Guégan et al. | A probative value for authentication use case blockchain | |
Müller et al. | COST: A consensus-based oracle protocol for the secure trade of digital goods | |
Masseport et al. | Proof of usage: User-centric consensus for data provision and exchange | |
Sharma et al. | Introduction to blockchain and distributed systems—fundamental theories and concepts | |
JP2023522258A (en) | Methods for implementing a digital coin system using blockchain | |
US11386406B2 (en) | BitMint*LeVeL: decentralized mathematics digital coin * quantum safe, robust anonymity | |
US20240249275A1 (en) | Group signatures for a smart wallet on a blockchain platform | |
Szewczyk | The potential impact of the blockchain technology on the financial sector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |