라이트코인의 찰리리가 말하는 밈블윔블이란?
지난 2월쯤 라이트코인 개발진인 찰리리가 올린 글중에
라이트코인에 밈블윔블 방식과 유사한 기술을 추가적용 하겟다고 했는데
밈블윔블의 기술이 무엇인가요?
안녕하세요. 밈블웜블의 시초는 2016년 7월 비트코인 개발자 포럼에서 'Tom Elvis Jedusor'이라는 닉네임을 가진 사람이 백서 한장을 올리면서 소개가 되었습니다. 밈블웜블의 뜻은 해리포터에서 특정정보를 공개하지 못하도록 혀를 일시적으로 꼬는 저주마법주문이라고 하는데요. 아마 Tom Elvis Jedusor라는 닉네임을 가진 사람이 해리포터 덕후라서 이런 이름을 지은 것 같습니다.
백서의 내용에는 밈블웜블 프로토콜을 사용하게 되면 확장성 뿐만 아니라 비트코인 네트워크의 기밀성을 향상시킬 수 있다는 내용이 담겨져 있습니다. 즉 밈블웜블은 기밀 거래를 지원한다는 뜻입니다.
질문 주신 라이트코인 재단은 밈블웜블 프로토콜을 적용하여 기밀거래를 가능하게 하고 프라이버시를 증기사킬 뿐만 아니라 강력한 확장성 솔루션을 제공하려고 하는 것 같습니다.
밀블웜블에 대한 상세한 내용과 기술적인 내용에 대해서는 아래 자세히 설명된 네이버 블로그를 통해 확인 하시면 됩니다.
밈블웜블 개념과 이해: https://blog.naver.com/mage7th/221470320590
질문자께서 질문해주신 밈블윔블에 대해 개인적으로 연구하고 조사한 바를 정리한 내용을 답변해 드리도록 하겠습니다. 아무래도 해외 자료를 참고로 하여 제가 이해한 바대로 정리한 것이므로 내용상 오류나 잘못 이해한 부분이 있을 수도 있다는 점을 말씀드리도록 하겠습니다.
결론부터 간단하게 말씀드리자면 밈블윔블이란 암호화폐의 송신자가 익명성 요소라는 무작위 값을 활용하여 거래 내용을 인코딩하고 그것을 디코딩할 수 있는 정보와 함께 수신자에게 전송하면, 수신자가 그 거래 내용을 디코딩하여 유효성을 증명한 다음 다시 익명성 요소로 무작위 값을 생성하여 해당 암호화폐의 정당한 소유주임을 증명하는 방법이라고 할 수 있습니다. 이 과정에서 트랜젝션의 내용이 암호화되어 공개되지 않음으로써 익명성을 확보한다고 할 수 있습니다.
더 자세한 정보가 필요하시다면 아래의 내용을 계속해서 읽어주시길 바랍니다.
밈블윔블이란 해리포터에 등장하는 마법 주문으로 특정한 화제나 주제에 대해 말하지 못하도록 혀를 꼬아 버리는 저주에서 따온 이름입니다. 이러한 이름에서도 알 수 있듯이 이 밈블윔블 프로토콜을 이용하면 거래 내역의 익명성을 높일 수 있습니다.
비트코인의 트랜젝션은 입금된 비트코인과 출금된 비트코인의 수량을 공개적으로 조회할 수 있기 때문에 이를 통해 입금 내역과 출금 내역을 확인함으로써 트랜젝션이 유효하다는 것을 증명할 수 있습니다. 예를들어 한 사람이 1BTC를 전송하고 다른 사람이 1BTC를 받은 경우 이외에 전송된 비트코인의 수량이 비정상적으로 감소하거나 증가된 바가 없으므로 유효하다는 것을 알 수 있습니다. 즉 Input 값의 합계는 Output 값의 합계와 동일하게 되는 것입니다.
그런데 이렇게 공개적으로 트랜젝션을 검증하는 비트코인과 달리 밈블윔블은 익명성 거래를 지원합니다. 별도의 주소 시스템이 없이 트랜젝션의 송신자가 보내는 값이 무작위 수인 ‘익명성 요소(blinding factors)’로 인코딩되고 이러한 값을 해독할 수 있는 정보와 함께 수신자에게 전달됩니다. 수신자는 연산을 통해 트랜젝션의 송신자가 보내는 값을 디코딩하여 확인할 수 있습니다. 이를 통해 트랜젝션의 유효성이 증명될 수 있습니다.
한편, 이렇게 송신자가 보낸 트랜젝션이 수신자에 의해 유효성이 증명되면 수신자는 이것을 자신의 소유라는 것을 증명할 수 있어야 합니다. 밈블윔블에서는 트랜젝션의 송신자가 보내는 값을 디코딩하여 확인할 수 있는 사람인 수신자만이 역시 무작위 값인 익명성 요소를 생성할 수 있습니다.
이때 수신자는 Input 값과 Output 값의 합계를 초과하는 익명성 요소의 무작위 값을 생성하는데 이것이 프라이빗 키 역할을 함으로써 수신자는 트랜젝션에 대한 서명을 할 수 있고 비트코인의 정당한 소유주임을 증명할 수 있도록 합니다.
그리고 밈블윔블 트랜젝션을 통해 생성된 블록은 초과 값으로 만든 새로운 Input 값과 Output 값 그리고 서명 내역만을 가지게 됩니다. 따라서 Input값과 Output값의 합계가 동일하다는 것이 증명됨으로써 전송된 비트코인의 수량이 동일하다는 것이 확인되고 트랜젝션이 유효함을 증명할 수 있게 됩니다.
끝으로 이러한 밈블윔블의 트랜젝션 처리 과정에서 익명성 요소로 인해 전송 금액, 송신자와 수신자에 대한 정보가 암호화되어 공개되지 않음으로써 거래의 익명성이 확보된다고 할 수 있습니다.
답변이 도움이 되길 바랍니다.