NXT vs Ardor 기술적 특징 비교

기능성

Nxt

Ardor

블록체인

싱글 체인

1개의 메인 체인과 다수의 차일드 체인

트랜잭션
토큰

NXT 토큰이 블록체인의 보안을 위한 합의를 진행하는데 사용되며 동시에 모든 트랜잭션의 기본 단위가 됨

메인체인의 토큰(ARDOR)만 POS 합의를 하는데 사용되며, 차일드 체인의 보안은 메인 체인에 의해 확보됨. 차일드 체인 토큰들만이 트랜잭션의 기본 단위가 됨.

트랜잭션
수수료

트랜잭션 수수료는 NXT로만 지불되기 때문에, 사용자는 계정에 항상 NXT를 보유 해야 함.

트랜잭션 수수료는 사용 하고자 하는 각 차일드 체인 자체의 토큰으로 지불되어야 함. 따라서 최종 사용자는 Ardor 토큰을 보유 할 필요가 없음. 필요에 따라 특정 차링드 체인 혹은 특정 트랜잭션 유형에 대해 커스텀 번들러를 운영하면 비지니스 주체가 엔드 유저의 수수료를 대신 지불 가능.(이 경우 최종 사용자는 수수료를 전혀 지불 할 필요가 없게됨)

기능

자산 거래소, 통화 시스템(MS, Monetary System), 별칭, 메시지, 디지털 상품 스토어, 투표 시스템, 셔플링, 데이터 클라우드, 페이징, 계정 컨트롤, 계정 속성

NXT의 모든 기능은 Ardor에서 지원되며, 각 차일드 체인에서 사용 가능

차일드 체인의 경우 개발시 필요에 따라 선택적으로 기능 제한 가능

메인 체인은 지분 증명 합의목적으로만 사용되기 때문에, 일부 기능만 지원

계정

각각의 암호문구는 단일 계정과 맵핑됨. 암호문구는 변경이 불가능하며, 클라이언트 내에 저장 되지 않음.

NXT와 동일하게 각각의 암호문구는 단일 계정과 맵핑됨. 동일 계정을 이용해 모든 차일드 체인 이용 가능. 즉 하나의 계정으로 Ardor토큰 뿐만 아니라 모든 차일드 체인 토큰을 보유 할 수 있음

계정 소유물(Holdings)

하나의 코인(NXT)와 제한 없는 사용자 발행 자산, 제한 없는 통화 시스템(MS) 통화

각각의 체인은 자체 토큰을 가짐. 특정 차일드 체인에서 발행된 자산과 MS(통화 시스템)의 통화는 모든 차일드 체인에 사용 가능

필요에 따라 자산과 MS 통화는 일부 차일드 체인에서 사용 불가하도록 제한 가능

거래

자산 및 MS 통화가 NXT 코인으로만 매매 가능

자산과 MS 통화는 어떠한 차일드 체인으로도 매매가 가능하며, 이때 가격은 상응하는 차일드 체인 코인 가격이 됨

코인
거래소

없음

신규 기능인 코인 거래소는 메인 체인 뿐만 아니라 서로 다른 차일드 체인 끼리 거래가 가능

배당금 분배

자산에 대한 배당은 NXT 코인으로만 가능

업데이트: 자산 또는 MS 통화 배당 기능 개발 중

자산 배당은 해당 체인의 트랜잭션 발행시 모든 차일드 체인 코인으로 가능.

다른 자산이나 MS 통화를 이용한 배당도 가능

자산 수량

자산은 고정된 수량으로 발행됨. 자산 보유자의 경우 가진 자산을 삭제 할 수 있으나 신규 발행은 불가능.

업데이트: 자산 수량 증가 기능 개발중

지분 분할이나 자본 증식 등을 지원하기 위해 자산 발행자가 신규 지분을 발행하는 기능 개발완료 하여 지원 중

자산 속성

없음

업데이트: 자산 속성 기능 현재 개발 진행중

자산 속성 기능 이용시, 특정 자산에 대해 임의의 이름/값의 메타 데이터로 태그 가능

크라우드펀딩

통화 시스템에서 크라우드 펀딩 기능을 사용 할 수 있으나, NXT 코인을 이용해서만 펀딩 가능

모든 차일드 차인에서 크라우드 펀딩 기능 이용가능. 각각의 차일드 체인에서 자체 코인으로 펀딩 가능. 이 경우, 예약 및 청구 트랜잭션은 통화가 발행된 차일드 체인에서 발행되어야 함.

셔플링

NXT, 자산, MS 통화에 대한 셔플링 모두 가능

각각의 차일드 체인에서 해당 토큰, 자산, MS 통화의 셔플링이 가능. 자동화된 Standby 셔플링 add-in을 이용 할 경우 서비스로서의 셔플링(Suffling as a service) 제공 가능

별칭

별칭은 어느 엔티티에서나 동일

별칭은 해당 차일드 체인에서만 사용 가능

MS
(Monetary System)
통화

통화 코드와 이름은 어느 엔티티에서나 동일

통화 코드와 이름은 해당 차일드 체인에서만 사용 가능

프루닝

일반 및 암호화 메시지 모두에 대해 프루닝 가능. 데이터 클라우드에선 태그된 데이터 프루닝 가능. 프루닝 된 데이터는 필요시 지정된 아카이브 노드에서 자동으로 검색됨.

NXT에서 사용 가능한 프루닝 및 검색 기능 사용 가능.

추가로, 차일드 체인의 트랜잭션 자체가 프루닝 가능하도록 설계되었기 때문에, 과거 트랜잭션에 대해 모든 노드가 모든 데이터를 영구히 저장 할 필요가 없으며, 신규 노드의 경우 모든 데이터를 다운 받을 필요가 없음. 이 차일드 체인 프루닝의 경우 추후 구현 예정*

트랜잭션
식별자(ID)

트랜잭션 ID는 64-bit의 길이를 가지며, 모든 엔티티에서 사용 가능

64-bit 길이의 트랜잭션 ID는 모든 차일드 체인에 대해 고유 하지 않을 수 있음. 따라서 256-bit 트랜잭션 해시(sha256 digests)가 트랜잭션 식별자 대신 사용됨.

블록 생성

블록 생성을 위해 "forging(포징)" 과정이 진행되며, 이때 블록을 생성 할 확률은 계정이 보유한 NXT 잔고(스테이크)에 비례.

NXT에 사용되는 것과 동일한 포징(Forging) 알고리즘이 사용되며, 블록을 생성 할 확률은 계정이 보유한 ARDR 잔고(스테이크)에 비례.

번들링

없음

"번들링(bundling)"이라는 새로운 과정이 여러개의 차일드 체인 트랜잭션들을 하나의 트랜잭션(차일드 체인 블록 트랜잭션)으로 그루핑 하는데 사용되며, 이렇게 만들어진 트랜잭션이 메인체인에 포함됨.

누구나 번들링 역할을 하는 번들러가 될 수 있음. 또한 번들링 과정은 엔드 유저가 지불한 차일드 체인 토큰을 Forger가 받을 수 있는 ARDR 수수료로 변환해 주는 역할을 함.

페이징

다양한 투표 모델 등을 이용하여 트랜잭션 실행이 특정 조건에서만 실행 될 수 있도록 할 수 있음.

NXT에서와 동일한 투표 모델이 가능하지만, 이러한 페이징은 차일드 체인에서만 가능. 승인 트랜잭션은 페이징된 트랜잭션과 다른 차일드 체인에서도 발생 가능하며, 다른 차일드 체인에 트랜잭션 해시를 연결 하는 것을 지원하기 때문에 트랜잭션에 의한 투표 모델도 생성 가능.

복합 페이징

불가능. 조건부 트랜잭션은 한번에 한개의 투표 모델에서만 사용 가능.

새로운 "스마트 페이징" 기능으로 인해 페이징된 트랜잭션이 AND, OR, NOT 같은 부울 연산자를 통해 결합되어 조건부 실행이 가능. 이러한 방법으로 정의된 스마트 컨트랙트가 이미 존재하는 투표 모델을 활용해 구축 될 수 있음.

속성에 의한
투표 모델

없음

"속성에 의한" 투표 모델이 추가 되었기 때문에, 페이징된 트랜잭션을 지정된 속성 세트가 있는 보낸 사람 계정에 따라 조건부로 실행 가능/ 이는 새로운 자산 컨트롤 기능과 함께 사용 가능하며, 이 경우 인증된 계정 혹은 KYC 검증된 계정만 특정 자산에 대해 거래 가능 하게 하는 기능 구현 가능.

계정 컨트롤

계정을 페이징 목적으로만 사용 하도록 제한 가능(필수 승인의 경우)

NXT와 동일 하지만, 페이징만 가능하도록 제한된 계정은 메인 체인에서 트랜잭션을 제출 할 수 없습니다.(메인 체인은 페이징이 불가능 하기 때문)

자산 컨트롤

N/A

자산 발행자는 자산의 잔고에 영향을 미치는 모든 트랜잭션에 대해 페이징 제한을 걸 수 있습니다. 이를 통해 기업 주식과 관련된 모든 거래에 대해 주주 혹은 이사회의 승인이 필요한 모델을 만들 수 있습니다.

차일드 체인
컨트롤

N/A

차일드 체인 컨트롤은 사용자 권한 레벨을 달리해 허가형(Permissioned) 차일드체인을 만드는데 사용될 수 있습니다. 이경우 차일드 체인 관리자는 특정 사용자에게 차일드 체인 권한을 부여 하거나 철회 하는 트랜잭션을 발생 시켜 차일드 체인 사용자를 관리 할 수 있게 됩니다.

샤미르
비밀 공유
(Shamir
Secret
Sharing)

N/A

Ardor 플랫폼은 계정의 암호문구를 몇개의 조각으로 나누고, 이중 몇개 조각으로 원래 암호문구를 복원 시키는 샤미르 비밀 공유 기능을 지원합니다.

Lightweight 컨트랙트

N/A

Lightweight 컨트랙트는 기존 존재하는 Ardor API들 위에 자동화 할 수 있는 레이어를 개발 할 수 있는 프레임워크입니다. Lightweight 컨트랙트는 모든 노드에서 실행되는 것이 아니라 실행하도록 선택한 노드에서만 실행됩니다. 상태비저장(Stateless) 컨트랙트이므로, 블록체인을 직접 조작하는 것이 불가능 하며 컨트랙트의 실행 결과로 제출된 트랜잭션을 이용해 블록체인의 상태를 변화 시키게 됩니다.

트랜잭션
바우처

N/A

사용자는 디지털 서명된 트랜잭션 템플릿(바우처) 형태를 제출하여 오프라인인 상대방으로부터 지불 요청을 할 수 있습니다. 이때 지불하는 상대방은 템플릿을 불러와 금액 등 세부 사항들을 확인 한 후 서명하여 트랜잭션을 제출하게 됩니다.

피어
네트워킹

HTTP 기반으로, WebSocket을 지원. 피어간 JSON 포맷의 데이터를 전송

완전히 재구성되고 최적화 하여, 피어간 Java 자체 소켓과 바이너리 메시지를 사용합니다. 피어간 현재 사용 가능한 블록과 트랜잭션에 대한 정보만 교환하고 캐싱하여 누락된 정보들만 전파 하기 때문에 블록과 트랜잭션 전달이 개선되었습니다.

API

HTTP query API, JSON 형태의 응답 반환

아래 세가지 제외 NXT와 동일:

1. 차일드 체인을 구분 할 수 있는 "chain" 매개변수가 각각의 API에 추가

2. 64-bit 길이의 트랜잭션 ID가 256-bit 해시로 대체

3. 이전에 최소 분할 가능 단위("QNT")로 정의 되었던 모든 가격과 비율이 소유물(지분 등) 비율로 정의.

확장성

트랜잭션은 블록체인에 영구적으로 저장되므로, 모든 새로운 노드는 이전 수개월, 수년동안의 모든 데이터를 다시 다운로드 하여 처리해야 하므로 병목 현상이 일어나게 됨

모든 차일드 체인 트랜잭션은 블록체인의 보안에 전혀 영향을 미치지 않고 완벽히 프루닝 가능하므로, 블록체인 크기를 작게 유지 할 수 있음. 네트워크에 새로 참여 하게 되는 노드의 경우는 메인 체인 트랜잭션과 최신 시스템 상태의 스냅샷 데이터만 다운로드 받으면 됨*

(*) 표시가 된 기능은 향후 Ardor 버전에서 구현될 예정입니다. 그외 기능의 경우 현재 메인넷에서 작동하고 있습니다.