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) 성능 지표 및 가중치
- 특성 지표를 모두 반영하려면 비교군을 만들고 분석해야 하므로 우리 서비스 만으로 불가함
- 스마트컨트랙트 활용성 및 무결성/신뢰성 수준은 우리 서비스 내에서 변화를 주며 비교할 수 있을 것 같음
5 결론
- 블록체인 속도 결정 요소: Transaction per Second, 블록생성시간, 블록생성확정시간
- TPS: 거래 처리 속도, 초당 처리하는 트래픽의 개수
- 블록생성시간: 블록이 생성되는데 걸리는 시간
- 블록생성확정시간: 내 트랜잭션이 최신 블록에 있다는 것을 보증해주는 시간
- 많은 연구에서 TPS를 측정하는 방법으로 성능을 측정함
- 하지만 트래픽이 적은 경우 TPS가 의미 없어 생성시간이 더 중요 > 서비스 초기 환경 트래픽이 적을 것으로 예상됨
- 로직을 변경하거나 연산의 복잡도를 계산하여 생성시간을 가변값으로 설정
- 측정방법: Apache JMeter