- Published on
Blockchain) 비트코인과 암호화폐의 연구관점 및 과제
- Author
- Name
- yceffort
비트코인과 암호화폐의 연구관점 및 과제
아직 이해가 온전하지 못하다. 일단은 계속해서 작업중인 버전이라는 것을 말씀드리고 싶다.
비트코인 백서가 출간된 이후로, 비트코인을 비롯한 수많은 알트코인이 등장하기 시작했다. 이러한 화폐들 간의 Consensus mechanism, Currency Allocation mechanism, computational puzzles, and key management tools에 대해 비교 분석하였다. 또한 비트코인의 익명성 문제를 조사하고, 다양한 개인 정보 보호를 위한 프레임워크를 소개한다. 마지막으로 disintermediation protocols에 대한 새로운 통찰력을 제공한다. 이는 일련의 과정에서 신뢰할 수 있는 중개자의 필요서을 제거한다. 세가지 일반적인 disintermediation 전략을 확인하고, 이에 대한 상세한 비교를 보여준다.
1. 왜 비트코인이 연구 가치가 있는가
첫번째, 비트코인은 현실세계에서 놀랍도록 잘 동작하고 있지만, 왜 가능했는지 정확하게 파악하는데 이 연구가 중요한 역할을 할 것이며, 시스템 초기 제안서 (사토시 나카모토의 백서 같은) 에 제시된 비공식적 주장을 맹목적으로 받아드리는 것 이상의 가치를 지닐 것이다.
두번째, 비트코인은 신뢰 할 수 있는 제3자가 필요 없고, 거래 당사자들 사이에 가상 통화 시스템을 제공하여 중요한 틈새시장을 채우고 있다고 주장한다.
다시 말해, 비트코인을 모델링 하는 것은 쉽지 않지만, 매우 어렵고 중요한 문제들에 실질적인 해결책의 기초를 제공하기 때문에, 상당한 연구가치가 있다고 볼 수 있다. 이 연구의 목표는 이와 같은 새로운 지불 프로토콜에서 사용자 친화적인 키 관리에 이르기까지, 중요한 혁신이 발생한 많은 영역에 대해 강조하고, 비트코인 및 향후 알트코인에 대한 가장 중요한 공개 연구과제를 강조하는 것이다.
2. 비트코인 개론
A. 대략적인 역사.
1983년, 암호화된 화폐가 Chaum에 의해 처음으로 제시 됐는데, 이는 '추적 불가능한 지불'을 구현 하기 위함이었다. 상인과 고객 사이화폐거래는 은행이 이전에 이 통화가 상환되지 않았는지 확인한 뒤에야 가능하다. 이를 위해 Blind Signature는 은행이 사용자를 화폐와 관련 지을 수 없게 하여 현금과 비슷한 연결불가능성을 제공하는 것이다.
1990년 대에 이르러 많은 제안이 있었다. 온라인 거래를 위한 은행의 필요성 제거, 화폐를 작은 단위로 송금하는 기술, 일부 스타트업에서는 DigiCash나 Peppercoin등을 내놓기도 했다. 그러나 어떠한 것도 주요한 발전을 이뤄내진 못했다.
비트코인에서 핵심인 요소는 'Proof-of-work'와 'public legder'이 두가지다. 이를 해결 하기 위해 많은 연구들이 이뤄졌다. 그러다 2008년, 사카시 나카모토에 의해 비트코인 백서가 발간되었고 첫번째 비트코인 블록이 2009년 3월에 등장했다. 그 이후로, 비트코인은 급속도로 발전하기 시작했다.
B. 기술적인 개론
비트코인을 기술적인 부분 3가지로 나누면
- Transaction (script 포함)
- Consensus protocols
- Communication Network
정도로 나눌 수 있다.
1. Transaction and script
비트코인은 transaction이라고 불리는 일련의 message로 구성되어 있다. 다른 것들 중에서도, 유저와 다른 사람들 간의 송금을 구현하기 위해 거래가 제일 먼저 생성된다. 큰 규모의 (그리고 점점 증가하는) 거래목록이 비트코인의 유일한 상태임에 유의 해야 한다. 유저, 잔고 같은 개념은 존재 하지 않는다. 이러한 개념들은 공개된 거래 목록에서 귀속될수 있는 정도까지만 존재한다.
Transaction Format
거래는 입력값의 배열과 출력값의 배열로 구성되어 있다. 거래는 SHA256으로 복호화 되어 있다. 그리고 이는 유니크한 거래 ID로 활용 된다. 각각의 아웃풋은 비트코인 화폐의 가치를 표현하는 숫자로 구성되어 있다. 가장 작은 단위는 사토시다. 10^8 사토시가 보통 하나의 통화 단위다. 또한 scriptPubKey라고 하는 특별한 code snippet을 가지고 있는데, 이는 다음번 거래에 사용될 수 있는 조건을 포함하고 있다.
Transaction Script
'Pay-to-pub-key-hash' 트랜잭션은 지정된 해시가 있는 키를 사용하여 전체 트랜잭션에 서명한다. 비트코인 거래의 대다수는 이러한 해시를 사용하며, 다른 트랜잭션 유형도 가능하지만, 보통 이 방법이 유일한 가능성이라고 설명한다. 트랜잭션 입력은 해시 및 해당 트랜잭션의 출력 배열내 출력 색인에 의한 이전 트랜잭션을 나타낸다.
Conservation of value
각각의 트랜잭션 인풋이 이전 트랜잭션의 아웃풋과 일치해야 하는 것 과 더불어, 모든 트랜잭션의 출력값의 합계는 모든 인풋값의 합계보다 작거나 같아야 한다.
From transaction to ownership
비트코인의 소유를 증명하는 identity나 개인 계좌라는 개념 자체는 없다. 소유라고 하는것 은 단순히 특정 아웃풋을 서명할 수 있는 개인 키를 의미한다. 그리고 개개인은 사용할 수 있는 비트코인을 소유할 수 있다. Public Key Hash는 시스템 내에서 ID로 효과적으로 작동하며, 주소라고 명한다. 그리고 실제 이름이나 식별정보는 필요로 하지 않는다.
2. Consensus and Mining
비트코인은 이중 지불 공격을 해결하기 위한 간단한 방식을 취한다. 모든 거래는 글로벌 트랜젹선 로그에 게시되어야 하며, 개별 트랜잭션 출력은 한번의 후속 트랜잭션에섬나 사용될 수 있다. 트랜잭션을 확인하기 위해서는 스크립트를 확인하고 성공적으로 게시되었는지 확인해야한다. 이러한 로그는 일련의 블록으로 구현되며, 각각 이전 블록의 해시를 포함하여 이 블록을 유일한 이전 블록으로 커밋한다. 이것이 바로 블록체인이다. 이를 위해서는 글로벌한 합의 절차가 필요하다.
Nakamoto Consensus
비트코인은 분산된, 나카모토 합의라고 불리는 유사한 프로토콜을 통해 브록체인에 대한 합의를 확립한다. 누구든 유효한 거래를 모아서 블록을 만들어 추가하는 작업을 시도할 수 있다. 여기서 핵심은 컴퓨터적으로 어려운 퍼즐을 사용하여, 누구의 블록이 다음블록으로 유효한지 결정하게 끔 하는 것이다. 새로운 블록을 선택하는 과정은 간단하다. 어려운 퍼즐에 대한 올바른 답을 첫번째로 알리는 블록이 유효한 블록이 되는 것이다. 그 이후 다른 참가자들은 후속 블록을 찾기위해 노력한다. 만약 이렇게 알려진 블록에 잘못된 트랜잭션이 있거나 잘못 만들어 진다면, 다른 참가자들은 유효한 블록에 대한 해결책을 찾을때 까지 해당 블록을 거부하고 작업을 계속한다. 합의 블록체인은 가장 긴 버전의 체인이다.
두가지 비슷한 버전의 체인이 거의 비슷한 시기에 나타날 수 있다. (네트워크 지연 등) 그러나 컴퓨터 퍼즐의 무작위적 성질 때문에 한 체인이 다른 체인보다 더 길어질 것이고, 다른 사람들도 그 체인을 받아드릴 것이다.
block information
이런 특성상, 사용자가 블록이 발견될때 까지 기다려야 블록체인에 트랜잭션이 영구적으로 포함된다는 신뢰를 얻을 수 있다는 것을 의미한다. 그러나 최악의 경우 이중 지출 공격이 가능하게 될 수 있다. 그러나 miner들이 기본 프로토콜을 따른다면, 더 많은 확인 블록이 발견됨에 따라 트랜잭션이 기하급수적으로 증가하여 결국 가장 긴 체인에 도달할 가능성이 높다. 실제로 대부분의 비트코인 클라이언트는 트랜잭션을 수락하기전에 6개의 확인 블록을 필요로 한다. 6개의 블록은 임의로 선택할 수 있다.
Incentivizing correct behavior
이 프로토콜의 중요한 요소중 하나는, 블록을 발견한 참여자가 지정된 금액의 통화를 발행하고, 선택한 주소로 전송되는 트랜잭션을 삽입할 수 있다는 것이다. 참가자들은 금전적 보상과 교환하여 이 계산 퍼즐을 해결하기 위해 노력하고 있다. 블록보상이라고 하는 이 새로운 화폐는 miner 에게 유효한 블록에서만 작동하도록 인센티브를 준다.
이 합의 알고리즘은 금전적 보상에 의존하기 때문에 양도할 수 있는 개념이 없는 시스템에서는 사용될 수 없다. 비트코인내에서는 이 외에 돈을 만들 수 있는 메커니즘은 없다.
Mining Details
이런 퍼즐은 암호화 해시 함수인 SHA 256에 대한 pre-image를 찾는 것을 목표로한다. 퍼즐은 연속적인 0 비트로 시작하는 값을 찾는 것으로 묘사된다. 이에 대한 일반적인 전략은 랜덤 nonces를 대입하는 것이다. 이런 무작위성은 굉장히 중요하다. 그렇지 않다면, 가장 강력한 컴퓨팅 파워를 가진 마이너가 모든 블록을 찾아갈 것이기 때문이다. 이런 무작위성은 모든 miner들이 블록을 가져갈 수 있는 확률을 제공한다. 난이도는 평균 10분마다 한번씩 발견될 수 있도록 보정된다. 이를 유지하기 위해, 2016 블록 또는 2주에 한번씩 보정된다.
Mining rewards and fee
블록발견 보상의 크기는 고정된 스케쥴에 의해 결정된다. 첫 블록은 50비트코인, 그리고 25비트코인으로 쪼개진 뒤로 2140년까지 절반으로 계속해서 줄어들 것이며, 이 때까지는 새로운 비트코인이 만들어지지는 않을 것이다. 통화가치 하락을 가능하기위해, miner들은 블록보상을 통해 이익을 얻는 것 뿐 만 아니라, 출력값보다 입력값이 큰 블록에서 거래수수료도 가져갈 수 있다. 현재까지 거래수수료는 주로 많은 소규모 거래로 네트워크 과용을 막는데 사용하여 채광 수익의 1~2% 이상을 제공하지 못했다.
Mining Pools
일반적으로, miner들은 마이닝 풀을 만들어 함께 채굴하고 그들의 이익을 나눠가졌다. 마이닝 풀은 보통 일정 수수료를 받는 관리자가 유효한 블록을 찾아내서 획득한 보상을 참여자들에게 나눠주는 방식으로 운용된다. 참여자들은 자신이 채굴에 기여한 정도를 확률적으로 증명해야 한다.
이러한 마이닝풀은 기존 프로토콜에서는 예상치 못한 움직임이었지만, 2013년 이후로 이러한 풀을 조직화 하는 것은 일반적인 일이 되었다. Pool에서 생성된 수익을 나누기 위한 많은 종류의 공식이 생겨나기 시작했다.
3. Peer to peer Communication Network
비트코인은 탈중앙화 되어 있기 때문에, 새로운 거래와 블록을 네트워크에 알리는 것이 필요하다. 이는 앞서 언급한 3가지 컴포넌트 중 가장 변화가 적고, 다른 알트코인에서도 대부분이 비슷한 방법을 따르고 있다.
Impact on consensus
네트워크 성능과 안정성은 합의 프로토콜에 중요한 영향을 미친다. 블록 발견에 대기시간이 길어지면, 일시적인 포크가 많아 질 가능성이 존재한다. 또한 네트워크 상당부분을 장학하는 악의적인 유저는 자신의 블록을 악의적으로 퍼트려 해당 블록이 승리하게 끔 할 수도 있다. 따라서 비트코인은 분산된, 짧은 대기시간과 메시지를 검열하고 지연시키기 어려운 시스템을 갖추는 것이 중요하다.
Network topology and discovery
모든 노드는 다른 무작위 노드에 연결하여 네트워크에 가입할 수 있다. 기본적으로 8개의 나가는 연결을 시도하며, 최대 125개의 수신이 가능하다. 네트워크에 처음가입하면, 비트코인은 하드코딩된 전용 디렉토리서버 또는 '시드노드'를 사용한다. 피어는 또한 서로 다른 메커니즘을 통해 정보를 전파한다. 노드가 나가는 연결을 하면, 연결정보를 포함하는 일련의 트레이 메시지를 전달한다. 또한 들어오는 연결을 수신하면 노드는 피어에게 알려진 주소목록에서 샘플을 요청한다.
Communication protocol
새로운 블록과 보류중인 트랜잭션은 전체 네트워크로 전해지게 된다. 노드는 새로운 블록과 보류중인 거래 내역을 모든 피어들에게 보낸다. 수신한 피어가 아직 보지 못한 내역이면, 블록이나 트랜잭션의 전체내용을 요청하여 응답할 수 있다. 기본적으로 노드는 새로운 데이터를, 임시포크에서 두 블록이 발견 될때만 브로드캐스팅하며, 보류트랜잭션은 브로드 캐스트 하지 않는다. 이러한 제한은 네트워크 데이터를 제한하도록 성능을 최적화 한 것이다. 비준수 노드는 잘못되거나 충돌하는 데이터를 릴레이 할 수 있으므로, 모든 노드가 수신하는 데이터를 독립적으로 검증해야 한다.
Relay Policy
비트코인은 일반적인 트랜잭션 유효성 규칙보다 더 엄격한 규칙을 충족하는 릴레이 트랜잭션과 블록만 전달한다. 이는 다양한 서비스 거부 공격을 방지 하는 것이다.
3. 비트코인의 안정성
A. Stability of transaction validity rules
비트코인 생태계의 참가자들이 거래 유효성 규칙에 합의를 얻는 방법에 대한 분석이 부족한 것이 현실이다. 기본 철학은 사토시가 규칙을 정한 것으로, 표준주의라고 불리고 있다. 이는 몇가지 규칙에서의 불일치를 조정한 버전이다. 그러나 새로운 기능을 추가하기 위해 이미 변경된 비트코인의 현재 규칙을 설명할 숭 없다. 일례로 2013년 3월에 유효한 블록 크기를 버그가 제거된 경우가 있다. 이로 인해 새로운 대형 블록이 패치가 적용되지 않은 클라이언트에의해 거부된 경우가 있다.이를 해결하기 위해 업데이트 된 클라이언트는 24블록 포크를 버리고 오래된 클라이언트가 업데이트 할 수 있도록 두달동안 더 큰 블록을 포함하는 작업을 일시 중단했다. 결국 버그는 패치되었고, 패치되지 않는 노드들은 배제되었다.
비트코인 자체적으로 트랜잭션 유효성 검사 규칙을 업데이트하는 프로세스가 따로 존재하지 않는다. 완전히 비트코인이 분산된 시스템으로 인지하고 있지만, 규칙변경이나 모호성 제거를 위해서는 블록체인이 세계적 합의를 유지하기 위해 본질적으로는 어느정도의 지배구조가 필요하다.
현재는 bitcoind
를 개발하는 핵심 개발자들이 비트코인 파운데이션과 함께 사실상의 거버넌스를 제공하고 있다. 많은 초기 인터넷 프로토콜과 마찬가지로 합의를 넘어서는 결정을 내리는 공식적인 프로세스는 존재 하지 않는다.
B. 합의 프로토콜의 안정성
- Eventual consensus: 언제든지 모든 노드는 최종적으로 유효한 블록체인이 되는 것에 동의 한다
- Exponential convergence: Fork의 깊이 확률은 O(2^-n)이다. 이는 사용자에게 단순한 규칙이 자신의 트랜잭션이 높은 신뢰도로 영구적으로 포함되도록 보장한단는 신뢰감을 준다.
- New block: 새로운 블록이 계속 추가되고 적절한 수수료를 가진 유효한 트랜잭션이 유효한 시간 내에 블록체인에 포함된다.
- Correctness: 가장 긴 체인에 있는 모든 블록들만이 유효한 거래내역을 가질 수 있다.
- Fairness: 총 컴퓨팅 파워의 a를 가지고 있는 광부는 a만큼의 블록을 채굴할 수 있다.
Incentive compatibility and game theory
사토시는 모든 miner가 인센티브를 따르는 한 비트코인은 안정적일 것이라고 했다. 이러한 인센티브는 비트코인 또는 암호화폐 맥락에서 공식적으로 정의 된적이 없다. 게임이론적인 측면에서 보편적인 준수가 내쉬균형으로 보여지면, 일방적으로 전략을 변경할 인센티브가 없으므로 이러한 비트코인 인센티브의 호환성을 암시한다. 반면에 비 호환 전략이 준수를 지배한다면, 결과적인 전략 균형이 안정성과 연결되는지를 확인해야 한다.
Simple majority compliance may not ensure fairness.
채굴전략의 안정성은 본질적으로 통신네트워크에 대한 가정에 의존하고 있다. 만약 일시적인 보류가 발생한다면 (miner가 블록을 발견했음에도 알리지 않는다면) 이것은 공정성을 훼손할 수 있을 것이다.
Majority compliance is an equilibrium with perfect information.
대다수가 동의했다는 완벽한 정보라는 것과 같다.
Majority compliance implies convergence, consensus, and liveness.
대부분의 규정 준수는 통합, 합의 그리고 liveness를 의미한다. 대다수의 miner들이 프로토콜을 따른다면, 가장 긴 체인이 빠르게 나타난 다는 것을 알 수 있다. 대다수의 miner가 준수하는 전략을 따르고, 통신 지연시간이 블록을 발견하는 시간에 비해 작다면, miner들은 결국 규칙을 따르며 동의할 것이라는 것을 의미한다. 이것은 공정성을 제외한 모든 안정성 관련 속성을 보장하기에 충분하다.
With a majority miner, stability is not guaranteed
대부분의 연산능력을 제어하는 miner가 다른사람들이 발견한 블록을 무시하고 자체적으로 체인을 구축하고 모든 보상을 가져갈 수도 있다. 그러나 이는 명목상의 이익을 가져다 줄수 있지만, 이러한 행동은 감지될 수 있기 때문에 합리적인 miner의 장기적인 이익으로는 적절하지 않다.
광부가 단합할 경우, 안정성은 어떻게 되는가?
소규모 miner이 뭉쳐서 대다수의 채굴을 통제하고 단일 miner가 할 수 잇는 전략을 모방하는 카르텔을 형성할 수도 있다. 이런 카르텔이 내부적으로 안정적일지, 카르텔 개개인이 이러한 유혹을 받을지, 또는 제외된 miner가 유리한 조건으로 대체 카르텔을 형성하겠다고 제안할 경우 이를 깨드릴 수 있는지는 알려지지 않았다. mining pool은 카르텔 형성을 위한 기술적인 메커니즘이다. 이러한 mining pool과 관련된 역학은 아직 연구되지 않았다.
보상이 감소할 경우 안정성은 어떻게 되는가?
이 모든 결과는 각 블록이 일정하고, 고정된 보상수수료를 받는다는 단순화된 모델을 기반으로 하고 있다. 만약 거래수수료가 허용되지 않으면서 채굴 보상이 없는 최종 상태나 중간상태가 안정성에 어떤 영햐을 미칠 것인지에 대한 연구는 존재하지 않는다. 실제로 miner들은 비트코인 획득 뿐만 아니라, 실제 그것이 주는 수익에 대해 더 관심이 있다. 이것을 모델링하려면 얼마나 많은 비트코인을 버는지 , 실제 가치로 얼마나 효과적으로 전환할 수 있는지를 연구해야 한다.
유동성 한계
비트코인을 외부 통화로 거래하는 교환은 일반적으로 유동성이 낮다. 따라서 공격자는 비트코인을 얻을 수 있지만, 모두 외부 화폐로 변환할 수 없거나 크게 감소된 환율 에서만 가능할 것이다.
환율이 공격에 직면할 경우
눈에 띄게 안정성에 악영향을 미치는 전략은 대중의 신뢰를 훼손하고 비트코인에 대한 수요를 약화시킬 수도 있다. 유동성에 한계가 있는 것에 비추어 보았을때, 환율이 반응하기전에 현금화 하는 것은 어려울 수 있다.
Long-term stake in bitcoin-denominated mining rewards
대형 miner들은 비트코인의 환율을 유지하는데 추가적인 관심을 가지고 있다. miner가 채굴력을 판매할 수 있는 효과적인 시장이 없다면, 다른 대중들보다 더 빨리 이를 현금화 시키려고 할 것이다. 불행히도 환율은 본질적으로 인간의 판단과 시장의 신뢰에 달려있기 때문에 게임이론 모델에서 포착하기란 쉽지 않다.
Goldfinger attacks
대다수의 miner들의 목표가 비트코인의 안정성과 통화로서의 유용성을 파괴하려는 것을 Goldfinger Attacks라고 한다. 이는 성숙한 선물 시장이 생겨나면 방지할 수 있다.
C. 마이닝 풀의 안정성
마이닝 풀은 유효한 블록을 찾기 위해 miner에 의존하며, 보상 대가로 수익을 나눠주지만, 수익을 낮추기위해 유효한 블록을 찾았지만 제출하지 않는 miner에게 취약한 구조를 가지고 있다. 이는 블록을 보유하는 참여자 외에도 자신의 수입을 낮추기 때문에 자멸적인 것으로 보인다. 그러나 이는 대형 miner가 유효한 블록을 보류하고, 다른 마이닝 풀에 침투하여 실제로 이익을 줄 수 있다는 것이 나타났다. 이 전략은 대규모 miner와 마이닝 풀에서 유효하다. 이 게임은 두풀의 내쉬균형이 서로 공격하지만, 페레토 균형은 공격하지 않는다는 것을 보여주었다. 이는 반복적인 죄수의 딜레마로, 마이닝 풀 밖의 의사소통과 보복 위협을 통해 서로 공격하는 것을 피할 수 있다.
D. the peer-to-peer layer의 안정
비트코인은 P2P레이어가 정의된대로 기능하며, 일반적으로 참가자의 대다수가 합리적인 시간 내에서 사용 가능한 프로토콜 정보를 거의 모두 학습할 것이라고 가정한다. 하지만 이는 옳지 못하다. 마이닝 풀은 공격에 참여할 인센티브를 가지고 있고, 더 큰 마이닝 풀은 작은 것 보다 더 공격에 유용하다. 마이닝 풀에 대한 서비스 거부 공격은 종종 발생하므로, 연구할 필요가 있다.
4. 클라이언트 사이드 보안
A. 단순화된 지불 확인(Simplified Payment Verification (SPV) Security)
비트코인 클라이언트가 전체 블록체인에 유효성있는 사본을 유지하지만 이는 모바일 장치에 부담을 부과한다. 대부분의 노드가 유효한 체인에 있는 노드만 사용한다고 가정한다면, 이런 클라이언트는 작업증명만 확인하면 가장 긴 트랜잭션만 포함시키면 된다. 이러한 SPV검증을 통해, 신뢰할 수 없는 노드가 합의된 기록에 트랜잭션이 포함되어 있다는 것을 경량 고객에에 효율적으로 증명할 수 있게 한다.
B. 키 관리
비트코인은 사용자 인증을 위해 공개 키 암호화에 의존하지만, 오늘날 온라인 상거래는 암호 또는 기밀 신용카드 정보에 의지한다. 비트코인 소프트웨어 개발자는 핵심 스토리지및 관리에 다양한 접근방식을 시도하고 있다.
장치에 키 저장
가장 간단한 모델이지만, 악성코드로 인해 도난당할 수 있다. 일부 클라이언트는 현재 키 풀이 고갈될 때마다, 새로운 백업이 필요한 새 비트코인 주소에 변경 사항을 보내고, 다른 클라이언트는 원래 주소로 변경을 보내거나 임의로 모든 키를 가져온다.
별도보관
단일 장애 지점을 피하고, 보안을 향상시키기 위해 n 개의 공개키를 지정하는 k-of-n 다중 서명 스크립트을 사용하여 비트코인을 저장할 수 있다. 스크립트를 다시 사용하려면, n키의 k에서 유효한 서명을 제공해야 한다. 일례로 노트북과 휴대전화를 서명해야하는 지갑으로 볼 수 있다.
암호로 보호되는 지갑
비트코인 클라이언트는 지갑을 사용자가 선택한 암호에서 파생된 키로 암호화 할 수 있다.
암호로 추출된 지갑
이러한 암호를 메모리에 커밋하면 장치를 교차하여 사용할 수 있다.
오프라인 스토리지
종이나 usb드라이브 같은 휴대용 미디어에 저장하면, 악성코드 기반 위협으로 부터 도난을 방지하고 물리적인 보안 모델을 제공한다. 그러나 키풀이 고갈되어 업데이트를 해야하는 경우가 발생할 수 있다. 종이에 QR코드로 프린트 해놓을 경우, 이를 뻇길 위혐도 있다. 마지막으로 그 키를 온라인으로 업로드 하면서 악성코드에 취약해 질 수 있다.
인터넷과 분리된 하드웨어 스토리지
이른바 Air-gapped 방식은 오프라인 저장소의 특별한 경우다. 이는 인터넷에 연결된 장치에 키를 노출시키지 않음으로서 특정유형의 도난을 저지 할 수 있다.
Hosted wallet
타사 웹서비스 또는 two-factor 인증과 같은 표준 웹인증 매커니즘을 사용하는 방식이다. 하지만 이역시 호스트를 신뢰해야 한다.
V. 비트코인 변경
비트코인을 변경하는데 사용할 수 있는 매커니즘에 대해 알아보자.
A. 비트코인 자체를 업데이트 하기
Hard Fork
블록 보상 증가, 고정 블록 크기 제한 변경, 새 opcode 추가 같이 이전에 규칙에 따라 유효하지 않다고 판단되는 트랜잭션 또는 블록을 사용하게 하는 등의 경우엔 하드포크가 필요하다. 새 프로토콜을 업데이트 하면 다른 노드에서 거부되는 블록을 생성할 수 있으므로, 이는 만장일치로 행해져야 한다.
Soft Fork
소프트 포크는 기존 클라이언트와 호환되는 변경 항이다. 일반적으로 어떤 블록이나 트랜잭션이 유효하다고 간주되는지 정도의 변화를 의미한다. 이는 miner가 모두 업데이트 해야하는 사항으로, 업그레이드 하지 않으면 나머지 네트워크가 무효로 간주하는 블록을 계속해서 생성하며 자원을 낭비할 수 있다. 하지만 결국 가장 긴 체인에 다시 합류할 것이다. 이것은 하드포크 보다 안정적이다.
Relay policy updates 통신 네트워크의 다른 측면을 변경하려면 프로토콜 버전 번호를 광고하는 노드와 역 호환 방식으로 수행할 수 있으므로 최소한의 조정이 필요하다.
B. 알트코인
하드 포크 없이는 비트코인에서의 변화는 굉장히 제한적이므로, 알트코인이라고 하는 각자의 방식으로 접근하는 새로운 화폐가 등장하기 시작했다. 대부분은 일부 시스템을 완전히 독립적 디자인했지만, 여전히 비트코인 코드를 기반으로 하고 있다. 사용자가 참여하기 위해서는 초기 통화 할당을 해야 하며, 다음 과 같은 방법으로 달성할 수 있다.
새로운 블록 생성 가장 단순한 방법으로 새롭게 블록체인을 시작하면 된다. 비트코인이 그랬던 것 처럼, 초기 miner들에게 화폐를 할당해주면 된다. 이런 방식은 각종 설립자들이 초기단계에 현금화하려는 목적으로 알트코인을 만들면서, 많은 사람들이 조심스럽게 보고 있다.
비트코인 forking 창립자의 먹튀를 방지하기 위해, 알트코인은 의도적으로 특정 시점에서 비트코인을 포크하여 이전 거래 기록 및 자금 소유권을 수락하게 할 수 있다. 기술적으로도 하드포크와 일치하지만, 이 방법은 별로 선호되는 것 같지 않다.
Proof-of-burn
사용자는 일정량의 비트코인을 파괴하는 방식이다. 대게 비트코인 자금을 모든 0의 해시가 있는 키와 같은 개인키를 찾을 수 없는 특수 주소로 전송하여 비트코인을 폐기하는 방식이다. 이 방식은 순환중인 비트코인의 양을 영구히 줄인다는 단점이 있다.
Pegged sidechains
최근 가장 영향력있는 비트코인 개발자가 비트코인을 전송하고 구속할 수 있는 사이드 체인을 제안했다. 사이드 체인은 통화를 상환하기 위해 유효성 검사 규칙을 추가하고, 이는 비트코인의 소프트 포크를 필요로 한다.
알트코인은 필연적으로 miner를 확보하기위해 비트코인과 경쟁해야 한다. 이를 위해 mining을 병합하는 방식을 많이 사용하는데, 만약 루트가 유효한 비트코인 블록에 포함되어 있으면, 알트코인이 블록을 허용하므로 miner 들은 추가적인 작업을 수행하지 않아도 알트코인의 블록을 채굴할 수 있다. 이는 miner들이 추가적이 수익을 얻을 수 있기 때문에 bitcoin 전체의 체광력을 신속하게 제공받을 수 있다. 그러나 이것은 알트코인이 비트코인에 종속된다는 단점이 있다.
6. 대체 합의 프로토콜
비트코인 합의 프로토콜은 안정성에 대한 이슈, 프로토콜 성능 및 확정성에 대한 우려 및 자원을 낭비한다는 이유로 가장 많이 논의된 요소다. 그 결과로 제안된 다른 대안요소를 소개한다.
A. Parameter 변경
비트코인 합의 프로토콜은 초기 추측에 기초해 하드 코딩된 많은 '마법의 상수'를 활용한다. 거의 모든 알트코인은 이러한 요소들에 대해 수정 논란이 있었으며, 어떻게 선택할 것인지에 대한 논란도 있었다.
블록간 시간과 난이도 조절
비트코인은 퍼즐의 난이도를 자동 조정하여 솔루션이 평균 10분 간격으로 발견 되도록 한다. 이 설정은 주로 네트워크 latency에 의해 제한된다. 속도가 빠르면 전파되기전에 중복 블록을 자주 발견할 것이고, 느리다면 트랜잭션 확인에 시간이 소요된다. 비트코인 설정은 모두 보수적으로 접근되어 있다. 그러나 알트코인은 대부분 같거나 더 빠른 속도를 가지고 있다.
블록과 트랜잭션의 크기 가장 논란이 되고 있는 변경 사항중 하나는 블록 크기 제한 1MB를 늘리는 것이다. 거래량이 꾸준히 증가함에 따라, 한도에 계속해서 도달하고 있다. 트랜잭션의 볼륨 상한은 현재 초당 7개이며, visa보다 1000배 더 작은 수준이다. 이 한도에 도달하면, 거래는 희소한 자원에 입찰하기 위해 비용을 효과적으로 사용해야 한다. 이는 비트코인 사용 비용을 증가 시켜 채택을 늦추지만, miner의 수입을 증가시킬 수는 있다. 또한 사용자가 거래를 집계하고 체인을 벗어난 중개인에 의존하게 할수도 있다. 반면에 트랜잭션 볼륨이 증가하면 대역폭이 제한되어 일부 사용자들의 참여가 제한 될수 있다.
통화정책
비트코인 합의 프로토콜은 새로운 통화가 발행되는 속도와 금리가 변경되는 일정을 통해 통화정책을 컨트롤 한다. 제한된 금액의 통화를 요구함으로써, 비트코인은 디플레이션 정책을 가지고 있어 경제학자들이 비트코인을 꺼려하기도 한다. 이를 알트코인 발행으로 해결하기도 한다.
B. 대안 컴퓨터 퍼즐
ASIC-resistant puzzles Useful puzzles. Nonoutsourceable puzzles
C. 가상 마이닝과 소유 증명 (Proof-of-stake)
참가자들이 자원을 교환하여 가지는 대신, 단순히 그들이 블록을 선택하는 능력을 위해 부를 교환하는 것이 가능하도록 할 것이다. 무작위 표본을 현재 자원의 할당에 의해 가중 시키는데, 이를 '가상 마이닝' 이라고 한다. 이는 공격자가 충분히 많은 디지털통화를 확보하기 어렵게 하여 공격을 막을 수 있고, 실제 리소스 소비를 방지하는 효과를 가지고 있다. 가상마이닝에는 여러 종류가 있는데, 주로 통화의 양을 소유함으로써 다음 블록을 선택할 수 있는 기준에 따라 달라진다.
- Proof-of-coin-age
- Proof-of-deposit
- Proof-of-burn
- Proof-of-activity
그러나 일부는 블록체인의 보안을 위해 외부자원을 소비하는 것이 필요하므로, 가상 채굴 계획은 본질적으로 불가능하다는 주장을 제시하기도 한다. 이 처럼 가상 마이닝의 안정성에 대한 의구심은 여전히 문제로 남아 있다.
D. 담당 기관 지정
비트코인의 분산된 성격이 가장 중요한 요소이지만, 거래를 순차적으로 주문하고 서명할 수 있는 지정된 기관에 의존한다면 합의는 더욱 간단해질 것이다. 안정성을 한꺼번에 추론하고, 낭비적인 계산에 대한 우려를 순식간에 제거할 수 있을 것이다. 담당 기관이 정직하게 행동하여 작은 수입을 얻는다면, 잘못 행동할 인센티브가 없을 것이다. 리플은 이 모델을 사용하는 몇안되는 알트코인이지만, 여전히 안정성 인수는 본질적으로 증명되지 않았다.
7. 익명성과 프라이버
비트코인은 제한된 형태의 연결 불가능성을 제고한다. 사용자는 언제든지 새로운 가명(주소) 를 만들 수 있다. 이는 강력한 프라이버시를 제공하기위해 주장되었지만, 이 특성으로 인해 가명사이의 자금 흐름을 추적하고, 동일한 개인에 의해 통제될 가능성도 존재한다.
A. 분산
고객이 여러 주소에서 지불금액을 모아야 하면 어떨까? 이 경우 블록체인에 이 주소들을 연결해야 한다.이를 위해 한번에 18개의 주소와 함께 사용되는 트랜잭션 기록을 블록체인에 연결한다. 링크는 순차적으로 적용하여 주소 클러스터를 생산할 수도 있다. 이는 트랜잭션 그래프 분성의 한 예다. 이와 별개로 새로운 연결기법도 등장할 수 있다. 멀티 서명주소는 변경된 주소의 구조가 변경되어도 송신주소와 일치할 수 있기 때문에, 개인정보보호에 의도치 않게 부정적인 영향을 미칠 수 있다.
네트워크 분산
인구분산의 장점이 미칠 수 있는 곳잉 바로 P2P 네트워크다. 노드는 거래를 브로드 캐슽팅하는 순간 IP를 노출하게 된다.이를 익명의 네트워크를 사용함으로써 이런 개인정보 노출의 위험성을 제거할 수 있다.
B. 익명성을 강화하기 위한 제안
Peer to peer
P2P혼합 프로토콜에서, 비트코인 보유자들의 집합은 공동으로 일련의 거래를 만들어 비공개로 동전의 소유권을 영구히 유지하는 일련의 거래를 만들어 익명성 설정을 높일 수 있다. 원하는 출력주소가 포함되지 않는 경우, 사용자는 거래서명을 거부하여 도난을 방지할 수 있찌만, 개개인이 DoS에 취약할 수도 있다.
분산 혼합 네트워크 MixCoin에서 사용자들은 표준 크기의 거래를 제3자의 믹스에 보내고, 사용자가 전송한 금액과 동일한 금액을 다시 돌려 받는다. 믹스가 사용자와 아웃풋간의 연결성은 알고 있지만, 다른 사용자는 알지 못하므로 외부 엔티티와 내부 익명성을 제공한다. 다른 사용자도 프로토콜을 중단할 수 없다.
불연결성이 보장되어 있는 알트코인
제로코인은 기본통화와 제로코인이라고 하는 익명의 통화를 사용하여 통합된 연결 불가능성을 가진 알트코인이다. 사용자는 기본통화로 거래하지만, 모든 제로코인과 비교하여 익명으로 기준 통화를 제로코인으로 변환할 수 있다. 이는 다른 문제를 발생시키지 않고 안전하게 연결시킬 수 있다. 피노키오코인의 경우 다른 암호화구조를 사용하지만, 제로코인과 유사하다. 제로캐쉬 트랜잭션은 특별한 유형이 알려지지 않은 증명으로서, 거래수수료를 제외하고는 금액과 수령자에 대한 정보조차 공개되지 않는다. 크립토노트는 여러개의 알트코인을 기본으로 링서명을 사용하는 암호화 혼합 프로토콜이다. 이 경우 성능은 더 좋지만, 익명성은 제로 캐쉬나 코인에 비해 떨어진다.
8. 비트코인의 기능성 확장
비트코인은 단순히 디지털 통화지만, 스크립팅 언어는 다른 유형의 상호작용 또한 가능하게 한다.
A. 오늘날 비트코인의 중개
확장 가능한 플랫폼으로서의 비트코인은 과장된 면이 있다. 스크립팅 언어는 매우 제한적이다. 그러나 현재 거래의 미로 실현할 수 있는 중개를 위한 많은 프로토콜이 개발되어 있다.
원자성 여러 당사자가 서명할때까지 트랜잭션이 유효하지 않다는 속성을 이용하여, 원하는 보안속성을 직접 실행할 수 있다. 담보 비트코인이 올바른 행동이 실행되는 경우에만 환불되는 예끔 또는 채권을 게시하는 등 구제책을 제공하는 방법도 있다. 감사 비트코인이 부정직한 당사자를 유죄로하는 증거를 제공하는데 중요한 역할을 할 수 있다.
B. 데이터 저장을 위한 비트 코인
Secure Timestamping
블록체인은 다양한 보안 프로토콜에 유용한 보안 타임 스탬핑 서비스로 사용할 수 있다.
디지털 토큰: 칼라 코인
데이터가 개별 트랜잭션에 기록 될 수 있기 때문에, 특정 트랜잭션에 색상을 표시할 수 있다. 이를 통해 일련의 규칙을 정의하는 Colored Coin 프로토콜을 사용할 수 있다. 이를 통해 거래 주식이나 재산권가 괕은 많은 응용프로그램에 칼라코인이 제안되었다. 트랜잭션의 색을 검증하려면 모든 부모 트랜잭션에 대해 블록체인을 스캔해야 한다. 일반적으로 컬러 코인은 블록체인의 추적기능을 사용한다.
오버레이 프로토콜: 마스터 코인
비트코인의 합의 매커니즘을 사용하지만, 블록체인에 임의의데이터로 기록될 완전히 다른 트랜잭션 구문을 정의하는 것이다. 이 경우 miner가 새로운 거래유형에 대해 알 수없으므로, 합의 매커니즘이 제공하는 정확성을 담보할 수 없다. 따라서 잘못된 트랙잭션이 있을 수 있고, 이를 오버레이 시스템의 참가자가 무시해야 한다. 사용자 전체가 트랜잭션을 검증해야 하므로 SPV도 불가능하다.
C. 비트코인 거래 범위의 확장
비트코인 스크립팅 언어는 의도적으로 제한적이다. 실제로 원본 소스에는 더 많은 것을 할 수 있는 언어가 포함되어 있지만, 대부분의 opcode는 사용할 수 없는 것으로 표시된다.
9. 결론
비트코인을 비롯한 암호화폐 혁신은 암호화폐 프로토콜 설계에만 국한되지 않고, 컴퓨터 보안, 분산시스템, 하드웨어 설계, 경제 등 다양한 분야에 영향을 미쳤다. 비트코인은 물론익명성과 같은 몇가지 분야에서 우수한 아이디어가 제안되었지만, 기본적인 안정성과 효율성을 위해 비트코인을 개선할 수 있는 대체 분산형 합의 시스템을 설계하는 것이 가능한 것인지 불확실하다. 이 문헌은 비트 코인자체가 경제적, 사회적으로 안정적으로 유지할 것인지 평가하는 도구도 제공하지 않는다. 마찬가지로, 새로운 특징을 가진 프로토콜을 설계 할때, 안정성을 해치지 않으면서 비트코인을 확장하는 방법은 명확하지 않다. 이처럼 비트코인 공동체의 컴퓨터 과학 연구에 대한 의혹에도 불구하고, 단순히 '시장에서 결정하게 놔두는 것' 대신에 연구가 중요한 역할을 할것이라고 주장한다. 오늘날 비트코인의 성공이 알트코인에 비해 어느정도인지는 평가하기 어렵다. 비트코인은 실제가 이론보다 훨씬 앞서 있는 것 처럼 보이는 드문 경우다. 이 연구공동체가 비트코인에 대한 많은 질문을 해결 할 수 있는 엄청난 기회를 가지고 있다.