Blockchain Transaction flow
1. 작동 시작
만약 민지가 철수한테 비트코인
을 보내고 싶어한다면, 민지는 비트코인
이 저장되어있는 휴대폰이나 컴퓨터의 비트코인 지갑 어플
을 열어볼것이다.
(지갑 어플은 보통 공짜로 받을 수 있음)
(비트코인이나 이더리움은 단순히 블록체인의 특정 기능을 이용한 암호화폐인데, 비트코인은 비트코인만 거래하고, 이더리움은 이더만 거래할 수 있음! 그러니깐 민지가 사용하는 지갑 어플은 비트코인 지갑일 것이다.)
2. Smart Contract가 발동됨
민지가 네트워크에 거래
를 보내게 되면, 네트워크의 노드들이 smart contract
를 발동한다. 근데 이제 그 smart contract
가 어떤일을 하냐면, 민지가 사용할 수 있는 비트코인
이 있는지 아니면 이미 다 써버렸는지를 확인한다.
확인이 되면 그 거래는 제안된 블록
(proposed block)에다가 추가된다.
3. Operators가 Transaction을 뿌림
제안된 블록이 이제 peer-to-peer
프로토콜을 통해서 네트워크에 뿌려진다
4. 합의하기
이제 블록체인 시스템
에서 가장 중요한 부분이라고 볼 수 있는 지점이다.
비트코인 네트워크에서 그 블록 (이전에 제안된 블록)을 검증하기 위해서, 노드들이나 채굴꾼들이 수학문제 (아주 어려운) 를 계산하면서 유효성
검사를 하게된다. 비트코인은 이러한 검증을 Proof of Work
라는 개념을 통해서 진행한다.
(요 부분은 추후에 다시 다룰 예정. 비잔티움 장애 허용이라는 문제를 해결하기 위해서 비트코인이 제안한 방법)
어쨌든 그 Proof of Work
의 수식을 가장먼저 해결한 노드는 새롭게 채굴된 비트코인을 보상받는다. 일단 그 문제(수식)의 솔루션이 나오면 다른 노드들은 쉽게 이 제안된 노드가 정확한지 알 수 있게되고 새로운 블럭은 블록체인 네트워크에 추가된다
5. 새로운 블록 뿌리기
이 블록은 처음에 제안된 거래를 위해서 우리가 사용하는 peer-to-peer
커뮤니케이션을 통해 네트워크에다가 뿌려지게 된다.
Block operator가 새로운 블록의 사본을 받게되면 분산 장부
에다가 그 사본을 추가한다. 이건 현재 네트워크에 참여하고 있는 멤버들이 모두 현 상태에 대해서 동의한다는 것을 보장
한다!
6. 거래 완료
사용자의 지갑은 사용자와 연관된 거래가 포함된 새로운 블록이 생성되는지를 계속 바라보고 있다.
사용자의 작동에 대한 코드가 포함된 블록이 있다는 것을 확인하게 되면, 그 사용자가 요청했던 동작이 수행되었다고 지갑이 알람
을 보낸다.
민지가 철수에게 비트코인을 전송한다는 내용을 담은 블록이 블록체인 시스템에 추가되면, 그 거래가 영향을 끼친 지갑에 알람
을 보내줄 것이다.
출처 : https://learning.edx.org/course/course-v1:LinuxFoundationX+LFS170x+2T2021/