오늘 내가 배운 것
1. 비트코인
2. 지갑
3. 지갑과 트랜잭션
4. 블록 익스플로러
5. 제네시스 블록
6. 해시(Hash)
7. 머클루트
8. 마이닝(채굴)
9. 블록체인 트렐레마
10. 블록체인 네트워크에 블록 추가하는 과정
비트코인
나카모토 사토시 라는 인물에 의해 만들어졌다.
지금까지 본인이 나카모토 사토시라는 사람이 여럿 나왔지만, 아직까지 본인임을 증명하지 못했다.
일반적으로 은행같은 곳에서 계좌번호와 비밀번호, OTP로 본인을 증명할 수 있듯,
블록체인에서도 지갑(계좌번호)과 개인키(소유주만 아는 비밀번호 같은 역할)를 이용하여 증명할 수 있지만
나카모토 사토시라고 주장한 사람들 모두 이를 이용하여 증명할 수 없었다.
지갑
공개키는 지갑의 주소로 누구나 확인할 수 있지만 개인키는 지갑을 이용해서 보관,관리하고 절대 공개되면 안되며 소유주가 관리하는 방식에 따라서 크게 인터넷에 연결되어 소프트웨어로 관리하면 핫월렛, 오프라인에서 별도의 하드웨어 저장장치로 관리하게 되면 콜드월렛으로 나눌 수 있다.
지갑과 트랜잭션
트랜잭션을 생성 후 지갑을 이용해서 서명을 하여 블록체인 네트워크로 전송을 한다.
전송된 트랜잭션은 블록에 포함되어 블록이 원장에 추가되고 모든 노드들이 해당 블록을 동기화하여 자신의 원장에 추가한다.
그리고 블록체인 네트워크는 원장을 공개한다. 트랜잭션의 당사자가 아니더라도 제3자가 확인할 수 있어야한다.
블록 익스플로러
블록, 트랜잭션, 주소 및 정보를 조회하고 분석을 할 수 있게 해주는 도구로써 블록체인의 노드에서 데이터를 가져와서 사람이 읽을 수 있는 데이터로 구성하여 사용자에게 보여준다.
제네시스 블록
블록체인의 모든 블록은 이전 블록의 해시값을 참조하지만 제네시스 블록은 처음 만들어진 블록이기 때문에 이전 블록의 해시값이 없다. 일반적으로 최초 블록을 개발한 사람이 제네시스 블록을 가지고 있다.
해시 (Hash)
해시는 임의 크기의 데이터를 고정된 큭기의 데이터로 변환하는 과정을 말하며, 변환된 데이터를 해시 값이라고 한다. 해시 함수는 입력 데이터가 조금만 바뀌어도 출력 결과 값이 달라지게 설계되어 있다.
대부분의 블록체인은 SHA-256 해시 알고리즘을 이용하여, 256bit(32byte)의 고정 해시 값을 출력한다.
블록을 생성할 때, 트랜잭션을 포함하여 만드는데, 이 때 트랜잭션은 해시값으로 변환된 이후에 블록에 포함된다.
머클루트
일반적으로 하나의 블록에는 여러 개의 트랜잭션이 있는데, 여러 트랜잭션중 가까운 2개의 해시값을 조합해서 1개의 해시값을 만들고 이 상위로 올라간 2개의 해시값을 다시 조합해서 1개의 해시값으로 만든다.
토너먼트 대진표처럼 생기게 되는 데 이를 머클트리라고 하며, 이와 같은 과정을 반복하여 최종적으로 1개가 남으면, 그 최상위의 해시값이 머클루트가 된다.
해시값은 조금만 바뀌어도 출력 결과값이 달라지는 특성때문에, 이를 이용하여 트랜잭션의 무결성 검증을 할 수 있다.
마이닝 (채굴)
Minning은 블록체인에서 새로운 블록을 생성하는 과정을 말하며, 흔히 채굴이라고 한다.
블록체인에서 새로운 트랜잭션이 발생하면, 이를 블록에 담아서 네트워크에 전파한다.
블록을 만드는 보상으로 코인을 주며, 블록 수가 많아질수록 탈중앙화에 가까워진다.
블록체인 트렐레마
블록체인 트렐레마는 블록체인의 3대요소인 확장성, 보안성,탈중앙화(분산 원장) 사이의 상충 관계를 나타내는 개념이다.
이 상충 관계를 극복하기 위해서 블록체인 기술의 발전이 지속적으로 이루어 지고있다.
현재 빗썸, 업비트와 같은 거래소 같은 경우 탈중앙화가 아닌 중앙화 거래소이다. 중앙화를 하면서 거래 속도를 늘렸다. 그래서 거래소 내에서 거래를 할 때는 빠르지만, 출금하는 과정에서는 블록체인 네트워크에 블록을 생성하기 때문에 출금 속도가 느린 것이다.
블록체인 네트워크에 블록 추가하는 과정
- 새로운 트랜잭션이 생성된다.
- 채굴자는 이 트랜잭션을 포함한 블록을 생성하기 위해 마이닝을 시작한다. 블록을 생성하기 위해서는 작업증명(POW) 과정을 거쳐야한다.
- 채굴자는 먼저 현재 블록체인에서 가장 최근에 생긴 블록의 해시 값을 알아낸다.
- 채굴자는 블록 헤더에 3번 과정에서 얻은 해시값(이전 블록 해시값), 새로운 블록의 트랜잭션을 이용한 머클루트, 생성시간, 난이도, 채굴자의 고유한 임의의 값인 논스(Nonce)를 추가한다.
- 채굴자는 블록의 해시값이 일정 기준 이하인지 검증하는 작업을 수행하고, 만약 기준 이상이라면 논스를 변경하여 블록의 해시값을 다시 구해서 검증한다. 기준 이하가 된다면 블록을 블록체인 네트워크에 전파한다.
- 다른 노드들은 이 생성된 블록을 검증하고, 이전 블록과의 연결성 및 새로운 트랜잭션의 유효성을 확인한다. 모든 노드가 동의할 경우, 해당 블록이 블록체인에 추가되어 원장이 업데이트 된다.
'💠BlockChain💠' 카테고리의 다른 글
블록체인 일반적인 블록 만들기 (2) - 비트코인 (0) | 2023.04.28 |
---|---|
UTXO 모델의 기본적인 개념 (0) | 2023.04.27 |
블록체인 일반적인 블록 만들기 - 비트코인 (0) | 2023.04.26 |
블록체인 제네시스 블록 만들기 - 비트코인 (0) | 2023.04.26 |
블록체인과 관련된 기본적인 개념과 설명 (0) | 2023.04.17 |
댓글