(트렌드) 블록체인 생태계와 용어 정리(1)
[ 블록체인 관련 정리 ]
* 블록체인 생태계와 용어 정리(1)
* 블록체인 생태계와 용어 정리(2)
* 암호화 화폐의 분류
* 암호화폐. 전자지갑
* 블록체인의 데이터신뢰 : 오라클 문제와 해결(Oracle Problem)
* NFT 표준 기초 용어 와 ERC20 ERC721 ERC1155 표준
[출처] https://couplewith.tistory.com/search/블록체인
(트렌드) 블록체인 생태계와 용어 정리(1)
블록체인의 기초 개념을 위한 용어 정리
1. 블록체인 (Blockchain)
– 데이터를 '블록'에 담아 체인 형태로 연결하고, 여러 대의 컴퓨터에 복제하여 저장하는 분산형 데이터 저장 기술입니다. 일종의 공공 거래 장부(분산원장)이라고 합니다.
- 블록체인은 거래의 효율성을 제고할 수 있는 기술로 널리 알려져 있으며 거래시간 단축, 거래비용 절감, 거래의 신뢰성 확보 할 수 있습니다.
– 중앙 집중형 서버에 거래 데이터를 보관하지 않고, 모든 사용자가 거래 기록을 공유/검증하도록 하여, 암호화 기술을 통해 데이터 위조나 변조를 할 수 없게 되어 있습니다.
2. 블록체인의 유형과 특징
• 퍼블릭 블록체인(Public Blockchain)
– 공개형 블록체인이라고 불리기도 하며, 전 세계의 누구나 모두 읽고 거래 정보를 발송하고 거래가 유효한지 확인할 수 있으며, 누구나 합의 과정의 블록체인에 참여할 수 있습니다.
– 일반적으로 비트코인, 이더리움과 같이 완전한 탈중앙화 시스템입니다.
• 프라이빗 블록체인(Private Blockchain)
– 폐쇄형 블록체인이라고도 불리기도 하며, 기관 또는 조직에서 권한(허가)을 통해 관리되는 블록체인을 말합니다.
– 해당 네트워크에 특정 참여자로 멤버를 구성하고 고유의 인증 방식을 통해 운영됩니다.
• 컨소시엄 블록체인 (Consortium Blockchain)
– 미리 선정된 노드에 의해서 제어되는 퍼블릭과 프라이빗 블록체인 사이의 반 중앙형 블록체인입니다.
– 미리 선정된 기관이 노드를 한 개씩 운영하고 각 기관의 노드 간 동의가 일어나야 거래가 생성됩니다.
– 블록체인의 기록 열람 권리를 퍼블릭 블록체인처럼 대중에게 부여할 수도 있지만, 특정 기관에만 제공하거나 API를 통해 특정 인원에게만 공개할 수 있습니다.
3. 블록체인의 구성 요소
• 블록(Block)
– 유효한 거래 정보의 묶음을 말하며, 데이터를 저장하는 단위입니다.
– 일정 기간의 거래 데이터를 블록에 분산 저장하며, 블록은 블록 헤더와 거래 정보, 기타 정보로 구성되며, 비트코인의 경우 블록 하나에 약 1,800 ~ 4,200건의 거래 정보가 포함될 수 있습니다.
• 블록 헤더(Block Header)
– 블록 해시, 거래정보, 머클루트, 난수 등 블록의 주요 데이터를 담고 있습니다.
– 블록체인 네트워크마다 헤더 안의 데이터는 다를 수 있습니다.
• 머클 트리(Merkle tree)
– 랄프 머클의 이름을 따서 머클 트리라고 불리게 되었으며, 해시 트리 (Hash tree)라고도 알려져 있습니다.
– 블록에 포함된 거래의 요약을 나무 형태로 생성됩니다.
– 해시 함수를 통해 2개의 거래 데이터를 하나의 데이터로 묶는 방식을 통해 용량을 절약합니다.
• 머클 루트(Merkle root)
– 블록에 저장되어 있는 모든 거래의 요약본, 해당 블록에 포함된 거래로부터 생성된 머클 트리의 루트에 대한 해시를 의미합니다.
• 제네시스 블록(Genesis Block)
– 블록체인 네트워크의 시작을 상징하는 첫 번째 블록입니다. 첫 번째 블록이 생성된 이후 다음 블록이 지속적으로 연결됩니다.
– 블록이 생성된 순서는 높이로 표현하며, 0번 블록은 네트워크가 최초에 시작될 때 만들어진 제네시스 블록이 됩니다.
• 주요 체인(Main chain)
– 제네시스 블록으로부터 가장 최근의 블록까지 연결되어 있는 체인을 말합니다.
– 주요 체인 또는 최장 체인이라 부르며, 가장 많은 해시 파워가 투입되는 체인에 다음 블록이 연결됩니다.
• 블록 높이(Block Height)
–제네시스 블록으로부터 현재 블록까지 블록이 만들어진 양을 나타내며, 이 수치를 높이로 표현합니다.
• 블록 보상(Block Reward)
– 컴퓨팅 파워를 투입해서 가장 먼저 작업증명을 달성한 채굴자에게 주어지는 보상이 주어집니다.
– 작업증명을 위해서 전기와 같은 비용이 들기에 블록 보상은 네트워크가 보상의 개념으로 새로운 블록 각각에 포함되어 있습니다.
• 블록 타임(Block Time)
– 일정한 블록이 생성되는 데 걸리는 시간으로 비트코인의 경우 평균적으로 10분에 하나의 블록이 만들어지도록 설계되어 있습니다.
– 블록 타임을 유지하기 위해서 채굴 난이도가 조정됩니다.
4. 디앱(DAPP, Decentralized Application)과 구성 요소
– 디앱(DApp) 또는 댑이란 Decentralized Application의 약자로서, 이더리움, 큐텀, 이오스 같은 블록체인 플랫폼 코인 위에서 작동하는 탈중앙화 분산 애플리케이션을 말합니다. 간략히 분산앱이라고도 합니다.
– 블록체인에서 디엡은 스마트 계약이 도입되면서 생겨났습니다. 스마트 계약이 없는 비트코인에는 디앱이 존재하지 않습니다. 비탈릭 부테린은 이더리움에 스마트 계약을 처음 도입했습니다. 이더리움은 최초의 메인넷으로 무수한 디앱들을 탄생시켰습니다.
• 스마트 컨트랙트
– 스마트 계약(smart contract) 또는 스마트 컨트랙트란 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것을 말한다. 블록체인 2.0이라고도 한다.
– 이 기능을 사용하면, 개발자가 직접 계약 조건과 내용을 코딩할 수 있기 때문에, 원칙적으로 인간이 상상할 수 있는 모든 종류의 계약을 이더리움 플랫폼을 이용해 구현할 수 있습니다.
• web3.js
– web3.js 는 백엔드와 커뮤니케이션하는 기본적인 기능들을 묶어 놓은 편리한 자바스크립트 라이브러리입니다.
– 어떤 계좌의 잔액을 확인하거나, 새로운 트랜잭션을 블록체인에 올리거나 할 때 모두 이 web3.js를 사용합니다.
• 솔리디티 (Solidity)
– 솔리디티는 2014년 8월에 Gavin Wood에 의해 처음으로 제안되었으며, 제안 이후 이더리움 프로젝트의 Christian Reitwiessner 가 이끄는 솔리디티팀에 의해 개발되었습니다. Ethereum Virtual Machine (EVM)을 목표로 설계된 4가지 언어 중 하나입니다.
– 계약 지향 프로그래밍 언어로 다양한 블록체인 플랫폼의 스마트계약(Smart Contract) 작성 및 구현에 사용됩니다.
– 솔리디티는 EVM에서 작동가능한 바이트코드로 컴파일된다.
• Ethereum Virtual Machine (EVM)
– EVM(Ethereum Virtual Machine)은 이더리움내부에 작동되는 가상머신이라고 합니다. EVM은 플랫폼을 이루는 수만 개의 노드에 바이트 코드로 저장되어 있으며, 이더리움을 구성하는 수많은 토큰과 분산 애플리케이션 댑(dapp), 탈중앙화 자율조직 DAO, 크립토키티의 실행을 담당합니다.
– 최근 EVM을 eWASM이라는 이름의 새로운 가상머신으로 교체되고 있습니다. eWASM은 WASM 코드의 이더리움 버전으로, WASM은 웹어셈블리(WebAssembly)의 약자로, 웹의 유지와 표준화를 담당하는 개발자 집단인 월드와이드웹 컨소시엄(W3C)이 개발되었습니다.
– eWASM을 사용하면 개발자들은 이더리움 전용 언어인 솔리디티(Solidity) 외에도 여러 종류의 프로그래밍 언어로 코딩할 수 있게 되며, 성능 향상도 기대할 수 있습니다.
• 가스비(Gas)
– 가스는 이더리움 디앱에 적용된 스마트 계약이 실행될 때 들어가는 수수료 개념입니다. 가스라는 이름은 이 수수료가 스마트 계약의 움직임을 주도하는 암호 연료의 역할을 한다는 점에서 영감을 받아 만들어졌습니다.
– 이더리움 네트워크가 작동하려면 수수료인 가스가 필요하다는 의미입니다. 또 채굴자에게 가스를 더 많이 지불하면 먼저 거래를 수행하게 할 수 있게 됩니다. 만약 가스 가격을 0으로 설정한다면 거래가 계속 뒤로 밀려나게 됩니다.
– 가스는 스마트 계약의 코드가 복잡할수록, 저장 공간을 많이 사용할수록 더 많이 지불해야 합니다. 따라서 가스는 네트워크의 과부하를 막고, 이더리움 플랫폼이 지속 운영되도록 하는 인센티브(리워드) 역할을 합니다.
• EVM이 동작과 가스비
1) 트랜잭션이 올바른 형식인지 확인
2) 트랜잭션 수수료 계산 (Gas limit x Gas Price)
3) Gas 지불 초기화. 이 시점부터 트랜잭션에서 처리된 바이트만큼 특정 양의 가스를 차감
4) 트랜잭션 금액을 수신 계정으로 보냄 (Smart Contract도 이 단계에서 실행)
5) 송신 계정에 트랜잭션을 완료할 수 있을 만큼 Gas Price가 충분하지 않으면 트랜잭션의 모든 변경 사항이 되돌려짐. 그러나, 트랙잰션 수수료는 채굴자에게 지불되고 환불되지 않음
6) 5번의 경우와 다른 이유로 트랜잭션이 실패한 경우, 송신 계정에 Gas price를 환불하고, 채굴자가 사용된 Gas와 관련된 비용은 채굴자에게 전달
5. 암호화 화폐 관련 용어
• 암호화폐 주소(Cryptocurrency Address)
– 암호화폐를 지갑에 보관하기 위한 주소
– 여러 복잡한 숫자/영문 대소문자의 조합으로 암호화폐를 보내고 받기 위해 필요함
– 주소를 통해 수신인과 발신인을 확인할 수 있으며 비트코인(BTC), 이더리움(ETH) 등 여러 방식의 암호화폐 주소가 존재
– 최근에는 거래소에서 편리하게 암호화폐 주소를 생성하여 이용할 수 있음
• 스테이블코인(stable coin)
– 법정화폐 또는 실물 자산을 기준으로 가격이 연동되는 암호화폐를 뜻함
– 기존의 암호화폐는 특유의 가격 변동성 때문에 통화로써 사용되기에는 안정성이 떨어진다는 평가를 받고 있음
– 반면 USDT와 같은 코인은 가치가 달러에 고정됨, 기존의 변동성이 높은 암호화폐에 비해 가격 안정성이 높음
• 토큰(Token)
–독립된 블록체인 네트워크 (메인넷)가 아닌 이더리움과 같은 플랫폼을 이용하여 발행할 수 있는 암호화폐
–독립된 블록체인 네트워크를 소유한 경우에는 코인으로 불리며 비트코인, 이더리움, 퀀텀, 스팀 등이 있음
–코인과 같이 메인넷 시스템을 한 번에 구축하는 것은 어렵기 때문에 먼저 이더리움과 같은 플랫폼 위에 토큰을 발행한 뒤 개발을 통하여 코인으로 전환하게 됨
• 메인넷(Mainnet)
–메인넷은 기존에 존재하는 플랫폼에 종속되지 않고, 독립적인 플랫폼으로 새로운 생태계를 구성하고 자체 지갑을 생성하는 것
–안정성이 검증된 메인넷을 갖는 것은 난이도가 상당하며 그만큼의 기술력을 필요로 함
ex) 비트코인, 이더리움
• 테스트넷(Testnet)
–기존의 플랫폼으로부터 독립된 자체 메인넷 블록체인을 구축하기 위한 작업
–테스트넷 (Testnet: 일종의 베타 서비스) 과정을 통해 블록체인 및 지갑의 안정성이 검증되며 최종적으로 독립된 블록체인을 구현하는 메인넷이 출시됨
• 트랜잭션(Transaction)
–암호화폐를 송금하는 이체 거래 과정에서 전송되는 서명된 정보를 의미하며 하나의 문자열로 생성됨
• 트랜잭션 ID(TxID : Transaction ID)
–TxID는 트랜잭션 데이터 전체에 대한 해시값 (데이터를 문자열로 치환)
–해시값은 데이터가 조금만 달라져도 전혀 다른 값이 되며 이를 이용해 트랜잭션에 대한 블록체인 네트워크의 기록을 조회 및 식별할 수 있음
–지갑 주소, 수량, 컨펌 수, 시간 등의 확인이 가능
• 트랜잭션 수수료(Transaction Fee)
–암호화폐를 전송할 때 노드(Node)에게 지불되는 수수료를 의미
–거래가 블록에 포함되기 위해서는 증명 작업이 필요하고, 노드들이 이 검증과 증명을 대신해주는 대가로 블록 보상과 함께 수수료를 받음
–수수료는 암호화폐 네트워크가 노드에게 제공하는 경제적 유인임. 즉, 트랜잭션을 만든 사람이 채굴자에게 지불하는 비용이며 일반적으로 수수료는 트랜잭션의 우선순위에 영향을 줌
트랜잭션을 보낼 때 수수료를 담아서 보낸다. 트랜잭션이 A가 B한테 1비트 코인을 준다고 할 때, 여기에 더해서 예를 들어 0.00001비트를 보낸다. 이것은 마이너한테 붙는 수수료이다. 원래는 사실 되게 적게 보내고 이 수수료가 저렴하기 때문에 장점이 있었다. 그런데 요즘에는 사람들이 많아지고 트랜잭션이 많다 보니까 계속 누적되게 되었다. 예를 들어 한 블록에 들어갈 수 있는 처리될 수 있는 것이 1000개밖에 없는데, 실제 생성된 트랜잭션들은 2000개나 되어버리게 된다. 그러면 여기서 2000개 중 1000개씩 우선순위를 나눠서 처리해야 한다. 그럼 순위가 밀리게 되는 트랜잭션들이 생겨난다. 그러다 보니 수수료가 계속 올라가게 된다. 이러한 상황에서 마이너 입장에서는 당연히 수수료가 더 많은 것을 먼저 처리한다.
• 컨펌(Confirm)
–암호화폐는 거래 시 인증받는 과정
–'거래가 블록에 포함되어 발행되었는가'를 확인하는 것을 의미
–예를 들어 1 컨펌이 출력되면 블록이 한 개 쌓인 것을 의미하며, 블록 위에 블록이 쌓일 때마다 컨펌의 수도 증가
• 컨펌 숫자(Confirmation Number)
–주요 체인으로부터 해당 트랜잭션이 거절(reject) 될 가능성을 측정하는 단위
–제로 컨펌이라는 의미는 해당 트랜잭션이 컨펌되지 않은 것을 의미하며, 1 컨펌은 해당 트랜잭션이 주요 체인의 가장 최근 블록에 속해 있음을 의미
–이러한 방식으로 N컨펌을 설명할 수 있으며, 더 많은 블록이 추가됨으로써 트랜잭션이 역방향으로 수행될 가능성(이중지불)은 극히 낮아지게 됨
• 스마트 컨트랙트(Smart contract)
–스마트 컨트랙트는 블록체인에서 거래의 일정 조건을 만족시키면 자동으로 거래가 체결되는 기술
–블록체인 기반으로 금융부터 부동산 공증 등 다양한 형태의 계약을 체결하고 이행할 수 있으며 스마트 컨트랙트를 작동시키려면 모든 사용자가 동일한 권리를 갖는 분산된 네트워크가 필요함
5• 합의 알고리즘(Consensus Algorithm)의 종류
–생성된 블록의 유효성을 검토하여 블록체인에 반영 여부를 의사결정하는 방식을 의미
–대표적으로 작업 증명(PoW), 지분 증명(PoS), 위임 증명(DPoS) 방식이 있음
• 작업 증명(PoW : Proof of Work)
–컴퓨터 연산 작업을 수행하여 블록체인에 기여하는 대가로 보상을 받는 방식
–연산을 위해서는 성능이 우수한 장비를 필요로 하며 P2P 네트워크에서 시간과 비용을 들여 수행된 컴퓨터 연산 작업을 신뢰하기 위해 참여 당사자 간에 간단히 검증하는 방식임
대표적인 합의 알고리즘인 비트코인에서의 합의 알고리즘 PoW
=> 여러 명이 있을 때 넌스(nonce) 값을 넣어서 나온 해시값의 결과 조건이 랜덤 숫자를 가장 먼저 찾는 사람을 인정해 주겠다는 것.
일한다고 표현해서 PoWork라 표현한다. 열심히 일해서 랜덤 한 숫자를 찾았다. 그래서 자신이 거짓을 말하지 않을 것이다는 얘기.
이것에 대한 검증도 같이 해준다.
but 단점이 있다. 1000명 중 999명은 실패, 1명만 성공 => 그러면 나머지 999명은 너무 낭비가 심함. 전기낭비 등... 의 문제가 있다.
PoW 같은 경우는 랜덤 한 숫자를 찾는 것이고 대입을 하다 보니 시간이 좀 오래 걸리는 문제도 있다.
나중에 해결될 수도 있지만 대체적으로 시간이 느리다. 그리고 그런 것에 대한 개선으로 PoS, DPoS 등 여러 가지가 많음
• 지분 증명(PoS : Proof of Stake)
–노드에 기여하는 대가로 보상을 받는 방식
–채굴 파워가 아닌 지분에 따른 정당한 의사결정이 이루어지며 채굴 파워에 의한 중앙화를 방지하며 에너지 낭비를 최소화한 친환경적인 방식
–지분에 비례한 공정한 보상 지급을 통해 작업 증명 방식의 단점을 보완
PoS는 PoW의 단점 개선하고자 나온 합의 알고리즘이다. 그런데 PoW의 개선으로 나왔지만 사실 매우 문제가 많다.
Let A가 100개, B가 10개, C가 20개, D가 30개의 토큰을 가졌다고 하자.
원래 PoW는 먼저 사전 블록을 만드는 것이지만, PoS는 내가 더 많이 가지고 있으면 확률이 더 높은 것이다.
=> 그러면 A는 50%, B는 5%, C는 15%, D는 30% 정도가 될 것이다.
이런 식으로 많이 가진 사람이 확률적으로 랜덤 하게 블록을 생성할 수 있도록 권한을 준다.
채굴이나 랜덤 한 숫자를 찾는 것이 아니라 그냥 있는 것에서 확률적으로 찾는 것이니까 에너지를 낭비하는 단점이 있다.
말로는 정당하다고 하지만 실제로는 독점문제가 있다.
• 위임 증명(DPoS : Delegated Proof of Stake)
–자격을 갖춘 선택된 증인이 참여자들이 보유하고 있는 지분을 위임받아 블록을 검증하는 방식
–이중 채굴과 그라인딩 어택에 대해 내성을 갖는 합의 프로토콜이라 평가받으며, 모든 참여자가 블록을 검증하는 것이 아닌 소수의 증인만이 블록을 검증하기 때문에 증명 속도가 빠르다는 장점이 있음
위원회처럼 PoS 방식으로 마이닝 처리한다. 일반 사람들은 21명 중 한 명한테만 투표 진행하는 식이다. 이 중 한 사람이 PoS 중에서 확률적으로 마이닝을 성공한다면 여기에 속해있는 사람들이 보상을 받는 구조로 되어 있기도 한다.
하지만 이것에 대한 단점도 또 많이 있다.
블록체인 관련 정리
- 블록체인 생태계와 용어 정리(1)
- 블록체인 생태계와 용어 정리(2)
- [블록체인 기초] 토큰화란 무엇일까? (1)
- [블록체인 기초] 스마트 계약과 비즈니스 워크플로우(2)
- [블록체인기초] 토큰 거버넌스 와 스마트 계약(3)
- 암호화 화폐의 분류
- 암호화폐. 전자지갑
- (블록체인) 암호화 키 관리 방식 비교
- (트렌드) 블록체인의 계층 영역 (L0, L1, L2, L3)
- 블록체인 Layer1 Layer2 기술: 메인넷(L1)과 확장기술(L2)
- 블록체인 한계를 극복하는 레이어2(Layer2)기술의 종류와 특징 - 영지식증명
[출처] https://couplewith.tistory.com/search/블록체인