KR102189668B1 - 탈중앙화된 계층적 다중 블록체인 방법 - Google Patents
탈중앙화된 계층적 다중 블록체인 방법 Download PDFInfo
- Publication number
- KR102189668B1 KR102189668B1 KR1020190047726A KR20190047726A KR102189668B1 KR 102189668 B1 KR102189668 B1 KR 102189668B1 KR 1020190047726 A KR1020190047726 A KR 1020190047726A KR 20190047726 A KR20190047726 A KR 20190047726A KR 102189668 B1 KR102189668 B1 KR 102189668B1
- Authority
- KR
- South Korea
- Prior art keywords
- blockchain
- transaction
- sub
- block
- main
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/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
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
탈중앙화된 계층적 다중 블록체인 방법이 개시된다. 다중 블록체인 방법은, 각 거래의 내용이나 유형에 따라 수정에 필요한 작업증명의 난이도를 결정한 후 상기 난이도에 따라 상기 거래에 대한 목표값을 계산하는 단계; 및 거래수정이 가능하도록 상기 목표값에 대한 작업증명을 통해 거래승인을 수행하는 단계를 포함할 수 있다.
Description
아래의 설명은 계층적 구조를 갖는 다중 블록체인을 탈중앙화 네트워크 환경에서 생성하는 방법에 관한 것이다.
블록체인(거래 내역을 중앙서버에 관리하는 대신에 분산 네트워크의 참여자들이 공동으로 기록하여 관리하는 분산원장(distributed ledger) 또는 그것을 가능하게 하는 기술을 통칭) 모델은 비트코인의 경우와 유사하게 정해진 시간(비트코인의 경우 매 10분)마다 새로운 블록(많은 거래내역이 기록된 원장)이 계산되어 블록체인에 추가하고, 그 계산에 대한 보상으로 지급되는 암호화폐가 존재한다고 가정한다. 이 때 정해진 시간을 회전이라고 하고, 순차적인 회전의 진행을 표시하는 n()을 이용하여, 회전을 으로, 이 회전에서 추가되는 블록을 으로, 이 블록 이 추가된 블록체인을 으로 표시하자. 이 기호를 이용하여 회전 이 진행되는 상황에서 각 노드(블록체인 네트워크에 참여하는 개별 기기, 예: 참여자의 컴퓨터)가 가지고 있는 블록체인은 으로 표시할 수 있다. 매 회전마다 반드시 블록이 추가되어야만 하는 것은 아니지만 설명의 편의를 위해 매 회전마다 블록이 정확히 하나씩 추가된다고 가정하자. 지금까지의 내용을 정리하면 다음의 기호들로 표현할 수 있다.
블록 의 데이터는 바로 앞 블록 의 해쉬값 , 현 블록에 포함될 거래들 , 현 블록의 해쉬값 과 이 해쉬값을 구하는데 사용한 넌스값 등으로 구성되어 있다. 여기서, 거래라는 용어는 비트코인의 관례를 따른 것으로 블록체인이 제공하는 서비스에 따라 실제 전자화폐의 거래내역일 수도 있고, 또는 개인정보를 포함한 다양한 정보들의 혼합체일 수도 있다.
작업증명
[수학식 1]
여기서, ''은 비트열의 접합(concatenation)을 의미하고, H는 어떤 입력에 대해서든 출력으로 256 비트열을 생성하는 SHA-256 해쉬함수이고, 개의 0으로만 구성된 비트열, 비트열 중에서 처음 비트가 X인 비트열의 집합을 의미한다(=비트열 X의 길이).
[수학식 2]
수학식 1의 계수 M은 해쉬퍼즐의 난이도를 결정하는데, 그 값이 크면 클수록 해당 해쉬퍼즐을 만족하는 넌스값을 계산하는 것이 어려워진다. 회전 에서 해쉬퍼즐의 해답 을 제일 먼저 계산한 채굴자(작업증명에 참여하는 노드를 지칭한다)는 블록 을 발표하고 이를 블록체인 에 연결하여 자신이 가지고 있는 블록체인을 확장한다.
[수학식 3]
비트코인의 블록체인에서는 이미 기록된 과거 거래에 대한 수정은 사실상 불가능하다. 예를 들어, 이미 블록체인에 연결된 블록 에 포함된 거래 를 로 수정한 블록체인을 유효한 것으로 검증받기 위해서는 블록 의 해쉬퍼즐의 해답 을 수정된 거래 에 맞추어 다시 계산해야 한다. 이 자체도 많은 계산을 필요로 하지만, 이 외에도 다음 블록 의 해쉬퍼즐의 해답 도 블록 에서의 해쉬값 의 변화에 대응하여 다시 계산해야 한다. 이러한 계산은 다음 블록에서도 필요하다. 이런 식으로 해쉬퍼즐을 계속 다시 풀어야 하는데 이는 가 현재의 회전번호 n보다 단 하나만 작은 경우에도 아주 어렵지만, 더 차이가 나는 경우(예: )에는 사실상 불가능하다. 이러한 이유로 기존의 블록체인에서는 과거 거래에 대한 수정은 사실상 불가능하다.
하나의 주블록체인(Main-Blockchain)과 여러 개의 부블록체인(Sub-Blockchain)으로 구성된 계층적 블록체인을 탈중앙화된 네트워크 노드들의 참여에 의해 생성하는 방법을 제공한다.
부블록체인은 난이도별로 분류된 거래수정을 다루는 블록체인, 주블록체인에서 사용하는 암호화폐와는 다른 암호화폐와 연관된 블록체인, 스마트 거래 등 특수한 유형의 거래들을 다루는 블록체인, 특정 데이터의 기록만을 담당하는 블록체인 등 여러 이질적인 블록체인으로 구성될 수 있다.
주블록체인은 거래의 승인과 함께 여러 부블록체인을 주블록체인에 연결하여 부블록체인에 기록된 데이터를 주블록체인에 기록하는 효과를 얻는데 사용한다.
제안된 다중 블록체인은 거래를 작업증명 난이도, 유형 또는 목적별로 분류하여 각 부블록체인별로 각기 다른 작업증명방법과 암호화폐를 사용할 수 있는 유연성을 제공한다.
주블록체인에 기록된 거래를 정당한 절차에 따라 블록체인의 연결 구조를 변화시키지 않으면서 수정할 수 있게 하는 방법을 다수의 거래에 대해 적용할 수 있게 하여 블록체인의 응용분야의 확대에 도움을 준다. 특히, 이해 당사자들의 정당한 요구에 따라 이미 기록된 거래내역을 삭제 또는 수정할 수 있도록 요구하는 개인정보 보호법 관련 규정을 준수할 수 있는 블록체인을 제공한다.
본 발명의 기술은 기존의 블록체인의 장점들인 기록된 거래내용에 대한 투명성, 보안성과 향상된 추적가능성을 그대로 제공하면서 동시에 그 어떤 중앙 관리자를 필요로 하지 않고 기존의 블록체인에서와 같은 탈중앙화된 참여자들의 공동의 노력에 의해 계층적 다중 블록체인을 생성할 수 있도록 한다.
컴퓨터 시스템에서 실행되는 다중 블록체인 방법에 있어서, 상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 다중 블록체인 방법은 상기 적어도 하나의 프로세서에 의해 수행되는 것으로, 각 거래의 내용이나 유형에 따라 수정에 필요한 작업증명의 난이도를 결정한 후 상기 난이도에 따라 상기 거래에 대한 목표값을 계산하는 단계; 및 거래수정이 가능하도록 상기 목표값에 대한 작업증명을 통해 거래승인을 수행하는 단계를 포함하는 다중 블록체인 방법을 제공한다.
일 측면에 따르면, 상기 수행하는 단계는, 하나의 주블록체인(main blockchain)과 복수 개의 부블록체인(sub blockchain)으로 구성된 계층적 블록체인을 생성하는 것으로, 상기 부블록체인은 난이도별로 분류된 거래수정을 다루는 블록체인이고, 상기 주블록체인은 거래의 승인과 함께 상기 부블록체인을 상기 주블록체인에 연결하여 상기 부블록체인에 기록된 데이터를 상기 주블록체인에 기록할 수 있다.
다른 측면에 따르면, 상기 수행하는 단계는, 하나의 주블록체인과 복수 개의 부블록체인으로 구성된 계층적 블록체인을 생성하는 것으로, 상기 작업증명의 난이도에 따라 수정이 요청된 거래에 대한 수정명령으로 이루어진 상기 부블록체인을 상기 주블록체인에 연결하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 연결하는 단계는, 상기 부블록체인을 상기 주블록체인의 해쉬값이 특정 조건을 만족하는 블록에 연결함으로써 상기 부블록체인을 상기 주블록체인에 연결하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 연결하는 단계는, 상기 부블록체인을 상기 주블록체인에 연결함으로써 상기 부블록체인에 기록된 특정 거래에 대한 수정명령을 전체 블록체인에 적용하여 업데이트하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 수행하는 단계는, 상기 부블록체인 별로 각기 다른 작업증명 방법과 암호화폐를 사용하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 수행하는 단계는, 상기 부블록체인이 거래의 승인을 위해 사용됨에 따라 상기 부블록체인에 수정이 요청된 거래에 대한 수정명령으로 이루어진 하위 블록체인을 연결하는 단계를 더 포함할 수 있다.
컴퓨터 시스템에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 블록체인을 기반으로 거래를 관리하는 것으로, 각 거래의 내용이나 유형에 따라 수정에 필요한 작업증명의 난이도를 결정한 후 상기 난이도에 따라 상기 거래에 대한 목표값을 계산하고 거래수정이 가능하도록 상기 목표값에 대한 작업증명을 통해 거래승인을 수행하는 것을 특징으로 하는 컴퓨터 시스템을 제공한다.
본 발명의 실시예들에 따르면, 이미 기록된 거래에 대한 수정 가능성을 다수의 거래에 대해 적용할 수 있게 하여 블록체인의 활용분야를 확대하는데 도움이 될 것이다.
본 발명의 실시예들에 따르면, 거래를 작업증명 난이도, 유형 또는 목적별로 분류하여 각 부블록체인별로 각기 다른 작업증명방법과 암호화폐를 사용할 수 있는 유연성과 다양한 블록체인을 하나의 주블록체인에 연결하여 관리하는 기술을 제공한다.
도 1은 기존 블록체인 모델의 블록에 포함되는 데이터를 나타낸 테이블을 도시한 것이다.
도 2는 기존 블록체인 모델의 거래의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 3은 기존 블록체인 모델의 거래승인 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 4는 기존 블록체인 모델의 거래수정 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 5는 기존 블록체인 모델에 의한 블록의 거래 수정 과정을 도시한 순서도이다.
도 6은 본 발명의 일실시예에 있어서 주블록체인의 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 7은 본 발명의 일실시예에 따른 블록체인 모델의 거래수정 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 8은 본 발명의 일실시예에 따른 블록체인 모델에 의한 블록의 거래 수정 과정을 도시한 순서도이다.
도 9는 본 발명의 일실시예에 있어서 주블록체인에 부블록체인을 연결하는 예시를 도시한 것이다.
도 10 본 발명의 일실시예에 있어서 계층적 다중 블록체인의 예시를 도시한 것이다.
도 11은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 기존 블록체인 모델의 거래의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 3은 기존 블록체인 모델의 거래승인 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 4는 기존 블록체인 모델의 거래수정 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 5는 기존 블록체인 모델에 의한 블록의 거래 수정 과정을 도시한 순서도이다.
도 6은 본 발명의 일실시예에 있어서 주블록체인의 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 7은 본 발명의 일실시예에 따른 블록체인 모델의 거래수정 블록의 세부 내용을 나타낸 테이블을 도시한 것이다.
도 8은 본 발명의 일실시예에 따른 블록체인 모델에 의한 블록의 거래 수정 과정을 도시한 순서도이다.
도 9는 본 발명의 일실시예에 있어서 주블록체인에 부블록체인을 연결하는 예시를 도시한 것이다.
도 10 본 발명의 일실시예에 있어서 계층적 다중 블록체인의 예시를 도시한 것이다.
도 11은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
이미 기록된 거래에 대한 수정 기술은 다음과 같다.
거래 수정이 가능한 블록체인에서는 기록된 거래의 수정이 가능하게 제안된 방법으로 그 목적을 달성하기 위해 거래에 직접 의존하는 작업증명 대신 거래의 목표값 에 의존하는 작업증명을 이용한다.
여기서, 는 거래 의 상태를 나타내는 것으로 해당 거래가 '승인' 또는 '수정'임을 표시하고, 는 거래 의 내용(예: 실질적인 거래내용, 전자서명, 개인정보 등)을, 그리고 는 거래 의 이해 당사자들에 대한 정보(예: 이해 당사자들의 공개키들)를 포함하고 있다. 여기서, 이해 당사자들은 거래 가 승인된 후에 정당한 절차를 따라 해당 내역을 삭제 또는 수정을 요구할 수 있는 주체를 의미한다. 마지막으로, 는 추후 설명할 거래수정 해쉬퍼즐의 해법을 위한 추가 데이터이다. 거래가 처음 승인될 때의 는 빈 비트열 null이다. 실제 적용에서는 , , , 를 구별할 수 있는 길이정보가 포함되어야 하지만 해당 내용은 쉽게 유추 가능한 내용이므로 설명의 편의를 위해 생략한다.
상기한 블록체인에서는 거래의 상태를 표시하듯이 블록 의 상태를 표시하는 정보(이 경우에는 '거래승인'이다)는 블록에 포함되어 있다. 제안된 방법에서는 정해진 규칙에 따라 각 회전마다 수행해야 하는 작업의 종류, 즉, 블록의 상태가 '거래승인'인지 또는 '거래수정'인지는 미리 정해진 규칙(예: '거래승인' 2회 다음에 '거래수정' 1회 같은 방법)을 따른다고 가정한다.
블록의 상태는 블록이 생성될 때 한번 결정된 후에는 변화하지 않는다. 블록의 상태가 '거래승인'이라는 의미는 해당 블록이 거래의 승인에 대한 증명으로 사용된다는 의미이다. 같은 의미로 블록의 상태가 '거래수정'이라는 것은 해당 블록이 어떤 특정거래에 대한 수정에 대한 증명으로 사용된다는 의미이다. 또한, 블록에는 블록 의 채굴자의 공개키가 포함된다.
이때, 현재의 회전 이 블록의 계산을 통해 거래승인을 증명 받는 회전인 경우에, 현 블록에 포함되어야 할 각 거래에 대해 각 채굴자들은 다음과 같은 '목표설정' 과정을 진행하도록 규칙을 정한다.
현 블록에 포함되어야 할 각 거래에 대해 각 채굴자들은 다음과 같은 '목표설정' 과정을 진행하는 규칙을 정한다.
[수학식 4]
여기서, 은 블록 에 포함될 거래의 개수이고, 처음으로 승인되는 거래 의 경우에는 ()이 모두 빈 비트열임을 유의하자(목표값 검증절차에서의 통일성을 유지하기 위해 빈 비트열임에도 불구하고 포함시킴). 또한, 는 수학식 5와 같이 정의한다.
[수학식 5]
목표설정의 결과로, 각 채굴자들은 각기 다른 거래들을 모을 수 있기 때문에 각기 다른 '목표값' 을 계산할 수 있다. 이 목표값은 거래수정의 유효성을 검증하는데 사용될 데이터로 위변조 되는 것을 방지해야 한다. 이를 위해 목표값에 대한 채굴자의 전자서명을 블록 내에 포함시킨다.
[수학식 6]
여기서, DS는 채굴자의 전자서명을 하는 함수를 의미하고, 이것의 유효한지는 블록에 기록되어 있는 채굴자의 공개키를 이용하여 확인할 수 있다.
목표설정을 끝낸 채굴자들은 수학식 7의 작업증명(거래승인)에 도전한다.
[수학식 7]
수학식 7을 만족하는 넌스값 에 대한 결과, 가 해당 블록 의 해쉬값으로 계산된다. 블록의 해쉬값을 제일 먼저 계산한 채굴자는 블록 을 발표하고 이를 블록체인에 연결하여 확장된 블록체인 로 업데이트한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 블록체인을 로 업데이트한다.
비트코인의 블록체인에서 필요로 하는 도 1의 테이블 내용과 비교하여 도 3의 테이블에서 추가된 내용을 살펴보면, 먼저, 난이도 계수 K(수학식 5 참조)와 '블록의 상태'(status)가 추가되었다. 현 회전의 작업증명은 '거래승인'이었기 때문에 '블록의 상태 = 거래승인'으로 결정된다. 또한, 채굴자의 공개키가 헤더에 추가되었다. 거래 는 도 2의 데이터 테이블에서 설명하였듯이 더 세분화되어 기록된다. 거래승인 블록 이 생성될 때는 에 대해 거래의 상태 = '승인'이고, 거래수정 해쉬퍼즐의 해법을 위한 추가 데이터 가 필요하지 않기 때문에 은 빈 비트열, 즉, Null이다.
상기한 블록채굴방법의 핵심은, 수학식 1과 7의 비교에서 극명하게 드러난다. 비트코인의 작업증명 방법의 해쉬값 은 모든 거래 에 직접적으로 의존하지만, 거래승인 작업증명은 거래의 해쉬값의 일부(이를 목표값이라고 명명함)인 에 의존하도록 정의하였다. 이는 거래의 삭제 및 수정을 위해 고안된 것이다.
이제, 거래를 수정하는 방법에 대해 알아보자. 먼저, 현재 회전 가 블록의 계산을 통해 거래수정을 증명 받는 회전이라고 가정하자. 이 회전에서는 각각의 채굴자들은 정당한 절차(예: 해당 거래의 수정을 요구하는 이해 당사자들의 유효한 요청)를 따라 수정이 요청된 거래 중에서 하나를 선택한다. 이 때, 어떤 채굴자(이를 채굴자 갑이라 하자)가 선택한 거래가 블록 에 기록되어 있는 거래 라고 가정해 보자.
수정이 요청된 거래 는 원래의 거래 내용은 이였는데 이를 로 수정하도록 요청받았다고 가정해 보자. 먼저, 거래 가 속해있는 블록 은 거래생성 블록이어야 한다는 점을 유의하자. 채굴자 갑은 블록 의 해쉬값 에 변화가 없게 하면서 거래 의 내용 를 로 수정하기 위해 수학식 8의 작업증명을 만족하는 넌스값을 찾는다.
[수학식 8]
을 만족하는 넌스값 r의 계산한다.
여기서, 는 수정이 요청된 거래 의 목표값()이다. 또한, 넌스값의 검색공간은 거래승인 작업증명에서 사용한 넌스값의 검색공간과 같은 것으로 정하자. 수학식 8을 만족하는 넌스값 은 을 만족하기 때문에 거래 의 내역 을 로 수정하고, 빈 비트열 를 으로 교체(원래, 빈 비트열이었던 는 이제 난수와 같은 넌스값 으로 교체되고, 이 넌스값을 새로운 로 여기게 된다)하면 블록 에서 거래 를 수정하는 효과를 얻을 수 있다. 이때, 거래 이 수정된 블록 은 원래의 블록 해쉬값 에 대해 유효성이 검증된다. 만약, 거래를 삭제하는 경우라면 을 빈 비트열(=null)로 교체하는 경우에 해당된다.
현재의 회전 에서 채굴자 갑이 제일 먼저 거래 수정에 대한 작업증명을 완료하였다고 가정해 보자. 채굴자 갑은 자신이 계산한 거래수정 증명을 위한 블록 을 발표하고 자신의 블록체인에 블록 을 연결하여 블록체인을 확장할 것이다. 이때 블록 의 해쉬값은 수학식 9로 한다.
[수학식 9]
다른 채굴자들도 발표된 블록 을 검증한 후에 그 검증결과가 참이면 자신들의 블록체인도 채굴자 갑처럼 확장한다. 이를 위해서는 블록 에는 수정되는 거래에 대한 정보가 포함하고 있어야 한다.
블록 에는 현 블록이 거래수정의 증명을 위한 것이라는 내용(블록의 상태 = 거래수정), 수정되는 거래 에 대한 정보(에 포함), 거래의 수정요청에 대한 해당 거래의 이해 당사자들의 전자서명(에 포함), 거래의 수정을 위해 진행해야 하는 작업들(에 포함), 이에 대한 전자서명() 등이 포함되어야 한다. 다른 참여자들은 다음의 절차를 통해 거래의 수정, 즉, 자신들이 가지고 있는 블록체인의 업데이트를 진행한다. 물론, 중간에 하나의 검증에서라도 실패하는 순간 블록체인은 원래의 상태로 복귀하고 블록 은 무시될 것이다.
본 발명의 목적 중 하나는 상기한 방법과 같이 블록체인에 기록된 거래의 수정이 가능한 블록체인을 제안하는 것이며, 이를 위해 기존 방식과 달리, 거래수정의 작업증명을 위한 블록채굴을 진행하여 부블록체인을 계산하고 주블록체인에서는 거래승인을 진행하게 한다. 이를 설명하기 위해 다음 기호들을 사용할 것이다.
여기서, 거래 도 2의 테이블과 같은 세부 정보를 가지고 있다고 가정한다. 본 발명에서는 주블록체인의 회전 에서 생성될 블록 에 기록되어질 거래들 , 에 대해 추후 수정 가능성을 제공하기 위해 각 채굴자들은 다음과 같은 '목표설정'과정을 진행하는 규칙을 정한다.
[수학식 10]
여기서, 은 블록 에 포함될 거래의 개수이고, 처음으로 승인되는 거래 의 경우에는 수학식 4에서 마찬가지로 ()이 모두 빈 비트열이고, 목표값 검증절차에서의 통일성을 유지하기 위해 빈 비트열임에도 불구하고 수학식 10에 포함시켰음을 주목하자.
기존에는 거래수정 작업증명의 난이도를 하나의 계수 K를 사용하여 모든 거래에 대해 동일하게 결정한 반면에 본 발명에서는 각 거래의 내용 및 유형에 따른 각기 다른 계수 을 사용할 수 있게 한 점이다. 예를 들어, =256으로 설정하면 해당 거래 를 수정하는 것은 불가능하며, (여기서, M은 거래승인 작업증명에 사용되는 계수, 수학식 7 참조)으로 설정하면 거래 의 수정은 전체 네트워크의 공동의 노력에 의해서만 수정 가능해지고, (M보다 이 현저히 작다는 의미이다)인 경우에는 해당 거래의 이해 당사자들의 계산에 의해서도 수정 가능해 진다.
목표설정의 결과로, 각 채굴자들은 각기 다른 거래들을 모을 수 있기 때문에 각기 다른 '목표값' 을 계산할 수 있다. 이 목표값은 거래수정의 유효성을 검증하는데 사용될 데이터로 위변조 되는 것을 방지해야 한다. 이를 위해, 수학식 6()과 같이 목표값에 대한 채굴자의 전자서명을 블록 내에 포함시킨다.
여기서, DS는 채굴자의 전자서명을 하는 함수를 의미하고, 이것의 유효한지는 블록에 기록되어 있는 채굴자의 공개키를 이용하여 확인할 수 있다.
주블록체인의 블록채굴에 참여하여 목표설정을 끝낸 채굴자들은 수학식 11의 작업증명(거래승인)에 도전한다.
[수학식 11]
을 만족하는 넌스값 r을 계산한다.
수학식 11을 만족하는 넌스값 r에 대한 결과 가 해당 블록 의 해쉬값으로 계산된다. 블록의 해쉬값을 제일 먼저 계산한 채굴자는 블록 을 발표하고 이를 주블록체인에 연결하여 확장된 주블록체인 으로 업데이트한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 주블록체인을 으로 업데이트한다.
본 발명에서 주블록체인 에 거래승인 작업증명 블록 을 연결하는 절차는 위에서 설명한 방법과 동일하다. 앞에서 언급하였듯이 차이점은 거래의 내용 및 유형에 따른 각기 다른 계수 을 사용할 수 있게 한 점이다. 또한, 본 발명에서는 주블록체인은 거래승인만을 담당하도록 제안한다. 이러한 사실을 고려하면, 본 발명에서 블록 의 세부 내용은 도 6의 테이블과 같이 기술할 수 있다.
이제, 부블록체인에 대해 알아보자. 본 발명에서는 주블록체인에 직접 연결될 부블록체인은 난이도별로 분류된 거래수정을 다루기 위해, 주블록체인에서서 사용하는 암호화폐와는 다른 암호화폐와 연관된 거래를 다루기 위해, 스마트 거래 등 특수한 유형의 거래를 다루기 위해, 또는, 특정 데이터의 기록만을 담당하기 위해 여러 부블록체인들로 구성될 수 있다. 또한, 각각의 부블록체인은 주블록체인과는 다른 형태의 합의 방법, 블록채굴과 암호화폐를 사용할 수 있다.
주블록체인에 직접 연결될 부블록체인의 수가 2L보다 작다고 하자. 그 중 하나의 부블록체인과 그 블록체인에 연결될 블록을 다음 기호들을 이용하여 표현해 보자.
여기서, 는 -비트로 구별되는 부블록체인 표식자인데, 각각의 -비트가 각기 다른 부블록체인을 지칭할 필요는 없다. 예를 들어, =3인 경우에, 000, 001, 010, 011은 =0을, 100, 101은 =1을, 110은 =2를, 111은 =3을 지칭하도록 정의할 수 있다. 이렇게 함으로써 부블록체인의 생성과 연결이 각기 다른 빈도로 발생할 수 있게 할 수 있다. 이에 대한 설명은 바로 등장할 것이다.
본 발명에서는 부블록체인의 구조는 다양한 형태의 것이 될 수 있다. 본 발명의 실시예에서는 표식자가 인 부블록체인이 특정 난이도에서의 주블록체인에 기록된 거래에 대한 수정명령이 기록되는 경우를 가지고 설명하고자 한다.
본 발명에서의 부블록체인들은 주블록체인에서의 블록의 해쉬값 의 끝 -비트가 를 지칭하는 경우에 -부블록체인의 블록이 생성되고 주블록체인에 연결되는 구조를 갖는다. 이를 구체적으로 설명하기 위해, 주블록체인의 블록 해쉬값 의 끝 -비트가 에서 해당 표식자 가 되었다고 가정해 보자. 처음으로 주블록체인에서의 블록의 해쉬값 의 끝 -비트가 표식자 가 되는 회전 에서 채굴된 는 -부블록체인의 최초 블록 으로 간주한다. 즉, 의 넌스값 과 해쉬값 에 대해 수학식 12로 정의한다.
[수학식 12]
-부블록체인의 채굴자들은 주블록체인의 블록에 기록되어 있는 거래의 수정하라는 명령에 대한 합의를 위한 작업증명을 위해 -부블록체인의 블록을 생성한다. 예를 들어, 거래 ()의 내용 을 로 수정하는 요청이 있었다고 가정해보자. 이에 대한 합의를 위한 블록 의 넌스값 과 해쉬값 은 수학식 13의 작업증명(거래수정)을 통해 얻어진다.
[수학식 13]
여기서, 는 수정이 요청된 거래 의 목표값(수학식 10)이다. 수학식 13을 만족하는 넌스값 은 을 만족하기 때문에 의 내용 을 로 수정하고, 빈 비트열 를 으로 교체하면 블록 에서 거래 를 수정하는 효과를 얻을 수 있다. 이러한 거래수정 명령으로 이루어진 -부블록체인의 블록 의 해쉬값은 으로 한다.
도 7은 거래수정 블록 의 내용을 보여주고 있다. 예를 들어, 수정되는 거래 에 대한 정보(TMC에 포함), 거래의 수정요청에 대한 해당 거래의 이해 당사자들의 전자서명(TMC에 포함), 거래의 수정을 위해 진행해야 하는 작업들(TMC에 포함), 이에 대한 전자서명(STMC) 등이 포함되어야 한다. 여기서, TMC의 주요 내용은 다음과 같다.
-부블록체인의 참여자들은 블록 의 유효한지 검증한 후에 자신의 -부블록체인에 추가하여 확장하려 할 것이다. 이러한 노력은 주블록체인에서 블록의 해쉬값의 끝 -비트가 다시 를 지칭할 때까지, 즉, 블록 이 채굴될 때까지 진행될 것이다. 그때까지 -부블륵체인에서 채굴된 블록들이 라 해보자. 주블록체인에서 블록 의 채굴자는 주블록체인 네트워크에 블록 과 하위블록 을 발표하고, 은 주블록체인 에 연결하여 로 업데이트하고, 하위블록 은 주블록체인의 블록 에서 시작해서 블록 에서 끝나는 사이드 체인(도 9 참조)을 형성하게 한다. 이때, 하위블록 에 들어있는 거래수정 명령들이 주블록체인에 적용되어 거래의 수정이 실제로 이루어진다.
주블록체인의 다른 채굴자들은 블록 과 하위블록 의 유효성을 검증한 후에 오류가 없는 경우 자신들의 주블록체인을 에 들어있는 거래수정 명령들을 적용하여 업데이트한다. 물론, 중간에 하나의 검증에서라도 실패하는 순간 주블록체인은 원래의 상태로 복귀하고 블록 과 하위블록 은 무시될 것이다.
만약, 부블록체인이 특정 유형의 거래들의 승인을 담당하는 경우라면 해당 부블록체인의 주블록체인으로의 연결은 전체 블록체인에 부블록체인의 거래들이 기록된다는 것을 의미한다.
블록 의 채굴자는 주블록체인으로부터 블록 에 대한 블록보상과 함께 하위블록 의 대한 '연결보상'을 -부블록체인 네트워크로부터 받게 된다. 한편, 하위블록 의 채굴자들도 -부블록체인 네트워크로부터 자신들이 채굴한 블록에 대한 블록보상을 받게 된다. 또한, 주블록체인의 블록 의 해시값 을 으로 업데이트한다. 여기서, 은 연결되는 하위블록의 마지막 블록 의 해쉬값이다.
이제, -부블록체인은 을 최초 블록으로 하여 내의 수정요청이 있는 거래에 대한 수정증명 블록을 연결하여 새롭게 확장될 것이고, 그것은 현재의 -부블록체인의 끝과 다음 번 -부블록체인의 시작을 알리는 이 채굴될 때까지 진행될 것이다. 이와 같은 방법으로 -부블록체인은 확장해 가며 주블록체인에 연결된다.
부블록체인은 수정명령으로 이루어진 것 외에도 특정한 종류의 거래들의 승인을 위해서도 사용될 수 있다. 또한, 부블록체인에 기록된 거래들은 수정 가능성의 확보를 위해 주블록체인의 거래들이 목표값에 대한 작업증명을 통해 승인되었듯이 그들도 목표값에 대한 작업증명을 통해 부블록체인에 기록되고, 그것을 수정하기 위한 하위블록체인을 추가할 수 있다(도 10 참조). 즉, 계층적 다중 블록체인을 구성할 수 있다. 이때 부블록체인에 하위 블록체인을 생성하고 연결하는 방법은 주블록체인에 부블록체인을 생성하고 연결할 때 사용한 '해쉬값의 끝 비트를 이용한 방법'을 부블록체인의 블록 해쉬값에 대해 적용하여 사용한다.
도 10에서 보듯이 부블록체인에 연결되는 하위 블록체인은 주블록체인에 연결되는 한 마디 내에서만 연결될 필요는 없다. -부블록체인 을 하나의 독립된 블록체인으로 보고 하위 블록체인을 연결하면 된다.
본 발명에서 거래수정은 주블록체인에 기록된 거래에만 국한된 것은 아니다. 만약, 어떤 부블록체인이 특정한 유형의 거래들의 승인을 위해 사용되었고, 그 거래들이 수정 가능성을 확보하기 위해 승인과정에서 해당 거래에 대해 직접 작업증명을 하는 대신 목표값(수학식 10)에 대한 작업증명을 시행한 경우라면 거래수정을 할 수 있다.
또한, 거래수정을 위한 블록체인은 반드시 수정하고자 하는 거래가 기록된 블록체인에 하위에만 존재해야 할 필요는 없다. 거래수정을 위한 작업증명을 할 시점에 수정하고자 하는 거래가 전체 블록체인에 기록되어 있는 것이고 승인과정에서 목표값에 대한 작업증명을 시행한 것이라면 기록된 위치에 상관없이 수정 가능하다.
지금까지의 설명에서는 주블록체인은 거래승인을 담당하는 경우를 다루었다. 본 발명에서는 블록체인에 승인되어야 할 모든 거래들은 그 유형에 따라 여러 부블록체인에서 승인되고, 또한 거래의 수정을 담당한 부블록체인은 난이도별로 분류되고, 주블록체인에서는 주블록체인에 연결될 부블록체인을 결정하는 작업만 담당하도록 설계할 수도 있다.
도 11은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
본 발명의 실시예들에 따른 블록체인 기반 거래 관리 시스템은 도 11의 컴퓨터 시스템(1100)을 통해 구현될 수 있다. 도 11에 도시한 바와 같이, 컴퓨터 시스템(1100)은 상기에서 설명한, 거래의 승인과 수정을 통합한 블록 채굴 방법을 실행하기 위한 구성요소로서 프로세서(1110), 메모리(1120), 영구 저장 장치(1130), 버스(1140), 입출력 인터페이스(1150) 및 네트워크 인터페이스(1160)를 포함할 수 있다.
프로세서(1110)는 명령어들의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(1110)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(1110)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스 등에 포함될 수 있다. 프로세서(1110)는 버스(1140)를 통해 메모리(1120)에 접속될 수 있다.
메모리(1120)는 컴퓨터 시스템(1100)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 예를 들어, 메모리(1120)는 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(1120)는 컴퓨터 시스템(1100)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(1120)는 예를 들어 블록체인에 기록된 거래를 수정하기 위한 명령어들을 포함하는 컴퓨터 시스템(1100)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(1100)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(1110)를 포함할 수 있다.
버스(1140)는 컴퓨터 시스템(1100)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(1140)는 컴퓨터 시스템(1100)의 컴포넌트들 사이에, 예를 들어 프로세서(1110)와 메모리(1120) 사이에 데이터를 운반할 수 있다. 버스(1140)는 컴퓨터 시스템(1100)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.
영구 저장 장치(1130)는 (예를 들어 메모리(1120)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(1100)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(1130)는 컴퓨터 시스템(1100) 내의 프로세서(1110)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 예를 들어, 영구 저장 장치(1130)는 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.
입출력 인터페이스(1150)는 키보드, 마우스, 마이크, 카메라, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 블록체인에 기록된 거래 수정과 관련된 입력이 입출력 인터페이스(1150)를 통해 수신될 수 있다.
네트워크 인터페이스(1160)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(1160)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들은 네트워크 인터페이스(1160)를 통해 수신될 수 있다. 그리고, 블록체인에 기록된 거래 수정과 관련된 정보들은 네트워크 인터페이스(1160)를 통해 수신 또는 송신될 수 있다.
또한, 다른 실시예들에서 컴퓨터 시스템(1100)은 도 11의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 시스템(1100)은 상술한 입출력 인터페이스(1150)와 연결되는 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이처럼 본 발명의 실시예들에 따르면, 이미 기록된 거래에 대한 수정 가능성을 다수의 거래에 대해 적용할 수 있게 하여 블록체인의 활용분야를 확대하는데 도움이 될 것이다. 또한, 거래를 작업증명 난이도, 유형 또는 목적별로 분류하여 각 부블록체인별로 각기 다른 작업증명방법과 암호화폐를 사용할 수 있는 유연성과 다양한 블록체인을 하나의 주블록체인에 연결하여 관리하는 기술을 제공한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (13)
- 컴퓨터 시스템에서 실행되는 다중 블록체인 방법에 있어서,
상기 컴퓨터 시스템은 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
상기 다중 블록체인 방법은 상기 적어도 하나의 프로세서에 의해 수행되는 것으로,
각 거래의 내용이나 유형에 따라 수정에 필요한 작업증명의 난이도를 결정한 후 상기 난이도에 따라 상기 거래에 대한 목표값을 계산하는 단계; 및
거래수정이 가능하도록 상기 목표값에 대한 작업증명을 통해 거래승인을 수행하는 단계
를 포함하고,
상기 수행하는 단계는,
하나의 주블록체인(main blockchain)과 복수 개의 부블록체인(sub blockchain)으로 구성된 계층적 블록체인을 생성하는 것으로,
거래수정의 작업증명을 위한 블록채굴을 진행하여 상기 부블록체인을 계산하고 상기 주블록체인에서는 거래승인을 진행하고,
상기 부블록체인은 난이도별로 분류된 거래수정을 다루는 블록체인이고,
상기 주블록체인은 거래의 승인과 함께 상기 부블록체인을 상기 주블록체인에 연결하여 상기 부블록체인에 기록된 데이터를 상기 주블록체인에 기록하고,
상기 주블록체인에 거래승인의 작업증명 블록을 연결하는 것으로, 상기 주블록체인의 블록은 거래수정의 난이도를 결정하는 계수로서 각 거래의 내용이나 유형에 따라 각기 다른 복수 개의 난이도 계수, 및 거래수정의 유효성을 검증하기 위해 사용되는 데이터로서 각 채굴자에 의해 계산된 각기 다른 거래의 해쉬값에서 일부의 해쉬값으로 설정된 목표값을 포함하는 것
을 특징으로 하는 다중 블록체인 방법. - 삭제
- 제1항에 있어서,
상기 수행하는 단계는,
상기 작업증명의 난이도에 따라 수정이 요청된 거래에 대한 수정명령으로 이루어진 상기 부블록체인을 상기 주블록체인에 연결하는 단계
를 포함하는 다중 블록체인 방법. - 제3항에 있어서,
상기 연결하는 단계는,
상기 부블록체인을 상기 주블록체인의 해쉬값이 특정 조건을 만족하는 블록에 연결함으로써 상기 부블록체인을 상기 주블록체인에 연결하는 단계
를 포함하는 다중 블록체인 방법. - 제3항에 있어서,
상기 연결하는 단계는,
상기 부블록체인을 상기 주블록체인에 연결함으로써 상기 부블록체인에 기록된 특정 거래에 대한 수정명령을 전체 블록체인에 적용하여 업데이트하는 단계
를 포함하는 다중 블록체인 방법. - 제3항에 있어서,
상기 수행하는 단계는,
상기 부블록체인 별로 각기 다른 작업증명 방법과 암호화폐를 사용하는 단계
를 더 포함하는 다중 블록체인 방법. - 제3항에 있어서,
상기 수행하는 단계는,
상기 부블록체인이 거래의 승인을 위해 사용됨에 따라 상기 부블록체인에 수정이 요청된 거래에 대한 수정명령으로 이루어진 하위 블록체인을 연결하는 단계
를 더 포함하는 다중 블록체인 방법. - 컴퓨터 시스템에 있어서,
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
블록체인을 기반으로 거래를 관리하는 것으로, 각 거래의 내용이나 유형에 따라 수정에 필요한 작업증명의 난이도를 결정한 후 상기 난이도에 따라 상기 거래에 대한 목표값을 계산하고 거래수정이 가능하도록 상기 목표값에 대한 작업증명을 통해 거래승인을 수행하고,
상기 적어도 하나의 프로세서는,
하나의 주블록체인(main blockchain)과 복수 개의 부블록체인(sub blockchain)으로 구성된 계층적 블록체인을 생성하는 것으로,
거래수정의 작업증명을 위한 블록채굴을 진행하여 상기 부블록체인을 계산하고 상기 주블록체인에서는 거래승인을 진행하고,
상기 부블록체인은 난이도별로 분류된 거래수정을 다루는 블록체인이고,
상기 주블록체인은 거래의 승인과 함께 상기 부블록체인을 상기 주블록체인에 연결하여 상기 부블록체인에 기록된 데이터를 상기 주블록체인에 기록하고,
상기 주블록체인에 거래승인의 작업증명 블록을 연결하는 것으로, 상기 주블록체인의 블록은 거래수정의 난이도를 결정하는 계수로서 각 거래의 내용이나 유형에 따라 각기 다른 복수 개의 난이도 계수, 및 거래수정의 유효성을 검증하기 위해 사용되는 데이터로서 각 채굴자에 의해 계산된 각기 다른 거래의 해쉬값에서 일부의 해쉬값으로 설정된 목표값을 포함하는 것
을 특징으로 하는 컴퓨터 시스템. - 삭제
- 제8항에 있어서,
상기 적어도 하나의 프로세서는,
상기 작업증명의 난이도에 따라 수정이 요청된 거래에 대한 수정명령으로 이루어진 상기 부블록체인을 상기 주블록체인에 연결하는 것
을 특징으로 하는 컴퓨터 시스템. - 제10항에 있어서,
상기 적어도 하나의 프로세서는,
상기 부블록체인을 상기 주블록체인의 해쉬값이 특정 조건을 만족하는 블록에 연결함으로써 상기 부블록체인을 상기 주블록체인에 연결하는 것
을 특징으로 하는 컴퓨터 시스템. - 제10항에 있어서,
상기 적어도 하나의 프로세서는,
상기 부블록체인 별로 각기 다른 작업증명 방법과 암호화폐를 사용하는 것
을 특징으로 하는 컴퓨터 시스템. - 제10항에 있어서,
상기 적어도 하나의 프로세서는,
상기 부블록체인이 거래의 승인을 위해 사용됨에 따라 상기 부블록체인에 수정이 요청된 거래에 대한 수정명령으로 이루어진 하위 블록체인을 연결하는 것
을 특징으로 하는 컴퓨터 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190047726A KR102189668B1 (ko) | 2019-04-24 | 2019-04-24 | 탈중앙화된 계층적 다중 블록체인 방법 |
PCT/KR2019/008595 WO2020153552A1 (ko) | 2019-01-22 | 2019-07-11 | 기록된 거래의 수정이 가능한 블록체인을 위한 방법 및 장치 |
US16/584,041 US20200234293A1 (en) | 2019-01-22 | 2019-09-26 | Method and appratus for blockchains with modifiable recorded transactions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190047726A KR102189668B1 (ko) | 2019-04-24 | 2019-04-24 | 탈중앙화된 계층적 다중 블록체인 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200124429A KR20200124429A (ko) | 2020-11-03 |
KR102189668B1 true KR102189668B1 (ko) | 2020-12-11 |
Family
ID=73197972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190047726A KR102189668B1 (ko) | 2019-01-22 | 2019-04-24 | 탈중앙화된 계층적 다중 블록체인 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102189668B1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101964692B1 (ko) * | 2017-05-12 | 2019-04-02 | 주식회사 엑스블록시스템즈 | 블록체인 시스템 및 블록체인을 이용한 데이터 관리 방법 |
-
2019
- 2019-04-24 KR KR1020190047726A patent/KR102189668B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
http://vidfolio.kr/wp-content/uploads/2018/10/OAS_whitepaper_v2.pdf, 오아스 브록체인 르네상스 프로젝트, OAS 백서, 2018.09* |
Also Published As
Publication number | Publication date |
---|---|
KR20200124429A (ko) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6955026B2 (ja) | 並列処理ブロックチェーントランザクションのためのシステムおよび方法 | |
TWI737944B (zh) | 基於區塊鏈的交易執行方法及裝置、電子設備 | |
US11770238B2 (en) | Decentralized computation system architecture based on node specialization | |
US10630463B2 (en) | Meta block chain | |
US10523526B2 (en) | System and method for managing services and licenses using a blockchain network | |
KR102424841B1 (ko) | 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법 | |
US20200234293A1 (en) | Method and appratus for blockchains with modifiable recorded transactions | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN108970117B (zh) | 游戏资源包的发布方法、终端设备及介质 | |
EP3764589A1 (en) | Agent-based turing complete transactions integrating feedback within a blockchain system | |
CN112703499B (zh) | 用于计算以及可信验证的分布式平台 | |
CN112835612A (zh) | 一种基于区块链的电子文档版本管理方法及装置 | |
US20210049715A1 (en) | Blockchain-based data procesing method, apparatus, and electronic device | |
US11367055B2 (en) | Decentralized pooled mining for enabling proof-of-work on blockchains | |
TW201901482A (zh) | 區塊鏈系統及區塊鏈生成方法 | |
US20200084041A1 (en) | Automated Blockchain Protocol Update | |
WO2015081779A1 (zh) | 基于业务流程管理bpm的业务处理方法及装置 | |
KR20220088956A (ko) | 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들 | |
CN109447636A (zh) | 一种资产转移方法及装置 | |
CN109299913B (zh) | 员工薪资方案生成方法及装置 | |
CN110086795A (zh) | 认证树构建方法及云平台下基于认证树的流安全交换系统 | |
KR102164779B1 (ko) | 기록된 거래의 수정이 가능한 블록체인 | |
KR102189668B1 (ko) | 탈중앙화된 계층적 다중 블록체인 방법 | |
CN110891660A (zh) | 用于在计算机装置之间同步数据的系统和方法 | |
CN112565369A (zh) | 一种智能合约实现方法、应用服务节点、存储介质及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |