안녕하세요?
주말에 올릴 거 없어서 써 보는 암호화폐 기술 글이예요
관련전공 아니더라도 이해는 할 수 있도록 써 보았고,
실제 문과 형님 한 분께 검증을 마쳐 보고 올려 봅니다.
지난 글
1. 암호화
다음 글
3. 검사맡기
유용하다면 UpVote + 리스팀 부탁드려요~
이번엔 블록체인에 대하여 다뤄보도록 하겠습니다.
사실, 블럭체인은, 우리 가까이에 있습니다.
개발자라면 한 번쯤은 다뤄볼 수밖에 없는 건데요,
바로, 이 괴물 아재가 뚝딱 만들어낸..
버전 관리툴, GIT입니다..
개발자가 아니라면 잘 모르실거라 설명드리면,
문서같은 걸 버전관리 할 때, 보통은 파일 이름 뒤에 V2, V3 같은 걸 붙이지만,
개발 코드는 전 버전과 다른 것을 감지하여 변화분만 저장하게 됩니다.
이 때, 전 버전의 Hash 값과, 이번에 변경된 코드의 Hash값을 이용하여
새로운 변화분의 Hash를 만들어내게 됩니다.
이 Hash들을 시간순으로 죽 늘어놓으면 버전이 올라갈수록 바뀌어 가는 모습을 연속적으로 볼 수 있습니다.
혹시 중간에 순서가 바뀌지 않냐고 질문하면,
Hash를 만들 때, 전번 코드 변화분에 대한 데이터가 들어가기 때문에 불가능하다고 말씀드릴 수 있겠고요.
이 개념을, 가상화폐에서는 하나만 바꾸면 됩니다.
그것이 무엇이냐면...
바로, 코드변화분 대신 거래 장부입니다!!
이로써, 거래의 선후관계를 검증할 수 있게 됩니다.
이 때, 장부의 검증 데이터를 만들기 위하여는 전번 거래 데이터가 계속 필요하게 됩니다.
이렇게 꼬리에 꼬리를 무는 구조를 만들게 되죠.
(개발자 분이라면 Linked List를 떠올릴 수 있게 될 것입니다.)
이것이 바로 블록체인입니다.
그럼 하드포크랑 소프트포크는 무엇일까요?
개발에서의 포크는
남의 코드를 따 와, 그것을 기반으로 자신만의 코드를 만드는 일을 뜻하죠.
위 코드는 남이 짠 Alipay Python API에 기능을 추가하기 위하여 제가 '포크'해온 저장소입니다.
여러분들은 하드포크라는 이야기는 많이 들어봤을 거예요.
보통 하드포크는, 비트코인에서 뭘 따서 새 코인을 만들 때 이야기듣던 것이고요.
소프트포크라는 것도 있지만 많이 들어보지는 못했을 거예요.
하드포크란, 코인의 본질이 바뀌는 큰 변화가 올 때, 전체적인 업데이트가 필요한 경우의 포크이고,
소프트포크는, 코인 거래 검증에는 지장 없습니다만, 보안, 분배율 등의 것들이 업데이트 되는 겁니다.
자세한 사항은 @twinbraid님의 글에 더 잘 설명이 되어 있으니,
참고하시길 바래요.
블록체인 편도 끝이 났습니다..
그럼 이제 마지막, 거래 검증에 대한 이야기를 해 보도록 하겠습니다!
지난 글
1. 암호화