[시블] 비트코인의 익명전송 기능, 컨피덴셜 트랜잭션 (2)

in kr •  8 years ago  (edited)

Confidential Transactions



시사와 블록체인


지난 글 비트코인의 익명전송 기능, 컨피덴셜 트랜잭션 (1) 에서 이어집니다.

불안요소

암호화 알고리즘 자체는 훌륭합니다. 그것을 암호화폐에 제대로 구현해서 넣을 수 있느냐가 관건입니다. 어떤 한 부분에서만 잘못해도 전체 보안이 깨지는 큰 문제가 됩니다. 복잡성이 기능 추가의 어려움 입니다. 암호화폐의 작동 방식이 이미 복잡하기 때문에 기능을 넣으면서 검증하기가 어렵고, 기능을 추가하고 나면 더욱 복잡성이 커집니다.
암호화폐에서 프라이버시를 강화 하려다 실패한 사례가 몇가지 있습니다.

  1. Zcoin 인플레이션 사태
    코딩도중 오타 때문에 무분별한 발행이 가능해지는 사태가 일어났고 그 상태로 한동안 진행된 후 발행량이 많았음을 깨닫고 코인보유자 모두가 손실을 분담해서 발행량을 줄이기로 했었습니다. 공격자의 발행량이 작았기 때문에 이렇게 할 수 있었지만 만일 수십억개를 발행했더라면 타격이 컸을 것입니다.

  2. Shadowcash
    섀도우캐쉬는 비트코인 코드베이스 입니다. 익명화를 위해 모네로처럼 링 시그니처를 쓰는데 모네로와 달리 컨피덴셜 트랜잭션을 쓰지 않았습니다. 그들은 아주 작은 실수를 하나 했고 그 결과 전혀 프라이버시가 보장되지 않습니다.

  3. Monero
    최근에 업그레이드 한 ringCT(링 시그니처 + 컨피덴셜 트랜잭션) 방식은 지금은 이제 제대로 익명화가 잘 됩니다. 하지만 처음 설계할 때는 인플레이션 결함이 있었습니다. 그들은 그렉 맥스웰이 만든 CT를 그대로 가져다 쓰지 않고 자신들의 버전으로 다시 만들었는데 Ledger 저널에서 피어 리뷰를 할 때도 결함은 발견되지 않았었습니다. 그 후 모네로 팀에서 직접, 그리고 블록스트림에서도 결함을 발견하였고 시스템에 구현하기 전에 결함을 수정할 수 있었습니다.

이러한 프라이버시 시스템이 보통의 컨센서스 관련 일에 비해 어렵진 않지만 실패하면 타격이 매우 크고 해결이 불가능해질 수도 있습니다.

효율성 개선

컨피덴셜 트랜잭션은 더 개선 및 발전시킬 요소가 여럿 있지만 그중에서도 효율성에 제일 중점을 두고 있습니다. 비용이 고정되어 좋기는 하지만 꽤 크기 때문에 줄일 방법을 찾고 있습니다. 20% 정도 줄일 수 있을 것으로 봅니다. 최적화도 더 해볼 여지가 있습니다. 블록스트림의 그렉 맥스웰 이외에 Chain의 Oleg Andreev 도 컨피덴셜 트랜잭션의 효율성 개선을 연구하고 있습니다.

특허

다른사람이 특허를 내지 못하도록 하기 위한 목적으로 컨피덴셜 트랜잭션 기술을 특허 등록했습니다. 누구나 기술을 무료로 가져다 쓸 수 있지만 단지 특허분쟁이 생기는 것을 막기 위한것이며 그렉 맥스웰은 그전에도 여러가지 오픈소스 기술 개발한 것을 이런 식으로 특허를 내서 널리 자유롭게 무료로 쓰일 수 있도록 했었습니다.


greg-maxwell.png
그렉 맥스웰

비트코인에 적용하려면

사이드체인을 이용해서 컨피덴셜 트랜잭션을 사용할 수 있습니다. 블록스트림의 Liquid 사이드체인 프로젝트에서 이렇게 진행하고 있습니다. Liquid는 비트코인이나 비트코인 에셋을 사이드체인에서 트레이딩하는 시스템 입니다. Liquid 내에서는 컨피덴셜 트랜잭션 익명화가 잘 되지만 그 바깥과의 전송에서는 익명화가 되지 않습니다.

비트코인 자체에 컨피덴셜 트랜잭션을 하려면 효율성이 큰 문제입니다.
모든 지불에 대해 코인을 발행해서 마이너들이 검증작업을 하다가 잘못된 CT가 있다면 몰수해가는 방식이 좋아보입니다. 트레이드오프가 있어야 CT가 절제해서 사용되고 비용을 줄일 수 있는 것입니다.

정치적인 문제도 있습니다.
어떤 사람들은 비트코인에 익명화 기능이 생기지 않기를 바라고 어떤 사람들은 비트코인이 전혀 발전하지 않기를 바랍니다. 그러나 컨피덴셜 트랜잭션과 사이드체인이 사용할 준비가 되고 나면 정치적인 논란은 사라질 것으로 봅니다.

소프트포크를 통한 컨피덴셜 트랜잭션 적용안도 있습니다.
세그윗 소프트포크로 적용을 시킨다면 이전 버전의 비트코인과도 호환이 되는 것입니다. 그러나 그 방식은 한계가 있습니다. 코인이 CT에서 non-CT로 옮겨지면 그 트랜잭션이 살아남지 못하게 되므로 100블록 정도 그 코인을 사용하지 못하는 룰을 강제해야 합니다. 비트코인 스케일링 제안들 중에 Extension Block 에서도 비슷한 이슈가 있어서 개인적으로 거기에도 반대합니다. 만일 유일한 방법이 소프트포크라면 그렇게 해야겠지만 그보다 나은 해결책이 있었으면 합니다.

컨피덴셜 트랜잭션 기술의 완성도는 점점 높아지고 있습니다. 지금 정도의 완성도를 가지고 컨피덴셜 트랜잭션을 라이트코인에 적용하기엔 이르다는 생각입니다만, 결국 완성도를 높인 후에 더 많은 코인에서 사용되는 것은 당연히 환영할 일입니다.

질문과 답

(여러가지 중에 하나만 소개합니다.)

Q: 라이트코인에서의 세그윗 활성화가 어느정도로 흥미로운 일인가요?

A: 세그윗이 더 많은 곳에서 사용된다는 것은 흥미로운 일입니다. 이미 세그윗이 다른데서 사용될 것이라는건 예측했던 바 입니다. 라이트코인에서는 세그윗을 막으려던 채굴 세력이 포진하고 있습니다. 라이트코인의 사이즈와 스케일로 볼 때 극복할 수 있을 것 같지만 어려움도 있을 것 같습니다. 해결하는데 기꺼이 도울 것이며 라이트코인 레딧에서 관련된 글도 썼습니다. 세그윗이 이미 locked-in 상태이지만 여전히 세그윗 비 지지 노드들과의 호환성 문제는 있다는 내용의 글입니다.
비트코인 개발자들이 라이트코인에서 일을 하게 될 것입니다. 비트코인에서는 세그윗 없이는 아무도 스크립트 향상 작업을 하지 않을 것이기 때문입니다. 세그윗이 되고 나면 스크립트 관련 일이 엄청나게 쉬워지니까요.

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:  

이 좋은 글에 제가 첨 댓글을 다는군요^^
글을 읽어가면서 하나씩 배워갑니다. 모르는 분야라... 모든게 낯설지만 자주 접하다 보면 조금은 익숙해지겠죠 ㅎ
좋은 글 감사드립니다~

의도와 달리, 쓰고 나서 보니 너무 어렵게 쓰여진 것 같습니다. 다음 글은 좀더 쉽고 재미있게 쓰려고 합니다.

지금도 좋습니다. 용어자체가 낯선게 있어서 그런거니까 쓰시던대로 쓰시면 될 것 같은데요 ㅎ

그렉맥스웰 머리털하고 턱수염 반대로 합성한거 아닙니까?