쉽게 설명하는 블록체인, Segregated Witness란 뭔가요? - 2 [거래 가변성(Transaction Malleability)]

in bitcoin •  7 years ago  (edited)

Segwit으로 해결할 수 있는 문제가 두가지 인데 그 중 하나가 이전 포스팅에 다뤘던 '확장성(scalability)'이고 다른 하나는 이번 포스팅에 다룰 '거래 가변성(transaction malleability)'이다.

transaction malleability.jpg

모든 비트코인 거래에는 해당 거래를 식별할 수 있는 거래의 ID (transaction ID: txid)를 포함한다.
전자서명도 txid와 함께 따라다니는데 txid가 ID라면 전자서명은 비밀번호라고 할 수 있다.

거래가변성(Transaction Malleability)는 실질적인 거래 내용에는 변화가 없지만 거래 ID만 변경하여 새로운 거래를 만들어 낼 수 있는 일종의 버그이다.

transaction malleability1.jpg

거래 ID는 주민등록번호와 같이 한 사람에게 하나만 주어지는 것이 원칙이지만 두개 이상의 거래 ID (주민번호가 2개인 셈)로 거래내역은 동일한 서로다른 거래를 가질 수 있는것이 Transaction Malleability이다.

쉬운 예를 하나 들어보자

  1. Bob은 Alice에게 1BTC(비트코인의 약자)를 보낸다. 이것이 거래 A라고 하자.

  2. Bob이 보낸 거래 정보를 확인한 Alice는 해당거래에서 txid만 바꾼 거래 B를 네트워크에 전파

  3. Alice가 전파한 거래 B를 포함한 블록이 채굴됨.

  4. Alice는 Bob에게 거래 A의 txid가 포함된 거래가 기록되지 않았다고 하자 Bob이 거래 A의 해당 txid를 블록에서 찾아보지만 거래내역이 없다... (이미 거래 B를 통해 1BTC는 지불된 상태ㅠㅠ)

  5. Bob은 Alice에게 다시 1BTC를 전송하게 됨...

결과적으로 거래B의 존재를 알지못하는 Bob은 2BTC를 지불하게 되는 것이 거래 가변성(Transaction Malleability)이다.

사실 이 거래가변성(Transaction Malleability) 문제는 조금만 신중한다면 일어나지 않는 문제이다. 사실 거래내역을 검증하는 것이 블록체인 네트워크에서 노드들의 역할이기 때문에 이것이 근본적인 문제라고는 할 수 없지만 발생했을때 비트코인의 가치는 하락하게 되겠지... 그러므로 무시할 수 없는 문제이다.

segwit1.jpg

결론 : 이 txid를 따로 보관하고 관리함으로써 여러개의 ID를 가지고 장난을 치거나 동일한 거래내역 여러개를 만드는 것을 막는 것도 Segwit Update로 가능하다고 할 수 있다.

최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 어떤 내용이든 댓글로 질문을 받습니다.
질문의 내용이 길 경우는 [email protected]으로 보내주시면 감사하겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @jsralph! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You made your First Vote
Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @jsralph! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published 4 posts in one day

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

안녕하세요 쉽게 설명하는 블록체인 게시자 jsralph입니다.
계정 비밀번호 분실로 인하여 새로 포스팅을 하게 되었습니다ㅜㅜ
http://steemit.com/@easyblockchain 에서 더 많고 다양한 자료 포스팅하고 있으니 많이 찾아주세요~