전체 글
블록체인 심화 (4) - 합의 알고리즘 PoW, PoS, DPoS, BFT, PBFT
합의 알고리즘 합의 알고리즘(Consensus Algorithm)이란? 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘 합의 모델, 합의 방식, 합의 매커니즘 또는 합의 프로토콜이라고도 불림 합의 알고리즘이 필요한 이유 블록체인 시스템의 경우 네트워크에 참여하는 모든 참여자들이 동일한 데이터를 복사하여 분산 저장하기 때문에 원본과 사본의 구별이 없으며, 통일된 의사결정을 내릴 수 있는 권위 있는 중앙(Center)이 존재하지 않는다. 다시 말해, 블록체인의 데이터는 중앙화된 서버 대신 전세계에 흩어져 있는 수많은 노드에 보관되기 때문에, 각각의 노드들은 블록에 기록하는 데이터가 위변조되지 않은 원본이라는 것을 상호간에 합의하는 과정이 필요하다 만약 블록을 생성하는, 특정 노드가 악의를 품..
[자료구조] 자료구조(Data Structure)의 정의 및 종류
자료구조(Data Structure)란? 자료구조: 여러 데이터들의 묶음을 저장하고, 사용하는 방법을 정의한 것 데이터(Data)란? 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값 우리의 이름, 나이, 키, 집 주소, 목소리 혹은 유전자 DNA까지 데이터로 분류할 수 있음 그러나 데이터는 그 자체만으로 어떤 정보를 가지기 힘들고, 분석하고 정리하여 활용해야만 의미를 가짐 예를 들어 나이라는 데이터만 알고 있다면, 사람의 나이인지, 강아지의 나이인지, 나무의 나이인지 알 수 없음 데이터를 사용 목적에 따라 분류하여 사용하는 이유 데이터를 정해진 규칙없이 저장하거나, 하나의 구조로만 정리하고 활용하는 것보다 데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있어 훨씬 ..
블록체인 심화 (3) - 비트코인과 이더리움의 트랜잭션 데이터 구조 차이
블록체인 블록체인(Blockchain) = 블록(Block) + 체인(Chain) 블록들이 체인으로 연결되어 있는 구조 블록체인에서 블록의 데이터구조 블록(Block) = 헤더(Header) + 바디(Body) 헤더(Header): 메타데이터 (e.g.버전, 이전블록해시, 머클루트, 타임스탬프, 채굴난이도, 논스) 바디(Body): 트랜잭션들의 리스트 블록은 거래의 기록 단위로 다수의 트랜잭션을 포함할 수 있다. 여기서 헤더에 담기는 메타데이터란 무엇일까? 메타데이터: 다른 데이터를 설명하기 위한 데이터 트랜잭션은 데이터이고, 트랜잭션이 모여있는 블록 역시 데이터이다. 따라서 블록체인의 블록 메타데이터는 다음과 같은 내용을 가질 수 있다고 생각해볼 수 있을 것이다. 이 블록은 체인 중 몇 번째 블록인지 ..
블록체인 심화 (2) - 분산원장기술 vs. 중앙집중원장
이번에는 분산원장기술(DLT; Distributed Ledger Technology)과 중앙집중원장(Centralized Ledger)의 차이를 알아볼 것이다. 기존의 여러 서비스는 중앙집중원장(Centralized Ledger)의 형태를 띈다. 오늘날 여러 대기업에서 제공하는 서비스나 은행시스템을 이용할 수 있었던 것은 그들이 알아서 잘 관리하고 처리해줄 것이라는 신뢰가 뒷받침되어 있기 때문이다. 이러한 기관, 기업에게 신뢰비용(수수료 등)을 지불하고, 그들은 서비스를 제공하며 데이터를 보관(보안)하고 활용하는 방식이 중앙집중원장이다. 하지만 기존 중앙집중형 데이터베이스 관리시스템에도 취약점은 있고, 이를 해결하기 위해 나온 것이 분산원장기술이다. 중앙집중원장(Centralized Ledger)의 취약..
블록체인 심화 (1) - 공개 범위에 따른 블록체인 종류
블록체인 종류를 알아보기에 앞서서 블록체인 개념을 다시 한번 보고 시작하자 블록체인이란 P2P(Peer to Peer)네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태로, 거래 정보를 담은 장부를 중앙 서버 한 곳에 저장하는 것이 아닌 블록체인 네트워크에 연결된 여러 컴퓨터에 저장 및 보관하는 기술입니다. 블록체인은 제3의 신용기관 없이도 네트워크 참여자들 간의 신뢰할 수 있는 거래가 가능하게 함으로써 디지털 인프라에 탈중앙화, 수평적인 디지털 비즈니스의 기반이 됩니다. 그렇기에 다양한 산업분야(IT, 금융, 정부, 언론, 의료, 법률 등)에 쓰일 수 있는 잠재력이 있습니다. 블록체인은 다양한 기술의 집합체이기 때문에, 온전히 이해하려면 블록체인 개발자로서 이 기술들을 배워야 합니다. 블록체인은 활..
트랜잭션의 특성 - ACID
트랜잭션 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계 여러 개의 작업을 하나로 묶은 실행 유닛 각 트랜잭션은 하나의 특정 작업으로 시작을 해 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료함 만약 하나의 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면, 이 트랜잭션에 속한 모든 작업을 실패한 것으로 판단 즉, 작업이 하나라도 실패하면 트랜잭션도 실패이고, 모든 작업이 성공적이면 트랜잭션 또한 성공 성공 또는 실패라는 두 개의 결과만 존재하며 미완료된 작업없이 모든 작업을 성공해야 함 예를 들어, 은행에서의 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 ..