전통적인 데이터베이스의 특징에 대해서 앞서 살펴봤습니다. 일반적으로 데이터(제 포스팅에서 데이터를 정보라고 표현하기도 했습니다.)를 중앙의 통제하에 운영하는 형태였습니다. 예를 들면, 데이터베이스의 권한이 그 데이터를 만들어낸 기관에게 귀속된다고 할 수 있죠.
그렇기 때문에 그들은 누가 그 정보에 접근할 수 있고 어떤 형태의 접근을 허가할지에 대해 결정할 수 있습니다. 또한, 어떤 정보로 저장할지 혹은 제거할지 그리고 장기적으로 보관할지에 대해서도 결정합니다. 그러나 여기에는 적어도 두 가지 근본적인 결함이 존재합니다.
첫째로, 시스템이 중앙 데이터베이스에 존재하게 된다면, 단일 지점 고장의 결과를 초래 할 수 있습니다. 다른 말로 표현하자면, 중앙 권한이 손상되거나 접근 방법이 노출되었을 때, 이 데이터베이스에 있는 모든 정보가 어떤 방법에 의해서든 위험에 노출되게 됩니다.
둘째로, 모든 권한이 중앙에 주어지기 때문에 생기게 되는데, 일반적으로 문제가 생기지 않습니다. 하지만 예를들어, 누군가가 e커머스 웹사이트를 운영하고 있다고 가정해 봅시다. 그 누군가는 아마도 그 사이트를 컨트롤할 수 있을 텐데, 만약 원한다면, 사이트를 자신의 임의대로 폐쇄 혹은 삭제할 수 있을 겁니다.
중앙 권력이 할 수 있는 것들을 보면, 금전적으로 제한을 걸거나 특별한 능력을 요구함으로서, 정보에 제한 적으로 접근할 수 있도록 통제할 수 있습니다. 더 나아가서, 어떤 사람들이 매매의 유효성을 최종적으로 결정할 수 있도록 만들어 버립니다. 이런 일들은 계약을 성립하는데서 많이 볼 수 있습니다.
두 개체가 인터넷 상에서 계약을 체결한다고 하더라도 하나 혹은 그 이상의 중앙 권한자들에 의해 데이터의 유효성을 검증 받아야 합니다. 담보 대출을 예로 들면, 은행들은 반드시 담보에 유효성을 검증한 뒤 대출을 허가합니다. 권리 대행 회사는 담보가 유효한지 검증합니다. 법률 전문가들은 서명과 계약상의 요구조건이 유효한지 검증합니다. 이런 각각의 중앙 권한자들은 고유의 권한을 가지며, 담보 대출 거래 시 상당한 간접비용을 청구합니다.
데이터베이스 안에서 이러한 거래는 진행하는데 시간이 오래 걸리고, 비용이 들며, 해킹에 취약합니다. 또한, 거래에 관련된 참여를 제한되게 제공하고, 특별한 능력을 요구하지만, 오류는 생기기 쉬웠습니다. 하지만, 현재까지는 그럭저럭 문제가 생기지 않고 지내왔습니다.
블록체인은 앞서 살펴봤던 현재까지의 거의 대부분의 문제점을 해결 할 수 있습니다. 블록체인은 새로운 데이터베이스 기술입니다. 중앙 혹은 탈중앙 데이터베이스로 하나 혹은 더 많은 서버에서 운영하는 것이 아닌, 블록체인은 이 데이터베이스를 사용하는 각각의 사람들의 컴퓨터에 설치됩니다. 실제로, 복제된 같은 데이터베이스가 그 데이터베이스를 이용하는 각각의 사람들의 컴퓨터에 설치되는 것입니다.
중앙 데이터베이스는 데이터베이스가 하나의 서버에 존재하는 것이고, 블록체인을 탈중앙이라고 일컫기도 하는데, 여기서 말하는 탈중앙 데이터베이스는 데이터베이스가 여러 개의 서버에 분산되어 있는 것을 말합니다. 분산된 블록체인 데이터베이스는 사용자의 컴퓨터에 복제되어 네트워크 가지게 되는 것입니다. 그렇기 때문에 데이터베이스 서버가 존재하지 않습니다.
간단히 말해서, 이름과 전화번호를 가진 연락처 데이터베이스를 다시 예를 들어 보겠습니다. 이전 포스팅에서 전통적 구조적 데이터 베이스에 대해서 다뤘는데, 참고 하세요.
연락처 데이터베이스를 만들때 하나의 규칙을 정한다고 해 볼게요. 이 데이터베이스에서는 그 전화번호의 주인만 그 데이터의 수정을 할 수 있다는 규칙을 정했습니다. 이제 이 규칙은 소프트웨어에 적용됐습니다. 만약, 제가 새로운 스마트폰을 구입하고 전화번호가 바뀌었다고 가정하면, 저는 제 연락처를 수정해야 합니다. 먼저, 제 컴퓨터에 저장되어 있는 연락처 데이터베이스를 수정합니다. 그리고, 제 컴퓨터에 저장되어 있는 데이터베이스는 이 수정된 정보(Transaction)를 인터넷에 분산된 네트워크의 각각의 동일한 데이터베이스에 전송합니다. 현시점에서 데이터베이스가 저장된 컴퓨터의 각각의 데이터베이스는 이 Transaction에 동의를 해야 되는데, 전화번호의 주인만 데이터를 수정할 수 있다는 규칙으로 인해서 저는 이 데이터를 수정할 수 있는 권한을 가지고 있기 때문에 이 Transaction은 처리될 수 있습니다.
각각의 분산된 데이터베이스가 오직 전화번호의 주인만 데이터를 수정할 수 있다는 규칙에 대해서 알고 있기 때문에, 모든 데이터베이스가 이 수정에 동의할 수 있었습니다. 수정이 허가 되려면, 네트워크상에서 데이터베이스들이 동의를 이끌어 내야 되는데, 이는 더 나아가 합의에 의한 허가에 대해서 생각해 볼 수도 있습니다. 각각의 데이터베이스들은 저의 새로운 전화번호 정보를 가진 새 블록의 데이터를 데이터베이스에 덧 붙입니다. 허가된 수정 혹은 새로운 데이터는 이 블록에 쌓이게 되고 분산된 데이터베이스들이 같은 데이터를 덧 붙이면서 똑같은 수많은 데이터베이스가 생성됩니다. 이러한 데이터 블록이 쌓이게 되기 때문에 우리는 이를 블록체인이라고 부릅니다.
이제 아주 흥미로운 점을 발견할 수 있는데, 누군가 이 블록체인을 해킹하려고 한다고 가정해 봅시다. 지금까지 쌓여왔던 블록 중 하나를 다른 것으로 바꾸려고 한다면, 다른 데이터베이스들이 이러한 행동을 허락해 주지 않게 됩니다. 모든 데이터베이스가 같은 블록체인을 가지고 있기 때문에 이 분산된 모든 데이터베이스를 해킹하지 않는다면 불가능하게 되는 것이죠.
블록체인에서 블록은 오직 추가 되기만 하고, 지워지지는 않습니다. 모든 수정되는 것들은 고스란히 블록으로 해서 쌓이게 됩니다. 이런 특징을 불변성(immutability)라고 합니다. 다른 말로 풀어보자면, 블록체인은 변하지 않는 데이터베이스라고 할 수 있습니다. (수정할 수는 있지만, 이러한 내용들을 모두 기록한다고 생각하면 더 이해하기 쉽겠네요.) 그래서 블록체인을 금융거래 내역을 작성하는 원장(ledger)으로 표현하기도 합니다.
블록체인은 중앙 권한자가 없습니다. 모든 권한이 전체 네트워크 데이터베이스 이용자에게 분산되어 있습니다. 개인이나 하나의 시스템이 (앞서 예시를 들었던) 제 전화번호 수정을 허가 하거나 거부할 수 없습니다. 권력은 분권화되어 있습니다. 모든 참여 컴퓨터들의 동의가 이뤄져야 합니다. 분산된 데이터베이스들이 제 핸드폰 번호를 수정할 수 있는 사람은 저밖에 없다는 사실을 알고 있기 때문에 해킹으로부터 자유롭습니다. 해킹을 하려면 수백수천만 대의 컴퓨터를 수정해야 합니다. 이러한 사실들이 블록체인에 신뢰를 가져다줍니다.
블록체인의 기본적인 것들을 살펴봤고, 이 블록체인이 전통적인 데이터베이스의 문제점을 어떻게 해결 할 수 있는지에 대해서도 알아봤습니다. 요약해 보자면, 블록체인은 중앙 데이터베이스가 존재하지 않습니다. 블록체인 데이터베이스는 이 데이터베이스를 이용하는 각각의 컴퓨터에 설치됩니다. Transaction은 모든 참여자들의 의해 유효 검증이 되어야 합니다. 해킹에 안전합니다. 처리 비용이 저렴하고, 복잡한 Transaction를 빨리 처리할 수 있습니다.
블록체인을 정확하게 이해 하려면, 비트코인에 대해서 알아야 하는데 다음 포스팅에서 다루겠습니다.
'블록체인' 카테고리의 다른 글
블록체인(blockchain)이란? 블록체인의 잠재적 방해물 (0) | 2021.04.03 |
---|---|
블록체인(blockchain)이란? 블록체인의 미래 (0) | 2021.03.31 |
블록체인(blockchain)이란? 실제로 사용되고 있는 예 (0) | 2021.03.30 |
블록체인(blockchain)이란? 블록체인이 가능하게 할 기회들 (0) | 2021.03.30 |
블록체인(blockchain)이란? 비트코인에서 비롯된 블록체인의 탄생 (0) | 2021.03.28 |
블록체인(Blockchain)이란? 전통적인 데이터베이스의 재고(Rethink) (0) | 2021.03.26 |
블록체인(Blockchain)이란? 인터넷의 리스크와 보안문제 (0) | 2021.03.25 |
블록체인(Blockchain)이란? (0) | 2021.03.25 |
댓글