[DB] DB와 Blockchain
DB와 Blockchain
설계 및 유지방식
-
DB
- 클라이언트 - 서버 네트워크 아키텍처를 사용
- DB의 통제권은 지정된 관리자에게만 있으며 클라이언트의 자격 확인 후 DB에 접근 권한을 부여한다.
- 이때 접근 권한을 받은 사용자가 DB를 어떻게 사용하느냐에 따라 변경되거나 삭제될 위험도 있다.
-
Blockchain
- 여러 개의 노드로 구성되어 분산되어 있다.
- 블록체인에 어떤 DATA를 입력하려 할 때 이미 존재하는 노드 전체가 새로 추가할 사항을 확인해야 DB에 데이터를 추가할 수 있게 된다.
- 즉 Data를 추가하기 위해서는 모든 노드와 합의하는 과정이 필요하고 이 합의 알고리즘으로 인해 블록체인의 변경은 어렵다.
CRUD vs. 읽기 및 쓰기 작업
-
DB
- CRUD 작업이 가능하다.
-
Blockchain
- 추가만 가능한 구조로 설계되었다.
- 사용자는 블록을 추가하는 방식으로 오직 데이터의 추가만이 가능하다.
- 이전의 모든 데이터는 영구적으로 저장되며, 변경이 불가능하다.
- 읽기 작업: 블록체인에서 데이터를 쿼리하고 검색
- 쓰기 작업: 블록체인에 데이터를 추가
Blockchain이 차별되는 점
-
무결성과 투명성의 보장
-
무결성: 모든 사용자는 자신이 검색하고 있는 데이터가 기록된 이후로 변경 또는 손상되지 않았음을 확신할 수 있음.
-
투명성: 모든 사용자는 과거로부터 블록체인이 어떻게 추가되어 왔는지 확인할 수 있음.
-
-
트랜잭션의 유효성 검증과 신규 트랜잭션 작성
- 트랜잭션이란 블록체인에 있는 data의 상태를 변경하는 작업
-
블록체인 상의 기존 내용은 항상 동일하게 유지되야 하지만, 신규 내용으로 기존 내용의 상태를 변경할 수 있다.
ex) 내 비트코인 지갑에 1백만 BTC가 들어있다고 블록체인에 기록되어 있다면, 이 액수는 블록체인에 영구 저장됩니다. 여기서 20만 BTC를 쓰게되면, 이 트랜잭션이 블록체인에 기록되고, 지갑의 액수는 80만 BTC가 됩니다.
정리
분산 통제 방식은 중앙 집중 통제 방식의 위험을 없애 줍니다. 중앙 집중식 데이터베이스에 접근 권한만 있으면 누구라도 데이터를 파괴하거나 변경할 수 있습니다. 따라서 사용자는 데이터베이스 관리자의 보안 인프라에 의존할 수밖에 없습니다.
블록체인 기술은 분산 데이터 저장 방식을 통해 이런 문제를 사전에 차단하기 때문에, 보안성이 월등합니다.
참조:
Towards Data Science, "Blockchains versus Traditional Databases"