기존 DB
: 클라이언트-서버 아키텍처
✅ 기존 DB는 관리 권한이 뚫리게 되면 해커 공격에 의한 변경 및 삭제 가능
블록체인
: 분산 시스템
기존 DB
: 클라이언트는 자신의 권한에 따라 CRUD 수행 가능
블록체인
: 오직 데이터를 읽거나 추가만 가능
✅ 블록체인은 이전의 모든 데이터가 저장되며 변경 불가
정리
DB | 블록체인 |
---|---|
중앙 통제 방식 | 분산 데이터 저장 방식 |
해커가 관리자 공격에 성공하면 DB 권한을 얻어 데이터 파괴 및 변조 가능 | 단일 공격 지점 없음 |
사용자는 DB 관리자의 보안 인프라의 의존 & DB 관리를 위한 유지 비용 소모 | 기존 DB의 문제 사전 차단 |
무결성: DB가 데이터의
정확성
과일관성
유지
블록체인에서는 합의 알고리즘을 사용하여 데이터의 무결성 보장
합의 알고리즘
: 네트워크 상에 존재하는 신뢰할 수 없는 노드들이 절차에 맞게 상호 검증하여 네트워크 전체의 무결성을 보장하는 알고리즘
합의 알고리즘을 통해 블록에 입력된 데이터에 대해 분산된 각 노드들이 모두 동일한 결과를 가짐
악의적인 노드가 참여하더라도!!!
합의를 통해
노드가 블록을 변조하지 못하도록 하여 전체 네트워크의 신뢰도 유지
퍼블릭 블록체인의 경우 누구나, 프라이빗 블록체인의 경우 허가된 사용자라면 누구나 트랜잭션 기록 확인 가능
✅ 네트워크 내 모든 트랜잭션은 양성화
✅ 송금 과정의 투명성을 높이기 위한 규제 비용 절감 가능
블록체인은 추가만 가능한(append-only) DB
한 번 블록이 체인에 올라가면, 블록에 담긴 트랜잭션이나 DB 수정 불가
-> 이 과정에서의 핵심 기술: *Hashing
머클 트리의 루트 해시값을 블록 헤더에 포함
-> 만약 트랜잭션에 변경이 일어나면 머클 해시 값이 변경되므로
블록체인에 대한 위변조 시도를 바로 발견 가능
머클 트리와 머클 루트에 대한 내용은 다른 포스팅에서 자세히 다룰 예정!
이후 포스팅에서는 방금 언급된 머클 트리와 머클 루트
그리고 블록체인에서의 Hashing
에 대해서 알아 보자!