목록Blockchain (12)
제로하우스
자료구조에서의 노드 노드(Node) 노드(Node)는 하나의 단위로, 연결리스트를 이루는 객체이다. 노드는 다음과 같이 구성되어 있다. 데이터를 저장할 공간 다음 주소를 가리킬 공간 노드가 가리키는 다음 주소가 NULL이면 이 노드는 마지막 노드라고 할 수 있다. 연결리스트(Linked List) 연결리스트(Linked List)는 순서를 가지는 자료들의 저장과 탐색을 위해 각 데이터에 이전 데이터나 이후 데이터의 참조를 추가로 기록하여 자료들을 연결하는 자료구조이다. 연결리스트를 구현하기 위해서는 다음의 세 함수를 구현해야 한다. 초기화(Init): 노드를 생성하는 과정 노드 접근을 위해서는 맨 처음 노드의 주소를 가리킬 노드가 필요한데, 이를 Head라고 표현한다. 그리고 맨 마지막 노드를 가리키는 ..
블록체인 구조 블록체인에서 블록은 Header와 Body로 이루어져 있고, header는 메타데이터, body는 트랜잭션들의 리스트로 구성되어 있다. 헤더(header) 안의 메타데이터에는 논스(nonce) 값이 있는데, 이 논스는 트랜잭션의 논스와는 다른 역할을 한다. Transaction 트랜잭션(Transaction)이란, 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위라고 하며, 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약여 ACID를 통해 트랜잭션의 특성을 알 수 있다. 블록체인에서의 트랜잭션은 상호작용 및 작업 수행의 논리적 단위이다. 블록체인 상의 모든 활동은 트랜잭션을 통해 이루어지고, 추상적인 관점에서 트랜잭션은 블록체..
중앙집중원장 기존의 여러 서비스는 중앙집중원장(Centralized Ledger)의 형태를 띄고 있으며, 우리는 기관/기업에게 신뢰비용(수수료 등)을 지불하고, 그들은 서비스를 제공하며 데이터를 보관하고 활용했다. 하지만, 기존 중앙집중형 데이터베이스 관리시스템에는 다음과 같은 취약점이 있다. 비용문제: 거래자들 사이에서 과도한 관리, 중개수수료를 청구함 시간문제: 상호 거래 프로세스에 중간다리(middleman)가 포함되어 있어 시간/비용 측면에서 비효율적 보안문제: 해커들의 공격 대상이 중앙 데이터베이스 하나로 집중되어 있음(단일 실패점, Single Point of Failure) 분산원장 분산원장(Distributed Ledger)은 거래 정보를 기록한 원장을 특정 기관의 중앙화된 서버가 아닌 분..
Overview 분산 데이터베이스(Distributed Database)는 하나의 데이터베이스 관리 시스템(DBMS)으로, 여러 CPU에 연결된 저장 장치들을 제어하는 형태의 데이터베이스이다. 물리적으로는 여러 위치에 분산 저장하고 흩어져 있는 시스템이지만, 논리적으로는 하나인 것처럼 활용한다. 데이터베이스는 아래 그림과 같이 데이터 요청을 처리하는 서버, 실제 데이터를 저장하는 스토리지가 각 1개씩 있다. 투명성 목표 분산 데이터베이스는 여러 위치의 저장소, 즉 노드들은 네트워크를 통해 연결되며, 투명성 확보가 중요하다. 목표로 하는 투명성은 총 6가지로 아래와 같다. 종류내용특징 병행 다수의 트랜잭션 수행 시 결과가 일관성 유지 지원처리 양 및 속도 개선 장애 장애 발생이 ALL or Nothing ..
배경 블록체인 기술은 비트코인이라는 암호화폐와 함께 등장한 것으로, 이는 기존 금융 시스템과 관련이 있다. 화폐의 역사 실물화폐: 조개 껍데기, 쌀, 담배 등 물물교환을 넘어서 교환의 더 나은 방법으로 사용한 특정한 물건. 내구성, 휴대성, 균질성에 문제점이 존재함 금속화폐: 금과 같은 귀금속으로 만든 화폐. 산업/기술의 발달로 거대해진 경제 시장에 필요한 화폐를 공급하는 것이 어려워짐 신용화폐: 국가, 지폐 발권은행 등의 신용으로 보증되는 수표, 어음 등의 화폐. 신용을 매개로 하며 실물이 없는 화폐 화폐의 특성 휴대성(Portability): 소지하기 편해야 함 가분성(Divisibility): 분할에 용이함(ex. 지폐 -> 동전) 내구성(Durability): 형태가 쉽게 변하지 않음 동질성(Un..