1 |
1
기능 중심의 개인정보 공개 및 위탁방법을 제공하는 FLL(Function level leak) 컴파일러를 이용하여 스마트 컨트랙트의 개인정보보호를 위한 정보 공개 및 위임과정에 대해 지원하는 스마트 컨트랙트 프로그래밍 시스템에 있어서,상기 FLL 컴파일러는위탁자로부터 제공되는 스마트 컨트랙트의 원래 계약 내용을 처리하는 B-컨트랙트(business logic contract)와, 상기 위탁자의 개인정보 처리를 위한 계약 내용을 포함하는 P-컨트랙트(privacy policy contract)를 분석하는 분석부;상기 분석부의 분석 결과를 토대로 개인정보의 공개여부가 함수단위로 정의되도록 B-컨트랙트를 원시 컨트랙트로 변환하고, 상기 P-컨트랙트에 위탁자로부터 제공되는 공개 데이터를 추가하여 삽입하는 변환부; 및상기 분석부 및 변환부의 결과 데이터를 토대로 스마트 컨트랙트의 개인정보보호 검증을 수행하기 위한 V-컨트랙트를 생성하는 검증부를 포함하는 스마트 컨트랙트 프로그래밍 시스템
|
2 |
2
제1항에 있어서,상기 변환부는 원시 컨트랙트에 reveal문을 삽입할 위치를 파악하고, 상기 원시 컨트랙트의 지정된 위치에 reveal문을 삽입하여 변환된 B-컨트랙트를 생성하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
3 |
3
제1항에 있어서,상기 검증부는 수탁자가 위탁자의 정보를 위임받아서 임의로 위탁자의 정보를 처리하는 경우 오류를 발생하도록 상기 V-컨트랙트를 생성하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
4 |
4
제3항에 있어서,상기 V-컨트랙트는 수탁자가 위탁자의 정보를 위임받아서 스토리지(storage) 변수에 그대로 저장하거나 또는 자신의 공개키(public key)로 암호화하여 저장하는 경우 오류를 발생하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
5 |
5
제3항에 있어서,상기 V-컨트랙트는 정보의 공개 대상과 공개 위치를 확인하여 수탁자가 위탁자의 정보를 위임받아서 다른 위탁자의 공개키(public key)로 암호화하여 저장하는 경우 오류가 발생하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
6 |
6
제3항에 있어서,상기 V-컨트랙트는 수탁자가 위탁자의 정보를 위임받아서 위탁자의 정보로부터 def-use 관계에 있는 값을 암호화하지 않고, 체인(chain)에서 메모리 변수나 스택 변수로 표현하여 실행하는 경우 오류가 발생하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
7 |
7
제3항에 있어서,상기 V-컨트랙트는 수탁자가 위탁자의 정보를 위임받아서 all로 공개된 것이 표현식 결과가 아니라 단일 데이터 자체일 경우 체인에 있는 스마트 컨트랙트를 수행하는 노드들에 공개되지 않도록 오류를 발생하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
8 |
8
제1항에 있어서,상기 P-컨트랙트는 각 주체의 역할(role)과 기능적 단위별 허용 가능한 caller가 될 수 있는 역할 집합을 명시하고, 상기 B-컨트랙트의 분석을 통해 기능적 단위에 대해 어떤 위임이 존재하는지를 추출하여 나타내는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
9 |
9
제8항에 있어서,상기 검증부는 역할(role)이 무엇인지에 따라 함수 호출을 허용할지에 대한 modifier를 주입하고, 상기 modifier가 주입되는 경우 B-컨트랙트 상에 모순(conflict)이 일어나는 부분이 있는지 검증을 수행하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 시스템
|
10 |
10
기능 중심의 개인정보 공개 및 위탁방법을 제공하는 FLL(Function level leak) 컴파일러를 이용하여 스마트 컨트랙트의 개인정보보호를 위한 정보 공개 및 위임과정에 대해 지원하는 스마트 컨트랙트 프로그래밍 방법에 있어서,개발자 또는 수탁자가 위탁자로부터 제공되는 스마트 컨트랙트의 원래 계약 내용을 처리하는 B-컨트랙트(business logic contract)를 작성하는 단계(S10);상기 개발자 또는 수탁자가 스마트 컨트랙트 위탁자의 개인정보 처리를 위한 계약 내용을 포함하는 P-컨트랙트(privacy policy contract)의 역할(role)과 함수에 허용된 역할부분을 작성하는 단계(S20);상기 FLL 컴파일러가 B-컨트랙트 및 P-컨트랙트를 분석 변환하여 스마트 컨트랙트를 생성하는 단계(S30);스마트 컨트랙트의 위탁자가 생성된 스마트 컨트랙트를 확인하고, 특정 함수를 호출하여 계약을 체결하는 단계(S40); 및상기 FLL 컴파일러가 계약이 체결된 스마트 컨트랙트의 개인정보보호를 검증하기 위한 V-컨트랙트를 생성하여 컨트랙트의 검증을 수행하는 단계(S50)를 포함하는 스마트 컨트랙트 프로그래밍 방법
|
11 |
11
제10항에 있어서,상기 스마트 컨트랙트를 생성하는 단계(S30)는상기 FLL 컴파일러가 B-컨트랙트를 분석하여 개인정보의 공개여부가 함수단위로 정의되도록 원시 컨트랙트로 변환하고, 생성된 원시 컨트랙트의 지정된 위치에 reveal을 삽입하며, 상기 P-컨트랙트에 위탁자로부터 제공되는 공개 데이터를 추가 삽입하여 스마트 컨트랙트를 생성하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 방법
|
12 |
12
제10항에 있어서,상기 특정 함수를 호출하여 계약을 체결하는 단계(S40)에서상기 위탁자는 위탁자의 개인정보가 수탁자 외에는 외부로 알려지지 않도록 암호화하여 제공하는 것을 특징으로 하는 스마트 컨트랙트 프로그래밍 방법
|
13 |
13
제10항에 있어서,상기 컨트랙트의 검증을 수행하는 단계(S50)는수탁자가 위탁자의 정보를 위임받아서 이후에 스토리지(storage) 변수에 그대로 저장하거나 또는 자신의 공개키(public key)로 암호화하여 저장하는 경우 오류를 발생하는 제1 단계와, 정보의 공개 대상과 공개 위치를 확인하여 수탁자가 위탁자의 정보를 위임받아서 다른 위탁자의 공개키(public key)로 암호화하여 저장하는 경우 오류가 발생하는 제2 단계와, 수탁자가 위탁자의 정보를 위임받아서 위탁자의 정보로부터 def-use 관계에 있는 값을 수탁자가 암호화하지 않고 체인(chain)에서 메모리 변수나 스택 변수로 표현하여 실행하는 경우 오류가 발생하는 제3 단계와, 수탁자가 위탁자의 정보를 위임받아서 all로 공개된 것이 표현식 결과가 아니라 단일 데이터 자체일 경우 오류를 발생하는 제4 단계 중 적어도 하나를 포함하는 스마트 컨트랙트 프로그래밍 방법
|