1 |
1
파싱부를 통해 정적 데이터 흐름 분석을 위한 이더리움 바이트코드를 읽어 들이고 파싱하여, 실행 흐름 그래프(control-flow graph)를 생성하는 단계; 정보 수집부를 통해 상기 생성된 실행 흐름 그래프에 따라 요약 해석에 기초한 정적 데이터 흐름 분석을 수행하고, 스마트 컨트랙트의 각 함수에서 읽거나 쓰는 상태 변수들을 읽고 쓰는지에 관한 데이터 흐름을 분석하는 단계; 및 초기화부를 통해 상기 분석된 데이터 흐름에 기초하여 어떠한 순서의 스마트 컨트랙트의 함수 호출이 상태 변수를 통한 데이터 흐름을 만들어내는지 결정하는 단계 를 포함하는 이더리움 바이트코드에 대한 데이터 흐름 분석 방법
|
2 |
2
제1항에 있어서,상기 파싱부를 통해 정적 데이터 흐름 분석을 위한 이더리움 바이트코드를 읽어 들이고 파싱하여, 실행 흐름 그래프를 생성하는 단계는, 스택 기반 언어(stack-oriented language)인 상기 이더리움 바이트코드에 대해 실행 흐름을 결정하는 제어문들을 파악하기 위하여 상기 스택 기반 언어에 상수 전파(constant propagation) 기술을 활용하여, 상기 제어문들이 실행될 때 상기 스택 기반 언어에 어떠한 값이 스택되어 있는지 알아내고, 상기 제어문들이 각각 어떠한 주소로 이동하는지를 파악하고, 상기 스택 값 및 주소 이동을 종합하여 실행 흐름 그래프를 생성하는 이더리움 바이트코드에 대한 데이터 흐름 분석 방법
|
3 |
3
제1항에 있어서,상기 정보 수집부를 통해 상기 생성된 실행 흐름 그래프에 따라 요약 해석에 기초한 정적 데이터 흐름 분석을 수행하고, 스마트 컨트랙트의 각 함수에서 읽거나 쓰는 상태 변수들을 읽고 쓰는지에 관한 데이터 흐름을 분석하는 단계는, 상기 상태 변수에 대한 접근을 상기 각 함수별로 파악하기 위해 사용되는 상기 이더리움 바이트코드 명령들이 실행될 때 스택 기반 언어에 어떠한 값이 스택되어 있는지 파악하고, 상기 스택되어 있는 값은 어느 상태 변수에 접근할지를 구분하는 고유한 주소가 되고, 상기 주소를 포함하는 상태 변수 접근 정보에 대해 요약 해석(abstract interpretation)에 기초한 정적 분석 기술을 활용하여 상기 이더리움 바이트코드가 상태 변수의 주소를 계산하기 위해 사용하는 연산들을 추적하고, 어떠한 상태 변수 주소에 접근하는지를 요약하는 이더리움 바이트코드에 대한 데이터 흐름 분석 방법
|
4 |
4
제1항에 있어서,상기 초기화부를 통해 상기 분석된 데이터 흐름에 기초하여 어떠한 순서의 스마트 컨트랙트의 함수 호출이 상태 변수를 통한 데이터 흐름을 만들어내는지 결정하는 단계는, 상기 분석된 데이터 흐름의 상태 변수 접근 정보에 기초하여 상기 상태 변수를 통한 데이터 흐름을 일으키는 스마트 컨트랙트의 함수들의 순서쌍을 파악하고, 상기 순서쌍을 포함하도록 함수 호출 순서를 결정하는 이더리움 바이트코드에 대한 데이터 흐름 분석 방법
|
5 |
5
정적 데이터 흐름 분석을 위한 이더리움 바이트코드를 읽어 들이고 파싱하여, 실행 흐름 그래프(control-flow graph)를 생성하는 파싱부; 상기 생성된 실행 흐름 그래프에 따라 요약 해석에 기초한 정적 데이터 흐름 분석을 수행하고, 스마트 컨트랙트의 각 함수에서 읽거나 쓰는 상태 변수들을 읽고 쓰는지에 관한 데이터 흐름을 분석하는 정보 수집부; 및 상기 분석된 데이터 흐름에 기초하여 어떠한 순서의 스마트 컨트랙트의 함수 호출이 상태 변수를 통한 데이터 흐름을 만들어내는지 결정하는 초기화부 를 포함하는 이더리움 바이트코드에 대한 데이터 흐름 분석 장치
|
6 |
6
제5항에 있어서,상기 파싱부는, 스택 기반 언어(stack-oriented language)인 상기 이더리움 바이트코드에 대해 실행 흐름을 결정하는 제어문들을 파악하기 위하여 상기 스택 기반 언어에 상수 전파(constant propagation) 기술을 활용하여, 상기 제어문들이 실행될 때 상기 스택 기반 언어에 어떠한 값이 스택되어 있는지 알아내고, 상기 제어문들이 각각 어떠한 주소로 이동하는지를 파악하고, 상기 스택 값 및 주소 이동을 종합하여 실행 흐름 그래프를 생성하는 이더리움 바이트코드에 대한 데이터 흐름 분석 장치
|
7 |
7
제5항에 있어서,상기 정보 수집부는, 상기 상태 변수에 대한 접근을 상기 각 함수별로 파악하기 위해 사용되는 상기 이더리움 바이트코드 명령들이 실행될 때 스택 기반 언어에 어떠한 값이 스택되어 있는지 파악하고, 상기 스택되어 있는 값은 어느 상태 변수에 접근할지를 구분하는 고유한 주소가 되고, 상기 주소를 포함하는 상태 변수 접근 정보에 대해 요약 해석(abstract interpretation)에 기초한 정적 분석 기술을 활용하여 상기 이더리움 바이트코드가 상태 변수의 주소를 계산하기 위해 사용하는 연산들을 추적하고, 어떠한 상태 변수 주소에 접근하는지를 요약하는 이더리움 바이트코드에 대한 데이터 흐름 분석 장치
|
8 |
8
제5항에 있어서,상기 초기화부는, 상기 분석된 데이터 흐름의 상태 변수 접근 정보에 기초하여 상기 상태 변수를 통한 데이터 흐름을 일으키는 스마트 컨트랙트의 함수들의 순서쌍을 파악하고, 상기 순서쌍을 포함하도록 함수 호출 순서를 결정하는 이더리움 바이트코드에 대한 데이터 흐름 분석 장치
|
9 |
9
이더리움 바이트코드에 대한 데이터 흐름 분석 장치에 의해 수행되는 데이터 흐름 분석 방법을 실행시키기 위해 컴퓨터 판독 가능한 저장 매체에 저장된 프로그램에 있어서,파싱부를 통해 정적 데이터 흐름 분석을 위한 이더리움 바이트코드를 읽어 들이고 파싱하여, 실행 흐름 그래프(control-flow graph)를 생성하는 단계; 정보 수집부를 통해 상기 생성된 실행 흐름 그래프에 따라 요약 해석에 기초한 정적 데이터 흐름 분석을 수행하고, 스마트 컨트랙트의 각 함수에서 읽거나 쓰는 상태 변수들을 읽고 쓰는지에 관한 데이터 흐름을 분석하는 단계; 및 초기화부를 통해 상기 분석된 데이터 흐름에 기초하여 어떠한 순서의 스마트 컨트랙트의 함수 호출이 상태 변수를 통한 데이터 흐름을 만들어내는지 결정하는 단계 를 포함하는 컴퓨터 판독 가능한 저장 매체에 저장된 프로그램
|
10 |
10
제9항에 있어서,스택 기반 언어(stack-oriented language)인 상기 이더리움 바이트코드에 대해 실행 흐름을 결정하는 제어문들을 파악하기 위하여 상기 스택 기반 언어에 상수 전파(constant propagation) 기술을 활용하여, 상기 제어문들이 실행될 때 상기 스택 기반 언어에 어떠한 값이 스택되어 있는지 알아내고, 상기 제어문들이 각각 어떠한 주소로 이동하는지를 파악하고, 상기 스택 값 및 주소 이동을 종합하여 실행 흐름 그래프를 생성하고, 상기 상태 변수에 대한 접근을 상기 각 함수별로 파악하기 위해 사용되는 상기 이더리움 바이트코드 명령들이 실행될 때 스택 기반 언어에 어떠한 값이 스택되어 있는지 파악하고, 상기 스택되어 있는 값은 어느 상태 변수에 접근할지를 구분하는 고유한 주소가 되고, 상기 주소를 포함하는 상태 변수 접근 정보에 대해 요약 해석(abstract interpretation)에 기초한 정적 분석 기술을 활용하여 상기 이더리움 바이트코드가 상태 변수의 주소를 계산하기 위해 사용하는 연산들을 추적하고, 어떠한 상태 변수 주소에 접근하는지를 요약하며, 상기 분석된 데이터 흐름의 상태 변수 접근 정보에 기초하여 상기 상태 변수를 통한 데이터 흐름을 일으키는 스마트 컨트랙트의 함수들의 순서쌍을 파악하고, 상기 순서쌍을 포함하도록 함수 호출 순서를 결정하는 컴퓨터 판독 가능한 저장 매체에 저장된 프로그램
|