"클레이튼 13시간 장애, 합의알고리즘 구현 문제"

"합의알고리즘 개선 및 합의지연상황 억제로 재발 방지할 것"

컴퓨팅입력 :2020/04/06 10:42    수정: 2020/04/07 08:58

카카오 블록체인 자회사 그라운드X가 지난달 29일 발생한 클레이튼 블록체인 장애가 현재 합의알고리즘에서 낮은 확률로 발생할 수 있는 '블록 합의 지연' 문제로 확인됐다고 밝혔다. 그라운드X는 장애 재발 방지를 위해 합의알고리즘을 개선하고 합의 지연상황을 억제하는 방안을 강구한다는 계획이다.

그라운드X는 지난 3일 블로그를 통해 29일 발생한 장애원인에 대한 분석과 개선 방안을 공개했다.

그라운드X가 자체 개발 블록체인 클레이튼은 지난 29일 밤 11시30분부터 다음날 낮 12시30분까지 13시간 동안 블록이 생성되지 않는 장애를 일으켰다. 블록체인은 트랜잭션을 블록에 담아 네트워크 전체에 전파하는 방식으로 데이터를 처리하기 때문에, 블록이 생성되지 않으면 네트워크 전체가 먹통이 된다.

한재선 그라운드X 대표가 30일 서울 코엑스에서 열린 카카오 개발자 컨퍼런스에서 클레이튼의 주요 로드맵에 대해 발표하고 있다.

이번 장애로 클레이튼 메인넷 위에서 작동하는 블록체인 서비스들도 거래소에서 토큰 입출금이 정지되는 등 일제히 영향을 받았다.

그라운드X는 이번 장애가 24,002,380번 째 블록의 합의시간이 장시간 지연되는 현상에 따른 것이라고 설명했다. 원래 클레이튼 네트워크는 1초 마다 블록 생성 합의가 이뤄져야 한다.

그라운드X에 따르면 합의 지연은 26개 합의 노드(컨센서스노드·CN) 중 블록 생성자로 선정된 '프로포저'가 네트워크와 통신이 불안정해지면서 시작됐다.

클레이튼은 합의가 한정된 시간 내에 이뤄지지 못하면 다음 합의 과정(라운드 체인지)을 진행하게 설계돼 있다. 이번에도 선정된 프로포저의 통신 문제가 발생하자 라운드 체인지가 진행됐다.

문제가 심화된 건 지연 생성된 블록 합의와 새로운 라운드가 동시에 발생하면서다. 이런 일은 아주 낮은 확률로 발생하는데, CN 그룹이 둘로 나뉘는 현상이 초래한다.

이에 기존 생성된 블록을 담고 있는 그룹1과 새로운 라운드로 블록을 담고 있지 않은 그룹2가 생겨났고, 그룹2에 속한 프로포저가 새로운 블록을 제안하면 그룹1에 속한 CN들이 합의를 거부하는 과정이 반복되면서 장시간 합의가 이뤄지지 않은 것이다.

그라운드X 측은 "이번 블록 합의 지연 상황은 비잔틴장애허용(BFT) 알고리즘의 특성상 합의 시간이 길어진 사례"라며 "현재 알고리즘 및 구현으로는 다시 해당 지연과 같은 상황이 낮은 확률로 발생될 수 있다"고 설명했다.

클레이튼이 채택한 BFT 알고리즘은 안전한 블록 생성을 위해서 합의 노드 3분의 2이상 합의를 얻어야 한다. 이런 특징으로 일부 상황에서 합의 시간이 길어질 수 있다.

문제 해결을 위해 그라운드X는 클레이튼 네트워크 특성을 반영해 합의알고리즘 및 구현을 개선할 계획이다. 그 일환으로 새로운 라운드가 시작될 때 락(블록 담기) 기능과 프로포저 선정 방식 개선을 추진한다.

또, 합의 지연상황이 발생하는 것을 막고 지연시간을 최소화하는 방안도 추가할 계획이다.

관련기사

그라운드X 측은 "블록 생성이 지연되는 경우를 최소화하고 보다 근본적인 원인을 해결하고자"한다며 "

"제시한 개선책을 적용하면 긴 시간 합의 상황을 먼저 인지하고 빠르게 초기 라운드로 합의를 시도함으로써 장시간 블록생성지연을 방지할 수 있을 것"이라고 설명했다.