Gom3rye

BBS: Micro-architecture Benchmarking Blockchain Systems through Machine Learning and Fuzzy Set 본문

Blockchain

BBS: Micro-architecture Benchmarking Blockchain Systems through Machine Learning and Fuzzy Set

Gom3rye 2022. 3. 23. 17:30

Abstract

- 벤치마크 간의 유사성을 보다 합리적으로 측정할 뿐만 아니라 micro-architecture level에서 블록체인을 더 잘 특성화하기 위해 BBS 라는 새로운 벤치마킹 방법론을 제안

- 이 논문의 핵심은 머신러닝을 기반한 접근으로 fuzzy set 이론을 잘 이용해서 중요한 micro-architecture 이벤트를 알아보는 것이다.

 I. Introduction

- 블록체인은 암호 작성법에 의해 보호되고 연결되는 블록이라는 데이터 구조를 통해서만 내용이 추가되는 분산 원장이다.

- 블록은 분산 원장의 불변성을 보장하기 위해 트랜잭션 집합과 이전 블록의 해시 값을 기록한다.

- 전통적인 분산 시스템과는 다르게 블록체인은 블록을 관리하기 위해 중앙화된 관리자가 없고 대신 P2P 트랜잭션 네트워크 안의 모든 노드들에 의해 관리된다.

- 이 때 서로를 신뢰하지 않아서 블록체인은 Byzantine fault tolerance를 얻는 방식으로 디자인된다.

- 블록체인은 금융 시스템, 공급망, 저작권 보호, 크라우드 소싱 플랫폼과 IoT 기반 시설에 잘 사용된다.

- Public blockchain - 비트코인, 이더리움 / 모두가 참여 O

- Private blockchain - 패브릭 / 권한이 주어진 참여자만 쓸 수 O

- 블록체인은 고성능 하드웨어가 필요한데 특히 public blockchain은 많은 연산을 필요로 하는 PoW 방식을 통해 합의를 이끌어 내므로 더 하드웨어 성능이 중요하다.

- 하지만 general purpose machine에 private blockchain을 돌리는 것은 좋지 않은 성능을 결과로 낸다. 때문에 우리는 어떤 micro-architecture가 선택되어져야 하고 어떻게 더 나은 micro-architecture을 디자인해서 블록체인들을 효율적으로 돌릴지 알아야 한다.

- 일반적으로 최신 프로세서의 마이크로아키텍처 이벤트는 200개 이상이기 때문에 마이크로아키텍처 수준의 특성화를 수행하는 것은 어렵고 불필요해서 조직적으로 중요한 것을 고르는 것이 중요하다.

기존의 접근법과는 달리, BBS는 체계적으로 두 단계로 메트릭(이벤트)을 선택한다. 첫째, BBS는 블록체인의 마이크로 아키텍처 메트릭의 중요성을 정량화하고 메트릭의 순위를 내림차순으로 매긴다. 둘째, BBS는 퍼지 집합 이론을 사용하여 중요한 지표를 식별한다.
(첫 단계부터 중요도 순위를 매겼지만 어떤 종목이 중요한 종목인지 결정하는 기술이 필요하다.) 따라서 이러한 중요한 메트릭을 사용한 특성화는 블록체인의 성능을 충분히 반영할 수 있고 특성화 결과를 활용하여 블록체인의 성능을 최적화할 수 있다.

- 이용 가능한 모든 지표의 중요성을 정량화한 후 특성화를 위한 중요한 마이크로 아키텍처 지표를 식별하기 위해 퍼지 집합 이론을 사용한다. 이 새로운 워크로드 특성화 접근방식이 BBS이다.

II. Backgound and motivation

- 블록체인의 특징

  • 분산화
  • 향상된 보안성
  • data 불변성
  • 추적가능성

- 블록체인의 구조

  • 제일 바닥에는 트랜잭션과 노드들간 데이터 블록을 전송하기 위해 P2P protocol을 사용하는 network 층이 있다. 다른 블록체인은 다른 P2P protocol을 가질 수 있는데 (이더리움 - based on Kademlia protocol, 하이퍼레져 패브릭, Sawtooth - gossip protocol) 이렇게 다른 프로토콜을 사용하는 것은 블록체인의 성능에 큰 영향을 미친다.
  • Consensus 층은 분산된 일관성 문제를 푸는 것을 목표로 한다. ( proof based 합의와 voting based 합의가 있는데 proof based - public(노드들이 체인을 자유롭게 들어갔다 나올 수 있어서), voting based - private에 각각 사용된다.
  • Data 층은 데이터 구조, 데이터 모델, 저장 공간으로 이루어져 있다. 데이터를 저장하기 위해 저장공간에서는 LevelDB, LevelDB in Go, couchDB 같은 DB를 사용한다.
  • Contract 층은 조건이 만족되면 자동으로 실행되는 스마트 컨트랙을 사용한다.
  • Application 층은 DAPP같은 앱이 사는 곳이다.

- 여기서 소개하는 3개의 blockchain

     1. Ethereum

      - 스마트 컨트랙트로 가장 유명한 public blockchain

      - 임의의 상태 전이 함수를 부호화하기 위해 "계약"을 작성하는데 사용될 수 있는 튜링 완전 프로그래밍 언어를

        사용하여 사용자가 분산된 시스템을 만들 수 있도록 한다.

      - private blockchain에서도 돌려볼 수 있다.

    2. Hyperleder

     - 최초의 private blockchain이며 현재 가장 성공적인 프라이빗 블록 체인

     - 기업에서 사용하기에 알맞은 기능들 있음

     - 컨테이너 기술을 활용하여 "체인코드"라고 불리는 스마트 계약을 호스팅한다.

     - 패브릭은 도커를 사용하여 서비스를 실행하고 데이터를 저장한다.

    3. Hyperledger Sawtooth

     - 매우 모듈화되어 있는 platform, 트랜잭션을 위해 병렬 실행을 제공한다.

     - Sawtooth-Ethereum은 이더리움안에 내장되어 있고 Sawtooth과 Ethereum을 상호 이용할 수 있다.

     - Sawtooth는 신뢰된 실행 환경을 사용하는(TEE) PoET라고 불리는 합의 방식 사용, 보완과 랜덤성을 보장하기 위해

 

- 논문을 쓰게 된 동기 : 블록체인이 왜 시시한 성과를 내는지 그 근원을 알기 위해서는 블록체인의 micro-architecture 동작을 특징짓는 것이 중요하다.

- 이전 작업의 한계 : 다른 작업량에 같은 방법론을 사용 -> 특히 블록체인과 같은 새로운 작업량에 대해 micro-architecture metrics를 선택할 때 경험이나 직관이 다를 수 있기 때문에 이 방법론은 사람마다 다르거나 모순되는 결론을 내릴 수 있다. 이를 실험하기 위해 2개의 벤치마크에 대한 레이더 맵을 그렸다. 서로 다른 micro-architecture을 가지고 있는 4개의 그룹을 이용했다. First Column은 비슷한 모양을 보여주지만 다른 세 그룹은 서로 다른 모양을 보여준다. 이를 통해 저자는 블록체인을 특성화하고 벤치마킹하기 위해 적절한 평가 지표를 선택하는 것이 중요하다는것을 보여주었다. (레이더 지도의 축 이외의 이름은 micro-architecture metrics의 약어이다.)

- Fuzzy logic : a system of logic in which statements do not have to be entirely true or false

III. BBS Methodology

BBS의 5가지 구성요소

- Data Collection

현대의 프로세서는 4-8개의 성능 카운터를 가지고 있지만 수집해야 할 것은 수백개의 micro-architecture events, 이를 수집하기 위한 2가지 방법이 있다.

1. OCOE : 한 카운터는 프로그램 실행동안 동일한 이벤트만 수집한다.

              정확하지만 느림

2. MLPX(multiplexing) : 한 카운터가 프로그램 실행동안 여러 이벤트를 수집한다.

                               빠르지만 부정확함

이 논문에서는 효율성보단 정확도가 더 중요하므로 OCOE 접근방식을 선택

 

- Machine Learning

머신러닝 알고리즘인 Stochastic Gradient Boosted Regression Tree (SGBRT)를 사용해서 퍼포먼스 모델을 훈련시킨다.

모든 벤치마크를 위한 이벤트 중요성을 수량화하기 위해 가장 정확한 모델을 사용해야 하는데 이를 위해 랜덤으로 트레이닝 셋을 뽑아 5번 반복한다.

 

- Fuzzy set theory

위의 방식으로 각각의 벤치마크의 이벤트 중요도 순위를 내림차순으로 취득했지만 여전히 언제 그 이벤트들이 중요해지는지 임계점을 결정하기 어렵다. 이를 해결하기 위해 fuzzy set theory를 적용한다.

논문의 목표는 블록체인의 성능에 관한 중요한 마이크로 아키텍처 이벤트의 집합을 나타내는 퍼지 집합 A를 찾는 것이다. A에 대한 각 이벤트의 멤버십 정도는 그림 5에 표시된 4단계로 구성된 멤버십 함수에 의해 구해진다.

첫 번째로 SGBRT 모델을 이용해서 이벤트 중요성을 계산한다.

Error weight function : construct a reduction function

Event weight function : an increment function

멤버십 함수를 돌린 후 임계값보다 높은 점수를 선택하여 중요도 벡터를 만든다. 이 때, 중요도 벡터는 단일 벤치마크가 아니라 실험한 모든 벤치마크에 대한 것이다.

 

- Correlation Analysis

지금까지 뽑은 n개의 중요한 마이크로 아키텍쳐 이벤트들을 확인했지만 이러한 이벤트들을 쉽게 성능 향상을 위해 조절할 수 없다. 따라서 특성화의 사용을 입증하기 위해 먼저 n개의 중요한 이벤트와 k개의 구성 파라미터를 선택하여 관계를 식별한다. 그 후 중요한 마이크로아키텍처와 밀접하게 관련되어 있는 구성 파라미터를 조정한다. (이를 통해 대폭적인 성능 향상이 기대할 수 있다.) 이러한 중요한 이벤트 값은 매번 1개의 설정 파라미터만 변경하여 수집한 후 다른 파라미터로 변경하여 이 과정을 반복한다. 이 때의 이벤트 값은 블록체인 프로그램을 한 번 실행한 것의 평균값이다.

 

Pearson 계수 상관 관계(PCC)를 사용하여 이벤트와 구성 매개 변수 간의 상관 관계를 정량화 한다. PCC는 두 변수 사이의 선형 상관관계를 측정하기 위해 광범위하게 채택되며, [-1,1] 사이의 값을 가지고 -1은 음의 선형 상관과 1은 양의 선형 상관을 나타낸다.

 

PCC를 통해 중요한 이벤트에 가장 관련된 구성 인자를 밝혀낼 수 있고 이러한 인자들은 성능에 크게 영향을 미칠 수 있다. 따라서 이들을 조정하는 것은 블록체인 프로그램의 성능을 크게 향상시켜줄 수 있다.

 

- Similarity Analysis

경험에 기초하여 직관적으로 선택된 메트릭을 사용하는 기존의 워크로드 유사도 분석과 달리 BBS는 중요한 마이크로 아키텍처 수준 메트릭으로 구성된 중요도 벡터를 활용하여 벤치마크 간의 유사도를 측정합니다. 또한, BBS는 유사성 매트릭스와 비교와 스크리닝을 실행하기 위한 레이더 맵을 구축한다. 분석 결과는 유사성이 높은 불필요한 블록체인 벤치마크를 제거하기 위해 사용할 수 있습니다.

 

다음으로 중요도 벡터 기반의 레이더 맵을 구축하는 방법을 설명합니다.

첫째, 수집된 데이터는 일반적으로 값이 크고 단위가 다르기 때문에 유사성 분석 전에 중요도 벡터의 메트릭을 정규화한다.

둘째, 선택된 이벤트에 대해 정규화된 값에 따라 유사성 레이더 맵을 그린다.

(정점 m1 - m10은 사건 이름이며, 그 값은 중심과 정점 사이에서 정규화된다. 레이더 맵의 정점 수는 중요도 벡터의 이벤트 수와 시각화의 편의성 모두에 의해 결정되고(섹션 V 참조). 다양한 벤치마크의 레이더 그래프 모양을 비교함으로써 서로 다른 벤치마크 간의 유사성을 편리하게 관찰할 수 있다. 다음으로 벤치마크 유사도 매트릭스를 정의한다. 이 매트릭스는 선택한 벤치마크의 유사도를 나타내며 시각화할 수 있다. 유사도 행렬은 두 개의 벤치마크를 나타내는 두 개의 중요도 벡터 사이의 유클리드 거리에 기초한다.)

V. Results and analysis

- 17개의 블록체인 프로그램에 대해 BBS를 사용하여 마이크로 아키텍처 특성화를 수행하고 얻은 5개의 흥미로운 결과

(1) '명령 큐 풀'과 관련된 이벤트는 블록체인에 대해 전혀 중요하지 않지만 이러한 이벤트는 클라우드 컴퓨팅과 빅데이터 프로그램에서 매우 중요하다.
- 클라우드 컴퓨팅이나 빅데이터 프로그램에 비해 블록체인 프로그램의 병렬 작업 수가 훨씬 적기 때문이다. 또한 블록체인의 PoW와 같은 단일 태스크의 실행 시간은 클라우드 컴퓨팅 태스크의 실행 시간보다 길다.

 

(2) 클라우드 컴퓨팅 프로그램에 대해 one-three SMI(상당히 더 중요한) 법칙은 블록체인에 적용되지 않는다.

 

(3) 블록체인 프로그램의 입력 데이터가 이벤트 중요도에 크게 영향을 미친다.

- 동일한 블록체인 프로그램에 대한 입력 데이터마다 이벤트 중요도 순서가 다르다. 예를 들어 벤치마크 분석의 입력 q1에서 가장 중요한 이벤트는 CA1P(cycles with pending L1 data cache miss loads)이며, 같은 프로그램의 입력 q2 및 q3은 각각 CAS1(execution stalls due to L1 data cache miss loads)과 LPMP((increments the number of outstanding L1D misses every cycle)이다.

- 블록 체인 프로그램마다 이벤트 중요도 순서가 다르다. 예를 들어 Fabric Simple에서 가장 중요한 이벤트는 BIOT(counts the number of not taken branches retired))이며 Fabric drm의 이벤트는 LT2W(L2 writebacks that access L2 cache)이다.

 

(4) branch 관련 마이크로 아키텍처 이벤트는 대부분의 블록체인에 가장 중요한 이벤트이다.

 

(5) 블록 체인 프레임워크마다 마이크로 아키텍처 이벤트 중요도 순서가 다르다.

- 예를 들어, Etherinum은 명령 길이 디코더와 L1 데이터 캐시 미스에서 더 중요하며 Fabric은 L2 캐시 액세스, ITLB 미스, DTLB 미스 메트릭에서 더 중요하다. Sawtooth는 디스패치된 Uops 및 프라이빗 오프코어 요청 큐 점유율이 더 중요합니다. 따라서 시장이 충분히 넓으면 설계자는 블록체인 프레임워크의 특성에 맞게 CPU를 커스터마이즈징할 수 있다.

VI. RELATED WORK

Ethereum, Parity, Hyperledger Fabric은 Blockbench에 있는 벤치마크들을 사용해서 평가되었다.

하지만 Hyperledger Caliper는 시스템 레벨의 성능을 측정하기 위해 미리 정의된 사용 케이스들을 가지고 있는 다른 블록체인 벤치마크가 적합하다.

 

- 이전 연구들과 BBS와의 차이점

  • BBS는 micro-architecture 레벨에서 블록체인을 특징화한다. (not system level)
  • 시스템 성능을 이해하는데 도움을 주는 중요한 이벤트들을 사용해서 블록체인을 평가하기 위한 체계적인 방법을 사용한다.
  • 불필요한 프로그램들을 제거하기 위해 중요도 벡터를 사용해 벤치마크끼리 유사도 분석을 할 수 있다.
  • micro-architecture 레벨 특징들에 기반해 환경 설정을 변경함으로써 성능을 최적한다.

VII. CONCLUSIONS

BBS를 통해

• 특성화 결과를 활용하여 Fabric Smallbank의 throughput을 70% 향상시키고 트랜잭션 지연을 55% 단축했다.

• Blockbench와 Caliper의 벤치마크 7개 중 3개와 6개 중 2개는 각각 중복된다는 것을 알아냈다.

 

728x90
반응형