back

검색

[박상현] 블록체인 데이터, 사용 못 하면 무용지물

박상현, 블록체인, 보안, 가용성, 무결성

[박상현의 배(워서) 남주자] 물류ㆍ게임ㆍ결제 등 블록체인의 쓰임새는 날로 늘어가고 있다. 이들 산업에서 블록체인을 환영하는 이유는 블록체인을 통해 데이터의 임의 위ㆍ변조를 방지할 수 있기 때문이다. 이러한 속성을 ‘무결성’이라 한다. 모든 블록체인은 무결성을 보장하기 위해 여러 암호학적 장치를 포함하도록 설계됐다. 덕분에 우리는 기록된 데이터를 신뢰하고 이를 통해 다른 데이터는 물론이고 큰 돈까지 주고받는다. 그러나 아무리 올바른 데이터라 해도 사용하지 못하면 무용지물이다. 블록체인에서도 똑같다. 블록체인에 무결한 데이터가 있어도 접근할 수 없다면 활용할 방도가 없다. 블록체인에 얼마나 접근하고 활용할 수 있는지 여부, 즉 가용성(Availability)이 높아야 한다. 불행하게도 지금까지의 블록체인은 가용성 문제를 잘 다루지 못했다. 가용성이 중요한 이유는 ‘보안’ 가용성은 서비스 및 보안의 관점에서 무시되어선 안될 매우 중요한 요소다. 예를 들어 블록체인에 대한 서비스 거부(Denial-of-Service, DoS), 즉 디도스는 정보 자원에 대한 접근성을 차단해 가용성을 해치는 공격이다. 디도스 공격을 받게 되면 블록체인 네트워크에서 트랜잭션의 개수가 비정상적으로 많아진다. 이로 인해 트랜잭션 체결에 오랜 시간이 소요되거나 심지어 누락될 수 있다. 많은 연산을 요구하는 프로그램의 수행을 반복적으로 요청해 네트워크에 과부하를 줄 수도 있다. 어느 경우든 올바른 트랜잭션 수행을 방해해 가용성 보장을 해친다. 결국, 사용자들은 블록체인의 서비스, 즉 지불 및 스마트 콘트랙트를 이용할 수 없다. 블록 생성자가 악의적으로 블록에 담을 트랜잭션을 검열할 수도 있다. 가령 지분증명(Proof-of-Stake, PoS) 합의 방식을 차용하는 블록체인을 생각해보자. PoS에서는 블록 생성자가 코인을 잠가 합의에 참여하도록 한다. 하지만 블록 생성자가 코인을 잠그는 트랜잭션을 악의적으로 검열해 블록에 포함시키지 않으면 피해자의 지분에 대한 가용성을 보장할 수가 없다. 결국 피해자는 합의에 참여할 수 없고, 블록체인은 중앙화되며 보안이 위협을 받는다. 블록체인 한계 극복하다 가용성 놓친다 블록체인의 한계를 극복하기 위해 제안된 해결책들이 가용성에는 오히려 취약한 경우도 많다. 라이트 클라이언트(light client)의 예를 들어보자. 휴대용 단말기나 사물인터넷 기기(IoT)는 제한된 성능으로 인해 블록체인의 모든 데이터를 다루기 어렵다. 이를 해결하기 위해 트랜잭션은 저장하지 않고, 블록 헤더라는 블록의 메타데이터만을 검증 및 저장하는 라이트 클라이언트 방식이 제안됐다. 만일 악의적인 블록 생성자가 트랜잭션은 유효하지 않지만 블록 헤더가 유효한 블록을 생성하면 어떻게 될까? 라이트 클라이언트들은 블록 헤더만 보고 유효한 블록이라 판단해 이를 수용한다. 악의적인 참여자들은 블록 헤더가 라이트 클라이언트 각자의 로컬 장부에 등록되었을 만큼 충분한 시간이 지난 후에서야 유효하지 않은 트랜잭션들을 전파한다. 그러나 라이트 클라이언트는 트랜잭션 데이터에 대한 가용성이 없기 때문에 이 블록이 사기임을 알 수 없다. 결국, 라이트 클라이언트는 블록체인 보안에 허점이 된다. 무결성뿐 아니라 가용성에도 관심을 다행스럽게도 최근에는 블록체인을 통해 데이터 무결성만이 아닌, 가용성까지도 보장하고자 하는 연구들이 이어지고 있다. 데이터 가용성을 증명할 수 있는 수학적인 기법을 블록체인 설계에서부터 고려하기 시작했다. 지난해 5월 이더리움의 창시자 비탈릭 부테린(Vitalik Buterin)이 교신 저자로 참여한 <사기 및 데이터 가용성 증명> 논문은 가용성 문제를 정의하고, 이를 암호학적으로 해결하고자 했다. 올해 ‘스탠포드 블록체인 컨퍼런스 2020’에서도 가용성 문제를 해결하는 새로운 자료구조(머클 트리)가 제안됐다. 블록체인 개발자 및 관계자들, 이제는 무결성뿐만 아니라 가용성에도 관심을 가질 때다. 박상현 『컴퓨터과학으로 배우는 블록체인 원리와 구현』 저자

조인디 logo
j o i n
d

Article Title

  • J loading image
  • O loading image
  • I loading image
  • N loading image
  • D loading image

RE:CENT