최근 회고록에 적었던 블록체인에 대한 생각 모음

jeff lee
9 min readMar 17, 2022

--

블록체인과 데이터베이스의 미래

최근 재미있는 글을 읽어서 느낀 점을 적어본다.

블록체인 어플리케이션은 기본적으로 ‘불편’하다. 초당 수십만, 수백만건의 데이터를 처리하고 수집하는 ‘빅데이터’의 시대에 살고 있지만, 혁신기술이라고 소개되는 블록체인은 정작 훨씬 적은 데이터밖에 처리하지 못한다.

데이터를 읽어오는 것도 느려서, 데이터를 캐싱하고 인덱싱해주는 데이터베이스 노드를 곁들여야만 정상적인 서비스를 할 수 있다. 최근 솔라나 등 많은 데이터를 처리해줄 수 있는 네트워크가 등장하고 있지만, 어디까지나 (아직까지는) 보안성을 희생해서 이룬 성과라는 단점이 있다. 비트코인 네트워크는 1초에 6건의 처리, ‘월드 컴퓨터’를 표방하는 이더리움 네트워크는 초당 15건의 트랜잭션밖에 처리하지 못한다.유저 입장에서도 마찬가지이다.

블록체인 네트워크를 이용하려는 유저는 중요한 정보를 본인이 보관해야 한다. 모든걸 다 잃어버려도 신분증만 가지고 있으면 내 돈을 돌려주는 은행과는 달리, 암호화폐 지갑의 시드 문구를 잃어버리면 영영 자산을 되찾을 수 없다. 시드 문구를 잃어버린 사람의 자산은 블록체인을 만든 사람도, 미국 대통령도 복구해줄 수 없다. 오죽하면 수천억의 비트코인의 시드 문구가 담긴 하드디스크가 매립지에 매장되어 있으니, 이걸 파게 해주면 수백억을 주겠다는 억만장자도 있을까.

그러나 최근에 재미있는 관점으로 블록체인 데이터베이스를 서술한 글을 읽었다. 이 ‘불편함’을 감수하더라도, 블록체인 데이터베이스가 장기적으로 다른 데이터베이스를 대체할 것이라는 주장의 글이었다.

이유는 ‘보안성’ 때문이다.전통적인 어플리케이션의 구현에서 보안은 최우선 설계 고려대상이 아니었다. 기능을 구현한 후, 보안성을 높이기 위한 방식으로 구현되어 왔다. 1세대 웹 개발자들은 사용자와 서버간의 통신이 보안의 핵심이라 생각해서 SSL, HTTPS와 같은 통신 암호화 보안 기술을 개발했다.

그러나 해커들은 보안을 뚫고 데이터베이스에 접근했고, 또 다른 보안장치를 마련하기 위해 개발자들은 사용자의 패스워드와 개인정보를 해시 함수를 통해 암호화했다.

기업들은 자신들의 시스템을 외부의 공격으로부터 보호하기 위해 큰 비용과 노력을 들이고 있지만, 그럼에도 불구하고 개인정보가 유출되었다, 자금이 갈취되었다는 사례는 심심치 않게 들려온다. 심지어 사건들의 규모도 결코 작지 않다.

블록체인 데이터베이스를 사용하지 않은 시스템의 단점 중 하나는, 내부자의 소행으로부터도 결코 자유롭지 않다는 점이다.

유저들은 운영 주체를 믿고 개인정보와 자산을 넘긴다. 이는 기본적으로 서비스 운영자들이 서비스를 악의적으로 운영하지 않다는 것을 가정한 것이다.
여태까지는 ‘유저’가 자산이고, 비즈니스 모델의 핵심인 사업들이 주류였다. 그렇기에 운영 주체가 악의적인 행동을 하지 않을 것이라는 믿음은 합리적인 믿음일 수 있었다.

그러나 점차 데이터가 자산이 되는 시대가 오고 있다. 대표적인 케이스가 암호화폐다. 불과 5년 전까지만 해도 인터넷에 있는 모든 데이터는 ‘자산’으로 취급하기엔 너무나 사소한 것들이었다. 그러나 블록체인 기술의 등장은 데이터를 사유화 할 수 있게 만들었고, 운영 주체가 악의적으로 행동하지 않을 것이라는 믿음은 예전같지 않다.

이외에도 유전정보에 대한 데이터, 의료 데이터, 사용자의 인터넷에서의 활동 내역 등 다양한 데이터가 자산으로 취급될 수 있는 시대에서는 더이상 운영 주체가 무결할 것이라고 일편단심 믿을 수 없다.

그러나 블록체인 시스템은 보안이 뛰어나고, 데이터가 무결하며, 투명하다. 또한 블록체인 시스템은 deterministic하다. 이는 매우 중요한 feature인데, deterministic하기 때문에 제3자에 의한 보안 감사가 가능하기 때문이다.

deterministic한 시스템이란 동일한 입력으로 동일한 로직을 실행했을 때, 동일한 결과가 나오는 시스템을 의미한다. 유저가 생성한 액션(transaction)을 모두 모아 절대적인 순서와 액션을 블록체인 시스템에 적용하게 되면, 네트워크의 모든 참여자들이 동일한 블록체인의 상태(state)를 보장할 수 있다. 즉 내부자가 데이터베이스를 위, 변조하려 하더라도 이에 대한 액션이 기록되기에 제3자의 눈을 피할 수 없다.

현재의 대부분의 어플리케이션 시스템에서 deterministic한 시스템을 구현하기는 매우 어렵다. 실행하는 환경의 타임스탬프, 환경변수, 심지어는 하드웨어(CPU)의 종류에 따라 다르게 처리되는 처리결과 등 매우 다양한 변수가 존재하기 때문이다. 따라서 내부에서 조작이 일어나더라도, 이를 역추적해서 어떤 일이 발생했는지 추적하는 것이 매우 어렵다.

또한 블록체인 시스템이 보안이 뛰어난 이유는 패스워드 기반의 인증을 사용하지 않기 때문이다.

패스워드는 편리하다. 그러나 중앙에서 관리되는 시스템이다. 그렇기에 여러 가지 취약점이 존재한다. 패스워드 데이터베이스가 해킹당할 수 있고, 유저가 요청한 패스워드 변경 이메일과 그 서버가 탈취될 수도 있다. 또한 세션이나 토큰을 탈취할 수도 있다. 다양한 서비스에서 이러한 모든 고려사항을 설계하기 위해 많은 비용을 들인다.

블록체인 시스템에서 사용자 인증은 사용자의 로컬 시스템에서 관리되는 key를 바탕으로 이루어진다. 따라서 시스템 입장에서는 패스워드에 대한 위험을 현저하게 줄일 수 있다.

나는 블록체인 시스템이 모든 데이터베이스를 대체할 만큼 뛰어난 것으로 생각하진 않는다. 그러나 결국 둘은 해결하고자 문제가 다른 것임은 분명하다.

최근 웹2와 웹3를 비교하는 글이나 1세대 네트워크인 비트코인, 2세대 이더리움에 이은 3세대 블록체인 네트워크를 비교하는 글이 자주 보인다. 이런 글들을 읽고 빠지기 쉬운 오해 중 하나는, 기존의 레거시 기술들이 ‘문제가 있다’라고 생각하게 되는 것이다.

그러나 비트코인과 이더리움, 솔라나, 테라 등 다양한 블록체인이 해결하고자 하는 문제는 다르고, 마찬가지로 두 데이터베이스가 해결하고자 하는 문제가 다르다. 그렇기에 서로 이점과 불편함이 다르다고 생각한다.

평소 데이터베이스 관점에서 블록체인을 깊게 생각해보지 않았으나, 글의 저자 덕분에 추상적이던 생각을 구체적으로 정리할 수 있어서 좋았다.

개발 생태계

개발 생태계는 개발자에게 있어서 너무나도 중요하다. 좋은 생태계는 높은 개발 생산성을 이끌어 낼 수 있기 때문이다. 잘 갖추어져 있고, 익숙한 환경을 버리고 갈 만큼의 메리트가 있지 않는 이상, 불모지와 같은 환경에서 일하고 싶어 하는 개발자는 없을 것이다.

이더리움 개발 환경은 블록체인 업계에서 단언컨대 압도적이라고 할 수 있을 만큼 좋은 생태계를 갖추고 있다. 기반이 되는 여러 라이브러리가 존재하고, 이들이 레고 블록처럼 엮여 새로운 개발 도구가 계속 탄생한다. 개발 환경도 편리하고 사람이 많으니 질문과 응답도 활발하게 이루어지고, 신규 개발자를 위한 온보딩 및 튜토리얼도 잘 갖춰져 있다. 결국 선순환 구조가 생기게 된다

최근 새롭게 등장하는 하모니, 아발란체, 팬텀과 같은 곳들은 모두 이더리움 개발 환경을 그대로 사용할 수 있는 생태계를 갖추고 있다.

이더리움 개발 생태계 레버리징의 시작은 바이낸스 스마트 체인이었다. 테라, 솔라나와 달리 이더리움 메인넷의 어플리케이션을 그대로 포크할 수 있다는 장점으로 작년 초 폭발적으로 성장했다. 2018년에 등장했던 여러 메인넷들이 개발자의 부족으로 인해 킬러 앱을 갖추지 못해서 무너진 것과는 대조적이다

이더리움과 독립된 생태계를 갖추고 있음에도 불구하고 성공한 체인은 테라와 솔라나이다. 그러나 이 둘은 이더리움과는 구조적으로 다르며, 구조의 차이에서 오는 체인 자체의 큰 장점으로 인해 성장할 수 있었다.

새로운 기술이 등장하고, 많은 연구가 이루어지며 독자적인 기술을 갖추고 있는 많은 체인들이 탄생하고 있음에도 불구하고, 신흥 강자 체인들 중 아직까지도 이더리움 기반이 많은 이유는 탄탄하게 구축되어 있는 개발 생태계가 큰 몫을 했다고 생각한다. 그만큼 개발 생태계는 체인의 성장에 무척 중요하다.

최근 클레이튼 환경에서 개발할 일이 생겨서 여러 작업을 하고 있다. 그러나 2018년, 야심차게 출발했던 클레이튼이지만 아직 갈 길이 멀다는 것을 느끼고 있다.

클레이튼은 이더리움을 변형해서 만든 체인이다. 팬텀, 하모니, 아발란체 등 많은 다른 체인들이 이미 이러한 방식으로 이더리움을 변형한 체인을 만들어서 서비스를 하고 있고, 순항하고 있다. 그러나 클레이튼이 이들과 다른 행보를 보이는 이유는 폐쇄적인 개발 환경 때문이다.

가장 단적인 예는 지갑 어플리케이션이다. 팬텀, 니어, 등 이더리움 기반의 다른 체인들이 이더리움의 web3재단이 개발한 메타마스크를 사용할 수 있도록 기능을 제공했다. 반면, 클레이튼은 카이카스라는 자체 지갑을 런칭했고, 그 결과 개발자들에게 또 다른 작업을 안겨주게 되었다.똑같은 프론트엔드 페이지임에도 불구하고, 웹사이트에서 메타마스크 대신 카이카스 지갑을 사용할 수 있도록 만들어야 하기 때문에 새로운 진입 장벽과 추가적인 시간이 소요될 수 밖에 없다.

지갑 뿐만이 아니다. 클레이튼은 런칭 당시 개발자에게 필요한 여러 라이브러리를 제공했지만, 자발적으로 발전해나가는 이더리움의 라이브러리와는 다르게 클레이튼의 라이브러리는 클레이튼 재단이 이더리움의 여러 도구를 그대로 따라해서 만들어서 제공했다.

탑다운식의 개발 생태계 구축은 효율적인 조직의 주도 하였다면 빠르게 성장할 수 있었겠지만(마치 페이스북의 리액트처럼), 아쉽게도 클레이튼은 그러지 못했고, 결국 지금의 이더리움 개발 생태계보다 많이 뒤쳐지게 되었다.

클레이튼 입장에서 이러한 생태계를 만든 것도 이해는 간다. 클레이튼이 런칭했을 당시, 다른 많은 메인넷 프로젝트도 이들과 같은 행보를 보였기 때문이다. 자체적으로 지갑을 만들고, 개발자 유입을 위한 자체 SDK를 만드는 것이 그 때 당시에는 당연한 모습이었을 것이다.

그러나 과정이 어찌 되었든, 결과적으로 클레이튼은 다른 이더리움 기반 체인들과 다르게 갈라파고스처럼 독립적인 생태계를 구축하게 되었고, 그 결과 개발자들의 유입이 상당히 더딜 수 밖에 없었다.

물론 클레이튼을 이용하는 한국인들의 유동성이 큰 잠재력을 갖추고 있기 때문에 최근 많은 어플리케이션이 등장하고 있다. 또한 클레이튼 재단에서도 메타마스크를 사용할 수 있도록 하는 등 생태계를 확장하려는 행보를 보이고 있다. 그러나 아직까지도 개발되어야 하는 도구가 많이 필요하다.

그래도 정말 국산이라고 할 수 있는 프로젝트이고, 주변에 일하고 있는 지인들도 많은 만큼 열심히 응원하고, 시간이 나면 오픈소스 기여도 해봐야겠다.

--

--

jeff lee

Blockchain developer, SNU College of Pharmacy, DecipherGlobal