IoTon Technical Paper_KO_v1.0

Similar documents
말은 많은 Blockchain 2

비잔틴 노드에 의한 네트워크 분기 시도와, 네트워크 정지 시도를 막기 위하여 네트 워크의 모든 노드들에 2번에 거쳐 합의 데이터를 전송한다. Tendermint와 같은 선행 연구들은 PBFT를 이용하여 비트코인으로 대표되는 작업증명 알고리즘을 사용하는 블록체인 시스템의

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

[Brochure] KOR_TunA

Microsoft PowerPoint - chap01-C언어개요.pptx

User interface design

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - 08_01_블록체인.docx

DBMS & SQL Server Installation Database Laboratory

서현수

Yggdrash White Paper Kr_ver 0.18

Windows 8에서 BioStar 1 설치하기

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Chap 6: Graphs

참고 : 더블링크드리스트 노드는데이터와포인터를가지고포인터가다음노드의데이터부분을참조하면서 연결되는자료구조이며, 데이터검색시포인터로연결된노드를검색하여값을찾음 < 더블링크드리스트연결구조 > 구분인덱스 ( 데이터베이스 ) 더블링크드리스트 장점 단점 < 인덱스및더블링크드리스트방

PowerPoint Presentation

PowerPoint 프레젠테이션

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Windows 10 General Announcement v1.0-KO

IoTon General Paper(IEO)_KO_v1.0

- 목차 - 1. 개요 가. 아이콘 (ICON) 이란? 나. 주요스펙 1) 기본정보 2) 시장정보 2. 주요팀멤버및재단소개 3. ICON 컨셉및특징 - 독자적인블록체인기술, Loopchain - ICON의블록체인네트워크, 넥서스 (NEXUS) - IISS (ICON I

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

공정한합의알고리즘 : deb 합의알고리즘 (A fair consensus algorithm : deb consensus algorithm) 목차 1. 개요 2. 합의알고리즘의공정성 3. deb 합의알고리즘 4. 공정한노드의역할및신뢰성검증 5. 성능 6. deb 합의알고

Cloud Friendly System Architecture

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

untitled

Frama-C/JESSIS 사용법 소개

Beyond Blockchain 블록체인기술은중앙화된권력없이모든노드들간을합의할수있게하는방법을고안해냈습니다. 하지만블록체인기술은실시간트랜잭션의성사, 확장성같은근본적인문제점들과직면해있습니다. 개선된합의알고리즘에도불구하고, 현재구현된블록체인은한번에한블록만동기화하는노드를사용합

RHEV 2.2 인증서 만료 확인 및 갱신

Windows Server 2012

슬라이드 1

Implement a business platform based on blockchain blockchain기반 비즈니스 플랫폼 구현을 위한 White Paper (요약본) -1- Qcity

Microsoft Word - src.doc

TTA Journal No.157_서체변경.indd

Security Issues in the Blockchain as a Service Platform 2019년 8월 30일 ( 금 ) 람다256 오재훈

LTC 라이트코인명세서

adfasdfasfdasfasfadf

항목

C# Programming Guide - Types

WIZBL_WHITEPAPER 한글

View Licenses and Services (customer)

PowerPoint Presentation

Lightpaper Bryllite Platform Beyond the Game Boundaries 브릴라이트플랫폼 : 게임의경계를넘어 Bryllite Ltd.

Chapter ...

gnu-lee-oop-kor-lec06-3-chap7

Install stm32cubemx and st-link utility


2 노드

USC HIPAA AUTHORIZATION FOR

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - Java7.pptx

Blockchain for the Internet of Things 2

Sequences with Low Correlation

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

1,000 AP 20,000 ZoneDirector IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. ZoneDirector 5000 WLAN L


설계란 무엇인가?

Microsoft Word - release note-VRRP_Korean.doc

강의 개요

Microsoft PowerPoint - 30.ppt [호환 모드]

SANsymphony-V

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

04 Çмú_±â¼ú±â»ç

Cisco FirePOWER 호환성 가이드

- 목차 - 1. 개요 가. 애터니티 (Aeternity, AE) 란? 나. 주요스펙 1) 기본정보 2) 시장정보 2. 주요팀멤버및재단소개 3. 애터니티컨셉및특징 - Aeon Token (AE) - Name 시스템 - Aepps 4. 기술적특징 - PoW, PoS Hy

라우터

Microsoft PowerPoint - 6.pptx

Secure Programming Lecture1 : Introduction

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

Spring Boot/JDBC JdbcTemplate/CRUD 예제

게시판 스팸 실시간 차단 시스템

Microsoft PowerPoint - 26.pptx

백지 개정판 1.6 / 2001 년 8 월 7 일

MVVM 패턴의 이해

EA0015: 컴파일러

<464B4949B8AEC6F7C6AE2DC0AFBAF1C4F5C5CDBDBABBEABEF7C8AD28C3D6C1BE5FBCD5BFACB1B8BFF8BCF6C1A4292E687770>

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Microsoft PowerPoint - chap06-2pointer.ppt

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

17장 클래스와 메소드

슬라이드 1

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

본 강의에 들어가기 전

Microsoft PowerPoint - additional01.ppt [호환 모드]

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

Chap 6: Graphs

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Template

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

TOKENOMY_KO.cdr

Contents Absract Project Background Vision FLETA Project 1. 블록체인기능극대화 2. 차별화된토큰이코노미 3. 멀티체인을통한확장성 FLETA's Innovation 1. 4대기술혁신 1.1 새로운블록 & 레벨트리검증방식 1.

Transcription:

Version 1.0 Sep 14, 2018

Contents 4 5 8 9 10 IoTon 블록체인소개 1. IoTon블록체인개요 1. 분산공유원장 2. 데이터베이스구조 DAG(Directed Acyclic Graph) 2.1 DAG의배경과발전과정 2.2 DAG의특징 2.3 DAG의수학적증명 2.4 합의와이중지불판단 19 3. 합의모형 (PBFT + DPoS) 3.1 PBFT 3.2 DPoS 3.3 Tendermint 3.4 IoTon의컨센서스구성 28 4. Smart Contract system 4.1 인공지능기반트레이닝모델 4.1.1 Smart Contract 2.0 구현 4.1.2 AI 기반의안전한 Smart Contract 실행 4.1.3 AI 스크립트모델에기반한보안 Smart Contract 4.1.4 AI에기반한위탁거래 4.1.5 AI에기반한멀티플렉싱 (Multiplexing) 거래 4.2 보안성을가진 Smart Contract의실현 4.3 보안성을가진 Smart Contract의디지털자산지지 4.4 Smart Contract의확장 4.5 Smart Contract 다중언어생성지원 39 40 41 42 5. Wallet 6. Cross Chain Gateway 7. 보안매커니즘 8. 서비스소프트웨어아키텍처

48 49 50 52 54 58 IoT Platform 1. IoT SDK Structure 2. IoT 기기인증 3. IoT SDK 프레임워크구조상세설명 References 책임면책성명

IoTon 블록체인소개 4

IoTon 블록체인소개 1.IoTon 블록체인개요 1. IoTon 블록체인개요 IoTon 은사물인터넷 (Internet of Things, IoT) 기반의서비스플랫폼으로프라이빗블록체인과퍼블릭블록체인둘 다를포함하여구성되어있으며개발지원용 SDK(Software Development Kit) 를제공한다. IoTon 은세개의하위 플랫폼인 IoT 플랫폼, 서비스플랫폼과퍼블릭플랫폼 ( 코인플랫폼 ) 으로구성되어있다. 그림 1. IoTon platform 구성 5

IoTon 블록체인소개 1.IoTon 블록체인개요 IoTon은기존기술과최신기술을모두사용한다. 기존데이터기술을이용하여현존하는데이터베이스와유사한테이블을생성할수있다. 새롭게개발된분산원장기술과가상머신기술을이용하여신속한데이터변환과동기화를용이하게한다. 프라이빗블록체인 (IoT 플랫폼 ) 은사물인터넷과관련된보안을담당한다. 서비스플랫폼은사물인터넷통제와모니터링기능들을제공한다. 코인플랫폼 ( 퍼블릭블록체인 ) 은토큰경제시스템을구현하기위하여설계된자체적인코인플랫폼이다. IoTon의이러한구조는 HIPP(Hyper Integration of the Private and the Public) 네트워크구조라고명칭된다. 1 그림 2. IoTon HIPP network structure 각플랫폼의기능들은아래에자세하게설명되어있다. 1 Hyper Integration of the Private and the Public 은 개인적인것과공적인것의초통합 으로이해될수있다. 6

IoTon 블록체인소개 1.IoTon 블록체인개요 IoT 플랫폼 (The Private Blockchain, 프라이빗블록체인 ) - IoT 기기들을통합 SDK를통하여엠베드된노드들과연결한다. - IoT 기기들을암호화된개인키와공개키를사용하여이용한다. - 사용자서비스를편리하게하기위하여가상머신을운영한다. - DAG(Directed Acyclic Graph 방향성비순환그래프 ) 를사용하여거래비용을거의무료화하고속도를극대화한다. - 인공지능으로 IoT 장치사용패턴을분석하여사용자환경을개선하는서비스를개발한다. 서비스플랫폼 - 프라이빗네트워크에서생성된 UX 데이터 (User Experience Data) 를데이터베이스관리시스템 (DBMS-Database Management System) 에저장한다. - Shared Cloud DB: 퍼블릭블록체인의공유클라우드에저장될 DBMS의데이터를추출한다. - 관리자서비스 : 장치관리, 제어, 청구, 보상서비스를룰엔진 (Rule Engine) 을통해운영한다. - 개인키를분실하거나잊어버렸을때복구한다. 코인플랫폼 (The Public Blockchain, 퍼블릭블록체인 ) - 퍼블릭블록체인은 IoTon 토큰발행, 거래, 전자지갑서비스를지원한다. - 프라이빗네트워크에등록되어있지않은가상머신들을연결한다. - DAG(Directed Acyclic Graph 방향성비순환그래프 ) 를사용하여거래비용을거의무료화하고속도를극대화한다. 7

8

1. 분산공유원장 1. 분산공유원장 IoTon은 DHT(Distributer Hash Table) 를적용한분산형 P2P 저장기술을사용한다. DHT는분산저장프로토콜및파일의내용이색인된데이터를포함한대용량파일을고정된용량의데이터로분할한뒤여러노드에분산하도록지원하는기술이다. 각서버노드에는전체파일또는전체조각이없고부분색인의정보만기록되어있다. 따라서단일서버를해킹하더라도전체파일은확보할수없다. 전체파일데이터는분산스토리지에저장되며, 분산된스토리지에서색인테이블기능을통하여데이터의진위여부를파악할수있다. 브릿지모듈을통해데이터의중복성과신뢰성을한번더검증하여데이터의무결성과전체보안을추가적으로강화한다. 9

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 2. 데이터베이스구조 DAG (Directed Acyclic Graph) IoTon 은 DAG( 방향성비순환그래프 ) 를분산원장의구조로사용한다. 2.1 DAG 의배경과발전과정 수학및컴퓨터과학분야에서사용되는 DAG는루프가없는방향을가진그래프이다. 그것의우수한구조적인특성덕분에 DAG는확장성확대를위한블록체인진화의중요한방향이되었다. 비트코인으로대표되는블록체인 1.0은최초로분산화된네트워크에서합의를성공적으로이루어내며수천개의뒤따라온암호화폐들의청사진을제공하였다. 이더리움으로대표되는블록체인 2.0은프로그래밍이가능한 Smart Contract를도입하며암호화폐의응용시나리오들을크게확대했다. 그러나현존하는블록체인기술은수행능력에있어서명백한병목현상을나타내고있다. 비트코인은이론적으로 7 TPS( 초당거래량 ), 이더리움은 15 TPS를지원한다. 반면에금융계의대표라고할수있는 Visa는평균적으로 2,000TPS를지원하며처리속도가최대일때는 56,000 TPS를지원한다. 진정으로사람들이매일사용할수있는파이낸셜시스템이되기위해서블록체인은여전히갈길이멀다. 이런상황에서고동시성 (high concurrency) 을지원하는타고난특징을가진 DAG는블록체인의현존하는확장성문제를효과적으로해결할것으로기대되어블록체인 3.0 기술의핵심으로부상하였다. Byteball과 IOTA는 DAG에기반한분산원장솔루션들을제안했다. Byteball은 12개의명예노드들을시스템의증인들 (Witnesses) 로도입하였다. 이증인노드들은 DAG의메인체인을결정하기위하여자주트랜잭션들을퍼블리싱 (Publishing) 하고트랜잭션순서와이중지불판단을완료한다. IOTA에서각트랜잭션의퍼블리셔들은트랜잭션을퍼블리싱하기위하여약간의작업증명 (Proof of Work) 를수행해야한다. 트랜잭션은누적가중치 (cumulative weight) 에의해서확정된다. Byteball과 IOTA 중누구도진정한탈중앙화를실현하지못했다. Byteball은증인들이일반사용자들에의해서선택된다고명시한다. 하지만사용자들은플랫폼설계의한계로증인들을선출할자유를실질적으로거의가지지못한다. 결과적으로증인들은플랫폼의운영이시작된이래로한번도교체된적이없다. 또한 Byteball의합의진행알고리즘은수학적증명이부족하여해석적으로애매모호함을지니고있다. 이때문에합의가원활하게진행되지않으며극단적인경우에는오류들이발생할수있다. IOTA에서는명확한보안한계점이제시될수없다. 현재 10

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 네트워크에참가하는사용자들의제한된숫자때문에악성공격들이효과적으로방어될수없다. 이러한이유로 IOTA 재단은거래확정을위해서매우중앙화된코디네이터 (Coordinator) 를운영하기시작하였고이것은 블록체인의탈중앙화라는설계이념으로부터의이탈을의미했다. Tendermint 와 DAG 에기반하여, IoTon 은탈중앙화된조건들에서도효율성과보안성을모두갖춘 DAG 합의를 도출해낼새로운하이브리드합의모형을설계하였다. DAG 합의와그토대가되는합의모듈들은 2.4 와 3 에 자세하게묘사되어있다. 2.2 DAG 의특징들 정의 : 임의의정점 v V에대해방향성그래프 G = (V, E) 에서경로 p = (e 1, e 2,... e n ); e i E는존재하지않는다. e i E이므로 v에서 v로되돌아간다. 그러면 G는방향성비순환그래프 (DAG) 라고부른다. 기존블록체인과달리 DAG 에는블록개념이없거나각트랜잭션을단일블록으로이해할수있다. IoTon에서 DAG의각정점 v는하나의특정트랜잭션이며노드라고한다. 지시된쪽 e는트랜잭션간의부모 - 자식참조관계를보여주며우리는이관계를나타내기위해 부모, 자식 이란용어를사용한다. DAG는하나의트랜잭션이동시에부모노드로서둘이상의부모를인용할수있게하며, 둘이상의자식노드에의해인용될수도있게한다. DAG의원장구조는그림 3에묘사되어있다. 그림 3. DAG 구조 11

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 본질적으로블록체인은 2개의계층을가진시스템이다. 트랜잭션이생성되고확산될지라도분산원장의일부가될수없다. 채굴자들 (Miners) 이트랜잭션을모아블록에넣었을때만인정될수있다. 채굴자가블록을생성할필요가있기때문에채굴자의처리능력의한계는블록체인의병목현상을야기한다. 즉, 블록체인의단일체인구조가자연적인성능한계가되는것이다. DAG에는이러한제한이없다. DAG 상에선사용자가생성한합당한트랜잭션이 DAG 데이터베이스에직접추가되어장부의일부가될수있다. 사용자가트랜잭션을생성하면 IoTon은 DAG에서최신터미널노드 ( 자식없는노드 ) 를사용하도록사용자를유도한다. 네트워크의트랜잭션양이적을시 DAG에서가끔포크가일어나나다시빠른속도로병합된다. 활동중인네트워크사용자들이있는경우 DAG에더많은터미널노드가있을수있다. 이때에활동중인네트워크사용자들에의해서생성된새로운거래들은모든노드를사용할수있으며이것은 DAG의융합을효과적으로촉진한다. 이러한비단일체인 (non-single-chain) 구조는자연적으로고동시성 (high concurrency) 과고처리량을지원하며사물인터넷의퍼플릭체인의기반원장구조가될잠재력을가진다. DAG 원장설계와자체합의알고리즘이결합될때 IoTon은다음과같은강점을가진다. 1. 2. 3. 4. 고동시성 : DAG 구조는자연적으로 IoT 네트워크노드들에서동시적으로발생하는트랜잭션들을지원한다. 다수의동시적으로발생한트랜잭션들은동시적으로터미널노드들을호출할수있다. 고처리량 : DAG 네트워크는탁월한적재능력을가지고있다. 여기에 IoTon 고유의하이브리드컨센서스모형설계가합쳐진다면 IoTon은 5000-3 00K TPS를달성할수있다. 즉각적인거래확정 : Tendermint의합의모형에기반하여, IoTon은 DPoS와 PBFT를통합하여거래들이일초안에확증되도록한다. 낮은수수료 : 작업증명에서요구되는엄청난컴퓨팅파워가불필요하므로네트워크의에너지소비량이매우적다. 이러한친환경적인특징때문에 IoTon은사물인터넷경제에어울리는매우낮은수수료를보장한다. 분산원장분야에서고동시성을자랑하는타고난솔루션인 DAG는 Quarantine Witness, Lightning Network 및 Bitcoin-NG와같은블록체인기반확장방식에비해탁월한이점을제공한다. IoTon은강력한기본인프라를제공하여다양한상황에서개발자들이유저들에게탁월한서비스를제공하고 IoTon의생태계를풍성하게할수있는블록체인어플리케이션들을설계할수있게해준다. 더많은참가자들이 IoTon 네트워크에참여할수록전체시스템은더욱강력해지고다양화되어사물인터넷분야의가치인터넷의기반토대를구축할것이다. 12

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 2.3 DAG 의수학적증명 방향성비순환그래프 G = (V, E) 에서 P 문제를생각해보자. 우리가 P 에대한동적프로그래밍알고리즘을가지고있거나각정점에대해함수 f 를계산하는것과동일한문제 P 의해가있다고말할수있다. 함수 f 일때우리는집합 F 로부터다음과같은특징들을가진함수들만고려한다. - f : V Σ - 결과집합 Σ는실수 R 또는정수 {0,..., Z}, 어떤정수 Z> 0. - 만약이면, 함수이다. 여기서함수들에대해서 n 요소들의벡터집합이다. - 이면는일정시간동안고전적으로계산할수있다. 로부터나온대부분의 함수가시간복잡도를갖는양자알고리즘를갖는다고가정하면, 여기서 k 는함수에대한인수의 길이이다. 그후다음알고리즘을제안할수있다. Algorithm 1: 우리가배열을가지면, 함수 f. tf (j) 가 j nˆ 이라면 tf (j) = t [j] 와같은함수라하자. tf (j) = f (j), 은임을의미한다. 알고리즘은다음과같다. 13

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 에대하여 부터 to 1 까지 일때,. 알고리즘 1 의시간복잡성을논해보자. 부명제 1. 양자알고리즘의시간복잡도를, 여기서 k 는인수의길이다. 그러면알고리즘 1 의시간복잡도 은 증명. 우리가를계산할때우리는이미모든에대해이기때문에일정한시간에 계산되거나계산할수있음에유의하라. 정점에대한처리의시간복잡도는이다. 알고리즘은정점을하나씩처리하여시간복잡도 한다. 을계산한다. 우리는각정점의처리시간복잡성들을합산해야 양자알고리즘은확률론적인행동을한다. 그러므로우리는알고리즘에대한오류확률을계산해야한다. 알고리즘 1 에대한오류확률을계산을해보자. 부명제 2. 함수에대한양자알고리즘가에러확률을가지고있다고하자. 여기서 이다. 그러면알고리즘 1 의오류확률은최대 증명. 알고리즘 1 의성공확률을계산해보자. 모든정점이오류없이계산된다고가정하자. 이이벤트의확률은 이벤트이기때문이다. 이다. 왜냐하면에서정점에대한알고리즘를호출하고각호출의오류가독립적인 그러므로알고리즘 1 에대한오류확률은최대 이다. 일부함수와알고리즘의경우, h 의모든 인수가오류없이계산되야한다는요구사항이없다. 이경우우리는더좋은오류확률을얻을수있다. - 결합 (AND 함수 ). 이함수를계산하기위해우리는 Grover 검색알고리즘은인수중에서 14

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 0 을검색한다. 찾은요소가 0 이면결과는 0 이다. 요소가 1 이면, 0 이없으면결과는 1 이다. - 불연속 (OR 함수 ). 우리는같은접근방식을사용할수있다. 1 초검색. 1 을찾으면결과는 1 이다. 그렇지않으면 0 이다. - NAND 함수. 우리는 AND 함수와같은접근법을사용할수있지만, 여기서는 1 을검색한다. 0 을찾으면결과는 1 이다. 그렇지않으면 0 이다. - 최대함수. Durr and Høyer 최대검색알고리즘을사용할수있다. - 최소함수. 우리가사용했던것과동일한알고리즘을사용할수있다. - 양자알고리즘을가진다른함수들. 부명제 3. 함수이있다면시간복잡성과 에러확률를갖는문제 P 에대한양자동적프로그래밍알고리즘 A 가있다. 증명. 우리는함수 에대한양자메커니즘 와결정론적알고리즘 를 가지고있다. 여기서 이다. NAND 함수의경우, 우리는 로서 OR 함수에대한결정론적 알고리즘을사용한다. 선형적시간에작용하는함수 에대한결정론적알고리즘 를만드는 것은간단하다. 알고리즘2. 우리가함수 f의결과를저장할배열을갖는다고하자. 또한임시배열가있다고하자. 가이라면와같은함수라하자. 이때이다. 알고리즘은다음과같다. 15

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 알고리즘 1 과알고리즘 2 의차이점은다음과같다. 알고리즘를한번호출하는대신번호출한다. 우리는일때가가반환하는결과들이라고 고려할수있다. 정점의처리의결과는오직가 0 일때만틀리나결과는반드시 1 이 되어야한다. 그러므로알고리즘의에러확률은최대이다. 둘째로, AND 함수를고려해보다. 유사한방식으로우리는알고리즘 Qi가결과가 1인경우항상올바른답을반환한다는것을증명할수있다. 확률로 0대신 1을반환한다. 만약우리가을정점 vi를처리한것의결과로고려한다면알고리즘의오류확률은최대이다. 그러므로, 오류확률은최대이다. 또한라는것을기억하라. 그러므로, 이다. 알고리즘 2 의시간복잡성을논해보자. 부명제 1 에의하면시간복잡성은 Cauchy-Bunyakovsky-Schwarz 불평등공식으로인하여우리는다음공식을구한다. 주의할것은에대하여라는것이다. 그러므로, 16

2. 데이터베이스구조 DAG (Directed Acyclic Graph) 왜냐하면 m 은모서리들의전체수이기때문이다. 그러므로, 이다. 그러므로, 이다. 알고리즘 3. 우리에게함수 f 의결과들을저장하는배열이 t = (t [1],...,t [n]) 라고할수있다. 추가적으로우리는일시적인배열 b = (b[1],...,b[2log 2 q]) 을가진다. 여기서 q를 V a 로부터 v L인정점들중하나에도달하는가장긴경로라고하자. 여기서 tf(j) 가인함수라고하자. 알고리즘은다음과같다. 부명제 4. 우리가함수들을가지고있다고가정하고문제 P 의해는어떤 a 에 대해의값이다. 그렇다면시간복잡성와오류확률을갖는문제 P 에대한양자동적프로그래밍알고리즘 A 가있다. - d i = 0 인정점 v i 일때정점은변수로라벨링된다. 이정점을 " 가변정점 " 이라고부른다. - d i = 1과같은정점 v i 는없다. - 정점 v i 가 d i 2일때, 이정점은 Conjunction 또는 Disjunction으로표기된다. 이정점을 " 함수정점 " 이라고부른다. 17

2. 데이터베이스구조 DAG (Directed Acyclic Graph) - 모든모서리는 0 또는 1 이라고라벨이붙는다. - 하나의특수루트정점 v s 가있다. - 예로들수있는공식은다음과같다. 2.4 합의와이중지불판단 분산원장의기술적핵심은참여노드에서합의에도달하여조작될수없는투명한트랜잭션을달성하는것이다. 여기서가장중요한문제는이중지출거래의판단이다. 동일한돈을한번만사용하도록보장해야하며악의적인이차거래가발생할경우에도이중지불이포함되지않은거래내역만이궁극적으로유효하게처리된다는것을보장해야한다. IoTon의토대를이루고있는 Tendermint 컨센서스모듈들은노드구성위원회에참여하며 DAG 네트워크를항상모니터링하여합의가이루어졌던핵심노드를게시한다. 주요노드들은 DAG를개별 Epoch들로분리한다. 각 Epoch의트랜잭션은위상학적그래프 (topological graph) 에따라정렬된다. Epoch의정렬결과들은연결되어 DAG의전체순서를형성한다. 철저한순서형성을통해 IoTon은트랜잭션을확실하게결정할수있으며이중지출트랜잭션을즉시표시하고처리할수있다. 18

3 합의모형 (PBFT + DPoS) 3. 합의모형 (PBFT + DPoS) DAG가차세대블록체인 3.0의핵심원장모형이될것으로 2.1에서언급되었다. 그러나기존기획들은가장중요하고어려운합의의문제를근본적으로해결하지못했다. IoTon의합의모형은 Tendermint 합의아키텍처를기반으로 PBFT (Practical Byzantine Fault Tolerance) 와 DPoS (Delegated Proof of Stake) 를결합한것이다. IoTon의합의알고리즘은결정론적알고리즘을통해 DAG의모든트랜잭션의전체순서를결정하여 DAG의효율적인수렴을촉진한다. PBFT, DPoS 및 Tendermint는각각다음섹션에서소개될것이며 IoTon 컨센서스모형이해당장의마지막부분에세부적으로설명될것이다. 3.1 PBFT Leslie Lamport는 1980년대에 "Byzantine Fault( 비잔틴장애 )" 개념을제안했으며, 그뒤비잔틴문제의학술적연구에서악의적인노드가있는분산시스템에서합의에도달하는방법에대한여러가지제안들이있었다. 1999년 MIT의 Castro팀은 PBFT (Practical Byzantine Fault Tolerance 실용적비잔틴장애허용 ) 에서악의적인노드가전체노드의 3분의 1 미만을차지할때시스템의안전하고안정적인작동을보장할수있는상대적으로효율적인비동기비잔틴결함허용알고리즘을제안했다. 이제안은 PBFT 알고리즘의청사진이되었으며많은다른변형들이파생되었다. 일반적으로 PBFT 는사전준비 (Pre-prepare), 준비 (Prepare), 헌신 (Commit) 의세단계로구성된다. 주요작업과정은다음과같다. 1. 주요노드들은합의내용에대한제안을한다. 2. 각복제노드는주요노드들에서제안한내용을검토하고합법적인것으로간주되면서명한다. 3. 2/3 이상의유효한서명이수집되면합의가이루어지고이는해당작업이완료되었음을의미한다. 19

3 합의모형 (PBFT + DPoS) 그림 4. PBFT 알고리즘작동매커니즘 각작업중에위원회의 PBFT 참여노드는주요노드가제안한것을검토및확인해준다. Commit 단계에서복제 노드의 3 분의 2 이상의서명을수집할수있으면위원회는결과에동의한다. 악성기본노드의경우 PBFT 는 View-change 메커니즘을통해 View 를변경하며기본노드를대체하여시스템이정상적으로작동하도록한다. Bitcoin 은분산원장기술의적용을성공적으로촉발하였다. 분산시스템에서컨센서스를달성하기위해 Bitcoin 은 PoW 프로토콜을사용한다. 이후컨센서스알고리즘의진화로 IBM 의 Hyperledger, Algrand, Stellar, Elastico 등과같은암호화폐체제들이합의에도달하기위해 PBFT 를도입했다. 3.2 DPoS 블록체인컨센서스알고리즘인 DPoS (Delegated Proof-of-Stake, 위임지분증명 ) 는 2014 년 Dan Larimer ( 현재 EOS CTO) 에의해제안되었으며 Bitshares에처음적용되었다. DPoS는주로과도한에너지소비, 중앙집중식컴퓨팅및 PoW의비효율성문제를해결하기위해고안되었다. DPoS는신속성, 안전성, 분산화및낮은에너지소비와같은많은장점을가지고있어점점업계에서수용되고있다. 대표적인 DPoS의사용자는 EOS이다. IoTon 의 DPoS 에는주주 (Stakeholder), 증인 (Witness), 대표 (Delegate) 라는세가지의중요역할들이있다. 주주는시스템토큰을보유하고있으며권력을행사할수있는증인과대표를투표를통해선출한다. 증인은 PoW 시스템의채굴자들과비슷한역할을한다. 즉, 증인은블록들을생성하며트랜잭션의정확한기록과분쟁상황 20

3 합의모형 (PBFT + DPoS) 해결을담당한다. 대표들은주주들의신탁관리자로서중요한시스템업데이트들과매개변수변경들에대한투표를 담당한다. IoTon 에있는증인의수는 21 로고정되어있으며이증인들은주주에의해선택된다. 네트워크운영을유지하는 중요한기능을가진증인은정기적으로거래를패키지에넣어차례대로블록을생성한다. 증인들의주요임무들은 다음과같다. 1. 노드들의정상적인작동을보장하는고성능서버노드를제공한다. 2. 네트워크에서트랜잭션들을수집한다. 3. 트랜잭션들을확인하고이를블록으로묶는다. 4. 검증후블록을유포하고다른노드들을자체데이터베이스에추가한다. 증인의노드서버는 Bitcoin 네트워크의마이닝시스템과같다. 일반적으로시스템에기여하는자들로서그들은정상적인업무수행을위해거래수수료및시스템보상을받을수있다. 그러나행동을취하지않거나악의적인행위 ( 불법정보제안또는상충되는두가지제안서체결등 ) 를제시하면모기지자금을체계적으로압수당할뿐아니라주주들의신뢰를잃고증인으로머물자격을박탈당한다. PoW 네트워크에서네트워크를업그레이드하거나매개변수를조정하는것은매우어렵다. Bitcoin의확장성에관한논쟁을보면이는분명해진다. DPoS 시스템에서커뮤니티는주주가선택한대표들에의해서공동적으로관리된다. 대표들은수수료, 블록사이즈, 블록스페이싱과같은매개변수들을변화시킬지말지에대하여투표를통하여결정한다. 대표자는주주들에의해서선택되어서네트워크에속한일반적인유저들의이해관계를대표함으로써분산화된커뮤니티거버넌스를달성한다. 또한 DPoS 는공정성측면에서 PoW 보다뛰어나다. DPoS 하에서주주가비교적적은수의사용자일지라도증인및 대표를선출함으로써권력을행사할수있다. 반면에컴퓨팅파워가작은 PoW 의채굴자들은기본적으로채굴에 관여하지않는다. 만약이러한채굴자들이마이닝풀에참여하기로결정하면시스템의중앙화가발생한다. 효율성, 보안, 친환경및편리한커뮤니티거버넌스를기반으로 DPoS 는 IoTon 의컨센서스모형의중요한구성 요소로선정되었다. IoTon 의 DPoS 메커니즘은다음사항들을보장한다. 21

3 합의모형 (PBFT + DPoS) 1. 노드들이경쟁이아닌협업을선택하며 21 개의노드들이신속하게합의에도달할수있다. 2. PBFT 합의매커니즘과결합될때강력한보안능력을보여준다. 3. 트랜잭션확정이 1 초내에완료된다. 3.3 Tendermint Tendermint 는다수의상태머신들가운데서안정적이고일관성있는복제어플리케이션들을개발하기위한 오픈소스소프트웨어로 2014 년도에설계되었다. Tendermint 의또다른설계목적은 Bitcoin 의작업증명 시스템에의해서야기된속도, 확장성, 환경오염에관한문제들을해결하는것이었다. Tendermint는 PoS(Proof of Service, 지분증명 ) 의가장두드러진문제점인 Nothing-at-stake 를해결했으며개선된 PBFT 알고리즘을갖춘고성능의일관성을갖춘 PBFT 기반컨센서스엔진을제공했다. 악의적인적의통제비율이 1/3 미만일때컨센서스프로세스블랙박스를만들어합의에확실하게도달하고상태머신들가운데서자동적으로동기화를진행한다. Tendermint는두가지중요한기술구성요소인블록체인컨센서스엔진과제네릭응용프로그램인터페이스를포함한다. 컨센서스엔진은 Tendermint Core라고불리며트랜잭션레코드가모든노드에서일관되게정렬될수있도록보장한다. 일반응용프로그램인터페이스는 ABCI (Application BlockChain Interface) 라고도불리며모든프로그래밍언어로트랜잭션을처리할수있도록만드는기능을담당한다. Tendermint는그림 5에서제시된단순한상태머신을따르는주로비동기적인비잔틴장애허용합의라고할수있다. IoTon의 DpoS에있는증인들은위원회의회원이된다. 나머지가투표를하는동안각자가순서대로제안을한다. 여기서 Tendermint는개선된 PBFT를사용하여 3단계컨센서스를 2단계컨센서스로변경하고 PBFT의뷰변경메커니즘을조정한다. 개선후, 성공적인합의는 2단계 (Pre-vote와 Pre-commit) 의투표를요구한다. 동일한제출라운드에서 Witness의 3 분의 2 이상이동일한제안서를사전제출했을때만합의에도달한것으로간주된다. 22

3 합의모형 (PBFT + DPoS) 그림 5. Consensus Stages 1. DeliverTx 는응용프로그램간의주요메시지이며모든트랜잭션이메시지와함께전송된다. 2. CheckTx 는 DeliverTx 와유사하지만트랜잭션확인에만사용된다. 3. 응용프로그램의현재상태를계산하려면다음블록의헤드에놓고 Commit 을수행한다. 23

3 합의모형 (PBFT + DPoS) 그림 6. ABCI ABCI 에서 Message Flow 는아래그림 7 에묘사되어있다. 그림 7. ABCI Message Flow PBFT 알고리즘에서위원회의모든구성원의가중치 (weight) 는같고 2/3 서명은위원회의 2/3명이상의서명으로정의된다는점에유의해야한다. PBFT가제대로작동하기위해필요한서명중 2/3 이상이 IoTon의증인들의가중치를기반으로계산된다. 마찬가지로이들가운데서발생하는로테이션은가중치비율 (weight ratio) 에따라실행된다. IoTon의합의설계는 DPoS와 PBFT를결합하여 Tendermint 컨센서스엔진에통합시켜안전하고 24

3 합의모형 (PBFT + DPoS) 신뢰할수있는컨센서스아키텍처를형성한다. 결과적으로, IoTon 은 IoT 네트워크에참여하는라이트노드에대한 효율적이고안전한즉각적인확인및무신뢰적인 (trustless) IoT 장치들간의잦은소액거래들에대한강력한 지원을제공할수있다. 3.4 IoTon 의컨센서스구성 이전섹션에서는 IoTon 컨센서스모형의세가지중요한구성요소인 PBFT, DPoS 및 Tendermint 를소개하였다. 여기서는구체적인합의모형을제시하고구성요소가어떻게작동하는지설명하겠다. IoTon 의컨센서스모형은 그림 8 에묘사되어있다. 일반적으로말해 IoTon 은 DAG 와컨센서스모형이라는두가지주요모듈로구성되어있다. 사용자지향 어플리케이션인 DAG 는주로비즈니스논리처리를완료하는데사용된다. 사용자에게거의투명한컨센서스모형은 IoTon 의토대를이루며주로분산원장의 DAG 합의를완료하는데사용된다. 사용자는트랜잭션을생성하여 DAG 그래프에서최신터미널노드를인용 ( 해당인센티브를얻을수있도록 ) 하고소량의처리수수료를지불한다. 그뒤트랜잭션을유효하게서명한다음 P2P 네트워크를통해분산시킨다. 네트워크의모든노드는이러한트랜잭션을수집하여합법적인지 ( 이중지출확인및판단제외 ) 확인한다음로컬 DAG 네트워크에합류하여이를네트워크의인접노드에보급한다. 상위 DAG는주로원장의상태를유지하고기본 Tendermint 컨센서스엔진의최신결과를지속적으로동기화하여 DAG의모든트랜잭션의순서를구성하는데사용된다. 25

3 합의모형 (PBFT + DPoS) DAG 그림 8. IoTon 합의다이어그램 DPoS 와 PBFT 의두부분으로구성된기반 Tendermint 합의엔진은주로 DAG 상태에대한합의에도달하는것을 책임진다. 주주의투표와증인자신의모기지를기반으로한 DPoS 모듈은 PBFT위원회를구성하기위해상위 21명의증인을뽑는다. 주주의모기지및투표에따라서이증인들은후속 PBFT 합의에서투표가중치에해당하는서로다른가중치를가진다. 증인은정기적으로 PBFT의리더역할을하고 PBFT를통해 DAG의핵심노드에대한합의가이루어진다. 리더는각라운드에서 DAG 상태에따라제안된키노드를업데이트하고다른증인들은합법성을확인하고합법적이라고판단되면서명한다. 제안된키노드가투표가중치의 2/3 이상을받으면 ( 이는증인의수가아니라가중치를기반으로함 ) 합법적인것으로간주되어네트워크의다른전체노드와동기화된다. 26

4.Security mechanism 이키노드는 DAG 를직렬로연결된서로다른 Epoch 들로분할한다. 각 Epoch 내의트랜잭션의상대적순서는 토폴로지정렬알고리즘을실행하여고유의방식으로결정될수있다. 각 Epoch 의정렬결과를연결하면 DAG 의 전체순서가형성된다. 이시점에서우리는이중지출비용을확실하게결정하고법적거래를확인할수있다. 거래가핵심노드에의해확인되고합법적인것으로판단되면향후이중지출은허용되지않는다. 나중에이중 지출을실현하려는거래가 Epoch 의증인에의해서만사용될수있으므로전체순서는더뒤쪽에있어야하기에이중 지불이성공할수가없다. 만약 Epoch 에서이중지불이발생할경우, 전체순서를놓고볼때, 상위랭크된트랜잭션에대해선합법이되며 뒤에랭크된트랜잭션에대해서는불법이된다 PBFT 알고리즘의확실성은 IoTon의핵심노드들에포킹이없음을보장한다. 이경우트랜잭션이키노드들에의해직접또는간접적으로사용되고정당한것으로결정되면사용자는트랜잭션이정당하며변경될수없음을알수있다. 반면에트랜잭션이 DAG에들어갔지만이중지출로판단되면전체트랜잭션이불법으로표시되고데이터는전체노드의저장공간을낭비하지않도록블랭킹 (blanked) 처리된다. IoTon 의합의솔루션은다음과같은이점을제공한다. 1. PBFT 의확실성은분기가일어나지않도록한다. 트랜잭션은 Bitcoin 처럼확률적인확인만을확보하는것이 아니라구체적이고최종적인상태들을가지게된다. 2. DPoS 의분산된설계는 PoW 의계산에서오는전력낭비와같은문제를피하기때문에효율적이고친환경적이다. 3. 증인은 DAG 의새로운거래에대한합의에도달하기위해노력하고있으므로 IoTon 은 1 초이내에거래확인을할 수있다. 4. DAG 의구조는높은동시성을지원하므로 IoTon 은 5,000-300,000 TPS 를달성할수있다. 27

4.Security mechanism 4. Smart Contract system IoTon의 Smart Contract는코인플랫폼 ( 퍼블릭블록체인 ) 에서만작동하도록분리된다. 가상머신의트랙잭션저장및상태처리는코인플랫폼에서수행된다. 퍼블릭블록체인과연동성이있는프라이빗블록체인은동기화를통해해당 IoT 인증및장치의구동을실행할수있도록디자인되었다. 룰엔진은 Smart Contract가필요없는행위와 Smart Contract가필요한행위를나누어필요한상황에서만 Smart Contract가작동하도록만든다. 시스템에서룰엔진을통해해당 Smart Contract를설정하여서비스중발생하는변동상황에유동적으로대처하게한다. 서비스별유저가동시에 Smart Contract에참여할수있으며가상화장비에서도 Smart Contract 수행이가능하다. 특정행위는인증만참여후 Smart Contract를수행하지않을수있다. Smart Contract는자동으로실행되며, 룰엔진을통해서도컨트랙트의세부사항들을설정할수있다. 그림 9. 블록체인내부스마트컨트랙트다이어그램 4.1 인공지능기반트레이닝모델 4.1.1 Smart Contract 2.0 구현 IoTon의노드는 AI 가상시스템을통해 Smart Contract를호환가능한형식으로실행한다. Smart contract 2.0은다음과같이구현된다. 28

4. Smart contract system 첫째, 여러사용자가계약수립단계에속하는 Smart Contract 개발에공동으로참여한다. 계약집행자 ( 사용자 ) 가블록체인의사용자로등록되면그는한쌍의공개키와개인키를배급받게된다. 공개키는블록체인의사용자계정주소이며개인키는계정을조작할수있는유일한키이다. 두명이상의사용자가필요에따라계약을설계한다. 절차적조건을통해양당사자의권리와의무가포함된관련약속을결정한다. 이러한권리와의무는기계어로전산화되어프로그램에입력된다. 참가자는개인키각각에개별적으로서명하여계약의유효성을확인한다. 서명된 Smart Contract를통해계약된내용이블록체인네트워크에업로드된다. 둘째, 사용자가 Smart Contract를블록체인에제출하면유효성검증단계로들어간다. 유효성검증단계에서는다음절차가진행된다. 계약은 P2P 를통해블록체인전체에퍼지며각 IoTon 노드는하나의복사본 (replica) 을받는다. 블록체인의확인 노드는수신된계약을먼저메모리에저장하고새로운합의라운드를기다리며계약의합의및처리를유발한다. 합의시간에도달하면유효성검사노드는가장최근기간에저장된모든계약을계약집합으로패키지화한다. 계약집합의해시값을계산하고그결과를블록구조로모아전체네트워크에전파한다. 다른검증노드가블록구조를수신하면포함된계약집합의해시가추출되어해당계약집합과저장된계약집합과비교된다. 또한, 자체인증된컬렉션을다른인증노드로전송한다. 이다중라운드전송및비교를통해모든검증노드는지정된시간내에최신계약세트에대해최종적으로동의한다. 새로합의된계약집합은블록형태로전체네트워크에확산되며각블록에는현재블록의해시값, 이전블록의해시값, 합의에도달한시점에관한타임스탬프및기타정보가포함된다. 동시에, 블록체인에대한가장중요한정보는일련의동의된계약이다. 각계약은노드가계약을수신할때유효한것이된다. 확인된계약서는마침내블록체인에기록될수있다. 검증의주요내용은계약참여자의개인키서명이계정과일치하는지여부이다. 마지막으로블록체인이확인된계약서를작성하면다음단계를포함하여 Smart Contract 의자동실행이시작된다. Smart Contract 는주기적으로자동화상태를검사하고각계약에포함된상태머신, 트랜잭션및트리거조건을 검사한다. 조건에의해만족되는트랜잭션을유효성검사대기열로밀어넣어합의를기다린다. 트리거를충족시키지 않는트랜잭션은블록체인에계속저장된다. 마지막유효성확인라운드에들어가는트랜잭션은각검증노드로확산된다. 정상적인블록체인트랜잭션과마찬가지로, 검증노드는먼저트랜잭션의유효성을확인하기위해서명검증을수행한다. 확인된거래는보류중인합의의집합을입력한다. 대부분의유효성검증노드가동의하면트랜잭션이성공적으로실행되고사용자에게통지된다. 29

4. Smart contract system 트랜잭션이성공적으로실행된후 Smart Contract의상태가판단된다. 계약에포함된모든트랜잭션이순차적으로실행되면상태기회 (the status opportunity) 는계약상태를완료로표시하고최신블록에서계약을제거한다. 대신다음라운드처리가완료될때까지진행중인것으로표시되고최신블록에저장된다. 전체트랜잭션및상태처리는블록체인기반에내장된 Smart Contract 시스템에의해자동으로완료된다. 전체과정은투명하고조작될수없다. 4.1.2 AI 기반의안전한 Smart Contract 실행 1) IoTon은 AI 기반계약실행메커니즘을채택한다. 계약실행프로세스는자동적일뿐아니라진정한의미에서지능적이다. 개발단계에서계약당사자는 IoTon에서제공하는컨트롤체인및 Smart Contract 보안보조소프트웨어를통해보안 AI 모델을게시한다. 당사자는계약서에결함이있는지여부를확인하고계약이완료되고보안검토규정을충족할때까지양당사자의 " 권리 " 및 " 의무 " 코드를자동으로수정한다. 2) 타당성확인단계에서계약은전체네트워크의합의에의해확인될필요가있다. 현재계약의외부조건이이시점에서변경될수있다. 따라서계약서명의일관성을확인하는것외에도각검증노드의 AI 가상시스템은계약이요구사항을충족하는지여부를추가로점검하여다양한실행조건이완전하고실행가능하도록보장한다. 계약자가추가비용을지불하면검증노드는추가조건부검토및사전실행기능을실행하여계약의새로운취약점을역동적으로감지할수있다. 계약유효성이확인되면블록체인에기록되고자동실행단계로들어간다. 3) 자동계약실행단계에는예기치않은미래로인한다양한허점이발생한다. 이시점에서계약을실행하는 AI 가상시스템노드는계약의원활한실행을보장하기위해 IoTon이공식규칙및규정에따라 AI 자동판단메커니즘을통해나타나는허점을보완할수있다. 또한, IoTon AI 가상머신은내장된 AI 모델을통해솔루션을제공하고참가자가운데갈등이생겨 Smart Contract를정상적으로실행할수없을때솔루션을지원한다. 4) Smart Contract이실행되면, IoTon의스마트툴은거래의중간단계와해당거래및상태를분석할수있다. 사용자는모델행동을요약하고최적화하여노드를통해계약실행결과를제출할수있다. IoTon의노드가모델에동의하면블록으로작성되고사용자모델로게시되어 IoTon의계약모델라이브러리를더욱풍부하게한다. 계약의실행단계에서피싱사기와같은행동을위해문제를해결하는두가지방법이있다. 1) 인공지능훈련을통해관련부정행위에대한조기경보를얻을수있으며, 합의행동과정에서이행동을확인하여 계약이행을거부할수있다. 30

4. Smart contract system 2) 피싱사기의경우사기당사자가사기당사자의행동모델및지갑주소를표시하기위해 AI 모델을제공하여유사한신용평가시스템을실현한다. 후속 AI는행동특성을자동으로확인하여다시발생하지않도록한다. 계약의실행단계에서전달할수없는행동이발생할경우검증노드는일정기간계약이중단된후 AI 검토를실행하여계약의집행가능성을결정한. 또한내장된 AI 모델규칙을통해계약실행을용이하게한다. AI 판단에기반한계약의이행은전체네트워크 AI의합의에의해완료될필요가있다. 그림 10 은 AI 기반의 Smart Contract 실행프로세스를보여준다. 그림 10. AI 기반 Smart Contract 실행프로세스 31

4. Smart contract system 4.1.3 AI 스크립트모델에기반한보안 Smart Contract Smart contract 2.0은실제적으로바이트연산코드를지원하는유한상태기계 (finite state machine) 이다. 일반적으로사용자는트랜잭션모델및실행프로세스매개변수의세부사항을설명해야하는데이때많은허점들이발생할수있다. 여러고급언어가개발된후에도사용자는해당바이트코드를컴파일하여관련모델설명을작성해야한다. 사용자설명서에제시된모델의부정확성과불완전성으로인해다양한허점이자주발생한다. Smart Contract 체결과정에서사용자가이취약점을알고있다고해도이를설명할방법이없다. IoTon은 AI 판단모델을미리모델에도입하고모델업데이트를지원함으로써이문제를해결한다. 그러나직접적으로취약점을피할수있다면사용자친화적일것이다. IoTon은 AI 스크립팅모델에기반한 Smart Contract를도입하여이문제를해결한다. 사용자는보안 Smart Contract 를시작할준비가되면 IoTon 의 Smart Contract 기반모델라이브러리를참조하여 게시해야하는현재 Smart Contract 및작업을매칭할수있다. 완전한매칭모델이없으면모델조합을통해 AI 에 의해기본매칭이완료되고나머지매칭되지않는부분은 AI 스크립트를통해사용자에의해첨부된다. 사용자가 AI 스크립트모델을기반으로지능형계약을제출하면 AI 가상컴퓨터가사용자계약을분석한다. Smart Contract 기반모델라이브러리를직접호출하는부분에서 AI는 IoTon에서정의한대로실행된다. 스크립트섹션의경우보안검토는통역사 (interpreter) 를통해수행된다. 행동규칙을확인하고악의적인공격을막기위해모든실행행동을 AI가식별해야한다. 이구현의장점은사용자가모델설명에집중할필요가없으며모델목적에따라개발을단순화한다는것이다. AI 스크립트모델을기반으로한 Smart Contract 는많은기본보안모델을필요로하기때문에 IoTon 은초기 단계에서일부거래모델을구축하고사용자가이후에보안거래모델을적극적으로제출함으로써전체모델 라이브러리를완성한다. 32

4. Smart contract system 그림 11. 스크립트에기반한 AI 모델실행 4.1.4 AI 에기반한위탁거래 Smart contract 2.0은입력된정보의질에크게의존한다. Smart Contract 2.0은종종다양한옵션과지점을통해문제를해결하는데도움이되는 " 예측기계 " 의역할을한다. 정보소스의소멸, 새롭고나은정보출현또는판단조건의변화와같이 " 예측기계 " 가해결할수없는상황이필연적으로등장한다. 이러한현상의근본적인이유는 Smart Contract 2.0이아직은 " 예측불가능한미래 " 라는것이다. 결과적으로보안 Smart Contract는인공지능에기반하여관리된트랜잭션을설계하여미래에인공지능이트레이닝모델및기능제약을통해사용자타깃요구사항들에따라계약코드를실행할수있도록한다. 관리되는트랜잭션을사용할때사용자는타깃요구사항들만제공하며실행세부사항, 트랜잭션코드와그가운데 있는실행프로세스는 AI 에의해완료된다. 4.1.5 AI 에기반한멀티플렉싱 (Multiplexing) 거래 전통적인 Smart Contract 는일반적으로거래를완료하기위해엄격한매칭이필요하며정상적인상황에서는여러 당사자가이를언팩킹하거나지원할수없다. 예를들어, 사용자 A, B 및 C 가일련의트랜잭션계약을맺는다고하자. 결과적으로사용자는중앙집중식교환을통해유사한거래및다자간거래를완료하는경우가많으며심지어간단한 거래도교환을통해처리된다. 그러나거래소는종종사용자가법정통화나토큰을거래소의은행계좌또는 33

4. Smart contract system 블록체인주소로충전하도록요구한다. 그런다음사용자는교환소의가상주소를사용하여차용증서보관을관리한다. 계약을실행할때사용자는실제로 IOU를기반으로트랜잭션을수행한다. 사용자는차용증서를거래소를통해법정화폐또는블록체인토큰으로교환신청하고전체거래가완료되기전에승인을받아야만한다. 사용자를위해자산을보유할수있는거래소의기능은거래하는동안사용자에게가장큰위험이다. 또한, 사용자는거래운영자의비즈니스윤리에서비롯되는다른위험을감수해야한다. IoTon은위거래모델에 AI 기반 Smart Contract 매칭시스템을구축했다. 계약들의집합을검증하는동안검증노드는사용자가전송한계약들의집합을스캔하고분석하여다양한트랜잭션루프를결정한다. 실행과정에서동적매칭이수행된다. 최대거래루프와최저거래비용을추구하여여러거래상대방의복수주문을완료함으로써 IoTon 은중앙집중식교환으로인한단점을피할수있다. 4.2 보안성을가진 Smart Contract 의실현 보안성이확보된 Smart Contract 의핵심아이디어는다양한 AI 모델을수립하여계약검토를완료하고계약실행을 보장하는것이다. 따라서이러한기본적인 AI 모델을사용자에게가장적합한모델에붙이는방법은 IoTon 이 프로그래밍언어를고려하는데있어서초점을맞춰야할부분이다. IoTon 은현재안전한 Smart Contract 를위한기본프로그래밍언어로 Lua 를사용한다. Lua 는 Standard C 로 작성되며소스코드형식으로열리는 Turing 의완벽한요구사항을충족시키는경량및소형스크립팅언어이다. 응용프로그램에유연하게확장및사용자지정기능을제공하기위해아예응용프로그램에포함되도록설계되었다. Lua 의핵심기능은다음과같다. 경량성 : Standard C 로작성되었으며 100Kb 가조금넘는수준으로컴파일된소스코드에개방되어있다. 다른 프로그램에쉽게임베드될수있다. 확장가능성 : Lua 는매우사용하기쉬운확장인터페이스와메커니즘을제공한다. IoTon 은 Lua 가쉽게호출할수 있는다양한 AI 모델과기능을설계했다. 기타기능 : 절차지향프로그래밍및기능프로그래밍을지원한다. 자동메모리관리 : 배열, 해시테이블, 컬렉션및오브젝트를시행하는데사용할수있는하나의일반적인유형의 34

4. Smart contract system 테이블만제공한다. 언어기본제공패턴매칭 ; 종결 ; 함수는하나의가치값으로간주될수있다. 운영체제에서 지원하는스레드가아닌다중스레드 ( 협업프로세스 ) 지원을제공한다. 클로저와테이블을사용하면데이터추상화, 가상함수, 상속및오버로드와같은객체지향프로그래밍에필요한핵심메커니즘을쉽게지원할수있다. 그러므로 IoTon 은 Lua 의바이트코드실행해석을완료하기위해 Lua 사용스크립트인터프리터와컴파일러 AI 가상머신세트를설계할것이다. 또한 AI 가상머신은 Lua 의 AI 모델호출인터페이스를추가할것이다. IoTon의작업또는 Smart Contract를포함하는블록동기화확인에서노드는블록에서해당계약바이트코드를추출한다. 또한 AI 가상머신을사용하여해당코드를실행하고매개변수가있는 AI 모델을호출하여계약바이트코드의실행결과를확보한다. AI 가상머신의실행결과및관련컨텍스트상태변경들은블록체인에서사용된다. IoTon은 IoTon 노드에서 Smart Contract 2.0에대한하위호환성을제공하기때문에 AI 가상컴퓨터를바이트인터프리터로사용하여 Smart Contract 2.0을시뮬레이션해볼수있다. 4.3 보안성을가진 Smart Contract 의디지털자산지지 대부분의블록체인어플리케이션은디지털자산을중심으로이루어진다. 또한, 사용자는흔히자체자산유형을만들고 Smart Contract를사용하여발급및거래논리를관리하려한다. 그러나전통적인블록체인디자인에서각디지털자산에대하여 Smart Contract를기반으로한일련의비즈니스프로세스를반복적으로새롭게개발해야한다. 이러한방식은매우비효율적이며많은오류에노출된다. 안전한 Smart Contract에서 IoTon은 AI 기술을사용하여디지털자산을기반으로많은트랜잭션모델및비즈니스프로세스를생성한다. 사용자가자신의디지털자산을만들면해당 IoTon 내장자산계약인터페이스를호출하여완전한디지털자산시스템을생성하기만하면된다. 해당디지털자산거래논리는사용자가개발하고 IoTon의다양한 AI 모델을통해생성되므로 IoTon에서정의한디지털자산모델기능을직접상속받을수있다. IoTon의보안전망과사용자정의디지털자산을생성할수있는능력은 IoTon이주도하는 " 자가재정 " 시대가도래했다는것을의미한다. 각사용자는계약에따라자신의속성들 (attributes) 중하나를토큰으로판매하고 AI가자격이있다는전제하에 IoTon의트랜잭션을안전하게처리할수있다. 예를들어기업가는 IoTon에대한그의아이디어를토큰으로팔고적절한지원을얻기위해 Smart Contract의형태로소유권을거래및수익화를시행한다. 기업가의아이디어를구매한사용자는이에따르는혜택을누리게된다. 일반적으로사용자가만든디지털자산은온라인자산일뿐이므로기존의 Smart Contract를통해오프라인자산및동작과상호작용할수없다. 35

4. Smart contract system IoTon 은다양한확장을통해 AI 판단메커니즘과신뢰할수있는게이트웨이장치를도입하여온라인및오프라인 연결및상호작용을달성한다. 4.4 Smart Contract 의확장 전통적인블록체인에존재하는모든문제들은다음항목들로분류될수있다. (1) Smart Contract는계약의기초로서외부사건에따라행동을바꿀필요가있다. (2) 데이터는다음실행을위한기반인 Smart Contract의실행중에외부서비스에서가져온다. (3) Smart Contract는온라인및오프라인거래를직접완료하려고시도한다. (4) Smart Contract는기밀데이터를숨길수없다. 문제 (1) 과 (2) 의핵심은블록체인외부의데이터소스가모든노드와일치하도록요구하는것이다. 블록체인의관점에서보았을때, 외부데이터소스는실제로통제할수없으며미래의행동은알려지지않았다. 그이유는데이터소스가다른응답을제공하거나다른노드에서요청을받으면일시적으로사용할수없기때문이다. 이는블록체인의외부데이터가불확실하다는것을의미하다. 또한블록체인의기초는합의메커니즘이며, 합의메커니즘의핵심은블록체인에서일어나는모든일이결정되어야한다는것이다. 따라서외부데이터소스의동작을제어할수없는경우합의메커니즘이필연적으로혼동되고전체블록체인이무너질수있다. 질문 (1) (2) 의출발점은실제로온라인 ( 블록체인 ) 과오프라인 ( 외부세계 ) 간의연결문제를해결하는것이다. 따라서 IoTon 은여러독립적인신뢰가능한게이트웨이를사용하고 AI 감사를도입함으로써위의문제를해결한다. 구체적인구현단계는다음과같다. 단계 (1) : Smart Contract 가직접호출데이터를판독할필요가있을때, AI 가상기계는지능형감사를수행하여 계약이외부데이터및해당보안을판독할필요가있는지결정한다. 보안이오래되지않았을경우 AI 가상시스템은 후속프로세스처리를위해미리정해진규칙을따른다. 통과하면단계 (2) 로들어간다. 단계 (2) : 외부데이터소스가판독될필요가있는것으로확인되면, IoTon 상의모든신뢰게이트웨이는외부데이터 추출을위해통지된다. 신뢰할수있는게이트웨이는외부데이터를읽고공용장부에기록한다. 단계 (3) : AI 가상머신은각신뢰할수있는게이트웨이가제공한데이터를감사하고데이터신뢰도분석을 36

4. Smart contract system 수행한다. 예를들어, 항상일관된데이터를제공하고잘못된데이터를제공하는게이트웨이를처벌하는보완 게이트웨이가존재한다. 단계 (4): AI 가상머신은감사된 (Auditied) 데이터를독립블록체인데이터영역에기록하고체인에서계약실행의 토대를구축한다. 그림 12. Smart Contracts 와외부데이터소스의상호작용과정 위의아키텍처를통해 IoTon은온라인및지정된오프라인거래시스템을손쉽게통과하고다양한거래체계를시작할수있다. 전형적인예를들어, 계약은계약명칭의기초로서프리미어리그축구경기의결과를규정할필요가있다. 예를들어, 나스닥의특정날짜를지정하는지수는계약서등의기초로사용된다. 따라서문제 (3) 이그에따라해결된다. 37

4. Smart contract system 질문 (4) 의핵심은 Smart Contract를통해데이터기밀성을지원하고다른비관련사용자가데이터의세부사항을알수없도록보장하는것이다. 이것은실제로하나의딜레마이다. Smart Contract가공개되지않으면전체네트워크가합의에도달할수없다. 그러나공용데이터는숨길수없다. 전통적인블록체인은일반적으로부분합의메커니즘혹은개인계약을통해개인키를획득한참가자를통해서만기밀데이터에대한액세스요구사항을충족시킨다. 이모델은사실 JP Morgan의 "Quorum" 블록체인프로젝트를포함하는블록체인보안메커니즘의개정판이다. 문제 (4) 의경우, IoTon은또한신뢰할수있는게이트웨이처리를사용한다. 모든기밀데이터는암호화되어신뢰할수있는게이트웨이에제출되고 IoTon의기밀데이터영역에신뢰할수있는게이트웨이에저장된다. 한편데이터의이부분에대한무결성검증및요약내용이블록에기록된다. Smart Contract는암호화된데이터의이부분을신뢰할수있는외부데이터소스로처리한다. 계약을실행하는동안모든노드는데이터의존재와안정성을확인할수있다. 그러나특정인증된사용자만신뢰할수있는게이트웨이를통해암호화된데이터를확인할수있다. 위의모드에서블록체인의합의메커니즘은손상되지않으며고객의개인정보도보호된다. 비슷한메커니즘이특정데이터를규제하기위해정부에의해사용될수있다. 4.5 Smart Contract 다중언어생성지원 고급프로그래밍언어로 Smart Contract를직접작성하는것이가능하다. 지원되는첫번째언어는 C ++, C #, VB, Net, F # 및 Java다. 우리는이러한프로그래밍언어에대해작성자와플러그인을제공할것이다. 프로그래밍언어를통해가상언어가지원하는명령을준수할수있다. 또한, C, GO 및 Javascript와같은추가프로그래밍언어도지원할예정이다. 38

5. Wallet 5. Wallet 다음은블록체인 Wallet 구현원칙이다. 블록체인의 Wallet 구현의기술적인원칙을이해하기위해서우리는먼저다음사항들을이해해야한다. 1. 개인키, 공개키및주소생성방법. 2. 원격호출에 API 를사용하는것과같은기본개념을이해한다. 이것은전통적인 IT 산업관련지식에속한다. 3. 마지막으로지갑디자인과관련된연상기호 (mnemonic) 단어, 키저장소및암호개념을이해한다. 블록체인 공개키, 개인키및주소가생성되는것과같은방식이다. 그러나전체프로세스는블록체인 Wallet 설계프로세스에 속하므로블록체인과관련된지식과혼동될수없다. 개인키, 공개키및주소가생성되는방식 : 1. Bitcoin 개인키는실제로 sha-256 을사용하여생성된 32 바이트 (256 비트 ) 의임의의수이다. 유효한개인 키의범위는 Bitcoin 에서사용하는 secp256k1 타원곡선디지털서명표준에따라다르다. 2. 개인키앞에버전번호를추가한다음압축플래그와추가체크코드를추가한다. 소위추가체크코드는개인 키에대한두번의 sha-256 작업후두번해시결과의첫번째 4 바이트이다. 그런다음 base58 이일반 WIF (Wallet Import Format) 형식의개인키를가져오기위해인코딩된다. 3. 개인키는타원곡선곱셈을통해얻을수있다. 공개키는 x와 y 좌표를가진타원곡선상의점이다. 공개키에는압축형식과압축되지않은형식이있다. 초기에는 Bitcoin이압축되지않은공개키를사용했으나, 이제대부분의클라이언트는기본적으로압축된공개키를사용한다. 공개키는개인키에서파생되며공개키의해시는단방향이다. 이알고리즘은타원곡선알고리즘 (Elliptic curve algorithm) 으로도불리며철회불가한알고리즘이다. 4. 공개키가생성된후공개키는 SHA256 해시알고리즘에의해처리되어 32 바이트해시값을얻는다. 이두번째해시값은 ripemd-160 알고리즘을통해가져와 20 바이트의해시값 (Hash1605) 을얻는다. 버전 [2] + Hash160으로구성된 21 바이트배열을이중해시처리하며해시값의처음 4 바이트는체크섬들 (checksums) 로사용되어 21 바이트배열의끝을배치한다. 5. 25 비트배열이 base58 로인코딩되고주소가최종적으로획득된다. 39

6. Cross Chain Gateway 6. Cross Chain Gateway 응용프로그램내에서디지털자산의정적보안및동적보안을효과적으로보장한후에기업은더많은시나리오에적용하여더많은사용자에게서비스를제공할수있는지여부를고려해야한다. 그러나현재상황은다양하고새롭게부상하는공공블록체인들, 동맹체인들및 DAPP이서로분리되어수많은격리된섬들로구성된 " 블록체인세계 " 를형성하고있다. 따라서서비스범위를확장하고자하는기업의경우모든새로운블록체인은새로운기술요구사항, 새로운게임규칙및새로운사용자를의미한다. 한계비용이높으면개별응용프로그램의확장과블록체인상용화의전반적인속도를저해할수있다. 이러한개발장벽을고려하여 IoTon Cross Chain Gateway는어댑터체인과데이터동기화장치가다른블록체인과연결되도록요청하는노드커넥터로서서로다른체인사이에서작동한다. 이는스마트계약의교차체인호출변환과서로다른체인간의데이터및자산의동기화및전송을실현한다. IoTon의분산 Wallet을예로들면사용자는 Wallet을사용하여 BTC, ETH 등과같이서로다른체인에저장된토큰을동시에관리하기만하면된다. 물론 IoTon 의 Cross Chain Gateway 는서로다른체인에서동일한사용자의자산을통합관리할수있으며체인 간에 Smart Contract 를호출하여블록체인응용프로그램의교차체인작업을실현할수있다. 기업의경우이 기술은현장및서비스범위의한계를벗어나상업용응용프로그램의구현을촉진하려는동기를부여한다. 40

7. 보안매커니즘 7. 보안매커니즘 분산원장의보안은최저계층암호화키조합의보안과밀접한관련이있다. 시스템이보안성이철저한상태로 안전하게작동하도록하기위해 IoTon 은암호화솔루션을설계할때두가지측면을고려했다. 1. 해시알고리즘을통한 IoTon 의보안향상 : IoTon 은 SHA-3 을해시알고리즘을사용한다. 2. 양자 - 저항서명 : 보안성이확보된암호화폐시스템은장기적으로안정적으로작동해야한다. 양자컴퓨터의 미래는현재명확하지않지만우리는이를대비해야만한다. 이를위해 Bliss 양자저항서명과 IoTon 서명솔루션 설계의일반적인 ECDSA 서명을포함시켰다. 사용자는실제필요에따라이들중선택하여사용할수있다. 41

8. 서비스소프트웨어아키텍처 8. 서비스소프트웨어아키텍처 Interface Module 인터페이스모듈은공통 API 를제공하고각각의데이터관련하여정합성확인및변환, 매핑모듈을제공한다. 또한 Wallet API 를제공하여 DAPP 개발을지원한다. Core Module 유저관리 사용자의계정관리및등록, 로그인, 로그아웃프로세스와개인키및인증처리를담당한다. 관리자관리 관리자의계정관리, 공지사항및관리자룰변경, 시스템설정및배치파일설정을담당한다. 에러관리 각각코드관리및패턴관리를수행한다. 토탈에러관리기능을통해서현재발생중인에러를감지하고미래 에러를예방한다. 통계관리 사용자통계, 알림통계, 에러통계및시스템통계의현황을지원한다. 분석관리 결제분석, QR Code 분석, TCP 분석, 네트워크분석을지원한다. 알림관리 스케쥴관리, 셋팅관리를통해알림을제공한다. 42

8. 서비스소프트웨어아키텍처 블록체인 코어블록체인의기술에기반하여퍼블릭및프라이빗블록체인네트워크를관리한다. 체인코어 보안컨테이너생성및보안등록을제공한다. Common Core Module 공통코어모듈로써에러매핑, 시스템관리, 이미지매핑, 데이터정합성, 이벤트스트림의기본기능을제공한다. External Interface 확장인터페이스로서버인터페이스, 결제인터페이스, 통신인터페이스, 시스템인터페이스를제공하여 IoTon 이다양한 시스템과연동이가능하도록한다. Rule Engine 다양한서비스에적합한형태로룰을생성관리할수있다. 서비스정책및보상관련정책도룰엔진을통해시뮬레이션 할수있다. 해당룰서비스를이용한다양한서비스를제공할수있다. 보상규칙도사용자의요구에맞게수정가능하며, 다양한방식의적용범위를지원한다. Rule package Rule source Rule package Rule snapshot 43

8. 서비스소프트웨어아키텍처 룰소스 : 프로그램소스와같이업무룰을정의하고있는파일 룰패키지 : 컴파일된프로그램실행파일처럼룰소스를묶어서룰을실행할수있는단위 룰스냅샷 : 룰패키지에버전을부여하여업데이트와롤백을시행하는단위 Rule Engines and Production Rule System (PRS) The Rules은 Production Memory에저장되며추론엔진과일치하는사실은작업메모리에보관된다. 사실 (Fact) 은워킹메모리에나타나며, 워킹메모리에서수정되거나취소될수있다. 다수의규칙과사실을가진시스템은동일한사실주장에대해많은규칙이적용될수있다. 이규칙들은충돌될수있다. Agenda는 Conflict Resolution 전략을사용하여이러한충돌규칙의실행순서를관리한다. 44

8. 서비스소프트웨어아키텍처 Hybrid Reasoning System (HRS) 그림 13. Forward Chaining 전향체인은 " 데이터중심 " 이고작업메모리에사실이명시되어반동적 (reactionary) 이다. 이로인해하나이상의 규칙이동시에사실로인정되며 Agenda 에의해실행되도록예약된다. 간단히말해서, 하나의사실로시작하고, 그것은규칙을통해전파되며, 결국하나의결론으로끝을맺는다. 45

8. 서비스소프트웨어아키텍처 그림 14. Backward Chaining 역방향체인은 " 목표지향적 " 이며, 이는엔진이충족하려는결론부터시작한다는것을의미한다. 그것이가능하지않다면만족할수있는결론을찾는다. 이것은현재목표의알려지지않은부분을충족시키는데도움이되는부차적목적으로파악된다. 초기결론이입증되거나더이상하위목표가없을때까지이과정을계속진행한다. Prolog는 Backward Chaining 엔진의한예이다. 46

8. 서비스소프트웨어아키텍처 Common Module JSON 파서및에러핸들러, 로거, 암호화 / 복호화, 유틸리티, 푸쉬핸들러, SMS 핸들러기능을제공하여기능확장시 재사용이가능하도록한다. Database Common Module 데이터베이스를사용할수있는다양한커넥션풀제공및사용자데이터와원천데이터, 에러, 결제, 통계, 알림및분산 원장에대한기본데이터를제공하는모듈이다. AI Module AI Module 은딥러닝및스트림분석을통해인공지능서비스를제공하기위한모듈이다. 47

IoT Platform 48 12

IoT Platform 1. IoT SDK Structure IoT Platform 은기존장비연결및신규개발을위한네개의 Agent 영역을포괄하는 SDK 를제공함으로써 IoT 기기들이플랫폼에쉽게연결될수있도록도와준다. 1. IoT SDK Structure IoTon의스마트컨트랙트는코인플랫폼에서만작동하도록분리된다. 그러나스마트컨트랙트를처리하기위한가상머신의트랙잭션저장및상태처리는 Public Blockchain에서수행한다. Public Blockchain과연동성이있는 Private Blockchian은동기화를통해해당 IoT인증및장치의구동을할수있도록디자인된다. 룰엔진은스마트컨트랙트가필요없는행위와스마트컨트랙트가필요한행위를나누어필요한상황에서만스마트컨트랙트가작동하도록만든다. 시스템에서룰엔진을통해해당스마트컨트랙트를설정하여서비스중발생하는변동상황에유동적으로대처하게한다. 서비스별유저가동시에스마트컨트랙트에참여할수있으며가상화장비에서도스마트컨트랙트수행이가능하다. 그림 15. IoTon SDK 구조 SDK 는 Blockchain Agent, Service Ready Agent, Connection Ready Agent, Management Agent(s) 4 개의 Agent 로구성되어있다. Blockchain Agent 는다른 Agent 들과분리되어단독으로도작동될수있도록설계되어 있다. 49

IoT Platform 2. IoT 기기인증 2. IoT 기기인증 IoT 기기인증을위하여공개키가먼저생성된다. 인증이수행되고나서인증정보는머클트리 (Merkle Tree) 형태로저장되어지난 IoT 디바이스의행위등에대한인증을수행하고자할때활용이가능하다. IoT 디바이스의 속성및커널코드등의정보를통해무결성검증정보를생성하여트랜잭션형태로블록체인네트워크에전송한다. 그림 16. IoT 인증정보생성 50

IoT Platform 2. IoT 기기인증 그림 17. IoT Authentication Information stored in the form of Merkle Tree 머클트리 (Merkle Tree) 는가장말단노드들을제외한 (non-leaf) 노드들이자식노드의데이터를해시한값으로구성한트리다. 여기서가장말단노드 (leaf) 는거래내용을가지고있고, 말단을제외한나머지모든노드들은각각의자식노드의정보를해시한값을가지고있다. 모든부모노드들은자식노드를최대 2개까지만가질수있는 이진트리의형식을취한다. 2 머클트리의목적은데이터의간편하고확실한인증이라고할수있다. 해시함수의특징으로머클트리하위노드들의해시값은상위노드에영향을주며, 어떤악의적인유저가머클트리최하위에있는트랜잭션정보를가짜로바꿀경우상위부모들의해시값이변경되고, 머클루트값또한변경된다. 이것이발생하는이유는해시가상향으로전파되기때문이라고할수있다. 머클루트정보가변경될경우블록해시정보또한변경되어해당블록은기존의블록과전혀다른블록으로등록된다. 2 https://en.wikipedia.org/wiki/merkle_tree 51

IoT Platform 3. IoT SDK 프레임워크구조상세설명 3. IoT SDK 프레임워크 구조상세설명 그림 18. SDK 구조 APIs Agent 1) API Agent 를통해서단일한 I/O 를사용하여시스템들과커뮤니케이션을수행 52

IoT Platform 3. IoT SDK 프레임워크구조상세설명 Connection Ready Agent 1) IoTon Service Platform과다른 IoT Ready로부터 GMMP/oneM2M 요청과응답을처리 2) G/W버전의경우 Proxy G/W로동작하여하위 Device로중계수행 3) Device버전의경우 Proxy G/W가제외되어경량화함 Management Agents 1) 다른 Agent의요청에대해 Middleware 내부의핵심기능을처리 2) Device/Resource/Security/System으로역할을구분하여구성 3) Manager는 Message State를기반으로한 Common I/F 호출형태로구현하여향후추가적인 Manager가개발되어도영향을최소화하도록개발 Service Ready Agent 1) 다른 Agent의요청에대해 Sensor의제어및정보수집 / 변환을처리 2) Sensor의비동기적발생데이터를 Management Agent로전달보고 3) 보고 / 수집된정보는 Sensor/Device Modeler에의해정규포멧으로변환 Blockchain Agent 1) Blockchain Node 생성및데이터변환및인증 2) 통신, 구간블록체인생성및확인 Device Storage Adaptor 1) Resource/Device의정보및 System 운영에필요한정보는 DB로관리 2) Resource/Device의 Policy, Sensor/Device Data Model은 File로관리 3) 경량버전및확정 / 유연성을위해 Storage Adaptor로만접근하도록제공 4) 보안이필요한데이터는블록체인으로저장 Transport Adaptor 1) onem2m을위한 HTTP/MQTT/CoAP와 GMMP를위한 TCP 제공 2) 통신보안을위한 TLS/DTLS 적용개발 53

References 54 12

References ACR+10. Andris Ambainis, Andrew M Childs, Ben W Reichardt, Robert Spalek, and Shengyu Zhang. Any and-or formula of size n can be evaluated in time n1/2 + o(1) on a quantum computer. SIAM Journal on Computing, 39(6):2513 2530, 2010. Amb07. Andris Ambainis. A nearly optimal discrete query quantum algorithm for evaluating nand formulas. arxiv preprint arxiv:0704.3628, 2007. Amb10. Andris Ambainis. Quantum algorithms for formula evaluation. https://arxiv.org/abs/1006.3651, 2010. AS06. Andris Ambainis and Robert Spalek. Quantum algorithms for matching and network flows. In Annual Symposium on Theoretical Aspects of Computer Science, pages 172 183. Springer, 2006. BBHT98. Michel Boyer, Gilles Brassard, Peter Høyer, and Alain Tapp. Tight bounds on quantum searching. Fortschritte der Physik, 46(4-5):493 505, 1998. CLRS01. Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, and Clifford Stein. Introduction to Algorithms-Secund Edition. McGraw-Hill, 2001. DH96. Christoph Durr and Peter Høyer. A quantum algorithm for finding the minimum. arxiv preprint quant-ph/9607014, 1996. DHHM04. Christoph D urr, Mark Heiligman, Peter Høyer, and Mehdi Mhalla. Quantum query complexity of some graph problems. In International Colloquium on Automata, Languages, and Programming, pages 481 493. Springer, 2004. DHHM06. Christoph D urr, Mark Heiligman, Peter Høyer, and Mehdi Mhalla. Quantum query complexity of some graph problems. SIAM Journal on Computing, 35(6):1310 1328, 2006. D or08. Sebastian D orn. Quantum complexity of graph and algebraic problems. PhD thesis, Universit at Ulm, 2008. D or09. Sebastian D orn. Quantum algorithms for matching problems. Theory of Computing Sys- 55

References tems, 45(3):613 628, 2009. Gro96. Lov K Grover. A fast quantum mechanical algorithm for database search. In Proceedings of the twenty-eighth annual ACM symposium on Theory of computing, pages 212 219. ACM, 1996. NC10. Michael A Nielsen and Isaac L Chuang. Quantum computation and quantum information. Cambridge university press, 2010. Smo93. Roman Smolensky. On representations by low-degree polynomials. In Foundations of Computer Science, 1993. Proceedings., 34th Annual Symposium on, pages 130 138. IEEE, 1993. Yab89. Sergey Vsevolodovich Yablonsky. Introduction to Discrete Mathematics: Textbook for Higher Schools. Mir Publishers, 1989. Practical Byzantine Fault Tolerance. https://www.usenix.org/legacy/events/osdi99/full_papers/castro/castro_html/castro.html Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/bitcoin.pdf Directed Acyclic Graph. https://en.wikipedia.org/wiki/directed_acyclic_graph L. Lamport, R. Shostak, and M. Pease, The byzantine generals problem, ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 4, no. 3, pp. 382 401, 1982. M. Castro, B. Liskov, et al., Practical byzantine fault tolerance, in OSDI, vol. 99, pp. 173 186, 1999. Delegated proof-of-stake. https://bitshares.org/technology/ delegated-proof-of-stake-consensus/.39 56

References Debate on bitcoin. https://spectrum.ieee.org/tech-talk/computing/networks/ the-bitcoin-for-is-a-coup. Tendermint. https://tendermint.readthedocs.io/en/master/index.html 57

책임면책성명 58

Technical Whitepaper Disclaimer 해당문서는 IoTon 플랫폼에대한정보제공용기술백서이다. 본기술백서는 IoTon General White Paper(IoTon 일반백서 ) 에소개된 IoTon 플랫폼구현에적용되는기술들에대한정보를제공하고플랫폼개발중개발자들이 참고할목적으로도작성되었다. 본기술백서를읽을때반드시일반백서와참조해서읽어야한다. 이문서는 IoTon 플랫폼과 IoTon 토큰이코노믹스에대한참고자료일뿐이며 IoTon 플랫폼과 IoTon 토큰이코노믹스의상품, 관련상품, 주식들을구매할것을제안하는문서가아니다. 이문서에나오는어떠한내용도 IoTon 프로젝트에대한투자나기금형성에참여할것을제안하지않는다. 이문서를주식공모설명서나다른그어떠한형식의표준화계약문서로간주할수없다. 본문서의내용은또한가상화폐의투자결정의건의를구성하지않는다. 본문서는아직어떤국가의사법당국의심사도받지않았으며차후끊임없이업데이트될것이기때문에최종화된문서로도볼수없다. 본문서를참고하여작성된어떠한분석자료에대해서도본문서는책임을지지않는다. 본문서의어떠한내용도미래에대한약속이나진술로간주될수없다. 본문서를참고하여내려진어떠한손실에도본문서는책임지지않는다. 다만정보제공을위하여이문서를참조할때본문서의영문버전과한글버전이충돌된해석을일으킬경우영문버전이최종적권위를가진다. 본문서를참고하여만약 IoTon 플랫폼과토큰이코노믹스에투자나혹은다른형태의결정을내릴때독자들은 반드시자기자신이직접법률전문가, 기술전문가, 회계전문가들을포함한필요분야전문가들과상의하고결정을 내려야한다. 물론이렇게내려진어떠한결정에대해서도본문서는책임지지않는다. 59