안녕하세요.
우리나라에서 비트코인으로 빵사먹은 3번째 사람입니다.
비트코인 3년만에 복귀했는데요,,
사실 예전에 비트코인 투자했다가 수익봣다가 손해봣다가 팔아서 결국 또이또이 되어서 본전치기 정도했습니다.
저는 채굴보다 투자하는게 빠르다고 생각하기 때문에 투자를 하는데요,,
제가 비트코인을 외면했던 이유는 블록사이즈 문제와 전송시간문제, 국가별로 비트코인 금지등에 따른 문제들 때문에 포기했었는데..
최근데 다시 비트코인이 오르고 있고, 각 나라에서도 규제를 풀고 가상화폐가 앞으로 새로운 화폐단위로 떠오르는 분위기여서 다시 관심을 갖게 되었습니다.
요즘 4차산업혁명중에 블록체인 기술이 화두가 되고 있죠..
그리고 비트코인이 아직도 살아있다는 얘기는 발전한다는 얘기이구..
또 비트코인은 블록체인기술의 시초이기 때문에 아무리 더 좋은 코인들이 나온다고 해도 비트코인은 발행량이 한정되어 있어서 우리가 금이나 다이아몬드 가치를 높게 하는것과 같은 이치라고 생각해요. 그래서 아직도 가상화폐가 망하지 않았다는 얘기는 가능성이 있다고 생각을 했습니다.
그런데 요즘 시간내서 공부를 하던중에 막히는 문제가 몇몇 있어서 질문을 드리고자 합니다..
고수님들중에서 제 질문에 대해서 명확하게 답변을 하실수 있는 분들이 아마 이제는 되지 않을까 싶습니다.
1. 비트코인은 멈춰질수 있는가?
- 현재의 금융시스템은 중앙시스템이 있기 때문에 중앙시스템이 파괴되거나 전원이 OFF되거나 누군가 임의로 개입하여 멈춘다면 멈춰질수가 있습니다.
그런데 블록체인은 중앙시스템이 없는게 매력이라고 하는데, 한번 시작된 블록체인 코인들은 죽을때까지 계속 유지가 되는건가요?
아니면 이러한 P2P 블록체인 시스템도 멈춰질수 있는 여지가 있나요?
(예를 들면 비트코인을 창시한 사토시가 비트코인을 멈추는 프로그래밍을 실행한다던지,, 아니면 비트코인을 사용하는 사용자들이 없어진다던지...)
2. 중앙시스템이 없어서 조작을 하거나 개입을 할수 없는데, 실제로는 조작을 할수 있는걸로 압니다. 정말인가요?
- 블록체인 기술을 해킹하려면 해당 네트워크를 사용하는 사용자들의 50%를 해킹해야 한다고 합니다. 그럼 조작이 가능하다고 하는걸로 알고 있습니다.
하지만 이론적으로 블록체인 네트워크 사용자들의 50% 이상을 해킹한다는건 불가능하다고 했는데, 그건 지구상의 전체인구 대비 사용자들이 많을 경우이고
만약 네트워크 대부분이 파괴 되어서 전체 비트코인 네트워크 사용자가 100명정도 밖에 안된다고 하면 실제로 50명만 해킹하면 되는건데,, 가능성이 있는건가요?
실제로 이더리움의 경우 사용자들의 동의를 얻어서 프로그램을 수정했다고 합니다. 그런데 저도 이더리움을 쓰지만 동의를 얻는 메세지를 받았다던지 그런적은 없는데 여기서 말하는 사용자들의 동의는 개발자들의 동의 인가요? 그\렇다면 개발자들은 누가 지정해주나요? 사용자들의 동의를 얻으면 프로그램 수정이 가능하다는건 이해를 어떻게 해야 할지 모르겠습니다.
3. 블록체인 네트워크 사용자라고 한다면 어떤 사용자를 얘기하는건가요?
- 채굴을 하는 사용자를 네트워크 사용자라고 하나요? 아니면 비트코인 코어를 실행중인 사용자를 얘기하나요? 아니면 비트코인을 전송하고 받고 이용하고 있는 사용자를 얘기하는건가요.
4. 비트코인 자산을 안전하게 보호하기 위해서는?
- 비트코인이 안전한 이유는 중앙시스템이 없어서 해킹이 사실상 불가능하다는 이유였습니다. 비트코인을 보유하는 방법은 크게 2가지가 있습니다.
비트코인 거래소에 보관하는 방법과 비트코인 코어에서 직접 지갑을 발급받아 wallet.dat를 보관하는 방법이 있습니다.
우리는 여태 비트코인 거래소가 해킹당하는걸 수없이 많이 목격했습니다. 비트코인 거래소는 100% 안전한 보관방법이 아니라는걸 이제는 압니다.
그래서 비트코인을 안전하게 보관하기 위해서는 코어단에서 직접 지갑을 발급받아 wallet.dat파일을 보관하면 된다고 알고 있습니다.
그럼 정말 wallet.dat 파일만 백업을 잘하면 안전하게 자산을 보호할수 있는건가요?
현재 비트코인 코어를 실행하면 100GB가 넘는 블록사이즈 데이터가 형성되어있습니다.
wallet.dat 파일을 보관하고 이를 추후에 불러와서 사용하기 위해서는 현재의 블록데이터와 동기화 해야 하는데, 블록데이터가 최신으로 되어있다면 동기화는 생각보다 금방 끝나게 됩니다.
하지만, 비트코인 사용자가 많아질경우 블록사이즈는 기하급수적으로 커져서 1000TB가 될수도 있고, 그이상 PB가 될수도 있습니다.
그렇게 되면 블록데이터를 다운받는데만 몇달이 될수도 있을거고 심지어는 네트워크가 포화되어서 아예 접속이 안되어 다운조차 안될수도 있지 않을까요?
그렇게 되면 내가 안전하게 저장한 wallet.dat 파일을 동기화할수도 없어서 내가 보관한 비트코인은 제대로 사용조차 못할수도 있을겁니다.
이런 현상에 대해서는 대체할수 있는 방법이나 다른 방법이 있나요?
5. 검증은 어떤 방식으로 이루어지나요?
- 비트코인은 블록마다 거래내역이 보관되어있고, 이 블록들이 이어져서 블록체인이 되는건데.. 지금도 블록데이터가 731개나 됩니다. 각 1개의 블록데이터마다 어마어마한 거래내역들이 있을거구..
지금 비트코인의 경우 이체를 하면 5컨펌을 거쳐서 이체가 완료 되자나요. 그럼 이 검증이라는게 랜덤하게 비트코인 코어를 설치한 사용자의 컴퓨터에 blocks/blk00726.dat 이런형태의 블록 데이터 파일을 대조해서 블록데이터안에 있는 거래내역을 대조한다음 일치하면 1컨펌이 되고, 또 다른 코어를 설치한 랜덤한 사용자의 컴퓨터에 있는 블록데이터를 대조해서 일치하면 2컨펌이 되고,,,,, 이런형태로 5컨펌을 거쳐서 검증이 되는건가요?
그렇다고 한다면 코어를 설치한 사용자들이 ON-LINE이 되어있어야 한다는 얘기인가요? 아니면 코어를 설치한 사용자들이 아니라 채굴을 하고 있는 채굴자들의 컴퓨터 안에 있는 블록데이터를 비교하여 검증하는건가요? 정확한 블록 검증에 대한 이해가 어렵습니다..
이렇게 크게 5가지에 대한 기본적인 질문을 드립니다. 사실 기본이지만 정확한 프로세스와 원리를 이해하는것이기 떄문에 어려울수도 있을겁니다.
아마 제가 드린 질문에 대한 답변은 개개인별로 조금씩 다르게 설명을 해주는 분들이 계실거라 생각합니다.
그만큼 제가 질문한 예민한 부분이면서도 깊이가 있는 질문일수 있다고 생각합니다.
고수님들의 답변 기다리겠습니다.ㅎ_ㅎ
1. 원론적으로 완벽한 비트코인 블록체인을 단 1명이라도 소유하고 있고, 노드로 연결되었다면 비트코인 네트워크는 멈출 수 없습니다. 블록체인의 소유자 및 노드가 없어 네트워크가 장시간 멈춰있었던 잭팟코인도 몇달 전 땡글 회원 분의 블록체인 복구로 되살아난 경우도 있습니다.
Bitcoin-Core에 악의적인 코드가 삽입되었다고 하더라도 오픈소스이기에 전세계의 수 많은 개발자가 코드를 직접 볼 수 있으며, Bitcoin-Core에서 파생된 지갑 클라이언트만 수십개 이상이니 그런 공격은 힘들 것이라 생각합니다.
4. Bitcoin-Core에는 0.12 버전부터로 기억하는데, prune 명령어를 통해 비트코인을 최소 550MB만 남길 수 있습니다.
굳이 Wallet.dat 파일이 아니라도, 비트코인 주소의 개인 키만을 백업하여 Light Wallet(Electrum) 등에 임포팅하여 사용할 수도 있을겁니다.
5. 비트코인 거래가 처음 발생하면 자신들과 연결된 다른 노드에게 거래가 전파되고 그 노드들이 또 자신과 연결된 다른 노드에게 전파하는 방식으로 거래가 전파됩니다. 이때 해당 거래는 '미승인된 거래'로 남습니다.
채굴자들은 해시값 대조를 통하여 난이도에 맞는 블록을 찾게 되고 블록을 찾았다면 노드에게 전파되었던 미승인된 거래 중 우선 순위가 높은 거래를 블록에 포함시킵니다. 이때 블록에 포함된 거래는 1 승인이 됩니다. 블록에 포함되지 못하는 거래들은 여전히 미승인된 거래로 남습니다.
이후 또 다른 블록이 생성되어 이전 블록과 연결되었다면 이전 블록에 있던 모든 거래는 1 승인 상태가 됩니다.
그러니까 A 거래가 100 승인을 받았다면, A 거래가 블록에 포함되었던 이후로 99 블록이 생성되었다는 의미입니다.