Nodehome Platform의 구성
1) NodeHome Platform 개요
NodeHome Platform은 '빠른 속도', '자원의 효율적 이용', '다양한 응용의 지원'을 목적으로 설계된 탈중앙화된 블록체인 기반의 App개발 플랫폼입니다.

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


[그림] Nodehome Platform System Architecture

2) 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를 정의하며, Transaction Data의 보안성, 무결성을 보장합니다.
S-T Interface는 Service Node와 Terminal Node(Terminal) 간의 Interface입니다. S-T Interface는 Terminal Node과 Service node가 상호 작용하는 Interface를 정의하며, Transaction Data의 보안성과 무결성을 보장합니다.


[그림] Nodehome Platform Service Network


가) S-T Interface
서비스 개발자는 Nodehome Platform에 의해 제공되는 Web Interface를 통하여 서비스 이용자가 Wallet(지갑)를 생성하고 관리하며, Asset 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를 통해 자신의 Asset을 관리하며, 다른 서비스 이용자의 Wallet으로 송금할 수 있고, Asset의 거래와 관련된 Transaction 할 수 있으며, 언제든 거래 내역을 확인할 수 있습니다.
서비스 이용자는 여러 개의 Wallet을 가질 수 있으며, 또한 여러 종류의 Asset을 가질 수 있습니다.
Transaction Layer : 서비스 이용자는 Service node를 통해 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)시의 무결성과 안정성을 보장합니다.

나) S-B Interface
서비스 개발자는 Nodehome Platform에 의해 제공되는 Service Network를 통하여 서비스 사용자가 Asset을 등록하고 관리하며, Asset을 거래할 수 있도록 하기 위한 Function을 제공합니다.
이러한 Function은 Wallet Layer, Asset Layer, Transaction Layer, Security Layer로 구성됩니다.
Wallet Layer: 서비스 이용자는 Service node를 통해 자신의 Wallet를 생성할 수 있으며, Wallet를 통해 자신의 Asset을 관리하며, 다른 서비스 이용자의 Wallet으로 송금할 수 있고, Asset의 거래 Transaction 할 수 있으며, 언제든 거래 내역을 확인할 수 있습니다. 서비스 이용자는 여러 개의 Wallet을 가질 수 있으며, 또한 여러 종류의 Asset을 가질 수 있습니다.
Asset Layer : 서비스 이용자는 서비스 개발자에 의해 제공되는 Service Network에 참여하여 Service node를 통해 Asset을 등록하고 관리할 수 있습니다. Nodehome Platform은 서비스 이용자가 Asset의 Properties와 State를 Update할 수 있는 API Function을 제공합니다. Asset의 변경 이력은 Blockchain에 저장되며 언제나 확인이 가능합니다.
Transaction Layer : 서비스 이용자는 Service-Node를 통해 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 Simple Process


[그림] Nodehome architecture


[그림] Nodehome architecture

[그림] Nodehome architecture 전체