[블록체인] 블록체인 vs. 기존 데이터베이스
블록체인과 기존 데이터베이스의 차이점을 이해하려면 각각의 설계 및 유지 관리 방식을 살펴봐야 합니다.
기존 데이터베이스
기존 데이터베이스는 클라이언트-서버 네트워크 아키텍처를 사용합니다. 여기서 사용자(클라이언트라고 함)는 중앙 서버에 저장된 데이터를 수정할 수 있습니다. 데이터베이스의 통제권은 지정된 관리자에게 있으며, 클라이언트의 자격을 인증한 후 데이터베이스에 접근을 허용합니다. 이 관리자에개 데이터베이스의 관리 책임이 있기 때문에, 관리자의 보안이 뚫리게 되면, 데이터베이스가 변경되거나 삭제될 수도 있습니다.
블록체인 데이터베이스
블록체인 데이터베이스는 여러 개의 노드로 구성되어 분산되어 있습니다. 각 노드가 관리에 참여하는데, 노드 전체가 블록체인에 새로 추가할 사항을 확인해야, 데이터베이스에 새 데이터를 입력할 수 있게 됩니다. 이렇게 블록체인에 추가할 사항은 노드 대부분의 합의가 필요합니다. 이런 합의 메커니즘이 네트워크의 보안을 보장하기 때문에 변경이 어렵습니다.
비트코인의 경우, 채굴(복잡한 해싱 퍼질 해결)에 의해 합의가 이루어지는 반면, 이더리움에서는 합의 메커니즘으로 지분 증명 방식을 이용합니다. 이 두 가지 합의 메커니즘의 차이는 이전 포스팅을 읽어보시기 바랍니다.
무결성 및 투명성
기존 데이터베이스 기술과 구별되는 블록체인 기술의 핵심 특징은 공개 검증 가능성으로, 무결성과 투명성을 보장해 줍니다.
무결성: 모든 사용자는 자신이 검색하고 있는 데이터가 기록된 이후로 변경 또는 손상되지 않았음을 확신할 수 있음.
투명성: 모든 사용자는 과거로부터 블록체인이 어떻게 추가되어 왔는지 확인할 수 있음.
CRUD vs. 읽기 및 쓰기 작업
기존 데이터베이스의 경우, 클라이언트는 데이터 생성(Create), 읽기(Read), 갱신(Update) 및 삭제(Delete)(총칭하여 CRUD 명령이라고 함) 이 네 가지 기능을 수행 할 수 있습니다.
블록체인은 추가만 가능한 구조로 설계되었습니다. 사용자는 블록을 추가하는 방식으로 오직 데이터를 추가할 수만 있습니다. 이전의 모든 데이터는 영구적으로 저장되며, 변경할 수 없습니다. 따라서 블록체인과 관련된 유일한 작업은 다음과 같습니다.
읽기 작업: 블록체인에서 데이터를 쿼리하고 검색함.
쓰기 작업 : 블록체인에 데이터를 추가함.
검증 및 작성
블록체인에서는 두 가지 기능이 가능합니다. 트랜잭션의 유효성 검증과 신규 트랜잭션 작성입니다. 트랜잭션은 블록체인에 있는 데이터의 상태를 변경하는 작업입니다.블록체인 상의 기존 내용은 항상 동일하게 유지되야 하지만, 신규 내용으로 기존 내용의 상태를 변경할 수 있습니다.
예를 들어, 내 비트코인 지갑에 1백만 BTC가 들어있다고 블록체인에 기록되어 있다면, 이 액수는 블록체인에 영구 저장됩니다. 여기서 20만 BTC를 쓰게되면, 이 트랜잭션이 블록체인에 기록되고, 지갑의 액수는 80만 BTC가 됩니다.
하지만 블록체인은 추가만 가능하기 때문에, 트랜잭션 전 액수 1백만 BTC도 블록체인에 영구적으로 남아있게 되고, 보고 싶은 사람은 누구나 볼 수 있게 됩니다. 이것이 바로 블록체인을 종종 영구불변의 분산 원장이라고 부르는 이유입니다.
간단히 말해서, 차이점은 분산 통제 방식
분산 통제 방식은 중앙 집중 통제 방식의 위험을 없애 줍니다. 중앙 집중식 데이터베이스에 접근 권한만 있으면 누구라도 데이터를 파괴하거나 변경할 수 있습니다. 따라서 사용자는 데이터베이스 관리자의 보안 인프라에 의존할 수밖에 없습니다.
블록체인 기술은 분산 데이터 저장 방식을 통해 이런 문제를 사전에 차단하기 때문에, 보안성이 월등합니다.
블록체인 기술은 특정 종류의 정보를 기록하는데 적합하지만, 기존 데이터베이스를 사용하는 것이 더 적합한 정보도 있습니다. 따라서 모든 조직은 어느 방식을 채택하기 이전에 먼저, 자체 데이터베이스에 필요한 것이 무엇인지 이해하고, 각 방식의 장점과 단점을 파악하는 것이 중요합니다.
<출처: Towards Data Science, "Blockchains versus Traditional Databases">
삭제 불가하다는게 섬뜩하기도 함. 스팀 일주일 지나면 수정 삭제 안되는거 보고 깜놀했어요
Wonderful coinkorea
이 내용만 봐서 잘은 모르겠지만, 블록체인 방식의 경우 특정 사용자의 현재 잔액을 알고자 하면 최초 블록부터 현재까지를 전부 스캔해봐야 할 것 같은데, 이게 비트코인처럼 오래 되면 성능상의 문제가 없는지 궁금하네요.
체인이 생성되는 주기보다 하드웨어 혹은 소프트웨어가 극복하는 주기가 더 짧은 건지....
마지막 기록에 잔액이 합계로 표시되는 UTXO라는 방식을 사용합니다. 전체 블록을 탐색하지 않아도 되요.
투명성과 빠른 속도는 블록체인을 빛나게 할 것입니다.
블록체인의 시대는 이제 시작입니다.
좋은 내용 감사합니다.