platform

NodeHome platform

NodeHome 자세히보기

NodeHome Platform 배경
!!!블록체인이 나온진 벌써 10년, 사람들은 블록체인에 미쳐버렸다.!!!
<<

블록체인이 모든 것이 다 되는 것처럼 포장되어 버린 것이다. 하지만 현재의 블록체인은 정말로 할 수 있는 것이 적다. 코인을 거래할 수 있는 것, 그 코인마저도 실생활에서 사용할 수 있는 것은 아니다.블록체인은 거래의 내역을 다수의 컴퓨터에 저장하여 다수에 의해 관리되는 분산원장을 갖고 있다. 이로인해 몇몇의 컴퓨터를 해킹해서는 해킹할 수 없고, 특별한 일부의 악의적인 시도가 시스템에 반영되지 않는 탈중앙화된 특징을 갖고 있다. 블록체인의 탈중앙화는 해킹에 강한 자율적인 운영체계라는 장점이 있는 반면, 자원의 낭비가 심하고 느린 처리속도를 갖는 단점이 있다.

그런데, 느린 처리속도라는 단점은 단순한 단점이 아니다. 아에 서비스를 못할 정도로 심각한 단점으로 그냥 두고 볼수 없는 지경이다. 분산원장이라는 미명하에 데이터의 무한한 복사복을 만드는 것을 인정하는 것도 속이 뒤틀린다.안약과 소화제가 필요한데, 약국이나 병원에서 구할 수가 없다.
>>

● 속도가 빠르면서도 탈중앙화의 특징을 갖는 진화된 블록체인의 등장이 절실하다.
● 자원의 효율적인 이용으로 낭비적인 요소가 적어야 한다.
● 더불어 다양한 응용프로그램을 지원할 수있는 블록체인이 필요하다.

블록체인은 탈중앙화(Decentralized)를 위해 중앙 서버를 없애고 back-end data를 블록체인에, business-logic을 App에 분산시켰다. 블록체인은 서버가 없는 구조 때문에 기존의 중앙화(Centralized )된 서비스가 하던 것 중 아주 일부 만을 감당하는 한계를 드러내고 있다.

탈중앙화(Decentralized)는 서버가 없는 것인가? 우리의 답은 '아니다'이다. 오히려 서버가 많은 것이다. 데이터만 분산 될 수 있는 것이 아니다. 응용 프로그램의 로직 또한 분산 될 수 있다.

서버를 없애고 서비스를 구현하기는 사실상 논리적인 모순이 발생한다. 서버가 할 일은 분명히 정해져 있고, 역할도 정해져 있다. 때문에 서버를 없앨 수는 없는 것이다. 탈중앙화를 위한 선택에서 서버를 없앨 것인가 또는 서버를 많이 만들 것인가? 서버가 많은 경우는 서버의 기능을 그대로 유지시킬 수 있으나 서버가 없으면 그 서버가 할 일을 대신할 것은 없다. 탈중앙화가 목적이라면 서버를 많이 만드는 것이 맞는 것이다. NodeHome Platform은 '빠른 속도', '자원의 효율적 이용', '다양한 응용의 지원'을 목적으로 설계된 탈중앙화된 블록체인 기반의 App개발 플랫폼이다.

퍼블릭 블록체인(Public Blockchain)은 탈중앙화라는 목적을 위해 승인 시간이 오래 걸리고 블록체인 네트워크를 유지하기 위한 막대한 컴퓨팅 자원을 필요로 한다. 그러나 Nodehome Platform은 서비스영역과 데이터영역을 구분하여 탈중앙화를 위한 다수의 서비스 노드를 제안함으로써 퍼블릭 블록체인이 가지고 있는 느린 처리속도와 자원낭비적인 구조를 개선하였다. NodeHome Plaform은 데이터를 관리하는 Blockchain Node, 서비스를 운영하는 Service Node , 사용자를 위한 Terminal Node로 구성된다.

NodeHome Platform 배경

Nodehome Platform Service Network

S-T Interface는 Service node와 Terminal Node간의 Interface로 Terminal Node가 갖고 있는 Web Browser를 통해 User-Interface를 구현한다. Terminal Node는 보안모듈, 보안저장소를 이용하여 Service Node의 요청에 의해 서명(Signature)을 하거나 callback function을 호출하는 등 Service Node의 기능을 지원하고 거래(Transaction)을 검증한다.

S-B Inteface는 Blockchain Node와 Service node간의 Interface로 블록체인에 거래(Transaction)을 기록하고, 조회하는 역할을 담당한다. Nodehome platform은 이 인터페이스를 통하여 거래 내용을 블록에 빠르게 저장하고, 각각의 거래를 체인구조로 연결하고 서명을 포함시켜 거래의 위변조가 불가하도록 설계되었다.

서비스 개발자는 Nodehome Platform의 Interface를 이용하여 쇼핑(상품, 음악, 영상) 결제, 정보 공유, 설문 조사, 물류, 에스크로 등 다양한 서비스를 블록체인 기반의 서비스로 개발 할 수 있다.


Nodehome Platform System Architecture


Service Node

Service node는 서비스 개발자가 서비스 이용자의 접근과 이용을 위한 화면을 구현하고 서비스하는 하나의 웹 서버이다. Service node는 서비스 개발자가 원하는 서비스를 직접 구현하고, 블록체인 기반으로 서비스할 수 있도록 지원한다. Service Node는 Terminal Node와 Blockchain Node의 중간에서 동작한다. 개발자가 Blockchain 과 사용자 단말기에 대한 코드를 만들지 않아도 Nodehome Platform Security Interface 규칙에 맞게 개발하면 Blockchain 과 사용자용 단말기 프로그램은 Nodehome Platform에서 제공한다. Nodehome Platform은 이를 위해 기능 확장성 API를 제공하며 지속적인 업그레이드를 지원한다.

Nodehome Platform 서비스를 개발하고 운영하기 위해서는 하나의 Service Node만으로는 운영할 수 없다. Service Node들 Node Network를 이루어야 한다. 하나의 Transaction은 복수의 Service Node를 통해 소스와 데이터의 변조를 검증하는 프로토콜을 거쳐 신뢰할 수 있는 Transaction으로 만들어지기 때문이다. 이 검증 프로세스는 Terminal Node, Service node, Bolckchain Node 간의 인터페이스로 보안기능이 내장된 프로토콜로 구성된다.

Nodehome Platform 내의 Service node 운영은 두 가지 방식이 존재한다. 원하는 서비스를 Nodehome Platform으로 직접 개발하여 참여하거나, 이미 개발되어 운영중인 다른 Service Node를 다운받아 설치하여 운영자로 참여할 수 있다. Service node를 개발하기 위해서는 서비스 목적, 화면 인터페이스, 거래수수료, 이익배당 등과 같이 자세한 사항까지 계획 및 개발하여야 하며, Node Network에 등록 요청을 하면 서비스 참여가 이루어집니다. 만약 누군가에 의해 이미 개발되고 서비스 되고 있는 블록체인 서비스가 있다면 만들어진 해당 Service node의 open source를 다운로드 하고 일련의 설정과정을 마친 후 Node Network에 등록 요청만 하면 곧바로 서비스 참여가 이루어집니다.

다수의 Service node가 분산되어 운영되는 환경에는 불량한 운영자가 있을 수 있으며, Service node의 소스가 변조 될 가능성도 있다. Nodehome Platform에서는 node간 정보 공유 시 소스 위변조 검증과 처리 결과 데이터의 위변조 검증에 제 3 또는 제 4의 Service node를 참여하게 하고 그 데이터를 분석하여 위변조를 판정한 후 Transaction을 취소 시키고 node network에서 해당 node가 제거될 수 있도록 프로토콜로 구현되어있다.

Terminal Node(Android, iOS용 Mobile Terminal Node, PC용 Terminal Node)

Terminal Node은 Web Browser를 내장한 사용자용 응용 프로그램이다. Android, iOS , 또는 PC용 Application으로 Service Node의 특성에 따라 다양한 서비스를 제공하며 , Service Node를 경유하여 블록체인과 연결된다.

Terminal Node은 Service Node를 통한 Blockchain과의 거래(Transaction)에서 가장 중요한 지갑의 Key를 생성하고, 안전한 저장소에 보관하며, 거래(Transaction)시 서명(Digital Signature)를 하는 기능을 갖고 있다. Terminal Node는 지갑 Key의 생성과 보관을 위한 다양한 보안 알고리즘(Security Algorithm)과 보안 인증 기능을 갖추고 있다. Terminal Node는 Web Browser와 Java script Interface를 이용하여 필요한 기능을 주고 받으며 거래(Transaction)에서 무결성과 안정성을 보장한다.

Terminal Node은 Seed node를 통해 다수의 분산화된 Service Node의 URL를 수집하고, 임의(Random)의 Service Node에 접속하여, 거래(Transaction)시에 발생할 수 있는 Service Node의 소스 및 거래 데이터 위변조를 방지하기 위해, 분산화된(Decentralized) 다수의 Service Node에 임의로 접속하여 검증을 수행한다. 이러한 과정은 서비스 이용자에게 안전한 거래를 보장한다.

이러한 응용 프로그램 개발을 위해 Nodehome Platform 내의 인터페이스 규칙에 맞는 기능 확장성 API를 제공한다.

Terminal Node이 Service node에 접속 후에는 Terminal Node 내의 web browser 내의 Java Script Interface를 이용하여 안정적이고 독점적인 통신 채널이 만들어집니다.

Terminal Node은 Transaction 등의 정보를 전송할 때, 다수의 Service node와 임의의 데이터 통신을 진행함으로, Terminal Node과 Service node간의 session을 별도로 유지하지 않다. 아래 그림은 Transaction이 진행되는 과정을 보여줍니다.


Nodehome Platform Interface

Nodehome Platform에는 S-B Interface, S-T Interface가 있다.

S-B Interface는 Service Layer와 Blockchain Layer간의 Interface이다. S-B Interface는 Service node가 이용하는 Blockchain으로의 Interface를 정의하며, 거래 데이터의 보안성, 무결성을 보장한다.

S-T Interface는 Service Node와 Terminal Node(Terminal) 간의 Interface이다. S-T Interface는 Terminal Node과 Service node가 상호 작용하는 Interface를 정의하며, 거래 데이터의 보안성, 무결성을 보장한다.

1. S-T Interface

서비스 개발자는 Nodehome Platform에 의해 제공되는 Web Interface를 통하여 서비스 이용자가 Wallet(지갑)를 생성하고 관리하며, Cryptocurrency Transaction시 서명(Digital Signature)를 하는 Function을 제공한다.

이러한 Function은 Brower Layer, Wallet Layer, Transaction Layer, Security Layer로 구성된다.

Brower Layer : 서비스 이용자가 사용하는 Terminal Node에 내장된 Web Brower 내의 Java Script Interface를 이용하여 안정적이고 독점적인 통신 채널이 만들어집니다. 이 채널을 이용하여 서비스 개발자는 서비스 이용자의 선호도에 맞는 다양한 서비스를 제공할 수 있다.

Wallet Layer : 서비스 이용자는 Terminal Node를 통해 자신의 Wallet를 생성할 수 있으며, Brower Layer를 통해 자신의 Cryptocurrency를 관리하며, 다른 서비스 이용자의 Wallet으로 송금할 수 있고, Asset의 거래와 관련된 Cryptocurrency를 Transaction 할 수 있으며, 언제든 거래 내역을 확인할 수 있다.

서비스 이용자는 여러 개의 Wallet을 가질 수 있으며, 또한 여러 종류의 Cryptocurrency를 가질 수 있다.

Transaction Layer : 서비스 이용자는 Service node를 통해 Cryptocurrency 및 Asset을 거래할 수 있다. Nodehome Platform은 이러한 Transaction을 위한 API Function을 제공한다.

Security Layer : Nodehome Platform에서 Terminal Node과 Service node간의 제공되는 모든 API Function은 Nonce Number, Digital signature를 포함하기 때문에 위변조가 불가능한다.

또한, Terminal Node 내에 있는 지갑 Key의 생성과 보관을 위한 다양한 보안 알고리즘(Security Algorithm)은 거래(Transaction)시의 무결성과 안정성을 보장한다.

2. S-B Interface

서비스 개발자는 Nodehome Platform에 의해 제공되는 Service Network를 통하여 서비스 개발자가 Asset을 등록하고 관리하며, Cryptocurrency를 사용하여 Asset을 거래하기 위한 Function을 제공한다.

이러한 Function은 Cryptocurrency Layer, Wallet Layer, Asset Layer, Transaction Layer, Security Layer로 구성된다.

Cryptocurrency Layer: 서비스 개발자는 서비스에서 사용되는 Cryptocurrency(암호화폐)를 발행할 수 있으며, Cryptocurrency의 단위, 서비스 기간 등의 Properties(속성)를 설정할 수 있다. Cryptocurrency는 고유의 ID를 가지고 있으며, ID가 다른 여러 종류의 Cryptocurrency이 발행 될 수 있고 정해진 환율을 통하여 환전될 수 있다. 또한 Service Provider는 Cryptocurrency Transaction에 대한 수수료 부과에 관련된 정책을 설정할 수 있으며, 수수료 징수를 위한 Wallet(지갑)를 설정하여 서비스 이용자에게 거래 수수료를 부과할 수 있다.

Wallet Layer: 서비스 이용자는 Service node를 통해 자신의 Wallet를 생성할 수 있으며, Wallet를 통해 자신의 Cryptocurrency를 관리하며, 다른 서비스 이용자의 Wallet으로 송금할 수 있고, Asset의 거래와 관련된 Cryptocurrency를 Transaction 할 수 있으며, 언제든 거래 내역을 확인할 수 있다. 서비스 이용자는 여러 개의 Wallet을 가질 수 있으며, 또한 여러 종류의 Cryptocurrency를 가질 수 있다.

Asset Layer : 서비스 이용자는 서비스 개발자에 의해 제공되는 Service Network에 참여하여 Service node를 통해 Asset을 등록하고 관리할 수 있다. Nodehome Platform은 서비스 이용자가 Asset의 Properties와 State를 Update할 수 있는 API Function을 제공한다. Asset의 변경 이력은 Blockchain에 저장되며 언제나 확인이 가능한다.

Transaction Layer : 서비스 이용자는 Service-Node를 통해 Cryptocurrency 및 Asset을 거래할 수 있다. Nodehome Platform은 이러한 Transaction을 위한 API Function을 제공한다. 각각의 Transaction은 고유 ID를 가지고 있으며, 발생한 Transaction의 순서에 따라 검색될 수 있다. Transaction History 는 Blockchain에 저장되며, 수정이나, 삭제될 수 없다.

Security Layer : Blockchain에 의해 제공되는 모든 API Function은 Nonce Number, Digital signature를 포함하기 때문에 위변조가 불가능한다.

Database Layer : Blockchain은 Key-Value 구조의 Database를 제공한다. Key는 문자열이고 Value는 Binary Data이다. Transaction 발생시 Key의 Value를 업데이트 할 수 있으며, Transaction ID에 따라 Value의 변경 History가 보관된다.

Key를 기준으로 최종 State의 Value를 읽어올 수 있으며, 정순 또는 역순으로 특정 Key에 대해 Iteration을 통하여 Value의 History를 읽을 수 있다. 또한 Transaction ID를 기준으로 특정 Key의 State Value를 읽어 올 수 있다.

두 개의 Key를 기준으로 Iteration을 통해 지정된 Key 범위에 대한 Value를 반복적으로 읽을 수 있다. 또한 Database는 두 개 이상의 Index를 가질 수 있다.


Nodehome Platform 응용 사례

NodeHome 자세히보기

Delicracy II : Delicracy(델리크라시) II는 다수의 의견을 수렴하기 위한 합의 과정을 진행하는 응용서비스이다. 숙의 민주주의 방식의 정책 결정 , 집단 지성에 의한 상황예측, 사회적으로 주목 받는 주제에 대한 설문조사 등에 이용될 수 있는 다수에 의한 의견 수렴 도구이다. 단순히 의견을 모으는 것에 그치지 않고 게임의 재미 요소와 투자의 수익 모델을 포함하고 있어서 대중의 적극적인 참여를 유도할 수 있는 응용 서비스 프로그램이다.

Delicracy(델리크라시) II는 서비스 서버가 없는 기존의 dApp와는 다르게 다수의 Service node를 이용하여 business-logic을 분산하는 방식으로 구동되는 “Service dApp”이다.

Delicracy II Download

ESCROW : NodeHome Platform escrow는 온‧오프라인(O2O) 상거래 환경에서 거래당사자간 거래 신뢰도를 검증하고 평판정보를 수집할 수 있는 OurPlatform 블록체인 기반의 제3자 결제 시스템이다.

ESCROW 자세히보기