세그윗(SegWit)에 대해서 알아보자

in #kr7 years ago (edited)

원래 세그윗인지 세그윙인지 관심도 없었는데
이것때문에 코인시장이 번지점프를 해대는통에
꿍시렁거리면서 한번 알아보았습니다만
드럽게 어렵군요. -_-..
개복치 운운하기 전에 저부터 뒈졌습니다
걍 대충 이런거구나 하시길 바랍니다

BIP148


BIP란 Bitcoin Improvement Proposal 의 약자로
해석하면 비트코인 개선안 같은겁니다

스팀잇으로 따진다면..

제가 스팀에 건의를 내놓습니다

난민촌 만들어주세요

만약 그게 스팀잇에서 최초로 내놓은 건의였다면
SIP (Steem Improvement Proposal) 1번이 되는겁니다

그러자 누가 스팀에선 누구나 방구를 자유롭게 껴야된다
라는 개선안(?)을 내놓았어요
그럼 이게 SIP2가 되는겁니다

그런식으로 개선안들이 하나씩 번호표 받아가면서
나오는데 그중 148번 손님이 바로

BIP148 이 되는 것이죠

그리고 BIP148의 내용이 바로 아래에서 얘기할 SegWit..
즉, '증인 분리하는게 어떰?'
이라는 제안입니다

SegWit(Segregated Witness)


용어로는 '증인 분리'를 뜻합니다


이런 분리 아닙니다

가상화폐들은 증인, 증거를 참 좋아하는데요

그도 그럴것이 증인이 없으면 거래가 성립되지 않습니다

'손님 내 아이스크림 드셨죠?'

'아뇨? 이 사람보게 생고양이잡네'

이런 고냥이 같은 경우에 심증은 100% 가지만
눈 땡그랗게 뜨고 정색하면 방법이 없죠
낯짝에 두터운 털이 덮여있어서 부끄러움이 없습니다

그렇기에 이런 뻥을 방지하기위해서
거래에서는 증거가 필요합니다.
계약서 같은거 말이죠.

암호화폐에서도 상대방에게 거래내역을 전송할때
이게 진짜라는 증거를 포함시킵니다
그 증거가 바로 전자서명(Signature)입니다
전자서명에 대한 설명은 이전의 포스팅을 참고하시고..
🔗전자서명과 공개키 기법의 초보적 설명

나의 화려한 키로 요리조리 잠궈서 서명한
탁월한 전자서명은 사람들에게 감탄을 불러일으킵니다
'이 거지 같은 서명은 니가 맞구나'
이렇게 확인 받아서 상대가 거래를 빼도박도 못하게하는
서명(Signature)은 매우 중요하여
모든 거래명세서에 첨부됩니다

그런데 거래서에서 그 서명을 분리하겠다는 것이 바로
segwit 입니다

오해를 위해서 말해두자면 '분리' 입니다. '제거'가 아니라..
즉 배치를 어디로 하느냐라는 문제입니다

예를들면 기존에 이런 거래내역서를 보냈다고 합시다

[밥뭇나?] [전자서명] [3000원짜리 정식 뭇따] 


그림으로 나타내면 요렇습니다

그걸 모아서 보내면 기존에는

요렇게 모아서 제출했습니다

하지만 세그윗은 서명부분만 수집해서

요렇게 분리합니다

그리고 그 분리된 영역을 witness(증인,증거) 영역이라고 합니다

이럼 무슨 이득이 있느냐..
여러가지 이득이 있습니다..-ㅅ-;;
이걸 설명했다간 개복치시체로 피바다를 이룰것이고
애시당초 본인도 같이 둥둥 떠오를 겁니다ㅡ,.ㅡ

그중 딱 두가지만 설명하자면
첫째는 짝퉁이중지출의 방지입니다

Malleability 문제 해결


세그윗처럼 서명을 분리하지 않은 거래내역서의 경우는
똑같은 거래를 보낼때 거래내역서의 이름을
다르게 할 수 있습니다

[밥먹음] : 잔고2000원에서 2000원 소비
[엿먹음] : 잔고2000원에서 2000원 소비

이렇게 보낼 수 있는 것이죠
2000원이 든 내 계좌에서 2000원을 씀
같은 내용을 이름만 다르게해서 이중지출 거래서를 뿌린거죠

다만
이래봤자 지갑플그램들은 님 계좌 다 조사해서
둘 중 하나만 블록에 포함시킵니다

그래서 이중지출이 안됩니다

한데 요게 되는 경우가 있습니다
바로 거래소를 속이는 경우입니다

먼저 거래소에다가 1000원 달라고 합니다
그럼 거래소는 거래내역서 이름을 '너에게 보낸다' 라고
하고 돈을 보냅니다
그때 해커는 거래소가 나한테 1000원 줬다 라는 거래내역서를
'난 받은적 없다' 라는 이름으로 네트워크에 날립니다
(방법은 몰라용~ 해킹잘하는 사람한테 물어보세요^^)

이때 앞의 거래가 확정되어 블록에 포함되면?

해커입장에서 줫같은 거래입니다

그러나 뒤의 거래가 확정되어 블록에 포함되면?

됐어!!

블록의 법칙에 따라 이중지출은 허용할 수 없으므로
하나가 채택되었으면 하나는 버려집니다
그리고 버려진게 거래소가 보낸 거래내역서
'너에게 보낸다'가 되는 것이죠
하지만 '난 받은적 없다'는 채택되었으므로
돈은 1000원이 들어온 상태입니다

이제 거래소에 이의를 제기합니다
야 1000원 안들어왔잖아!

거래소는 화들짝 놀라서 블록체인을 뒤져봅니다
이때 거래소가 막 거래내역하고 이런거 다 뒤져보면
얄짤없이 걸리지만 그런 귀찮은 작업을 안하고
단순히 '너에게 보낸다'.. 즉 거래제목으로 검색해버립니다
당연히 검색될리가 없죠. 버려졌으니까..

어 이상타.. 하면서 거래소는 다시 1000원을 보냅니다
그 결과 해커는 2000원을 얻게 되는겁니다
(거래소는 망하구)

이것을 segwit으로 서명과 거래내역을 분리해버리면
거래내역서 이름을 바꿀수가 없게 되버립니다

원리가 뭐냐고요?
당신.. 개복치가 아니군

개복치 여러분을 위해 불온분자를 없앴습니다 ^^
(그리고 나 자신을 위해)

블록사이즈 증가효과


부가효과중 가장 부각받는 것이 바로 이 블록사이즈 증가효과입니다

비트코인의 각 블록(장부)는 1M의 제한 사이즈를 갖습니다
글자 한글자가 1바이트이므로 백만자 이상의 글자가 들어갑니다
하지만 엄청 불어난 거래수로 인해서
현재 백만자로도 장부용량이 모자릅니다
모자른 부분은 이번 장부에 포함이 안되고 다음번을
노려야되며.. 이로인해서 장부에 자기 거래가 올려질때까지
거래완료를 기다려야됩니다

이 문제를 해결하기 위해서 블록사이즈를 늘리자는 제안이
커졌으나 채굴을 장악하고 있는 중국채굴자들이 반대를
하여서 계속 이뤄지지 못하고 있습니다

변화가 두렵고, 블록체인이 바뀔때 위험성을 거부하며,
마지막으로 중국의 인터넷 사정때문에
블록크기가 커질경우 경쟁에 밀릴까봐 그렇다고 합니다
-수정-
저건 개발자 커뮤니티에서의 얘기였던거 같고
거부한건 세그윗인거 같습니다
@onlimono 님의 제보 감사드립니다

나쁜넘들..

여하튼 자꾸 저렇게 거부하자 블록사이즈를 늘리는 방안으로
하드포크가 아닌 소프트포크를 제안하게 됩니다
그리고 그게 SIP8 아니.. BIP148 입니다

BIP148 즉, 세그윗은 실제적으로 블록사이즈를 증가시킵니다
대략 두배 가까이 증가시키는데요

이전 블록에는 거래내역+서명 이렇게 해서 1M 이내였다면
세그윗의 블록은 거래내역을 1M 이내로 둡니다
그리고 분리한 서명은 블록의 늘어난 확장공간에다가
보관하는 것이죠

한데 문제는 아까 말했듯이
채굴업자들이 하드포크를 반대했고
어쩔수 없이 소프트포크를 하는데
이 소프트포크는 기존의 규칙을 변경하지 않습니다
변경하면 당장 이전의 지갑프로그램들이 변경된 규칙때문에
오류를 뿜어내죠.
근데 실제적으론 1M 이상의 사이즈를 갖게 됩니다
그럼 어떻게 이전의 프로그램들이 1M 블록을
받아들이게 하면서 자신들은 1M 이상을 쓸수 있을까요

그것을 위해서 사용한 방법이
이전 지갑 프로그램들에게는 분리해서 확장공간에
넣어둔 서명들은 주지 않고 거래내역만 주는 것이죠

예를들면
거래내역이 800KB 이고 서명이 800KB 라고 한다면
1600KB 이므로 1M를 넘습니다
세그윗 업데이트를 한 지갑들은 1M 넘든 말던 괜찮다고
된 프로그램들이니까 당연히 받아들입니다

그리고 업데이트를 안한 예전 지갑들은
1M를 넘으니 저걸 다 받을 수 없습니다
그래서
분리된 증거부분인 800KB를 쏙 빼고 줍니다
거래내역만 담긴 부분은 800KB 니까
1M가 안되어서 OK 가 떨어집니다


또한 각 거래에대한 검증은 상대 SEGWIT 버전 지갑이
해줬고 블록해쉬도 맞으니까 예전 지갑은
안심하고 받아들입니다. 짤렸는지도 모르고..

도망을 준비하며..


많은 부분에서 morning님, maa님의 게시물을 참조했습니다
https://steemit.com/kr/@morning/3bjdvz
이 자리를 빌어 감사드립니다

또한 저 역시 긴가민가하는 상태므로 -_-
실컷 읽으신 분들께 참 죄송스럽게도
내용의 유효성은 보장못합니다 (좀 어려워야지!!)

하지만 소설 쓴건 아니니까
단군신화 같은 걸 보는 시선으로 보진 않아도 됩니다

Sort:  

ㅋㅋㅋ 정말 재밌게 읽었습니다. 필력이 대단하세요.

제가 다 닌자님 밑에서 수련을 쌓아서 그렇습니다 ㅎㅎ
이전부터 지금까지 쭈욱 감사드립니다 +_+/

어우... 제가 뭐 한것도 없는걸요. ㅋㅋ 트윈님 앞으로도 좋은 글 부탁드려요!

넵 감사합니다+_+/

이런.. 멋쟁이! 풀봇부터 드셔욧!

웃 감사합니다 ㅎㅎ

뭔 말인지 하나도 모르겠지만 어쨌든 막짤을 고르신 식견에 감탄하며 갑니다!

요즘 워낙 자주틀려서 이제는 미리 도망치면서 씁니다

ㅋㅋㅋㅋㅋ깨알같은 SIP8ㅋㅋㅋㅋ 저도 너무 궁금하고 어려워서 여기저기 찾아보고 있었는데... 역시 트윈님 설명만큼 쉽게 이해되는곳이 없네요... 다만 유효성은... 저는 트윈님 말씀을 그대로 믿으니까... 혹시 틀리면 알려주셔요..ㅋㅋㅋㅋㅋ

저 역시 아직 블록과 지갑의 메커니즘에 대해서 우주를 체험하고 있는데요
암만 찾아도 쑥딱 짤라서 준다는 얘기들뿐인거 같습니다
보통 저 증거는 처음 거래 받을때 사용하고 그 후엔 잘 사용안한다는 거 같던데
글쎄요. 단군할아버지한테 물어보는 수밖에..

교사를 했으면 특출난 재능을 발휘했을거 같은 트윈님 ! 잘봤습니다.

전 일정수 이상의 사람들 앞에 서면 100mhz로 떱니다
그래서 발표수업은 절대 안했죠. 아니면 팀원들에게 떠맡기거나 후후-ㅅ-

오늘도 하나 배워 갑니다.

책임 못지지만 좋은 지식을 얻어가셨군요.+_+

저도 어디서 맨날 가상화폐 이야기나오면 증인증인 뭔 증인? 했었는데요... 아주 잘은 모르겠지만 뭔가 개념이 조금 생긴듯 합니다ㅎㅎ 설명을 진짜 재밌게 잘해주시는 능력이 있으십니다!!!^^

증인이라기보다 증거.. 그리고 증거라기보다 전자서명입니다. 그 공인인증서의 그거죠
해커가 조작된 데이터를 보내도 신분증명만은 전자서명으로 해야되는데
그건 조작이 안되거든요. 그래서 신분이 증명되지 않은 사람이 보내는 데이터는
전부 가짜라고 처리하는 것이 공인인증서 시스템입니다

개복치 중독적입니다 ㅋㅋ 잘보았습니다~^^

개복치 live 카운트가 1 올랐습니다+_+

✈ 저도 중간까지 너무 재미있다고 무릎을 탁탁 치면서 보다가 "무릎을 쳐서 개복치가 사망"하였습니다.

마지막 내용은 저도 골때립니다
쉽게 요약하자면 1kg 만 선물 받는 집에 사과 1kg을 보냈습니다
한데 세그윗은 사과를 깎아보니까 껍질이 500g 사과가 500g 나온겁니다
그래서 사과를 몇개 더 구입해서 800g 사과와 800g 껍질을 택배 2상자에 나눠담고
1kg만 받는 집에는 껍질박스는 안보내는 겁니다
그결과 300g의 사과를 더 보낼수 있게 되었습니다

✈ 와우... 껍질을 안 보내고 사과만 더 보내는 개념이군요! 정말 알면 알수록 신기한 가상화폐의 세계네요...

다른 세그웻 관련 글에 비하면 개복치들 좀 살겠는데요 ㅎㅎ 좋은글 감사합니다

그럴까요? ㅎㅎ 마지막이 난관이죠
댓글 감사합니다

오호 저같은 개복치도 세그윗조금은 알아가네요..ㅎㅎ 읽다가.. 해킹 1000원에서 2000원 으로 또 받게 되는 과정까지는 조금씩 이해하다가..그뒤에있는글들은..읽으면서 사망하게되네요ㅋㅋㅋ

뒤에는 블록의 구조라던지 포크라던지 이런게 연관되었다보니 ㅎㅎ
하지만 설명이 좋지 않았네요 -_-
뭐 다른거 설명할 글에 다시 설명할지도 모르겠습니다

휴우~ 잘되야 할텐데요!

채굴자들이 바보가 아니라면 설마 안되기야할까요
잘되면 대박이 되겠죠. 일단 한동안 쭈욱 오를듯
물론 세그윗 전후에는 왕창 떨어질거 같지만

내용은 도저히 못따라잡았으나 그냥 유쾌하게 끝까지 보게 되는 마력~!

좀 어렵죠 ㅎㅎ. 하나하나 익혀져 있는 상태에서 보아야 제대로
이해가 될겁니다. ㅠㅠ;

뭔가 알듯말듯 ........ㅎㅎㅎ @twinbraid님의 설명은 쉬운듯 어려운듯 아리송해요ㅎㅎㅎ 그래도 책을 읽는 것보단 확실히 쉬운 설명인것 같네요!!
이글에서 제가 얻은 결로은 중국채굴자 나쁜넘들 ㅎㅎㅎㅎㅎ

저 내용이 원체 뭐 같은거라 ㅠㅠ;; 장난 아니더군요.
거기에 본인도 공부하면서 하는 거라 더더욱 설명이 힘든것 같습니다-ㅅ-;

그래도 @twinbraid님 설명이 쉬워서 조금이나마 이해되는 것 같아요 ㅎㅎ 블로그같은데서 봤으면 읽다말았을듯...ㅎㅎㅎㅎ

감사합니다+_+ 내용에 구라를 치던지해서 수단방법을 가리지않고 좀더 쉽게 이해할 수 있는 글을 쓰도록 하겠습니다

매번 세그위트를 검색해서 봐도 이해가 잘 안갔는데 덕분에 퍼즐이 좀 맞춰지는것 같습니다. 141이 대체 멀 의미를 할까 항상 생각했었는데 SIP8 .. 아니 순서였군요.

이제 이해가 안됬던 분들의 글을 다시 읽어보러 떠나겠습니다...

개복치도 배웠으니 두개나 되네여 ㅋㅋ

감사합니다.

완전 단순하죠. 베스킨라빈스31이 좀더 어려운 개념인듯합니다-ㅅ-;
알면 이렇게 쉬운데 ㅋㅋ

아오 세그윗 전쟁이 끝나야 ㅠㅠ 코인들이 오를텐데 말이죠... 난민들은 웁니다 ㅠㅠ

그러게요. 지금 뺄러니까 손절이 너무..ㅠㅠ;
빨랑 빼둘껄..

덕분에 그나마 이해가 좀 됬습니다:)

다행입니다. 후반부는 좀 어려웠을텐데 일단은
그냥 늘어난다로 알고 계심 될듯합니다
단지 그 뒷얘기는 나중에-ㅅ-;

전 어려워서 뭐가 뭔지 모르겠지만 추천.ㅎㅎ

알고보면..
그래도 어렵긴하죠..-ㅅ-;

저런 재밌는짤은 어디서구하시는지 ㅎㅎ 어려운내용인데 재밌게봤네요 ㅋㅋ

짤의 알파이자 오메가 구글신님 덕분이죠

재밌게 잘써주셨네요. 역시 @twinbraid 님 글은 참 보는 맛이 있는 것 같습니다. 잘보고 갑니다~

감사합니다 +_+/

음 아무래도 전 살아있는 것 같습니다. 그래서 BIP148이 뭐죠?

용량 늘어남 -끝- 입니다 ㅎㅎ
고렇게만 아시면됩니다. 다만 문제가 그리 간단하진 않지만요
좀 위험하죠

글을 읽다가 사망! 점점 위기탈출 넘버원에 제보해야할 글로 진화하는군요.

이런. soyo 라이센스를 따야 합격인데
정말 섬세하네요. 그래도 초반은 괜찮았으리라 생각됩니다
글쓰면서 점점 저도 에라 모르겠다 분위기가 되는지라
-ㅅ-;; 어차피 2탄이 있으니 보충설명들어가야겠네요 ㅎㅎ

중국 마이너들은 블록 사이즈를 늘리는 걸 선호하는 편이고, core 개발자들이 segwit을 선호합니다.

엇 정말인가요? 전 반대로 들었는데.. 오래전부터
사이즈를 늘리자는 얘기가 있었고 그걸 못한게 중국채굴업자들 때문이 아닌가요?
요즘은 바뀌었는지 아님 처음부터 잘못 알고 있었는지 아리달쏭하네요

Segwit2x 개념과 segwit이 다른건데 그 개념을 혼동하고 계신거 같아요~ 비트코인 코어와 언리비티드가 각각 다르버전을 배포하면 하드포크는 강제적으로 일어나는거에요 7월 21 segwit2x 발표 예정이고 8월1일 비트코인 코어측에서 segwit을 발표 소프트 포크가 되려면 둘의 합의해서 segwit이 발표가 안되야 됨

아 제가 예전에 들었던 내용과 비코 망했다고 한 사람 피자헛이던가
하는 사람 얘기에 그렇게 착각한거 같군요
그때 용량 늘리는 지갑을 막 거부하고 그래서 싸우고 이랬던게
중국업자때문인줄 알았는데 개발자 커뮤니티내에서의 싸움이었더군요
다만 업자랑 관련이 있을지도 모르겠지만
여튼 2X의 개념은 알고 있습니다 segwit 성공후 하드포크였죠..

보팅에 손이 자동으로 가게 하는 글입니다.
어느 글보다도 제일 머릿속에 쏙쏙 박히는 글이네요^^
잘 공부하고 갑니다!

감사합니다+_+/

@twinbraid님 글은 항상 이해하기가 쉽고 재미난데 이번글은 그중에서도 역대급이네요. 여러가지 몰랐던게 이글 하나에서 왕창 이해가 되었습니다. 좋은글 감사합니다. (마치 진짜 이해된 척하며...)

홀..+_+ 이해가 잘되신다는 분이 좀 있어서
기쁘네요 ㅎㅎ ㅎㅎㅎ 감사합니다

개복치 한마리 감사보팅 올립니다~ ㅋㅋㅋ

또 다른 생존자 발견!

일단 이해도 이해인데 신명이 납니다ㅋㅋ

이런 글은 신명이라도 안나면
다들 꿈나라로 떠나고 없죠
당장 저 자신이..

나는 모든 가장 잘 알고 있습니다, 감사합니다!

훌륭한 이해력이군요! 감사합니다 +_+/

아니 그 하나! 행운을 빌어 요!

SIP8 너무 어렵잔항?? ㅋㅋㅋ 전혀 몰랐는대 조금의 감이라도 얻고 갑니다 감사합니다 ㅎㅎ

감만 얻으시면됩니다
한가지 아직 안적은게 있다면 저게 좀 위험하다는 정도네요
그게 젤 중요한 거지만

개복치는 뻥하고 터져버렸습니다 ^^;

또 이렇게 한명의 개복치가 가는군요
얼마전에 부레가 터져서 승천한 분도 계셨는데..ㅠㅠ

어려워던 내용이 조금씩 이해가네요. 쉽게 설명해주셔서 감사합니다.

+_+ 조금이라도 이해가 되신다면 다행입니다

역시 탁월한 설명이네요.
다른분들처럼 마지막은 이해가 쉽지 않군요.

마지막은 저도 이해가 잘 안되더군요 ㅋㅋ
증거를 빼면 어쩌자는거야.. 라고 생각했는데
계속 보고보고 또 봐서 간신히 끄트머리를 잡았습니다
저걸 제대로 이해할려면 블록체인의 구조와
트랜지션의 구조를 어느정도는 알아야할듯 싶습니다

요새 아주 죽을맛입니다ㅠㅠ자세한 설명감사합니다 ㅎㅎ

또 떨어지네요..;ㅁ; 크흨

"아, 그렇구나"와 "뭔소리지?" 를 반복하며 읽었습니다. 이해를 다 했습니다. 진짜냐고요? 저도 도망갑니다~.

다음것은 이해하기 쉬울것입니다.. 아마도-ㅅ-;

재미있고 적절한 짤 덕분에 아 이걸 읽을 수 있을까 걱정하다가 다 읽게 되더군요 ㅋㅋㅋㅋㅋㅋㅋㅋ근데 저도 다 읽고 사망....ㅜㅜ하...어렵네요...

다음은 사망 안하도록 해보겠습니다. 이건 기술적(?) 얘기때문에
좀 어려울수밖에 없었죠.

어려운 내용을 아주 재밌게 잘 설명해 주셨네요. ^^
그래도 저에겐 여전히 어렵긴 하지만요...ㅎㅎ

저도 어렵습니다 ㅎㅎ
감사합니다

이 어려운걸 해내시는군요.......ㅎㅎㅎ
쉬운 설명과 함께 절묘한 쩔의 조화.....
님을 학교 선생님의로 강제 소환 시켜 드리고 싶네요~~~^^
더운날 몸 건강하시고 행복 하세요^^

감사합니다 선생님은 무리;ㅁ;입니다 ㅎㅎ

좋은글 감사합니다!
리트윗 해갑니다

리스팀 감사드립니다 +_+/

재밌게 읽었습니다!$~

감사합니다+_+

와 정말 쉬운설명감사합니다!!
리스팀 해갑니다!! ^____^

리스팀 감사합니다

아 요즘 세그윗이 뭔가 복잡한 내용이 나오길래 뭐지? 했는데 몇 달전에 분리 이야기로 왈가왈부하던 이야기를 드디어 적용시킨다는 내용이네요.

세그윗 자체는 좋은 내용인데 중국채굴업자가 이득 볼려고 그걸 거부했고
거기에 열받은 개발자들이 채굴업자와 대립하다가
터뜨리는 뒷배경이 중요합니다

굿굿굿 고맙습니다 ^^

엄청 직관적이신 분이시군요 대단합니다^^

세그윗이 궁금해서 왔다가 블록체인까지 이해된것 같네요 ㅎ
글 잘보고갑니다.