🍊 블록체인은 네트워크에 있는 모든 사람들과 동일한 데이터를 가지게 한다.
데이터가 저장되는 공간이다.
자산, 개인 정보와 같은 데이터를 암호화하여 저장한다.
블록의 구성은 어떤 종류의 데이터를 저장하느냐에 따라 결정된다.
🥬 예를 들면, 비트코인은 트랜잭션(거래 기록) 데이터와 디지털 서명을 블록에 저장한다.
블록 하나에 모든 데이터를 담을 수는 없다.
🥖 블록 하나에 모든 데이터를 담는다면, 블록의 크기가 너무 커질 수 있고 네트워크의 여러 사람이 동시에 블록에 데이터를 기록하려고 한다면 편의성도 떨어진다.
따라서, 데이터들을 일정 기준에따라 나눈 뒤에 체인으로 블록을 잇는다.
사용자가 하나의 블록에 일정한 갯수의 트랜잭션이 담긴 블록을 네트워크에 공유하면, 새로운 블록을 만들어 새로 생긴 트랜잭션들을 담는다.
이 새로운 블록에 이전 블록의 주소의 데이터를 담아 이 블록의 직전의 블록이 어떤 것인지 지정한다.
이러한 모양이 체인처럼 연결되어 있기에, 이 데이터 구조의 이름을 블록체인이라고 한다.
- 블록체인 네트워크에 거래가 발생하여 새로운 트랜잭션이 생긴다면, 이 트랜잭션은 네트워크의 모든 노드들에게 공유된다.
- 그리고 이 트랜잭션이 유효한 트랜잭션인지 검증하는 절차가 수행된다.
🍆 실제 송금자가 만든 트랜잭션인가? 악의적으로 사용자가 타인을 사칭하는가? 트랜잭션이 만들어진 후 수정된적이 있는가? 등을 검증한다.- 유효성 검사가 끝난 뒤, 트랜잭션은 블록에 담기고 이 블록이 체인의 추가되어 블록체인의 일부가 되면 트랜잭션의 처리가 끝난다.
🍖 채굴(Mining)은 트랜잭션을 모아 하나의 블록으로 만드는 과정을 의미한다. (송금 처리와 유사한 작업)- 채굴은 암호화폐 송금 서비스를 운영하는 핵심 역할을 하기에 채굴 노드에게는 보상으로 코인이 지급된다.
- 보상을 얻기 위해서 경쟁적으로 채굴이 이루어지고, 경쟁에서 승리한 노드가 생성한 블록이 유효하다면, 체인에 추가된다.
원장(Ledger)은 거래 내역의 집합을 의미한다.
블록체인은 원장을 저장하는 데이터베이스의 유형중 하나이다.
원장을 가지는 사용자들이 원장에 대해서 모두 동등한 권한을 가지고 있는 경우가 P2P(Peer-to-Peer) 분산 원장 시스템 (Distributed Ledger)이다.
분산 원장 시스템은 데이터를 여러 위치에 두거나 여러 사용자들이 데이터를 나누어 가진다.
분산 원장 시스템에서 데이터를 저장하기 위해서는 데이터를 공유하는 사용자들이 합의를 해야 한다.
🍔 분산된 데이터베이스들이 하나의 일관된 데이터를 가질 수 있게 하기 위함이다.
블록체인은 분산 원장의 한 종류지만, 일반적인 분산 원장과 몇몇 차이점이 있다.
- 블록체인은 일반적인 분산 원장과 다르게 블록 형식으로 데이터를 저장한다.
- 블록체인에서는 모든 블록이 직전의 블록을 가리켜 순서대로 블록이 배열되어 있다. 하지만, 모든 분산 원장이 순서대로 데이터를 저장하지는 않는다.
- 일반적인 분산 원장은 경쟁적으로 데이터를 저장하지 않는다. 하지만, 블록체인에서는 채굴 보상이 주어지고, 이에 따라 경쟁이 일어난다.
- 따라서, 블록체인에서는 블록을 생성할 노드를 정하기 위해서 PoW나 PoS와 같은 자원을 소모하는 매커니즘을 사용한다.
- 블록을 생성하기 위해서 자원을 소모한 노드에게 보상으로 코인을 제공한다.
- 자원을 소모하는 만큼, 보상이 주어지지 않으면 블록을 생성할 동기부여가 없기 때문이다. 따라서 보상은 필수적이다.
중개자(은행) 없이 직업 화폐를 사고, 팔고, 환전하는 탈중앙화된 디지털 화폐 시스템이다.
기존에는 은행이 자산과 신원에 대한 모든 정보를 가지고 은행이 신원, 소유권의 증명을 하였으나, 은행이 항상 올바른 선택을 하지 않으며 자신의 이익을 위해서 경제를 악화시킬 수 있다는 사실에 비트코인이 주목을 받았다.
중개자에 대한 신뢰가 아닌 암호화 증명에 기반한 전자결제 시스템의 필요성에 의해서 사토시 나카모토가 개발했다.
중개자에 대한 신뢰를 담보도 자산을 맡기지 않고, 블록체인과 암호화 기술을 사용한 분산원장으로 네트워크에 있는 사용자들끼리 직접 거래(P2P)를 할 수 있게 한다.
퍼블릭 블록체인으로 누구나 네트워크에 참가한다면, 기록에 접근하거나 트랜잭션을 생성하여 블록을 만들어 블록체인을 업데이트할 수 있다.
모든 블록들은 난수로 저장되며, 블록 내의 트랜잭션이 조금이라도 변경되면 난수가 변경된다.
네트워크에 참가하는 모든 사용자들이 암호화 기술을 통해서 난수를 검증하기에 임의로 트랜잭션을 변경하는 것은 불가능에 가깝고, 이를 통해서 트랜잭션의 진위를 보장한다.
비트코인의 총 공급량은 제한되어 있어 희소성이 점점 증가함에 따라서 디지털 금으로 취급되기도 한다.
🍋 UTXO : 미사용 트랜잭션을 의미하고, 거래의 유효성 검사 모델이다.
거래 기록만 남길 수 있던 비트코인의 한계를 극복하고자 비탈릭 부테린이 만들었다.
이더리움은 블록체인 위에서 다양한 데이터를 저장하고 심지어 프로그램을 실행할 수 있는 탈중앙화 컴퓨팅 네트워크이다.
블록체인 위에서 실행되는 어플리케이션을 구축할 수 있는 특징이 있다.
이더리움은 일종의 스마트 컨트랙트 플랫폼이다.
🍿 스마트 컨트랙트는 중개자를 거치지 않고 당사자끼리 직접 계약을 체결할 수 있게 해주는 전자계약 시스템을 의미한다.
블록에 코드를 담아 블록체인에 올리면, 이더리움 가상머신(EVM, Ethereum Virtual Machine)을 통해서 블록의 코드를 실행시킬 수 있다.
블록 체인 위에서 실행되는 어플리케이션은 DApp(Decentralized Application)이라고 부른다.
누구든지 이더리움 블록체인 위에 DApp을 올릴 수 있고, 대표적으로는 엑시 인피니티, 유니스왑, 오픈씨 등이 있다.
참고 자료 출처 : 코드 스테이츠