part 1: blockchain based –paymentplatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf ·...

49
Sunblockterminal Platform Architectures Part 1: Blockchain based – Payment Platform By: Pilippe shin Sep. 2019

Upload: others

Post on 21-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Sunblockterminal Platform Architectures

Part 1: Blockchain based – Payment Platform

By:

Pilippe shin

Sep. 2019

Page 2: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Table of Contents

0. Abstract 5

1. Introduction 6

1.1 DApp 을 만들수 있는 생태계 6

1.1.2 Sunblockterminal.node 기본구성 7

1.1.3 DApp Architecture 8

1.1.4 Key Technologies 8

1.1.5 Eco Systems 9

1.1.6 DApp 개발 플랫폼 10

1.2 토큰을 만들고 발행할 수 있는 시스템 10

1.3 분산화된 Sunblockterminal 스토리지 DApp 11

1.3.1 Sunblockterminal Storage 멀티노드간 Swarm 동기화및 사용 13

1.3.2 Swap,Swear and Swindle for Sunblockterminal Storage 13

2. 보안 및 개인정보 보호관련 14

2.1 Oraclization 15

2.2 uPort Identity 17

2.1.1 Introduction to uPort 18

2.1.2 Proposed Use Cases 19

3. 리워드 시스템 19

3.1 SBT Economy 19

3.1.1 Truffle Framework 20

4. 보팅 시스템 22

4.1.1 CREDIT 도입 22

4.2 부가적인 혜택 22

Page 3: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

4.2.1 이자 22

4.2.2 큐레이션 보상 23

5. SBT CREDIT 23

6. Sunblockterminal Supernode/SuperNet Architectures 23

6.1 Nodes 들 23

6.2 SuperNode 의 출현 24

6.3 SuperNet 25

6.3.1 Supernode block workflow 26

6.4 Supernode block generating process 26

6.5 Supernode discovery packet 27

6.6 Supernode protocol stack 27

6.7 Supernode dimension estimation 28

6.8 Supernode testnode of Tech-Roadmap-1 29

6.9 HREC Supernode 29

6.10 Supernode HREC for Tech-Roadmap 2,3 29

6.11 탈중앙화 유지방안 30

6.12 Supernode platform customization recommendation 30

7. Exchange Protocol(거래소연결) 31

7.1 Cryptocurrency 에 최적화된 P2P Exchange based on Masternode(Node Service) 32

7.1.1 Ring Signature 33

7.1.2 Stealth address 33

7.1.3 One-Time Account System 34

7.1.4 ECDSA G 34

7.1.5 Stamp System 34

8. Sunblockterminal.phone 35

주의사항 : 해당 문서에서 언급되는 사용은 Sunblockterminal Platform 을 활용해 SBT 이 이용되는

모든 상황을 말합니다.(적립, 사용, 거래, 판매 등) 36

8.1 MVVM 아키텍처 36

8.2 Data Model 38

8.3 Network Transfer 38

9. QRNG/OTP 39

Quantis QRNG: USB 42

Quantis QRNG: PCIe 4Mb 43

Quantis QRNG: PCIe 16Mb 43

9.1 게임 DApp 에서의 사용 43

Page 4: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

9.2 블록체인 OTP 사용 44

9.3 Randomness Beacon 44

10. Conclusion 44

10.1 Sunblockterminal.Testnet 구성도 44

10.2 Schedule 45

10.3 Sunblockterminal.Roadmap 47

10.4 Grand Mainnet Launching 47

Reference Books 48

Page 5: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

0. Abstract

Thanks to Sunblockterminal 에영향을끼친이:

사토시나가모토(비트코인의발명자),비탈릭뷰테린(이더리움재단의파운더이며 Turing-Completed

스마트컨트랙트의개발자) ,댄라리머(비트쉐어/스팀잇/이오스의파운더이자개발자),

재권(이더리움재단의개발자였으며, 코스모스의파운더이며,블록체인간통신프로토콜개발자)에게

감사한다.,

아인슈타인(상대성이론의발명자이자 EPR패러독스의제안자),보어(양자역학의대가),

벨(EPR패러독스를반박하는벨이론의창시자),지생(벨이론에입각한양자통신을실험하고

양자난수를개발한과학자)에게감사한다.

니시모리히데토시(양자어닐링이론의창시자),디-웨이브시스템(상업용양자컴퓨터개발사)에게

감사한다.

Sunblockterminal 은 High Availability, More Scalability, Best Stability를 제공하는 블록체인기반 Payment

Platform 이되기를희망합니다.

Page 6: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

1. Introduction

Sunblockterminal 의 첫 버전은 가장 DApp 에 최적화된 블록체인 플랫폼인 Rubidium 네트워크상에

론칭됩니다. Rubidium 은 EVM Compatible 하고, 자체적인 가상 머신(Virtual Machine)을 사용하여

블록체인에서구동되는탈중앙화응용프로그램(Decentralized App-DApp)의개발을용이하게하였습니다.

DApp 은 모바일에서도 실행가능하며 기존의 메이저 블록체인 생태계와 완벽히 호환가능합니다.

Rubidium은 수정된비트코인인프라스트럭처와 EVM Compatible 한 가상머신이 결합하여 신뢰할수

있는 블록체인위에 사적계약인스마트컨트랙트를 활용할수 있는 생태계를제공하며, 솔리디티표준을

준수하는독자적인블럭체인생태계를꾸려나갈것이며, Payment 에최적화된플랫폼이될것입니다.

Sunblockterminal 는 Rubidium 메인넷을 선택하여 첫번째 대규모 서비스인 블럭체인 기반 Payment

Platform서비스를 시작합니다.

*Rubidium 은 DPoS 방식의 컨센서스 알고리즘을 채택하여, 에너지 소모적인 PoW 대비

Exchange,SNS,CryptoGame등에 최적화된 블럭체인입니다. Plasma, Sharding, State Channel과 같은 확장

솔류션과의연결을통해서, Mainchain과 Sidechain을동시에사용하여 Scalability문제를함께해결합니다.

Sunblockterminal 는 사용자의 정보 보호를 위해 Subscribe 에 기반한 이동통신 환경에서의 인증방식을

활용합니다.

전체적인 네트워크 구조에 대한 자세한 내용은 8 장에서 다룰것이며, 새로운 개념들을 도입하려는

시도에대해서설명할것입니다.

1.1 DApp을만들수있는생태계

Decentralized Application(DApp)은블록체인에기록하는실행할수있는프로그램입니다. 실행할수있는

특정 조건문을 블록체인에 기록을 해둔 상태에서 어떤 정해진 조건이 되었을 때 자동으로 실행되는

프로그램입니다. 예를들어다음과같은조건을블록체인이올리는것이가능합니다.

“내 주소 A 에 코인을 보내시오. 오늘 12 시까지 가장 많은 코인을 보낸 사람에게는 내가 가진 물건을

주겠소. 그보다적은코인을보낸사람은자동으로환불하겠소.”

이런 조건문을 블록체인에 올리면 자동으로 가장 많이 보낸 사람을 선택하고 나머지는 모두 환불을

실행할 수 있습니다. 이런식으로 작동하는 것이 DApp입니다. 어느 누구의 통제도 받지 않고 모두가 볼

수 있는 명령문을 블록체인에 올려두고 모두가 확인을 한 상태에서 자동으로 작동되므로 탈중앙화된

응용프로그램 (Decentralized Application-DApp)이라고합니다. 그리고이런계약을스마트컨트랙트(Smart

Contract)라고합니다.

Page 7: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Smart Contract를활용하면계약당사자간용역, 물류등의대금지급등을상세히설정해계약당사자간의

동의를 통해 체인위에 기록하고, 약속된 가치의 SBT 를 계약에 귀속시키는 방법으로 계약의 집행 및

해지가가능합니다.

Sunblockterminal 는 스마트컨트랙트를 구현해 제 3 자의 참여없이 계약이행을 자동화하는 것이

가능합니다. 누구나 Sunblockterminal 의 DApp 을 탑재하여 전세계에 퍼져있는 Sunblockterminal

지원노드를통해제약없이 DApp을이용할수있습니다.

Sunblockterminal에서는 SBT전용브라우저와전용Metamask, My SBT Wallet(크롬확장프로그램)을통해

DApp을이용할수있습니다.

1.1.2 Sunblockterminal.node 기본구성

● Node : Sunblockterminal에연결된모든 PC 또는서버

● Supernode : 빠른 블록생성 및 전파를 위해 광대역 네트워크로 연결된 노드. 블록생성 및 블록

전파의역할을합니다.

● Fullnode : 모든 블록체인을 보유한 노드로 블록 검증, 동기화, 전파, 서비스 제공의 역할을 하며

블록생성에는참여하지않습니다.

● Lightnode : 블록체인을 보유하지 않고 블록헤더와 Depth(6)의 머클정보만을 가지는 노드로서

필요할 경우 Fullnode 에 연결해서 정보를 받아오는 노드입니다. 일반적으로는 서비스를 하는

홈페이지, 하드웨어지갑, 모바일지갑등이 Lightnode의역할을담당합니다.

● Supernode 와 Fullnode 에는 Sunblockterminal node 데몬이 구동되며 이 데몬위에 VM 이

구동됩니다. Lightnode에는데몬과 VM이구동되지않습니다.

Page 8: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

1.1.3 DApp Architecture

1.1.4 Key Technologies

Smart Contract Blockchain에 Turing Complete Code를배포

Transaction 을통해계약을실행하면모든노드가이를실행

블럭체인기술응용영역확장에큰영향

JavaScript API/JSON RPC

JSON RPC API 스펙표준화

eth, miner, personal, db, admin등

web3.js를통해 JavaScript API제공

enode ID Public Key와 IP.Port의조합

Peer간의 Trust를위해 Public Key교환에사용

Account/State Externally Owned Account(EOA)

Contract Account

RLP(Recursive Length Prefix)

가변의데이터를표현하기위한데이터구조

복잡한다차원배열을 1차원으로표현

RPLx를통해인증/암호화된통신

Page 9: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

객체를 Serialize하기위한프로토콜

Whisper/Swarm Whisper -피어간필터링된빠른메시징(shh)

Swarm -분산된바이너리리소스를식별하고교환(bzz)

1.1.5 Eco Systems

Page 10: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

1.1.6 DApp 개발플랫폼

1.2 토큰을만들고발행할수있는시스템

컬러드코인접근이라는개념은비트코인의블록체인프로토콜을사용하는여러프로토콜이구현되었던

2013년무렵에처음생겼습니다.

*컬러드코인 접근 : 비트코인의 블록체인 프로토콜을 통해현물자산을디지털형태로표현하는, 일종의

자산발행레이어를의미합니다.

참고자료 : https://brunch.co.kr/@jeffpaik/13

그 외에도 커스텀 블록체인 토큰 플랫폼을 처음부터 개발하려는 시도가 여러 차례 이루어졌으며 그 중

유명한것이NXT 토큰입니다.

NXT에서 개발한 방법은 전송내역(transaction)에 첨부(attachment)를 추가하는 방법으로 첨부에 기록된

내용으로토큰생성및전송을구현합니다. 이방법은 qtum과 zencash에비슷한방법으로적용이됩니다.

이 방법은 기존에 개발된 Bitcoin transaction 구조를 무너뜨리지 않고 정보를 전달할 수 있는 이점이

Page 11: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

있지만, 새로운 구조의 transaction 을 추가해야하는 경우에는 모든 블록체인 프로그램이 동시에

업데이트가되어야하는문제가생깁니다. 만일새로운트랜잭션을따르지않는프로그램이계속유지가

되는경우기존블록체인과새로운블록체인이분리되는포크가발생하게됩니다.

Sunblockterminal 는 확장(Extension)으로 설치되는 플러그인을 지원하고, 그것을 통해 새로운 방식의

transaction 구조가 제안되더라고 이를 도입할 수 있는 솔루션을 통해 구조가 고정됨으로써 발생하는

문제를 해결할수 있습니다. 관련플러그인이설치되지않은 클라이언트도 이러한커스텀 Transaction을

전달할수있으며, 이솔루션은 3rd Party 개발자들이새로운 transaction을 도입하고 DApp스토어와같은

생태계를만들수있습니다.

Sunblockterminal기본코어수준에서는아래와같은기본적인 transaction 유형을지원합니다.

• 커스텀토큰생성,삭제및이체

• 매수/매도(Bid and Ask) 네트워크 거래가 서로 매칭되는 주문 매칭엔진으로 구현된 분산화

토큰거래

• 익명성기능

Sunblockterminal 는 탈중앙화된 블록체인 기반의 transaction 을 통해 커스텀 토큰끼리의 거래를

제공함으로써자산에서자산으로거래하는한발앞선거래방식을지원합니다.

Sunblockterminal 는 ERC20, ERC721 표준을 따르는 토큰발행시스템을 지원합니다. ERC20 Token 은

이더리움 블록체인 네트워크에서 발행되는 토큰의 표준 인터페이스로 디팩토 스탠다드입니다. 이

표준은 EVM 상에서 동작하는 스마트컨트랙트를 이용해서 생성되는 CryptoCurrency 이며 동시에 그

자체로 DApp입니다. 많은블록체인네트워크에서이표준을수용하고있습니다.

1.3 분산화된 Sunblockterminal스토리지 DApp

Sunblockterminal.Storage PoC(Proof of Concept)는 Swarm과 블록체인상의 NS(Name Service)를 사용하여

서버없는 WWW 의 DNS 와 같은 컨텐츠 조회가 가능하며, 토큰과 연계되어 스마트컨트랙에 의한

거래등의응용확장을제공하게될것입니다.

Page 12: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소
Page 13: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

1.3.1 Sunblockterminal Storage 멀티노드간 Swarm

동기화및사용

1.3.2 Swap,Swear and Swindle for Sunblockterminal

Storage

Sunblockterminal.Storage network를유지하기위한 Incentive System의기본구성요소

SWAP(Swarm Accounting Protocol, Secured With Automated Payments)

지연지불, 지불채넬, 에스크로관리, 부채관리를

하는스마트컨트랙트

SWEAR(Secure Ways of Ensuring ARchival or SWarm Enforcement And Registration)

멤버십등록, 멤버십조건, 보증금처리

Page 14: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

SWINDLE(Secured With INsurance Deposit Litigation and Escrow)

감사(audits), 소송이관처리

Sunblockterminal.Storage 생태계의 Gadget 들은 SWAP,SWEAR,SPINDLE 을 완벽하게 지원하는 최초의

구현체기기들이 될것이며, Sunblockterminal의 사용자들에 더욱더 탈중앙화된 분산 스토리지의 경험을

제공할것이다.

2. 보안및개인정보보호관련

각종 서비스를 위해서는 개인정보의 저장 및 적절한 활용이 필수적이다. 하지만, 개인정보 및

빅데이터에서의개인정보추출과관련한많은사건사고들이발생을하고있는것이현실이다.

블록체인과 관련한 서비스를 하기 위해서는 일정부분의 개인정보를 취득할 수 밖에 없다. 하지만,

블록체인은 공개적인 장부이므로 개인정보는 어떠한 방식으로도 블록체인에 저장을 할 수가 없다.

블록체인 자체의 암호화는 뛰어나지만, 개인을 특정할 수 있는 개인정보나 민감 개인정보는 저장을 할

수가없다.

다음 표는 기존 인터넷서비스와 일반적인 블록체인, Sunblockterminal 이 구현하려는 개인정보 보호를

보여준다.

구분 인터넷 블록체인네트워크 Sunblockterminal

비밀성 X X ○

Page 15: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

인증 X X △

무결성 X ○ ○

부인봉쇄 X △ △

Sunblockterminal 는 새로운 관점의 기술 접목 및 향후 진화 로드맵에 따라서 보안과 개인정보문제를

해결해 나가려고 합니다. Sunblockterminal 는 완전히 새로운 기술의 구현체이며, 블록체인 생태계에서

최초로물리적인현상의원리를사용한근본적인보안과정보보호를위한기술을제공할것입니다.

2.1 Oraclization

Sunblockterminal Platform에 올라가는 계약정보의소유권은거래당사자에게있습니다. 거래당사자는 이

정보를 작성했다는 증거를 블록체인에 기록하여 디지털자산의 소유권을 증명할 수 있고 그 데이터가

변조되지않았다는것을증명할수있습니다. 또는그이후의모든수정기록에대해서도블록체인을통해

입증받을 수 있습니다. 하지만, 이 모든 데이타를 통째로 블록체인에 올릴 수는 없습니다. 모두

블록체인에 올린다면 블록체인의 데이터양이 굉장히 빠르게 증가하여 노드를 유지하기가 어렵습니다.

그러므로 Sunblockterminal Platform 에 올라가는 정보는 특정정보만 압축 암호화하여 블록체인에

저장됩니다.

이과정에서중요한데이터들이변조되지않도록보장하여거래당사자와디지털자산 데이타를정확하게

연결하는 시스템이 필요합니다. 이 시스템을 Sunblockterminal Platform 구현체라고 하며 블록체인상의

스마트컨트랙사이에서 동작하는 계약제작자와 사용자간의 인터랙티브한 데이터를 주고받는

시스템입니다. 이것은데이터를보호하는충분하고완전한오라클라이재이션해주는시스템으로중요한

데이터들이변조되지않도록보장할것입니다.

Page 16: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소
Page 17: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

기존의 구현체들을 깊이 있게 고찰하여 가장 많이 사용되는 기기인 모바일에 최적화된

Sunblockterminal에이기능을적용하며이를통해 Sunblockterminal Platform 을 사용하는 사용자권리와

이익을 보장합니다.

2.2 uPort Identity

여러가지 Exchange Service 를 사용하다보면 여러가지 계정과 비밀번호를 사용하게 됩니다. 같은

아이디/비밀번호를사용하게되면하나의사이트에서만계정해킹이발생해도그피해는모든사이트로

전파되어 피해가 막심해집니다. 그렇다고 사이트마다 계정정보를 다르게 할 경우 계정정보를 쉽게

분실하게 됩니다. 이러다보니 계정정보를 특정 계정 관리 서비스에 집중하여 관리하는 일도 생기는데

만일이 서비스에서해킹피해가발생하면모든관련사이트가동시에해킹되는일이발생합니다.

이를 해결하기 위해서는 기존의 계정정보 방식이 아니라 블록체인을 활용한 개인키/공개키 방식의

암호화 기술을 적용을 할 수도 있습니다. 하지만, 일반적인 Exchange Service 사용자가 블록체인의

개인키/공개키 시스템을 관리하는 것은 쉽지 않습니다. 그러므로 Sunblockterminal 는 모바일환경의

Page 18: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

일반사용자 수준에서 로그인정보를 쉽게 관리할 수 있는 솔루션을 지원합니다. uPort identity 서비스를

Cryptocurrency Exchange 플랫폼에 수용할수 있는 기반을 지원합니다. 스마트컨트랙트에 관련 세부

로직을추가하여키의취소, 복구와사용자의키관리부담을줄여준다.

2.1.1 Introduction to uPort

uPort는 VM을기반으로하는사용자개인식별 DApp입니다. 페이스북이나네이버의 OpenID와비슷한

개념입니다. 보안성이뛰어난시스템으로 uPort의핵심기술은스마트컨트랙트, 개발라이브러리, 모바일

앱입니다. 스마트컨트랙트에는개인식별과관련된 url등의정보화암호화된해시값과개인식별정보가

변경또는분실되었을때복구할수있는알고리즘등이포함됩니다. 개발자라이브러리에는

개인식별정보와연결되는 url, dropbox, google등을관리하는정보가포함됩니다. 모바일앱에는사용자의

키가들어있어본인이해당되는개인의본인임을확인할수있습니다.

uPort identities의발행형태는개인, 기관을가리지않습니다. 생성한 identity의권한의생성자에게

있으며이를 self-sovereign identity라고합니다. identity 생성및확인이중앙집중화되어있지않습니다.

이 identity는전자서명, transaction 확인등에이용할수있습니다.

identity에는관련된개인식별정보가저장된 IPFS , Azure, AWS, Dropbox등의속성정보가암호화된

해시로저장되어있어개인정보의파기가필요한경우블록체인을건드리지않고서도개인정보원본을

쉽게파기할수있으며또한해시정보를이용해서최초에올린식별정보에대한진위여부를쉽게

확인가능합니다.

● uPort : VM 기반. 자체적인개인식별에사용가능. 보안성이있는시스템.

○ 3가지요소 : 스마트컨트랙트, 개발라이브러리, 모바일앱

■ 스마트컨트렉트: 개인식별의핵심코어, 사용자가기기를분실한경우

개인식별정보를복구하는로직을포함

■ 개발라이브러리 : 외부저장소와연결되는정보포함.

■ 모바일앱 : 사용자키저장

● uPort identities

○ 형태: 개인, 기기, 객체, 기관

○ 권한 : 생성자(creator)에게있음(self-sovereign identity). 사용자가생성할경우사용자가

권한을가짐. 생성또는확인을중앙집중적인관리를하는제 3자에맡기지않음

○ 핵심기능: transaction 확인, 전자서명등

● identity는 off-chain data stores와암호로연결

● 각각의 identity는속성정보의해시저장 (identity와관련된모든데이터가안전하게저장되어

있는 IPFS , Azure, AWS, Dropbox 등어디에서든가능)

● Identities : 프로필변경, 친구추가등의자동업데이트가능, 특정파일에대한읽기, 쓰기허용

가능

● uPort identities는블록체인과상호작용할수있기때문에, 디지털자산(암호화화폐, 토큰

자산)을관리할수있음

Page 19: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

2.1.2 Proposed Use Cases

● self-sovereign identity 시스템의특징으로

○ 생성자가개인식별정보를생성하는시스템으로사용자가개인 identity, 평판, 데이터와

디지털자산을소유하고통제합니다.

○ 생성자가개인식별정보를생성하기때문에사용자가선택적으로자신의데이터를

공개할수있습니다.

○ 키를이용해비밀번호없이디지털서비스에접근가능합니다.

○ 키를이용해디지털트랜잭션, 디지털문서에서명가능합니다.

○ 블록체인에서값을보내고통제관리가가능합니다.

○ 분산어플리케이션과스마트컨트랙트와상호작용가능합니다.

○ 키를이용해서암호화된메세지와데이터전송이가능합니다.

● self-sovereign identity 시스템의장점으로

○ 개인정보공개에대한부담이적으므로신규회원가입이쉽습니다.

○ 향상된 KYC(Know-Your-Customer) 프로세스를마련할수있습니다.

○ 민감한고객정보를보관하지않아법적책임이감소합니다.

○ 개인정보를취급하지않으므로직원의규정준수가쉽습니다.

○ 쉽게가입할수있으므로콘텐츠공급자유치가쉽습니다.

○ 특정권한을가진세부역할을구분할수있습니다.

○ 개발이완료되면아무런배경지식이없이도쉽게사용할수있습니다.

3. 리워드시스템

3.1 SBT Economy

비트코인이 주목받기 이전에도 탈중앙화된 디지털 화폐라는 아이디어를 시도한 사례는 많았지만,

Digicash(1992), Cybercach(1994),e-Gold(1996)등이있었고, 비트코인이 채용한 기술일부를 만들어내기도

했습니다.

그렇지만 특정 주체가 권력을 가지지 않으면서, 동시에 모든 참여자가 신뢰할 수 있는 장부를 만들어

낸것은비트코인이최초입니다.

비트코인이 이전까지의 기술과 달랐던 이유는 컴퓨터공학, 암호학적 요소뿐만 아니라 참여자의 행동을

유도하는경제학적요소가시스템에녹아들어있었기때문입니다.

Page 20: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

그전까지의시스템에선어떤기술을적용했더라도, 결국에는누군가가책임과권한을가지고네트워크

내의 규칙과 질서를 유지해야 했습니다. 그러나 비트코인은 이 규칙과 질서를 프로토콜로 대체함과

동시에 프로토콜의 규칙을 따르도록 유도하는 ‘인센티브 구조’를 만들었습니다.. 비트코인 네트워크가

잘되어야참여자들이이득을보는구조를만든것입니다,.

전세계에서수많은사람이블록체인을활용한새로운서비스를고안해내고있습니다, 이러한서비스는

비트코인과같이내부에각자의서비스와참여자에게맞는경제체제를탑재해야합니다.

SBT Economy 안에서는 어떤 DApp 을 만들어도 그위에 돌아가는 경제 시스템을 손쉽게 설계할 수

있습니다.

보상(토큰)은어떤기준으로어떤참여자에게줄것인가,

어떻게토큰이가치를갖게할것인가?

사람들이토큰을보유해야할유인은무엇인가?

네트워크의성장과토큰의가치상승을어떻게연동할것인가>

토큰의 가격 변동은 어떻게 해결할 것인가? 에 대한 토큰 이코노미가 Sunblockterminal에 경제 구조의

인프라가이미구축되어있으며, Sunblockterminal의성장과연동하게설계및구현될것입니다.

Sunblockterminal 참여자의 특성을 고려하여 그에 맞는 토큰 이코노미를 설계가 되어있으며, 모든

네트워크참여자에맞는이코노미를설계가가능합니다.

3.1.1 Truffle Framework

토큰을 발행을 위한 개발 프레임웍은 Truffle Framework 을 사용하며, ERC20 등 표준 인터페이스를

따르는 OpenZeppelin Contract Library 가 준비되어 있으며, 테스트에서 Deploy 까지 스마트컨트랙트를

개발하는일련의과정을자동적으로핸들링할수있다.

Page 21: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

다음의 4,5,6 장에서는 이와같은 SBT Economy를 준수하는 Token Design Pattern 에 따라 이미 검증된

OpenZeppelin ERC20 스마트컨트랙트라이브러리와트러플프레임워크로구현될것입니다.

Page 22: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

4. 보팅시스템

블록체인서비스에서의사결정과정에서서비스이용자들이특정사안에대해자신의의견을피력하려고

하게 하려면, 네크워크가 이용자들에게 투표권을 부여해서 효율적으로 의견을 취합할 수 있다.

Sunblockterminal보팅시스템에서는투표권과토큰을결합하여의견취합에적한한패턴으로작용합니다.

Voting Token 에서투표권은토큰자체가될수도, 네트워크상의수치로주어질수도있다.

Sunblockterminal에서는 SBT토큰에비례하는네트워크상의수치로서 SBT CREDIT이주어집니다.

SBT CREDIT 를 통한 의사결정 대상은 Sunblockterminal Platform 에대한 네트워크의 이용자들의

의견을 반영합니다. 네트워크의 의견을 잘 반영하는 결과를 위해선 악의적인 행동에 대해선 제약을

두어야 하며 voting에 많은 이용자들을 참여시키는 것이 중요합니다. 이용자들의 투표참여를 격려하기

위해 의사결정 참여 이외에 SBT CREDIT에 비례하는 보상수익을 분배받습니다. 또한, SBT CREDIT와

SBT직/간접적으로연결되어, 네트워크내토큰의가치상승과도연결됩니다.

4.1.1 CREDIT 도입

Sunblockterminal이용자는 SBT CREDIT이라는수치를가집니다. 이 CREDIT는네트웍에 올바른 참여를

할수록 그 수치가 올라갑니다. 반대인경우, 그 수치가 떨어집니다. 이 수치는 블록생성자 선출등에

영향을미치며, 이용자들스스로의자정작용에중요한도구로서작용합니다.

4.2부가적인혜택

Sunblockterminal서비스에서사용되는 SBT을네트워크에예치하면 SBT CREDIT을확보할수있습니다.

네트워크에서 사용되는 SBT과 SBT CREDIT가 간접적으로 연결되어, SBT CREDIT의 수요는 SBT의

수요로이어질수있습니다.

4.2.1 이자

Sunblockterminal에서 SBT CREDIT 가높을수록이자가높아집니다. SBT CREDIT 보유량에따라이자를

나누어주며, 유일한수단입니다.

Page 23: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

4.2.2 큐레이션보상

큐레이션 보상이란 voting 을 한 사람에게 주어지는 보상입니다. 이 보상의 크기를 결정하는 요소중

하나는 voter의 SBT CREDIT입니다. SBT CREDIT가높은 voter가더많은큐레이션보상을가져갑니다.

5. SBT CREDIT

SBT CREDIT은 Sunblockterminal Platform 서비스이용을 위한유저의신용평가 기반이 되는신용등급을

나타냄과동시에 ‘스마트계약(Smart Contract)으로묶여있는 Sunblockterminal비례하는토큰의기능및

네트워크전체에서해당이용자가가지는영향력의레벨을나타냅니다.

6. Sunblockterminal Supernode/SuperNet Architectures

6.1 Nodes들

● Node : 블록체인에연결되어있는모든서버들과 PC들각각을이르는말.

● SuperNode : 블록체인 P2P 시스템에서 데이터를 전달하고 분산시켜주는 역할의 중심에 있는

노드입니다. 일반적으로 슈퍼노드 상호 사이에서는 광대역의 네트워크망으로 고속으로

통신합니다. 빠른 CPU와 Storage 장비를이용하여작업처리속도가초고속으로빠르며많은양의

업무를 처리합니다. Sunblockterminal 의 Supernode 는 일반적인 Supernode 의 역할에 더해

블록생성의 역할을 함께 가집니다. Supernode 사이에서 광대역 네트워크를 형성하여 블록의

생성과 전달이 빠르게 이루어집니다. 이를 초고속으로 수행하기 위해 Supernode 는

Sunblockterminal 테스트넷에서 부하테스트를 거친 후에 Sunblockterminal 자체기준을 통과하는

노드에 한해 Sunblockterminal의 자격이 주어집니다. 빠른블록생성과전달을 위해 Supernode의

숫자는 적절한 수로 관리되며 그 수는 16~128 개의 범위내에서 생성 관리됩니다. 노드를

유지하는 보상으로 PoS 방식의 블록체인에서 지분(stake)을 보유하고 coin age 에 비례해서

cd 금리 concept 에 따라 이자로서 코인을 지급받습니다. 자체적인 Supernode 및

Sunblockterminal에서위임받는 Supernode가존재할수있습니다.

● Fullnode : Supernode에서생성된블록체인을전달받아검증, 저장, 전달하는노드입니다. 다양한

서비스를 위해 데이타베이스를 구축하는 역할을 수행합니다. 많은 경우 모바일 앱에 서비스를

제공하기위한경로로서사용됩니다. 블록생성권한은주어지지않습니다.

● Lightnode : 블록체인을 저장하지 않은 노드입니다. 머클트리와 블록체인의 일부 Depth(6)만을

유지함으로써 블록체인 네트워크에 트랜잭션을 보내고 Fullnode 와 통신하여 블록체인원장을

조회할수있는모바일등을위한경량화노드입니다.

Page 24: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

6.2 SuperNode의출현

● P2P Network는다음과같은세가지형태가있습니다.

○ Centralized P2P

■ 중앙서버가있음

■ 정적중앙집중

■ 검색비용발생

■ 노드가많을수록복잡도증가

■○ Pure P2P

■ 중앙서버가없음.

■ 완전한분산

■ 검색비용발생

■ 노드가많을수록복잡도가증가

■○ Hybrid P2P

■ 인덱스서버가있음.

■ 동적중앙집중.

■ 검색비용적음

■ 노드가많아져도복잡도증가가적음.

Page 25: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

■ entralized Pㅁㄴㅇㄹ

● 비트코인과 이더리움은 Centralized p2p network 모델을 사용하고 있습니다. 이더리움을 예로

들어보면다음과같이진행됩니다.

○ 이더리움프로그램(이하데몬) 실행

○ 데몬이이더리움재단이운영하는중앙서버에접속함.

○ 중앙서버에서운영되고있는다른일반노드 A, B, C 등에대한정보를받아옴.

○ 데몬에서 A에접속시도(핸드쉐이크 Handshake)를함.

○ 핸드쉐이크에실패하면 B에핸드쉐이크시도함.

○ 핸드쉐이크성공하면상대방노드에대한정보를받아옴.

○ 데몬종류및버전교환.

○ genesis block hash 교환.

○ block height 교환.

○ 정보가일치하는경우동기화시작.

● 위와 같은 순서로 블록의 전달이 시작됩니다. 이런 무작위 방법을 사용하기 때문에 노드사이의

물리적인 거리가 멀고 네트워크 속도가 느리고 노드의 블록생성속도가 느리면 전체

네트워크에서의 블록 생성 속도와 블록 전달 속도에도 영향을 미쳐서 1 초당 transaction

처리속도(이하 tps)가느려지게됩니다.

● 비트코인이나 이더리움의 느린 블록생성속도를 해결하기 위해 Hybrid P2P 네크워크의

슈퍼노드를사용하는암호화폐가점차증가하는추세입니다.

● EOS 의 경우에는 Nxt→Waves,Bitshares→Stemmit→EOS,COSMOS 등의 개발 히스토리를 거쳐

노드를 집약적으로 운용하여 블록체인의 속도/용량문제를 해결하려고 시도하고 있습니다. 이

블록체인에서슈퍼노드는고용량의트랜잭션과블록생성을고속으로처리하기위한처리능력을

가지고있으며, 일반 node들로부터지분을위임과투표를받아서선출되는소수( 21개~64개)의

스페셜한노드들입니다.

● Sunblockterminal Platform 에서는 트랜잭션처리를 고속으로 처리하기 위해 Hybrid P2P network

구조를가지며 16~128개의집약적인 Supernode를구축할계획을가지고있습니다.

6.3 SuperNet

Supernode 의 출현으로 블록체인 네트워크망은 2 계층으로 분리되며, 본래 목적인 대용량의

트랜잭션처리와 고속의 블록생성을 위해서는 Supernode들을 연결하는 SuperNet이 필요하며, 비밀성과

인증을수행할수있는프로토콜과물리적인레이어를갖추어야한다.

Page 26: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

6.3.1 Supernode block workflow

6.4 Supernode block generating process

Sunblockterminal 은 Ethereum 의 Casper project 에서 시도되고 있는 PoS 합의 알고리즘을 사용합니다.

일반적인 PoS 알고리즘에 의한 느린 블록생성 속도를 올리기 위해 Sunblockterminal 의 스펙기준과

Page 27: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

네트워크 기준을 만족하는 node 를 Supernode 로 참여시켜 블록생성 속도를 빠르게 처리하고 tps 를

극대화시킵니다. 수퍼노드들을연결하는수퍼넷의프로토콜은테스트넷을통하여검증하고, 업데이트를

할것입니다.

6.5 Supernode discovery packet

6.6 Supernode protocol stack

Page 28: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

6.7 Supernode dimension estimation

Page 29: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

6.8 Supernode testnode of Tech-Roadmap-1

6.9 HREC Supernode

•ASIC,GPU Miner 의 경우처럼 특정 제조업체에 블럭생성을 의존하는 경우의 다양한 문제점들이

TechRoadmap 1단계에서처럼 Cloud Service에의존할경우에도반드시발생할것이다.

•그러므로,Supernode를 설계및 제작하여, SuperNet에 참여할 수 있는 방법이 OpenSource로 제공되어야

한다.

•TechRoadmap 1단계에서처럼 AWS를사용하는경우필연적으로탈중앙화에역행한다.

•기존 PoW miner들의 SuperNet에 참여를 유도하고, Mining Factory환경에서도 AWS정도의 신뢰할수

있는 Supernode를운영할수있도록 Guide를주어야한다.

*HREC=High-performance Reconfigurable Computing

6.10 Supernode HREC for Tech-Roadmap 2,3

Page 30: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

6.11 탈중앙화유지방안

누구나 SuperNode가되기위해서자동화된 Protocol과 Election 메커니즘에의해서자격을갖춘(w/인증서)

노드는 SuperNet에경쟁을통하여참여할수있는기회가부여된다.

**SuperNode 인증서를 얻기위해서는 Specification 이 정의된 testnet 에서 블럭생성 처리능력과

Interoperability에대한규격을만족했을때에만취득하고사용할수있다.

6.12 Supernode platform customization recommendation

•Xilinx Zynq UltraScale+ MPSoC ZCU106

•인텔, HBM2 메모리통합한 Stratix 10 MX FPGA

Page 31: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

7. Exchange Protocol(거래소연결)

Sunblockterminal은글로벌서비스를지향함과동시에 Sunblockterminal을이용하는모든유저들이보다

편하게법정화폐(Fiat)로쉽게환전할수있기를원합니다. 이를위해세계각국메인거래소와연계를

통해앱상에서현재유저가보유한코인의시세를실시간으로나타냅니다. 또한, StableCoin과 Dex와

연동을통해서가치안정화된토큰거래를제공합니다.

Page 32: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Sunblockterminal Platform 은우선 Blockchain 기반의개발프로젝트를대상으로한다.그러한목적을

달성하기위해탈중앙화투표및메시징이구현된다. 이에따라커뮤니티프로젝트를관리하는데있어

DAO와같은경험을허용하는동시에기술적인관점에서는단순하게유지된다.

Sunblockterminal 은커스텀토큰(자산)으로네트워크거래수수료를지급하도록허용한다. 그러한

거래와함께자산을주네트워크토큰으로교환하라는주문이탈중앙화된거래소로전송되고, 주문이

처리되어야다음블럭에거래가추가될수있다.

7.1 Cryptocurrency 에 최적화된 P2P Exchange based on

Masternode(Node Service)

기본적으로사용자당최소 10개의코인을오픈해주며, 오픈후업데이트가가능하다. 블럭체인별세팅이

가능하며, 코인별블럭체인노드컴파일및설치는자동화된다. 코인별액세스를위하여 RPC 모듈을

제공한다. 노드운영을위한기본작업및마스터노드를제공해주며, 일부코인의경우경량의

Page 33: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

월렛수준으로제공할수도있다. 이마스터노드또는월렛들은 Sunblockterminal Platform 과 Payment

channel, State Channel등으로연결될수있다.

Sunblockterminal의 Dex를통하여 Sunblockterminal토큰을매도/매수할수있으며

일반,분할,입찰,분할입찰등이가능하며, 폴링이없는시세정보수집시스템을구축한다.

거래체결,공지등의알림서비스및푸시,SNS,이메일등의수단을사용한다. 거래내역및통계조회를다양한

종류의수단을사용할수있도록한다.

zk-SNARKs라이브러리를사용한단체채팅방을사용할수있게해주며, 사용자간거래관련문의및

협의를위한메신저서비스를제공한다.

7.1.1 Ring Signature

A ring signature is a type of digital signature in which a group of possible signers are merged together to produce a distinctive signature that can authorize a transaction.

Ring signature로서명된메시지는특정그룹의사용자가보증

링 서명의 보안 속성 중 하나는 그룹 구성원의 키 중 어느 것이 서명을 생성하는 데 사용되었는지

결정하는것이계산상으로불가능하다는점

The actual signer is a one-time spend key that corresponds with an output being sent from the sender’s wallet.

ring size: ring signature에 서명해야하는 서명자의 수, 많을 수록 보안이 강화 됨, ring size가 4면 3개의

foreign output과하나의 “real” output이있음

트랜잭션이어디로전송되는지알아차리지못하게하는것

Monero는링서명기술을사용하기때문에 double spending 문제를해결하기위해링서명트랜잭션에서

소비되는출력을확인할수있는기능을포함해야함

Monero의 key image 사용으로해결

- Bob 이 Alice 에게 Monero 를 보내려고하면 ring size 가 5 이고 5 개의 입력 중 하나는 Bob 의

지갑에서가져와링서명트랜잭션에추가된것

- 나머지네개는Monero 블록체인에서가져온과거거래내역

- 이 4 개의인풋은디코이이라고하며, Bob의트랜잭션과융합되어 5 명의서명자그룹을형성

- 제 3자는 Bob의 one-time spend key에의해실제로어떤 Tx가서명되었는지를확인할수없음

- key image를사용하면 Alice의계정으로 전송되는 Monero가 이전에 지출되지 않았음을확인할

수있음

7.1.2 Stealth address

모네로 보안의 핵심 중 하나, 그들은 송신자가 수신자를 대신하여 모든트랜잭션에 대해 임의의일회성

주소를생성하도록허용하고요구합니다.

When you create a Monero account you’ll have a private view key, a private spend key, and a Public Address.

Page 34: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

view key -해당계정으로들어온트랜잭션을볼수있는키, 해당계정에서보낸트랜잭션은볼수없음

spend key -해당계정의트랜잭션을발생시킬수있는키, 다른키들을파생시킬수있다.

view key를통해모네로는 optionally semi-transparent

7.1.3 One-Time Account System

Account Generation Algorithm

1. Main account generation

앨리스의 오리지날 계정을 (A, a), one-time account system에서의 메인 계정을 (B, b)라고 하면 앨리스의

메인계정의프라이빗키는 (a, b), 퍼블릭키를 (A, B) 라고함.

앨리스는메인계정의주소로 private key (a, b), scan key (A, b), 퍼블릭키 (A, B)를가짐

2. Sub-account generation

밥이앨리스에게트랜잭션을보내려고하면앨리스의메인계정 (A, B)는 sub-account (A1, S1)를생성, (A1,

S1)는 one time account

밥이 random number s를 생성해서 S1 = [s] G와 A1 = A + [Hash_p([s]B)] G를 계산, (A1, S1)은 one-time

account.

7.1.4 ECDSA G

7.1.5 Stamp System

어떤계정에서트랜잭션비용을지불하는지결정하는시스템, one-time account system에서는트랜잭션을

추적할수없기때문에어떤트랜잭션의비용을지불해야하는지알수없음

기술적으로 one-time account와 one-time stamp는같음

유저는트랜잭션을수행하기전에 스탬프를구매, 스탬프는트랜잭션으로복제되어한번만사용

Page 35: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

8. Sunblockterminal.phone

우분투 OS는전세계인이사용하게된데비안계열의리눅스 OS입니다. 2017년에야심차게추진되었던

스마트폰에포팅되어작동하는것을목표로했던 “Ubuntu for Phone”, “UbuntuTouch” 프로젝트는

안타깝게도좌초되었으나, Sunblockterminal에서는모바일환경에서블럭체인 Full node를

확산하기위해서는 embedded linux기반의 phone위에서동작하는 Sunblockterminal블럭체인을고려하게

되었으며, 진정한Worldwide한 Billion full-node를가지는블록체인프로젝트가될것을목표로합니다.

Sunblockterminal.Storage,Sunblockterminal.Messenger가 Sunblockterminal.Phone의대표적인 DApp이

될것으로예상합니다.

우선적인 Target phone으로는 Galaxy S8, Oneplus5T, Mate10이될것이며, Custom Phone도미래에는

등장할것을희망합니다.

Sunblockterminal.Storage Sunblockterminal.Messenger Sunblockterminal.Wallet(SBT,DApp Contract)

Sunblockterminal for android 소프트웨어는 Sunblockterminal블록체인네트워크에서사용되는 SBT을

내손안에서사용하기위한모바일플랫폼입니다.

Page 36: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

주의사항 : 해당문서에서언급되는사용은 Sunblockterminal Platform을활용해 SBT이

이용되는모든상황을말합니다.(적립, 사용, 거래, 판매등)

8.1 MVVM 아키텍처

기본적으로 MVVM(Model – View – ViewModel) 아키텍쳐를 기반으로 설계합니다. MVVM아키텍쳐는

뷰에대한 의존성을 최대한 없애는 방향으로 설계하고 Unit Test 와 모듈화를 용이하게 만들도록

도와줍니다.

Page 37: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

MVVM에서는, ViewModel이이벤트들의스트림을뷰가그스트림에바인드할수있도록노출시킵니다.

ViewModel은 MVP 아키텍처의 Presenter와는 다르게 View의 참조자를 가지고 있을 필요가 없습니다.

이것은MVP가필요로했던모든인터페이스가없어져도된다는것을의미합니다.

뷰들은또한ViewModel에게다른액션들이발생했음을알려줍니다. 그래서, MVVM패턴은 View와

ViewModel의양방향데이터바인딩을지원합니다. 그리고 View와 ViewModel은 many-to-one 관계가

있다고할수있습니다. View는 ViewModel의참조자를가지게되지만, ViewModel은 View에대한

정보가전혀없게됩니다. 데이터소비자(consumer)는데이터공급자(producer)에대해서알아야하지만

데이터공급자(이경우엔 ViewModel)는데이터소비자가누구인지알지도, 신경쓰지도않습니다.

Data binding

데이터바인딩을이용하여안드로이드의각 View에서발생하는이벤트들을바인딩할수있습니다.

이로인해코드생산성이더좋아지고, 데이터를따로관리해야하는로직들이사라져더욱견고한

비즈니스로직에만집중할수있는애플리케이션을설계할수있습니다.

http://gun0912.tistory.com/71

https://developer.android.com/topic/libraries/data-binding/

Kotlin

IntelliJ IDEA 및 Android Studio의개발사 JetBrains에서 개발한언어로 Google.io 에서안드로이드의공식

언어로 지정되었습니다. 간결한 문법을 가지고 있으며, JVM 기반의 환경에서 동작이 가능하며,

Java 와의 상호 운용이 100% 지원됩니다. JVM 바이트코드가 기본이지만, Kotlin/Native 컴파일러를

사용하여 기계어 또는 LLVM 으로 최종컴파일이 가능합니다. 안드로이드, 톰캣, JavaScript, Java EE,

HTML5, iOS, 라즈베리파이등을개발할때사용할수있습니다.

아래링크는 Kotlin 과 Data binding 을활용한구글의예제프로젝트입니다.

https://github.com/googlesamples/android-architecture/tree/todo-mvvm-databinding/

Page 38: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

8.2 Data Model

HTTP 전송에사용되는 모든Data 는 JSON-RPC 모델을차용합니다. 아래 Gson 라이브러리를활용하여

모든 Object 를 json 형태로전송합니다.

Gson (Google + JSON)

https://github.com/google/gson

Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.

There are a few open-source projects that can convert Java objects to JSON. However, most of them require that you place Java annotations in your classes; something that you can not do if you do not have access to the source-code. Most also do not fully support the use of Java Generics. Gson considers both of these as very important design goals.

8.3 Network Transfer

Square 사의 Retrofit Library 를 이용하여 HTTP 통신을 진행하며 Blockchain Main network 와 연동되는

API 서버와 함께 통신합니다 Retrofit Library 는 Rest API 에서 사용하는 CURD 기능을 모두 제공하고

있습니다. (POST (create) , PUT (update), GET (read), DELETE (delete))

Retrofit 은 다른 HTTP Library 보다 월등히 빠른 속도를 제공합니다. 간결한 네트워크 로직을 제공하며

재사용성을증가시켜빠르고좋은품질의코드를작성할수있습니다.

http://instructure.github.io/blog/2013/12/09/volley-vs-retrofit/

Square Retrofit

A type-safe HTTP client for Android and Java

http://square.github.io/retrofit/

Page 39: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

EventBus라는 Java라이브러리를활용해콘텐츠크리에이터의구독/발행모델에대한 Event 를전달받아

사용자에게알려줄수있도록합니다. 독자와크리에이터간의상호연결을향상시킬수있습니다.

Event Bus

EventBus is a publish/subscribe event bus for Android and Java.

https://github.com/greenrobot/EventBus

9. QRNG/OTP

암호학적으로 True Random Number의생성은정말로중요한요소이다. 하지만, 실제경제적인

트랜잭션의시간의제약에따라서 Pseudo Random Number를이용하고있는실정이다.

2014년 8월 17일산동대정보연구소의여성암호학자왕샤오윈이 “Collision for Hash” 발견의

연구발표후에더욱더 True Random Number의중요성이커지고있다.

Sunblockterminal은탈중앙화된분산화된커뮤니트를구축하고서비스하려는시점에깊이고려해보아야

하는문제점을인식을했고, 기준의암호화폐주소생성과코인또는토큰전송에있어서근본적인안전을

추가하려, QRNG의사용을실험하고, 그새로운이용방법을 제안을할것이다.

비트코인이공개키를사용하여, 서명알고리즘을만든이후모든알트코인들은이방법을

사용하여암호화폐의전송에사용하는것은널리알려지고적용되었다.

비트코인은비대칭키서명알고리즘인 ECDSA(Elliptic Curve Digital Signature Algorithm)계열의

secp256k1 표준타원곡선함수(elliptic curve function)를사용하여키쌍을생성한다. 공개키는

타원곡선함수의좌표 (x,y)로표현되는데과거비트코인클라이언트에서는 (x,y)를

사용하였으나사실함수(y=function(x))이므로 x값만으로공개키를표현할수있다. 이를압축형

공개키라부르고최신버전은이를이용해주소를만든다. 이를 pubkey라고한다면비트코인

주소해시를구하는공식은다음과같다.

pubkey hash<20bytes/160bits> = RIPEMD160( SHA256( pubkey ) )

Page 40: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

bitcoin address = Base58CheckEncode( pubkey hash )

여기서 RIPEMD160과 SHA256은해시함수이다.

따라서비트코인주소는공개키를바탕으로만든다.

그러므로비트코인이하모든블럭체인의주소를생성하는방법은다음같은절차를따른다.

256비트의난수개인키를생성한다. 개인키는트랜잭션에서명하고비트코인을전송하는데

필요하다. 개인키는안전하게보관되지않으면, 비트코인도난의우려가있다.

타원형 DSA 알고리즘은개인키로부터 256-비트공개키를생성한다. (타원형암호는나중에

논의하기로한다.) 이공개키는트랜잭션상의서명을확인하는데사용된다. 불편하게도,

비트코인프로토콜은공개키앞에 04를덧붙인다. 공개키는트랜잭션이서명되기전까지는

공개되지않는데, 대부분의다른시스템들이공개키를공개하는것과는다르다.

다음단계는비트코인주소를생성해서다른사람과공유하는것이다. 256-비트공개키는커서

불편하기때문에, SHA-256 과 RIPEMD 해쉬알고리즘을사용해서 160비트로다운그레이드

한다. 키는비트코인커스텀 Base58Check encoding을사용해서아스키로인코딩된다.

최종결과는 1KKKK6N21XKo48zWKuQKXdvSsCf95ibHFa 와같은값이되고비트코인을받기위해서사람들이알려주는주소가된다. 그주소로부터는공개키와개인키를알아낼수가

없다. 개인키를잃어버린다면, 비트코인을잃어버려서찾을수없을것이다.

Page 41: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

마지막으로, Wallet Interchange Format 키(WIF)는클라이언트지갑소프트웨어에추가하기위하여

사용된다. 이것은단순히개인키를아스키로 Base58Check 인코딩한것이고, 쉽게 256-비트개인키를

추출해낼수있다.

요약을하면, 세가지타입의키가있다: 개인키, 공개키, 공개키의해쉬, 그리고 Base58Check 인코딩을

사용하여아스키로외부에제공된다. 개인키는아주중요한키이고, 비트코인사용과다른키를

생성하는데필요하기때문이다. 공개키해쉬는비트코인주소이다.

WIF 포맷과주소를생성하기위해다음과같은코드manipulation을사용하곤한다. 개인키는 256-비트

난수일뿐이다. ECDSA 암호라이브러리가개인키로부터공개키를생성한다. 비트코인주소는 SHA-256

해싱, RIPEMD-160해싱, 그리고 Base58 인코딩을하고체크섬을더해서서만들어진다. 최종적으로,

개인키는 Base58Check로인코딩해서개인키를비트코인클라이언트소프트웨어에넣기위해서

WIF인코딩을생성한다.

우리는직관과어긋나는원자와광자세상의기술을알고있다. 개개의입자단계에서완전히새로운

가능성을가진양자적우연성(진정한난수)의발견을알고있다. 양자적비국소성은안전한비밀키의

분배의새로운가능성을제시하고있으며, 그것은비국소적상관관계에근거하고있다. 이것은얽힘과

양자비국소성을이용한기술이며, 그원리는 20세기초에밝혀진불확정성의원리에기반한다.

우리는다행스럽게도이기술을우리의핵심에사용할기회를가지게되었으며, Sunblockterminal을

지탱하는 Supernode와 “Sunblockterminal for Phone”의 H/W HD Wallet의안전한개인키를생성하는데

고속의 QRNG를적용할수있을것이다.

사용가능한제품

EYL QRNG

Supernode에적합

Page 42: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

SKTELECOM QRNG

Mobile에적합

SWISS IDQ

Quantis QRNG: USB

● 4Mbps of true quantum

randomness

● Certified by Swiss National

Laboratory

● USB 2.0 interface

● OS Support: Windows,

Linux, Solaris, FreeBSD,

MAC OS X

● Demo application

Supernode에적합

Page 43: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Quantis QRNG: PCIe 4Mb

● 4Mbps of true quantum

randomness

● PCI Express interface

● Certified by Swiss National

Laboratory

● OS Support: Windows,

Linux, Solaris, FreeBSD

● Demo application

Quantis QRNG: PCIe

16Mb

● 16Mbps of true quantum

randomness

● PCI Express interface

● Certified by Swiss National

Laboratory

● OS Support: Windows,

Linux, Solaris, FreeBSD

● Demo application

9.1 게임 DApp에서의사용

QRNG양자난수생성기를이용한공평한랜덤게임에사용하기위한방법으로게임앱이나타사이트에서연동가능한 api를제공한다.

Page 44: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

단, 게임앱을연동하는것은가능하나게임에필요한난수를타사이트에서직접넘겨받는것은

불가하게해야한다.(직접넘겨받아확률조작및게임복제방지)

연동게임앱을통해서게임결과값을넘겨받아처리하는것은가능하게제공한다.

9.2 블록체인OTP사용

스마트컨트랙트코드를 view에서 QRNG를읽어서 OTP를제공할수있게한다.

otp 등록을 위한 secret key 는 스마트컨트랙트의 mapping 스토리지 변수(블록체인내의 저장)에 저장을

하여야한다.

OTP 스마트컨트랙트 코드를 라이브러리 코드로 임포트하여 스마트컨트랙트를 작성하면, 출금이나,

입금시, 기타보안이중요시되는함수호출등에 OTP코드를입력받고해당 OTP코드가검증이맞을때만

출금, 입금이가능하게활용한다.

9.3 Randomness Beacon

QRNG 로부터 추출된 True Random number 를 효율적으로 사용하기위해서는 별도의 비컨체인에서

난수를 JSON-RPC API와 Schema로 broadcast해주는것이더욱효율적일것으로판단되어충분한실험과

검증을통해서구현될것입니다.

10. Conclusion

10.1 Sunblockterminal.Testnet 구성도

Testnet Alpha

Page 45: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Supernode Fullnode Lightnode

Testnet Beta ~5 10 100

Mainnet 21 100 1,000

10.2 Schedule

Page 46: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소
Page 47: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

10.3 Sunblockterminal.Roadmap

10.4 Grand Mainnet Launching

Sunblockterminal은그랜드메인넷론칭시블록체인기반 Cryptocurrency Platform서비스를목표로하고

있으며, 이에최적화된네트웍을구축할것입니다.

블록체인상에한명의유저를위한계정의 RAM사용량은 4KBytes입니다.

4Kbytes * 1 * 10^8 4TBytes≒

1 억명의 사용자 후보에대한 DB 로 계산했을때이다., 향후 사용자가 늘어남에 따라서 4TB,16TB 의

용량을갖는최적의 Supernode를개발할계획을가지고있습니다.

***

Page 48: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

Reference Books

[1] https://github.com/bitcoinbook/bitcoinbook Andreas M. Antonopoulos. Mastering Bitcoin. O’Reilly Media, Inc., 2010.

[2] https://forum.ethereum.org/discussion/46/total-supply-of-eth

[3] Sunny King and Scott Nadal. 2012. PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake. (August 2012).

http://peercoin.net/assets/paper/peercoin-paper.pdf.

[4] Jae Kwon. 2014. Tendermint: Consensus without Mining. (2014). http://tendermint.com/docs/tendermint.pdf.

[5] https://www.stellar.org/papers/stellar-consensus-protocol.pdf

[6] https://github.com/input-output-hk/Scorex

[7] https://theethereum.wiki/w/index.php/ERC20_Token_Standard#Sample_Fixed_Supply_Token_Contract

[8] https://github.com/Giveth/minime/blob/master/contracts/MiniMeToken.sol

[9] https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md EOS.IO Technical White Paper v2

[10] Nicolas Gising. Quantum Chance: Nonlocality, Teleportation and Other Quantum Marvels. Copernicus, 2014.

[11] https://ubports.com/ UbuntuTouch: A Mobile Version of the Ubuntu Operating System

[12] david J. Stang and Sylvia Moon, Network Security Secrets, IDG Books Worldwide, Inc., 1993.

[13] S. Bellovin and M. Merritt, “Limitations of the Kerberos Authentication System,” Computer Communications Review, October 1997.

[14] Ray Bird et al., “Systematic Design of a Family of Attack Resistant Authentication Protocols,” IEEE Journal on Selected Areas in Communications, Vol. 11, No. 5, June 1993.

[15] eric-maxwell-mvc-mvp-and-mvvm-on-android

https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/

Page 49: Part 1: Blockchain based –PaymentPlatformsunblockterminal.com/assets/files/sbt_whitepaper.pdf · Sunblockterminal.Storage network를유지하기위한Incentive System의기본구성요소

[16] gson

https://github.com/google/gson

[17] Retrofit

http://square.github.io/retrofit/

[18] Event Bus

https://github.com/greenrobot/EventBus

[19] Learning Solidity Part 2: Commit-Reveal Voting

https://karl.tech/learning-solidity-part-2-voting/

[20] Partial Lock Commit Reveal Voting System that utilizes ERC20 Tokens

https://github.com/ConsenSys/PLCRVoting