Bitcoin Basics
Sending payments
비트코인은 전송을 위해서 공개키/개인키 방식의 디지털 보안을 이용합니다. (네이버 "공개키 개인키" 검색)
영희가 철수에게 비트코인을 보낸다고 가정하면
● 철수가 영희에게 지갑주소를 알려줌
● 영희가 철수의 지갑주소와 금액을 적고 transaction 메세지를 전송함
● 영희가 개인키를 이용해서 transaction에 서명을 하고 이체 인증을 위해 공개키를 보냄.
● 영희가 transaction을 비트코인 네트워크에 모든 사람들이 볼 수 있도록 알려줌.
물론 사람은 위에 두개만 하고 나머지는 프로그램이 알아서 합니다.
영희의 개인키는 영희만 아는 것이므로 모든 사람들은 위의 과정을 통해 확실히 "영희"가 이체를 한 것을 확신하게 됩니다.
Preventing double-spending
위의 과정만으로는 영희가 같은 비트코인을 두번이상 사용하는 것을 막지 못합니다.
그래서 아래의 과정이 필요합니다.
● transaction(전송, 이체)의 상세한 과정이 가능한한 많은 컴퓨터에 알려져야합니다.
● 모든 transaction의 기록이 모든 컴퓨터에 하나도 빠짐없이 모두 기록된 상태로 존재하며 사라지지 않으며 계속 거래내역이 기록되어야합니다.
● 매 10분마다 계속해서 transaction block이 계속해서 작업이 이루어져야합니다.
● 블럭이 이런 방식으로 계속 연결이 되어야하며 만일 중간에 하나라도 변경이 일어나면 그 뒤의 블럭은전부 다시 계산 되어야합니다.
● 여러개의 유효한 체인이 존재하는 경우 더 긴 것이 나중에 생겨난 것이므로 긴 것이 유효합니다.
위의 방법을 이용해서 비트코인이 두 번 사용되는 것을 막습니다.

----------------------------------------------------------
요약하면 비트코인은 공개키/개인키방식을 이용해 전송의 유효성을 체크하고
또 그 돈이 두번 사용되는 것을 막기위해 모든 컴퓨터가 네트워크상의 모든 비트코인 이체거래의 모든 기록을 전부 가지고 있다라는 것입니다.
체인이 자꾸자꾸 길어지기야 하겠지만 HDD용량은 계속 커지고 인터넷은 계속 빨라지니 큰 문제가 없을 것 같기도 하네요.
방식은 생각보다 간단하네요.