Blockchain Confirmation & LIB
거래소로 코인을 보내면 보낸 즉시 반영이 되지 않고, 일정 시간이 지나야 반영이 된다.
은행에서는 내가 돈을 송금하면 바로바로 반영이 되는데 왜 거래소에서는 그렇게 되지 않는 것인가?
은행은 거래가 발생하면 사용자의 요청을 책임지고 처리한다.
책임의 소지가 명확하다.
우리는 그 대가로 수수료를 지불한다.
하지만 모두가 주인인 블록체인 세상에서는 은행처럼 한 명이 요청을 처리하더라도 완벽히 처리된 것이 아니다.
그렇기에 거래소는 사용자에게 말한다.
'네 거래가 적어도 6명에게 인정받으면 우리가 돈을 받은 것으로 처리해줄게'
블록체인 세상에서 거래를 인정받는 것은 투표와 비슷하다.
블록을 만드는 사람들이 모인 회의에서는 사용자들이 요청한 거래들을 처리해줄 것인지에 대한 투표를 한다.
한 명이 그 거래를 처리해주더라도 다른 사람들이 동의해주지 않는다면 그 거래는 처리되지 않는다.
블록체인 세상에서는 내 거래가 담긴 블록을 인정하는 것이 투표에 동의하는 것이다.
그리고 내 거래가 담긴 블록 위에 블록을 만드는 것이 내 거래가 담긴 블록을 인정하는 것이다.
다음과 같은 예를 보자.
1. A가 B에게 돈을 보낸다는 요청을 블록체인에 보냈다.
2. 100번 블록에 내 거래가 들어갔다! = 한 명이 내 거래를 인정해 줬다!
이제부터 시작이다. 다른 사람이 내 거래를 인정해주지 않는다면 이 거래는 무의미하다.
3. 앗! 내 거래가 담긴 블록 위에 101번 블록이 생겼다! = 또 한 명이 내 거래를 인정해 줬다!
4. …
5. 105번 블록까지 생겼다! = 6명이 내 거래를 인정해줬다!
내 거래는 6명으로부터 인정을 받았다. (6 confirmation)
짜잔! 이제 거래소가 우리의 거래를 인정해준다!
메디블록의 블록체인과 같은 DPoS 시스템에서는 블록에 LIB(Last Irreversible Block)라는 도장을 찍어준다.
이 LIB는 다음과 같은 의미를 가지고 있다.
'LIB 이전 블록에 담긴 거래들은 100% 확정! 더 이상 투표할 필요도 없음!'
예를 들어 내 거래가 100번 블록에 쌓이고 3분 정도가 지났을 때 100번 블록에 LIB 도장이 찍힌다면 내 거래는 100% 인정받았다는 의미가 된다.
누군가가 나에게 돈을 보내면 우리는 블록체인 상에서 그 거래가 담긴 블록이 LIB 도장이 찍힐 때까지만 기다리면 된다!
메디블록 블록체인에서는 블록이 LIB 도장을 받기 위해서는 약 50초가 필요하다.
본 포스트는 메디블록 회사와는 관련 없는 개인적인 끄적거림입니다.