1 |
1
외부 스토리지(external storage)를 이용한 스마트 계약(smart contract) 방법에 있어서,블록체인 네트워크의 한 노드로부터 비밀키(secret key) 및 상기 거래대상을 입력받는 과정;기 설정된 순서에 따라, 상기 비밀키를 기초로 n 개(n은 2 이상의 자연수)의 해시코드를 생성하고, 상기 거래대상을 n 개의 데이터로 분할하고, 분할된 데이터를 상기 기 설정된 순서의 역순으로 상기 해시코드를 기초로 암호화하여 n 개의 외부 스토리지(external storage) 각각에 저장하는 과정; 및상기 해시코드 중 상기 기 설정된 순서에 따라 마지막으로 생성된 해시코드인 루트코드(root code) 및 상기 비밀키를 상기 블록체인 네트워크(blockchain network)의 분산원장(distributed ledger)에 등록하는 과정을 포함하는 것을 특징으로 하는 스마트 계약방법
|
2 |
2
제1항에 있어서,상기 루트코드는, 상기 분할된 데이터 중 상기 기 설정된 순서의 역순에 따라 마지막으로 분할된 데이터 및 상기 해시코드 중 상기 기 설정된 순서에 따라 마지막에서 두번째로 생성된 해시코드를 기 설정된 함수의 입력값으로 입력하여 획득되는 것을 특징으로 하는 스마트 계약방법
|
3 |
3
제1항에 있어서,상기 외부 스토리지 각각에 저장하는 과정은,상기 기 설정된 순서에 따라 제1 내지 제n 해시코드를 생성하되, 상기 비밀키를 기초로 상기 제1 해시코드를 생성하고, 각 해시코드보다 인덱스가 1 작은 해시코드를 기초로 상기 제2 내지 제n 해시코드를 생성하는 과정; 및상기 기 설정된 순서에 따라 상기 거래대상을 제1 내지 제n 데이터로 분할하되, 분할된 데이터를 각 인덱스(index)에 대응하는 해시코드를 기초로 상기 기 설정된 순서의 역순으로 암호화하여 제n 내지 제1 암호값(encrypted value)을 차례로 생성하고, 생성된 암호값을 차례로 제n 내지 제1 외부 스토리지에 각각 저장하는 과정을 포함하는 것을 특징으로 하는 스마트 계약방법
|
4 |
4
제3항에 있어서,상기 제1 해시코드는, 상기 제1 데이터 및 상기 비밀키를 기 설정된 함수의 입력값으로 입력하여 획득되고,상기 제2 내지 제n 해시코드는, 각 인덱스에 대응하는 분할된 데이터 및 각 해시코드보다 인덱스가 1 작은 해시코드를 상기 기 설정된 함수의 입력값으로 입력하여 획득되는 것을 특징으로 하는 스마트 계약방법
|
5 |
5
제3항에 있어서,상기 외부 스토리지에 각각 저장하는 과정은,제1 내지 제n 암호키(encrypt key)를 더 이용하여, 상기 제1 내지 제n 데이터를 각 인덱스에 대응하는 해시코드와 함께 각 인덱스에 대응하는 암호키를 이용하여 암호화함으로써 상기 제n 내지 제1 암호값을 생성하는 것을 특징으로 하는 스마트 계약방법
|
6 |
6
제5항에 있어서,상기 제n 내지 제1 외부 스토리지에서 상기 제n 내지 제1 암호값을 참조하기 위한 각각의 위치값인 제n 내지 제1 위치값에 있어, 상기 제(n-1) 내지 제1 암호값은 각 암호값보다 인덱스가 1 큰 위치값을 더 암호화하여 생성되는 것을 특징으로 하는 스마트 계약방법
|
7 |
7
제6항에 있어서,상기 제n 내지 제1 외부 스토리지는 각각 분산 해시테이블(distributed hash table)을 구성하는 각 노드이고,상기 제n 내지 제1 위치값은 상기 제n 내지 제1 암호값이 저장된, 상기 분산 해시테이블의 각 노드를 참조하기 위한 해시키(hash key)인 것을 특징으로 하는 스마트 계약방법
|
8 |
8
제6항에 있어서,상기 블록체인 네트워크의 분산원장에 등록하는 과정은,상기 블록체인 네트워크의 분산원장에 상기 제1 위치값 및 상기 제1 암호키를 더 등록하는 것을 특징으로 하는 스마트 계약방법
|
9 |
9
제8항에 있어서,상기 제1 위치값 및 상기 제1 암호키의 등록은,상기 제1 위치값 및 상기 비밀키를 16진수 연산하여 생성한 위치변조값 및 상기 제1 암호키 및 상기 비밀키를 16진수 연산하여 생성한 암호키변조값을 상기 블록체인 네트워크의 분산원장에 더 등록함으로써 수행되는 것을 특징으로 하는 스마트 계약방법
|
10 |
10
제9항에 있어서,상기 블록체인 네트워크의 한 노드가 상기 스마트 계약의 거래조건을 성취하는 경우, 상기 거래조건을 성취한 노드에 상기 비밀키, 상기 위치변조값 및 상기 암호키변조값을 전달하는 과정을 더 포함하는 것을 특징으로 하는 스마트 계약방법
|
11 |
11
제10항에 있어서,상기 위치변조값 및 상기 암호키변조값을 이용하여 상기 제n 내지 제1 암호값을 상기 기 설정된 순서에 따라 복호화하여 상기 거래대상을 획득하는 과정을 더 포함하는 것을 특징으로 하는 스마트 계약방법
|
12 |
12
제11항에 있어서,상기 거래대상을 획득하는 과정은,상기 비밀키를 이용하여 상기 위치변조값 및 상기 암호키변조값으로부터 제1 위치값 및 제1 암호키를 각각 획득하는 과정; 및획득된 제1 위치값 및 획득된 제1 암호키를 기초로 상기 제n 내지 제1 암호값을 상기 기 설정된 순서에 따라 복호화하고, 각 복호화 수행마다 무결성 검증을 수행하여 무결성이 검증된 거래대상을 획득하는 과정을 포함하는 것을 특징으로 하는 스마트 계약방법
|
13 |
13
제12항에 있어서,상기 무결성이 검증된 거래대상을 획득하는 과정은,상기 획득된 제1 위치값을 이용하여 제1 암호값을 획득하고, 상기 획득된 제1 암호키를 이용하여 획득된 제1 암호값을 복호화하여 제1 데이터, 제1 해시코드, 제2 위치값 및 제2 암호키를 획득하고, 획득된 제1 데이터 및 상기 비밀키를 상기 기 설정된 함수의 입력값으로 입력하여 생성된 값과 획득된 제1 해시코드를 비교함으로써 상기 제1 데이터의 무결성 검증을 수행하는 것을 특징으로 하는 스마트 계약방법
|
14 |
14
제13항에 있어서,상기 무결성이 검증된 거래대상을 획득하는 과정은,제i 위치값(1003c# i 003c#n, i는 자연수), 제i 암호키, 제i 암호값에 대해서는, 상기 제i 위치값을 이용하여 획득된 제i 암호값을 획득하고, 상기 제i 암호키를 이용하여 상기 제i 암호값을 복호하여 제i 데이터, 제i 해시코드, 제(i+1) 위치값 및 제(i+1) 암호키를 획득하고, 획득된 제i 데이터 및 획득된 제(i-1) 해시코드를 상기 기 설정된 함수의 입력값으로 입력하여 생성된 값을 획득된 제i 해시코드를 비교함으로써 무결성 검증을 수행하는 것을 특징으로 하는 스마트 계약방법
|
15 |
15
제14항에 있어서,상기 무결성이 검증된 거래대상을 획득하는 과정은,획득된 제n 위치값을 이용하여 상기 제n 암호값을 획득하고, 획득된 제n 암호키를 이용하여 획득된 제n 암호값을 복호화하여 제n 데이터, 제n 해시코드를 획득하고, 획득된 제n 데이터 및 획득된 제(n-1) 해시코드를 상기 기 설정된 함수의 입력값으로 입력하여 생성된 값과 획득된 제n 해시코드를 비교함으로써 무결성 검증을 수행하는 것을 특징으로 하는 스마트 계약방법
|
16 |
16
제14항에 있어서,상기 루트코드와 상기 획득된 제n 해시코드를 기초로 거래 전체의 무결성을 검증하고, 상기 획득된 제n 해시코드를 상기 블록체인 네트워크의 분산원장에 추가하는 과정을 더 포함하는 것을 특징으로 하는 스마트 계약방법
|