블록체인 기술을 신뢰할 좋은 이유가 없다

학습 차원에서 틈틈히 해외 블록체인 전문가들이 블로그나 책에서 쓴 글을 정리하고 있습니다. 이번 포스팅도 그중 하나고요.  거칠고 오역된 부분이 있을 수 있습니다. 제대로 번역되지 않은 부분은 확인주시면 반영토록 하겠습니다. 이번 글은 사이버 보안 전문가인 브루스 슈나이어가 IT매거진 와이어드에 기고한 글을 번역한 것입니다.

익명의 사토시 나카모토는 처음으로 비트코인을 제안한 2008 백서를 다음과 같이 마무리했다. "신뢰에 의존하지 않는 전자거래를 위한 한 시스템을 제안했다."

그는 비트코인 암호화폐 뒤에 있는 기술로 블록체인을 언급했다. 신뢰의 우회는 대단한 약속이지만 사실은 아니다. 맞다. 비트코인은 신용카드 같은 다른 결제 시스템의 고유한 속성인, 신뢰할 수 있는 특정 중개인을 제거한다. 그러나 당신은 여전히 비트코인과 그것에 대한 모든 것을 신뢰해야 한다.

블록체인이 어떻게 신뢰를 대체하고 바꾸고 제거하는지에 대한 쓰인 내용들이 많다. 그러나 당신이 블록체인과 신뢰를 분석할 때 가치 보다 많은 과장이 있다는 것을 깨닫는다. 블록체인 솔루션은 종종 그것이 대체하려는 것보다 훨씬 최악이다.

우선 블록체인에 대해 나는 퍼블릭 블록체인을 구성하는 프로토콜과 데이터 구조들에 초점을 맞춘다는 점을 밝혀둔다. 이들은 3개의 필수적인 요소를 갖고 있다.

첫번째는 분산(다중 복제로서) 그리고 중앙화된(거기에는 유일하게 하나가 있다는 의미로서) 원장이다. 이것은 일어난것을 순서대로 저장하는 방법이다.  이 원장은 공개돼 있다. 이것은 누구나 읽을 수 있고, 과거에 일어난 것을 바꿀 수 없다는 것을 의미한다.

두번째 요소는 합의 알고리즘이다. 합의 알고리즘은 원장에 있는 모든 복사본이 같다는 것을 보장하는 방법이다.

이것은 일반적으로 채굴로 불리운다. 이 시스템에서 결정적인 부분은 누구나 참여할 수 있다는 것이다. 이것은 또한 분산화된다. 합의 네트워크에서 어떤 노드를 신뢰할 필요가 없다. 이것은 또한 매우 비쌀 수 있다. 데이터를 저장하는 스토리지와 그것을 유지하기 위해 필요한 에너지 측면에서 모두 그렇다. 비트코인은 지금까지 세계에서 볼 수 있는 것들 중 가장 비싼 합의 알고리즘을 갖고 있다.

마지막 3번째 요소는 화폐다. 이것은 디지털 토큰의 일종이다. 가치가 있고 공개 거래된다. 화폐는 블록체인에서 인센티브를 체계화하기위해 필수적인 요소다.

프라이빗 블록체인에 대해서는 관심이 없다. 나는 프라이빗 블록체인은 위에 언급한 3개 요소 없이 블록체인 데이터 구조를 쓰는 시스템으로 보고 있다. 일반적으로 프라이빗 블록체인은 블록체인에서 누가 상호 작용할 수 있는지와 기능에서 외부 제한이 있다. 새로운 것은 없다. 프라이빗 블록체인은 분산된 첨부 전용 데이터 구조다. 개인들이 추가되려면 허가를 필요로 한다.

분산된 시스템에서 합의 프로토콜은 은 60년 넘게 연구돼왔다. 첨부전용 데이터 구조도 비슷하게 잘 다뤄졌다. 내가 말할 수 있는 블록체인은 그저 이름 뿐이다. 그것을 운영하는 유일한 이유는 블록체인 하이프에 올라타기 위해서다.

퍼블릭 블록체인의 3개 요소들은 단일 네트워크에서 맞물려 돌아가고 새로운 보안 속성을 제공한다.  질문은 그것에 어떤 것에도 좋은 것인가? 이다. 그것은 모두 신뢰의 문제다.

신뢰는 사회에 필수적이다. 종으로서 인간은, 서로 신뢰로 연결된다. 사회는 신뢰 없이는 기능하지 않는다. 그것에 대해 생각조차도 하지 않는다는 건 신뢰가 얼마나 잘 돌아가는지 보여주는 지표다.

신뢰라는 말은 많은 의미를 담고 있다. 거기에는 개인적이고 친말한 신뢰가 있다. 우리가 친구를 신뢰한다고 말할 때 그것은 우리가 그들의 의도를 믿는다는 것을 의미한다. 그리고 그들의 의도가 그들의 행동에 대해 알려준다는 것을 안다. 덜 친밀하고 덜 개인적인 신뢰도 있다. 우리는 누군가를 개인적으로 모를 수 있다. 그들의 동기를 모르더라도 그들의 미래 행동을 신뢰할 수도 있다. 블록체인은 이같은 종류의 신뢰를 가능케 한다. 예를 들어 우리는 비트코인 채굴자들에 대해 모른다. 그래도 우리는 그들이 채굴 프로토콜ㄹ을 따르고 전체 시스템이 돌아가게 할 것이라고 신뢰한다.

대부분의 블록체인 애호가들은 이상하게도 신뢰에 대해 협소한 정의를 갖고 있다. 그들은 우리가 믿는 코드(in code we trust), 우리가 믿는 수학(in math we trust), 우리가 믿는 크립토(in crypto we trust)라는 캐치 프레이즈를 좋아한다. 이것은 검증(verification)으로서의 신뢰다. 그러나 검증이 신뢰와 같은 말은 아니다.

2012년 신뢰와 보안에 대해 다룬 책 라이어 앤 아웃라이어(Liars and Outliers)에서 다는 우리 종의 신뢰 행동을 인센티브화하기 위해 사용하는 매우 일반적인 시스템 4가지를 소개했다.

 첫번째 2개는 도덕과 명성이다. 이것들은 특정 인구 규모에서만 확장할 수 있다. 원시 시스템에선 작은 커뮤니케이션 충분하지만 대형 커뮤니티는 위임과 보다 많은 형식주의를 필요로 한다.

세번째는 제도다. 제도는 사람들이 그룹 표준에 따르도록 유도하고 그렇게 하지 않으면 재재를 부과하는 법과 룰을 갖고 있다. 그렇게 하지 않은 이들에게는 재재를 부과한다. 어떤 측면에서 법은 명성을 공식화한다.

마지막 네번째는 보안 시스템이다. 도어락과 담장, 알람 시스템, 경비, 포렌식, 감사 시스템 등 우리가 사용하는 다양한 종류의 보안 기술들이 나와 있다.

이들 4개 요소는 함께 작동해 신뢰를 가능케 한다. 뱅킹을 예로 들어보자. 금융 기관, 상인들, 개인들은 모두 그들의 명성에 대해 걱정한다. 이것은 도난과 사기을 막아준다. 뱅킹의 모든 측면들을 둘러싼 법과 규제는 모든 사람들을 따르게 한다. 사기의 경우 리스크를 제한하도록 하는 지원 시스템을 포함하고 있다. 위조 방지부터 인터넷 보안까지 많은 보안 기술들이 있다.

케빈 웨르바흐는 2018년에 내놓은 책 '블록체인과 새로운 신뢰 아키텍처'에서 4개의 다른 신뢰 아키텍처에 초점을 맞췄다. 첫번째는 P2P 신뢰다. 이것은 기본적으로 내가 말한 도덕과 명성 시스템에 대응하는 부분이다. 사람들을 서로 신뢰하게 하는 한쌍이다. 두번째는 레비아단(leviathan: 거대하고 강력하다는 의미)  개념의 신뢰다. 이것은 제도적인 신뢰에 부합한다. 이같은 신뢰는 우리의 계약 시스템들에서 볼 수 있다. 이것은 서로 신뢰하지 않은 당사자들이 서로 합의에 이르게 한다. 정보 시스템이 분쟁을 해결하는데 도움이 될 것이라고 신뢰하기 때문이다. 

웨르바흐가 말한  세번째 신뢰는 중개다. 신용카드 시스템이 대표적인 사례다. 신용카드 시스템은 신뢰하지 않은 구매자와 판매자를 상거래에 이르게 한다. 

네번째 신뢰 아키텍처는 분산화된 신뢰다. 이것은 특히 블록체인 같은 보안 시스템에서 새로 등장하는 신뢰다.

블록체인이 하는건 사람과 제도의 신뢰 일부를 기술의 신뢰로 바꾸는 것이다. 여기에선 암호기술, 프로토콜, 소프트웨어, 컴퓨터와 네트워크를 신뢰할 필요가 있다. 당신은 그것들을 절대적으로 신뢰할 필요가 있다. 이것들은 종종 단일 실패 지점(single points of failure)이기 때문이다.

블록체인에선 신뢰가 잘못됐다는 것이 밝혀졌을 때 돌아갈 수 없다. 비트코인 거래소가 해킹당하면 모든 돈을 날린다. 당신의 비트코인 지갑이 해킹당해도, 로그인 자격을 상실해도 마찬가지다. 모든 돈을 잃게 된다. 당신의 스마트 컨트랙트 코드에 버그가 있어도 모든 돈을 잃게 된다. 누군가 성공적으로 블록체인 보안을 해킹하면, 당신은 돈을 날리게 된다.

많은 측면에서 신뢰 기술은, 사람들을 신뢰하는 것보다 어려운 일이다.인간으로 이뤄진 법률 시스템을 신뢰할 것인가 아니면 감사할 전문성이 없는 컴퓨터 코드의 구체적인 내용들을 믿을 것인가?

블록체인 애호가들은 많은 전통적인 신뢰의 형태를 문제로 지적한다. 은행 처리 요금이 비싸다고 하는 것도 그 중 하나다.  블록체인의 신뢰 또한 비싸다. 비용이 감춰져 있을 뿐이다. 비트코인 관점에서 보면 새 비트코인 채굴, 거래 요금, 많은 환경 낭비에 관련한 비용이 있다.

블록체인은 사람의 제도를 신뢰할 필요를 제거하지 않는다. 기술만으로 해결할 수 없는 차이가 항상 존재한다. 사람들은 여전히 책임질 필요가 있다. 시스템 밖의 거버넌스를 위한 필요는 항상 존재한다.

이것은 명백히 비트코인 블록크기를 바꾸는 것에 대해, 그리고 이더리움 DAO 공격을 수정하는 것에 대해 현재 진행되는 논쟁이다. 룰보다 우위에 있는 것에 대한 필요는 항상 있다. 영구적인 룰을 바꿀 수 있는 능력도 항상 필요로 한다. 하드포크 가능성이 있는한, 사람들은 책임을 질 필요가 있다. 하드포크는 사람들이 블록체인 시스템 밖에서 책임을 져야 하는 순간이다.

어떤 블록체인 시스템도, 보다 전통적인 다른 시스템들과 공존해야 할 것이다.  뱅킹을 예로 들어 보자.  뱅킹은 철회 가능하게 디자인됐지만 비트코인은 그렇지 않다. 이것은 서로를 호환되기 어렵게 한다. 그리고 종종 불안정한 결과들이 만들어진다. 스티브 워즈니악도 이것을 잊었기 때문에 70만달러에 달하는 비트코인을 잃어버렸다.

블록체인 기술은 종종 중앙화된다. 비트코인은 이론적으로 분산된 신뢰에 기반하고 있지만, 실제로는 사실이 아니다. 비트코인을 사용하는 모든 사람들은 사용 가능한 몇가지 기갑들 중 하나를 신뢰해야 한다.그리고 몇가지 거래소들 중 하나를 사용해야 한다. 사람들은 모든 것이 돌아가는 소프트웨어와 운용체제와 커퓨터들을 신뢰해야 한다. 우리는 지갑과 거래소들을 겨냥한 공격을 지켜보왔다. 트로이목마와 피싱, 패스워드 추측을 보고 있다. 범죄자들은 사람들이 스마트폰을 고치지기 위해 사용하는 것에 있는 결점도 비트코인을 훔치기 위해 사용한다.

더구나 어떤 분산된 신뢰 시스템에서도  다시 들어갈 수 있는 중앙화용 백도어 방법이 있다. 비트코인에선 몇몇 채굴자들이 있다. 그리고 비트코인에 대부분의 마이닝 하드웨어를 공급하는 한 회사가 있고 또, 몇몇 지배적인 거래소들이 있다. 

비트코인과 상호 작용하는 이들은 이들 중앙화된 시스템을 거친다. 이것은 블록체인 기반 시스템들에 대해 공격도 가능케 한다.

이들 이슈는 현재 블록체인 애플리케이션에 있는 버그가 아니라 블록체인이 작동하는 고유한 특성이다.

어떤 시스템의 보안을 평가하려면 소시오-테크니컬(socio-technical)시스템을 고려해야 한다. 너무 많은 블록체인 애호가들은, 기술에 초점을 맞추고 나머지를 무시한다.

비트코인을 쓰지 않는 이들 측면에서 보자. 이렇게 하는건 이들이 비트코인을 신뢰하지 않기 때문이다. 암호학이나 프로토콜과는 상관이 없다. 사실, 프라이빗키를 분실하거나 악성코드를 다운받는다면 당신 인생의 저축을 날려버릴 수 있는 시스템은 특히 믿을 수 없다. 아무리 SHA-256가 이중지불을 막는다고 설명해도 소용이 없을 것이다.

이와 유사하게 사람들이 블록체인을 사용하는 것은 이것은 그들이 그것을 신뢰하기 때문이다. 사람들은 명성에 기반해 비트코인을 소유하거나 소유하지 않는다.  비트코인을 간단하게 소유하는 투기꾼들에게도 마찬가지다. 투기꾼들은 비트코인이 자신을 빨리 부자로 만들어줄 것이라고 생각한다.

사람들은 평판에 기반해 그들의 암호화폐용 지갑을 선택하고 거래를 할 수 있는 거래소를 선택한다. 우리는 블록체인을 떠받치는 알고리즘의 평판에 기반해 암호 기술을 평가하고 신뢰한다.

이게 어떻게 실패하는지 보려면, 블록체인을 사용하는 다양한 공급망 보안 시스템을 보라.  여기에서 블록체인은 필수적인 기능이 아니다. 이게 성공적인 건 모든 사람들이 데이터를 입력할 수 있는 단일한 소프트웨어 플랫폼이 있기 때문이다. 블록체인 시스템이 탈중앙화된 신뢰에 기반한다고 해도 사람들은 반드시 그것을 받아들이는 것은 아니다. 예를 들면 일부 회사들은 IBM/머스크 시스템을 신뢰하지 않는다. 그것은 그들의 블록체인이 아니기 때문이다.

불합리하다고? 그럴수 있겠으나, 이게 신뢰가 움직이는 방식이다. 신뢰는 알고리즘이나 프로토콜에 의해 대체될 수 없다. 신뢰는 보다 사회적인 것이다.

여전히, 블록체인이 신뢰의 필요성을 제거할 수 있는 아이디어는 계속 유지되고 있다. 최근 나는 어떤 회사로부터 이메일을 한통 받았다. 블록체인을 사용해 보안 메시징을 구현한 회사가 보낸 메일이었다.

회사측은 이메일을 통해 블록체인을 사용했기 때문에 신뢰의 필요성을 제거했다고 설명했다. 이 문장은 글쓴이가, 블록체인이 무엇을 하고, 신뢰가 어떻게 작동하는지를 오해하고 있음을 보여준다.

퍼블릭 블록체인이 필요한가? 대답은 거의 확실히 '아니다'(no)이다. 블록체인은 당신이 푼다고 생각하는 보안 문제를 풀 수 없다. 블록체인이 푸는 보안 문제들은 아마도 당신이 갖고 있지 않은 것들이다. 감사 데이터를 조작하는 것은 당신에게 중요한 보안 위험이 아니다.

블록체인에서 가짜 신뢰는 스스로 보안 리스크가 될 수 있다. 비효율성, 특히 확장성은 그만한 가치가 없다. 많은 블록체인 애플리케이션을 살펴 봤는데, 모두 블록체인을 사용하지 않고 동일한 보안 속성을 달성할 수 있는 것들이었다. 물론 그것들은 멋진 이름은 없었다.

솔직히 암호화폐는 쓸모가 없다. 그것은 단지 투기꾼들이 빠르게 부를 찾기 위해 사용한다. 법정 화폐를 좋아하지 않는 사람들, 돈을 교환하기 위해 블랙마켓을 원하는 범죄자자들이 찾는다.

블록체인이 필요한지에 대한 질문에 대답하기 위해 스스로에게 물어보라.

 블록체인은 신뢰 시스템을 의미있는 방법으로 바꿀 것인가? 아니면 그것을 그냥 돌리는건가? 검증으로 신뢰를 대체하려 하는것인가? 기존 신뢰 관계를 강화하는것인가, 아니면 그것에 대항하려고 하는것인가? 신뢰가 어떻게 새로운 시스템에서 잘못 사용될 수 있는가, 기존 시스템에서 잠재적으로 남용할 때보다 좋은가 나쁜가? 마지막으로 당신의 시스템은 블록체인을 전혀 쓰지 않았다면 어떻게 보였을까?

스스로 이같은 질문을 한다면 퍼블릭 블록체인을 사용하지 않는 솔루션을 선택할 것이다. 이것은 하이프가 소멸했을 때 좋은일이 될 것이다.

 책과 디지털 공간에서 곱씹어볼만한 오피니언을 정리하고 있습니다.

테크잇 뉴스레터를 전해드립니다!

오피니언 기반 테크 블로그 'TechIt'
테크 비즈니스를 보는 다양한 통찰들을 이메일로 간편하게 받아 볼 수 있습니다.

About the author

endgame
endgame

테크 블로거 / 공유할만한 글로벌 테크 소식들 틈틈히 전달하겠습니다

No more pages to load


TechIT

테크 비즈니스를 보는 다양한 통찰 '테크잇'

독자 여러분들께서 좋은 의견이나 문의 사항이 있으시면 아래 양식에 따라 문의 주시기 바랍니다.

Contact