1 |
1
Solidity 언어를 이더리움 컴파일러에 의해 바이트 코드로 변환하는 컴파일러부(110); 및복수의 블록으로 구성되는 EVM 환경에서 상기 바이트 코드가 배포되어 실행되는 EVM(120)을 동적 모니터링하는 모니터링부(200);를 포함하며,상기 모니터링부는,스마트 컨트랙트가 바이트 코드 형태로 상기 EVM 상에서 실행이 개시되는 시점으로 상기 바이트 코드가 모니터링 가능한 제2 바이트 코드로 변경시키는 재작성부(210);를 포함하는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
2 |
2
제1항에 있어서,상기 모니터링부는,상기 EVM에서 실행 전 첨부된 메타데이터를 가지고 상기 제2 바이트 코드와 원본 바이트 코드에 내재되어 있는 정보의 무결성을 검증하는 검증부;를 더 포함하는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
3 |
3
제2항에 있어서,상기 검증부는 코드 해시 검증시 변경된 바이트 코드가 아닌 이전 바이트 코드에 대해 검증하는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
4 |
4
제1항에 있어서,상기 모니터링부는 의도된 모니터링 지점이 수행되는 시점에 접근 제어, 조건 검사, 로깅, 정지 중 어느 하나 이상을 수행하는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
5 |
5
제1항에 있어서,상기 재작성부는 바이트코드 실행 개시 시점에 주어진 바이트 코드의 함수 선택자 위치에 코드를 주입할 수 있도록 변경시키는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
6 |
6
제1항에 있어서,상기 재작성부는 바이트 코드의 함수 선택자 위치인 분기 대상 주소를 조작하여 다른 위치로 분기하게 하는 분기모듈(211);상기 분기모듈을 통한 분기 대상에 주입될 코드가 바이트코드로 변환되는 변환모듈(212); 및상기 코드 주입 수행을 마치게 되면 원래 위치로 복귀시키는 복귀모듈(213);을 포함하는 것을 특징으로 하는 스마트 컨트랙트 재작성기
|
7 |
7
스마트 컨트랙트 재작성 방법에 있어서,(a)스마트 컨트랙트의 기본 실행을 위한 Ethereum virtual machine(EVM)에 주입되어 동작하는 단계;(b)상기 EVM에 본 발명이 주입되어 실행중에 스마트 컨트랙트의 bytecode를 재작성하는 단계;(c)의도된 모니터링 지점이 수행되는 시점으로서, 접근제어나 기타 조건 검사 및 로깅이나 정지 중 어느 하나 이상의 기능이 추가되었는지 판단하는 단계; 및(d)상기 스마트 컨트랙트의 함수 호출 관계에 있어 블록체인 상에 올라가 있는 스마트 컨트랙트에 대해 상기 (c) 단계의 특정 기능을 하는 코드가 주입된 스마트 컨트랙트의 bytecode를 재작성하는 단계;를 포함하는 것을 특징으로 하는 스마트 컨트랙트 재작성 방법
|