세그윗 이후의 비트코인 - 슈노 시그니처(Schnorr signature)

in coinkorea •  7 years ago  (edited)

비트코인에 있어서 블록체인의 전체 파일 크기를 되도록 작게 유지하는 것, 블록체인의 크기가 가능한한 천천히 늘어나도록 하는 것은 중요한 가치입니다. 누구나 부담없이 풀노드를 설치해서 블록을 검증할 수 있어야 탈중앙의 가치가 지켜질 수 있다는 모토 때문입니다.

세그윗 활성화로 인해서 구현 가능해진 기술중에 슈노 시그니처라는 것이 있습니다.

슈노 시그니처(Schnorr signature)란?

지갑에 1 BTC가 있는데 지갑 내에 10개의 주소에 0.1 BTC 씩 나눠져 있는 경우에
0.95 BTC 를 보내려고 한다면 그 트랜잭션은 10개의 인풋과 1개의 아웃풋으로 구성될 겁니다.
이 때 10개의 인풋 주소 각각에 다 전자서명이 들어가야만 트랜잭션을 보낼 충분한 권한이 생깁니다.
그래서 10개의 전자서명이 들어간 트랜잭션을 만든다면 그 용량은 그만큼 커집니다.
(트랜잭션 내에서 전자서명이 차지하는 용량이 큰 편입니다.)
슈노 시그니처는 이부분을 개선한 것으로, 한 사람이 여러 주소에 들어있는 비트코인을 모아서 보낼 때, 한번의 전자서명으로 보낼 수 있도록 하는 것입니다. 대략 25% 정도 저장 공간을 효율적으로 쓸 수 있다고 합니다. 그러므로 같은 1메가 블럭사이즈 한계를 가지고도 더 많은 트랜잭션을 처리할 수 있게 됩니다.

만약 비트코인이 처음부터 슈노 시그니처만을 사용해 왔다면 블록체인의 크기가 어떻게 되었을지 시뮬레이션 한 차트입니다.


Screen Shot 2018-01-21 at 10.50.48 AM.png
[차트 출처: Simple Schnorr Multi-Signatures with Applications to Bitcoin 논문 p26]

프라이버시 강화

인풋 서명이 한 트랜잭션 당 하나로 뭉퉁그려 합쳐져 버리니, 멀티시그 트랜잭션에서 참여자들이 누구누구인지에 대한 정보가 가려져버리고, 그래서 프라이버시가 강화됩니다. 프라이버시가 강화되니 일부러 코인 출처를 감추기 위해 믹싱할 필요도 줄어들고 그래서 그러한 용도의 트랜잭션 실질 수요 또한 줄어들게 됩니다.

스팸어택에 대한 저항력

예를 들어 2017년 6월 17일에 있었던 아래의 블럭은 1메가 한계가 꽉 찼는데 고작 78개의 트랜잭션 만을 가지고 있습니다.
https://blockchain.info/block/00000000000000000182aabc399d2daec86b50d510701a5fd098793a4eadead4

200개의 주소로 부터 0.0147 BTC 의 수수료를 첨부해서 2.5 BTC 를 전송한 블럭의 디테일을 살펴보다보면
정상적인 트랜잭션이라기 보다는
우지한의 우거지국밥을 건 좌우지장지지 스팸어택처럼 생겼다는 것을 알 수 있습니다.
슈노 시그니처가 비트코인에 구현되면 위와같은 트랜잭션에서 200개의 전자서명이 들어가던 것이 1개의 전자서명으로 충분해집니다. 용량이 많이 줄어들어서 스팸어택의 효율(?)이 떨어집니다.

슈노 시그니처를 구현하는데 세그윗이 필요했던 이유

기존의 비트코인에 구현되어 있는 ECDSA(엘립틱 커브) 를 슈노 시그니처가 대체하는 프로토콜 변경은 원래는 하드포크가 필요한 일입니다.
세그윗으로 인해 script 에 version 을 부여하는 기능이 이미 들어가 버렸고, 그래서 슈노 시그니처 구현은 하드포크가 아닌 소프트포크로 가능해지게 되었습니다.

진도

개념 자체는 그전부터 있어왔고 기대를 모아왔지만
고작 며칠전인 2018년 1월 15일에 4명의 실력자들이 공저한 구체적인 백서가 발표되었습니다.
https://eprint.iacr.org/2018/068

이제 본격적으로 일을 시작하는 단계인 것으로 보입니다.
최근 그렉 맥스웰(백서 저술한 4인중 하나)이 블록스트림의 CTO 직을 그만두고 비트코인 코어 개발에 전념하기로 했다는 점이 앞으로의 진도에 있어서 긍정적인 부분입니다.

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:  

좋은 정보 감사해요~!

Cheer Up!

  • from Clean STEEM activity supporter

25%의 저장공간 효율이 개선 되었다면 그만큼 더 많은 트랜젝션을 초당 처리할 수 있겠네요. 이 부분도 장점으로 글에 언급하시면 좋을 것 같습니다

그부분 추가했습니다. 감사합니다.

잘 보고 갑니다

스팀잇 계정 개설 전이 떠오르는 게시글입니다. 오늘도 도움 받고 갑니다. 감사합니다. ^^

  ·  7 years ago (edited)

우지한의 우거지국밥을 건 좌우지장지지 스팸어택처럼 생겼다는 것을 알 수 있습니다.

집중해서 읽다가 빵 터졌습니다ㅋㅋㅋ
기술이 점점 발전해나가니 다행이네요.
좋은 글 감사합니다 모닝님!!

우거지측에서 슈노시그너쳐를 도입할수 있으니 btc측에서 특허를 걸어놔야 되지 않을까요?

농담으로 하신 얘긴지...어떻게 오픈 소스 프로젝트에 특허를 낼 수 있겠습니까.

기대되는 기술이네요. 대장코인이 단점을 하나 극복하네요. 좋은 정보 감사합니다.

잘 읽고 갑니다..

  ·  7 years ago (edited)

무엇보다도 스팸어택에 대한 저향력 부분이 눈에 띄네요.
비코도 기술적 측면에서 단점을 열심히 극복해가고 있군요

슈노 시그니처라는 좋은 단어를 배워 갑니다.
블럭체인에 대해서는 너무 공부할게 많은것 같아요.^^;;
보팅 감사드립니다. 열심히 할께요.^^

아..무슨말인지 모르겠다..단지 좋은 신호인것 같기만 하네..아몰랑 ㅠㅠ

오오! 좋은 정보 감사드립니다 ^^

좋은 소식이지요?

아.ㅠ역시 모르는 저어게 있어서는 어려운.ㅠ
공부 좀 해야겟어요.ㅠㅎ

갖고 있는 알트코인중에 슈노시그너처 예정이 되어있길래(정확한 일정은 미정) 이게 대체 뭔가 궁금했었는데 속 시원히 알게 되었네요.
비코 포크한 알트들은 비코 가 가능한것들은 대부분 다 따라갈수 있었으면 좋겠습니다. ㅎ

  ·  7 years ago (edited)

좋은 정보 감사드립니다

이 구조도 공부해야겠네요
ICO를 위하여 리스팀합니다 :)

안녕하세요 morning 님, 아 역시 기술적인 부분이라 쉽지는 않지만 개선을 위한 노력들을 많이 하고 있음에 앞으로 더욱 기대를 해보게 되는 것 같습니다. 앞으로 더 진화하는 비트코인이 되길 바래봅니다. 좋은 말씀 잘 보고 갑니다. 감사합니다.

  ·  7 years ago (edited)

역시 모든 문제는 개선할 수 있고, 개선하고 있군요.
좋습니다.

  ·  7 years ago (edited)

아직어렵기만한 용어들과 내용들
..공부많이해야겠네요 ㅜ 피래미가보팅하고갑니다

  ·  7 years ago (edited)

거래소에서 비트코인 한번에 여러 주소로 내보내는것 처럼 보이는 것과 비슷한 건가요?

자세히 읽어보니 이건 원래 가능했던 것이고, 즉시이체 여러번 하는데 공인인증서 서명은 한번으로 끝내서 용량을 줄이는 것.. 맞나요?

그럼 우거지 측에서는 도입을 꺼려하겠군요..

우거지 측에선 코어 쪽 코드 베껴가길 곧잘 하지만, 이거처럼 코드가 좀더 복잡하고 세그윗 기반으로 나오는 코드기 때문에 세그윗 없는 비캐시에서 베껴가기가 어려울겁니다.

잘 읽었습니다. 사실 스팀잇에 처음 올 때 아무것도 몰랐는데 여러 글을 읽으니 대략적인 수준은 이해가 가네요. 감사합니다 :D

잘 보고 갑니다.

음 ... 전체 내용 중에서 한 10분의 9를 모르겠네요 ... ^.^;;
앞으로 공부를 한번 해볼까 합니다.
기초부터 튼튼히

슈노시그너처 이게 뭔지 잘 설명된 글 보고 갑니다^^
그래도 무식한 저로서는 일부만 이해가되네요 ㅎㅎ

소중한 정보 감사드립니다^^

아....이런 분야로 문외한지라, 완벽한 이해는 안되지만, 좋은 글에 감사드립니다.

어제, 서울숲의 스팀파크를 다녀왔는데, @morning님 명패가 있어 인증샷을 찍었습니다. ^^

감사해요~ 처음봤네요... 나중에 보러가야지...

심도있는 글 감사드립니다

오...너무나 전문적이면서 유용한 포스트... 정독할게요. 올려주셔서 감사합니다. 팔로우하고 갑니당^^

한 10번을 읽어야지 이해할거같아요~
좋은 정보 감사합니다~


팔로 꾸욱~❤