BLOCKCHAIN/BlockChain

블록체인 성능평가 자료조사

yuujoeng 2022. 9. 24. 02:28

1 허가형 블록체인 합의알고리즘의 성능평가항목 연구

(1) 블록체인 합의 알고리즘

  - 퍼블릭 블록체인: 누구나 참여, 모든 노드에 대한 불신을 전제

  - 정확한 거래내역 저장 및 관리를 위해 블록을 생성하려는 노드에게 과도한 컴퓨팅 파워나 노드 지분율 요구

  - 허가형 블록체인: 허가된 노드만 참여하므로 인증/합의 과정 단순

  - Fail-Stop 방식

  - BFT

 

(2) 전통적 블록체인 성능 평가요소

  - 블록체인 속도 결정 요소: Transaction per Second, 블록생성시간, 블록생성확정시간

  - TPS: 소프트웨어 및 하드웨어 설계와 네트워크 성능, 거래내역 종류에 따른 측정 방법 상이 > 참고지표로 활용

  - 속도 뿐 아니라 합의 알고리즘의 안정성 측면에 대한 평가요소 고려 필요

 

(3) 블록체인 성능평가를 위한 요소 

  - 권위를 가진 연결 노드의 수

  - 합의의 안정성

 

http://www.koreascience.or.kr/article/JAKO202022762160422.pdf

 

 

2 TPS란?

(1) TPS

  - Transaction per Second

  - 거래 처리 속도, 초당 처리하는 트래픽의 개수

  - 블록체인 성능을 가늠하는 중요한 기준이지만 절대지표 아님

  - 소프트웨어 설계, 하드웨어 및 네트워크 성능, 드랜잭션 종류에 따라 속도 차이 발생

  - Smart Contract는 단순 송금 대비 높은 연산 요구하므로 TPS 낮음

 

(2) 블록 생성 시간

  - 트랜잭션 자체가 많지 않은 시간에서 TPS가 의미 없어 생성시간이 더 중요

 

(3) 블록 생성 확정 시간

  - 신뢰도 * 블록 생성 시간

 

3 TPS 측정 방법

(1) 신청기관에서 제시한 스크립트를 이용한 TPS 측정

  - 데이터 N건을 정해진 시간 동안 목표로 설정한 TPS 기준으로 처리하는 시뮬 실행

  - Time out 없이 정상 처리되는지 확인

  - 데이터 N건을 입력하여 모두 처리되는데 걸리는 시간 측정

  - 완료된 데이터 건수를 확인하여 초당 처리된 처리량 계산 > 서버 시간을 로그로 기록/처리된 트랜잭션 수

 

(2) Apache JMeter

  - API를 이용해 데이터 N건의 트랜잭션 발생

  -Apache JMeter의 Summary Report 결과 확인

 

(3) 테스트넷을 이용하여 TPS 측정

  - 이더리움을 통해 데이터 전송에 대한 이더리움 테스트넷은 Repsten 사용

  - 테스트넷: 블록체인 네트워크에 적용시키기 전에 테스트하는 환경

  - 지갑의 안전성을 검증

 

(4) Hyperledger Caliper

  - 지정된 명령어를 사용해서 성능테스트 진행

  - 웹브라우저를 통해 HTML 파일로 결과를 제공

 

4 블록체인 서비스 적용을 위한 평가모델 연구

(1) 성능 지표 및 가중치

  - 특성 지표를 모두 반영하려면 비교군을 만들고 분석해야 하므로 우리 서비스 만으로 불가함

  - 스마트컨트랙트 활용성 및 무결성/신뢰성 수준은 우리 서비스 내에서 변화를 주며 비교할 수 있을 것 같음

 

RE-84_블록체인 서비스 적용을 위한 평가모델 연구 (1).pdf
1.67MB

 

5 결론

- 블록체인 속도 결정 요소: Transaction per Second, 블록생성시간, 블록생성확정시간

- TPS: 거래 처리 속도, 초당 처리하는 트래픽의 개수

- 블록생성시간: 블록이 생성되는데 걸리는 시간

- 블록생성확정시간: 내 트랜잭션이 최신 블록에 있다는 것을 보증해주는 시간

- 많은 연구에서 TPS를 측정하는 방법으로 성능을 측정함 

- 하지만 트래픽이 적은 경우 TPS가 의미 없어 생성시간이 더 중요 > 서비스 초기 환경 트래픽이 적을 것으로 예상됨

- 로직을 변경하거나 연산의 복잡도를 계산하여 생성시간을 가변값으로 설정

- 측정방법: Apache JMeter