Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

블록체인 POW 작업증명 방식

4,760 views

Published on

pow를 알기 쉽게 설명해보았습니다.

Published in: Technology

블록체인 POW 작업증명 방식

  1. 1. Early stage VC & Veteran Pacemaker 2018.05 본엔젤스 이범규 심사역 블록체인_작업증명 방식을 이해하자!
  2. 2. Early stage VC & Veteran Pacemaker 2 블록체인_이젠 너무 익숙한 자주 듣던 이야기: “모두가 원장을 공유” 큰 그림을 보면 간단하지는 않다ㅠ (…?)
  3. 3. Early stage VC & Veteran Pacemaker 3 그래서 복습 블록체인: 믿고 쓰는 클라우드 컴퓨터 세상 일이 다 이렇게 돌아가면 좋겠지만.. A->B 500원A->B 500원 A->B 500원A->B 500원 B->C 1000원 B->C 1000원 B->C 1000원 B->C 1000원 B->A 500원 B->A 500원 B->A 500원 B->A 500원 1 2 B가 C한테 1,000원을 줬대! B가 A한테 500원을 줬대!
  4. 4. Early stage VC & Veteran Pacemaker 4 거짓말 하는 녀석은 어디에나 있고.. 그래서 블록체인은 서로가 서로를 믿지 않는 게 핵심이다 이런 경우가 있지 않겠음? A->B 500원A->B 500원 A->B 500원A->B 500원 B->C 1000원 B->C ….? B->C 500원 B->C 500원 B가 C한테 500원을 줬대! B가 C한테 1000원을 줬대!
  5. 5. Early stage VC & Veteran Pacemaker 5 세상 모든 사람이 떠들면 누구 말을 믿어야 할까? 그래서 합의 알고리즘이 필요한 거 오케이. 이건 믿을 수 있는 애야. 이 정도면 믿자고 했잖아? A->B 500원A->B 500원 A->B 500원A->B 500원 B->C 1000원 길동아 미안 난 세종이를 믿을 게 B->C 500원 B->C 500원 B가 C한테 500원을 줬대! B가 C한테 1000원을 줬대! 길동 선녀 꺽정 세종 B->C 500원
  6. 6. Early stage VC & Veteran Pacemaker 6 POW, POS, DPOS 요즘 뭐가 많은데.. 우리는 POW를 공부해보자 POW POS DPOS 관련 있는 말들 작업증명, 비트코인, 해쉬파워, 전기비가 많이들어, Nonce, 안정적 지분증명, 지분이 많으면 믿음, 비잔틴 합의 알고리즘, 이더리움 캐스퍼 위임지분증명, 스팀잇, 이오스, 민주주의, 국회의원 “POW는 비트코인의 합의 알고리즘” (Proof-of-work) (Proof-of-stake) (Delegated Proof-of-Stake)
  7. 7. Early stage VC & Veteran Pacemaker 7 합의 알고리즘? 합의를 왜해 비잔틴 장군의 문제 - 누구 말을 믿어야 해? 즉, 합의 알고리즘은 서로 믿을 수 없는 상황에서, 가장 신뢰 할 수 있는 길을 택하는 방법 조조가 쳐들어온다 아니야 저건 거짓말이야 상대는 유비다 유비 나도 봤다. 조조다 [남을 속이고 싶은 A씨]
  8. 8. Early stage VC & Veteran Pacemaker 8 POW의 세계로.. 10분에 한번씩만. 히스토리+하고싶은말을 한다고 해봅시다 A씨가 남을 속일 수 있을까요? 유비가 쳐들어온다 손권이 망했다 조조가 쳐들어온다 무슨 소리야 손권이 왜망해 무슨 소리야 손권이 왜망해 무슨 소리야 손권이 왜망해 무슨 소리야 손권이 왜망해 [남을 속이고 싶은 A씨]
  9. 9. Early stage VC & Veteran Pacemaker 9 POW의 세계로.. 아마 유일한 방법은, 두 번 말하는 것일 겁니다. 근데 10분에 한번만 말 할 수 있다면서요. 그럼 이건 안되겠네요..;; 유비가 쳐들어온다 조조가 쳐들어온다 손권이 망했다. 제갈량이 죽었다. 아. 나만 못들었었나보네. 손권이 망했다니. 큭. 제갈량이 죽었다. 컨펌. [남을 속이고 싶은 A씨] 아. 나만 못들었었나보네. 손권이 망했다니. 큭. 제갈량이 죽었다. 컨펌. 아. 나만 못들었었나보네. 손권이 망했다니. 큭. 제갈량이 죽었다. 컨펌. 아. 나만 못들었었나보네. 손권이 망했다니. 큭. 제갈량이 죽었다. 컨펌.
  10. 10. Early stage VC & Veteran Pacemaker 10 POW의 세계로.. 핵심은, 1) 10분에 한번만 얘기하게 하자. 2) 다수가 (1)을 하게 하자 어떻게 하면 좋을까?
  11. 11. Early stage VC & Veteran Pacemaker 11 Proof-of-Work: 일로써 증명한다 POW: 생태계를 위한 모두의 룰. 10분에 메시지 한 개 내가 얼마나 열심히 일했냐 x 랜덤 확률에 기반 열심히 일을 하면 보상을 주는데 보상은 ㅠㅜ ㅠㅜ ㅠㅜ ㅠㅜ 다음판을 노려야지 ㅠㅜ ㅠㅜ 야호 찾았당 빨리 다음 일을 시작하자
  12. 12. Early stage VC & Veteran Pacemaker 12 어 살짝 어려워지는 느낌..? 자. 길동이 이야기로 돌아옵시다 아무나 떠들지 못해. 일을 해서 떠들 기회를 잡으라구! A->B 500원A->B 500원 A->B 500원A->B 500원 B->C 1000원 길동아 미안 난 세종이를 믿을 게 B->C 500원 B->C 500원 B가 C한테 500원을 줬대! B가 C한테 1000원을 줬대! 길동 선녀 꺽정 세종 B->C 500원 보상과
  13. 13. Early stage VC & Veteran Pacemaker 13 어 살짝 어려워지는 느낌..? 자. 길동이 이야기로 돌아옵시다 아무나 떠들지 못해. 일을 해서 떠들 기회를 잡으라구! A->B 500원A->B 500원 A->B 500원A->B 500원 B->C 500원 맞네. 인정 B->C 500원 B->C 500원 B가 C한테 500원을 줬대! 길동 선녀 꺽정 세종 B->C 500원 보상과 “아싸 이번판은 제가 떠들겠습니다~” 믿습니다 오키 굳 담판 고 찾았다!!
  14. 14. Early stage VC & Veteran Pacemaker 14 근데 뭘 찾았다는건지? 믿기지 않겠지만 그냥 조건에 맞는 랜덤한 숫자;; 이걸 그냥 1부터 넣어보는 거. 될때까지.^^ 주어지는 것 1 주어지는 것 2 주어지는 것 3 주어지는 것 4 주어지는 것 5 [ 내가 넣어보는 숫자 ] 랜덤하게 아무 숫자나 주는 함수 A씨(32세) 이번 판은 20보다 작은 숫자가 나오면 합격 132도 나왔다가, 919도 나왔다가 21도 나왔다가, 56도 나왔다가, 100도 나왔다가, … “어디쯤 왔는지 모르겠군” “그러게. 계속해봄세” (참고로 같은 숫자 넣으면 같은 값 나옴. 그러니 또 넣지말것)
  15. 15. Early stage VC & Veteran Pacemaker 15 이런 기계를 해쉬펑션이라고 합니다 Hash: 해쉬브라운. You know. 으깨 버림 여튼! 조건에 맞는 숫자를 먼저 찾은 사람이, “블록”을 생성 할 권리를 갖습니다 SHA 해쉬펑션도 종류가 있다 SHA, MD5 등등 (POW는 SHA를 사용) 대충 이런 값이 나오는데, 사실 그냥 16진법 숫자임이미지를 넣어도 숫자와 문자를 넣어도 이메일을 넣어도 대동여지도를 넣어도 독립선언문을 넣어도 아무 텍스트나 다 같은 값을 넣으면 같은 값이 나옴
  16. 16. Early stage VC & Veteran Pacemaker 16 은근슬쩍 블록이란 말을 꺼냈는데.? 이렇게 매번 기록하긴 쉽지 않겠죠~ 그래서 모아서 합니다. 이게 블록! 1MB 만큼의 거래 데이터를 모아 놓은 것 평균적으로 하나 생성하려면 10분 걸림 *10분 걸리게끔 난이도를 계속 조절 > 20이하의 숫자를 찾아라! 보단 50이하가 쉽겠죠? 세종이, 길동이, … 각 노드들이 모아 놓는 순서가 다름 *아무래도 근처부터 모으지 않겠어요? 블록 헤더에는 생성을 위한 주요 정보가 담겨있습니다 블록은 블록해쉬와, 헤더와, 거래데이터로 구성 A->B 500원 B->C 500원 C->A 200원 Header c94d54942a29..
  17. 17. Early stage VC & Veteran Pacemaker 17 블록헤더를 살펴보자 A->B 500원 B->C 500원 C->A 200원 Header 헤더가 제일 중요해요. 정보를 다 담고 있답니다 소프트웨어버전 블록생성시각 채굴난이도 이전 블록 해쉬 머클트리해쉬 Nonce c94d54942a29.. 헤더를 해싱하면 블록해쉬 회식 친구들 : 주어지는 것들 머클트리해쉬 : 만들면 되는 것 Nonce : 무작위 숫자 넣는 그거 오~ 헤더에 이전 블록의 해쉬값을 담고 있네요
  18. 18. Early stage VC & Veteran Pacemaker Nonce Header 0af44942a29.. 18 이전 블록 해쉬 값을 담았기에, Header 블록“체인”이 됩니다. 소프트웨어버전 블록생성시각 채굴난이도 이전 블록 해쉬 머클트리해쉬 c94d54942a29.. 헤더를 해싱하면 블록해쉬 그래서 이전 블록을 무시한 블록을 만들 수 없습니다. 다른 노드들이 똑같이 해보면 금방 탄로나니까요
  19. 19. Early stage VC & Veteran Pacemaker 19 무슨 얘기냐? 컨펌 받고, 길동이가 확인하는 과정에서 들통나게되죠 어제 하루 치를 FAKE 치려면, 10분 내에 24시간 어치 블록을 만들어야 하는데, 그건 불가능하겠죠! A->B 500원 B->C 500원 B가 C한테 500원을 줬대! 길동 선녀 꺽정 세종 “아싸 이번판은 제가 떠들겠습니다~” 찾았다!! 어? 이전 해시 넣으면 똑같이 안나오는데? 컨펌 불가 그래 이거 쫌 이상하다. 무시하고 계속 일할래! 컨펌 불가 거짓말 노노~ 딱걸림 컨펌 불가
  20. 20. Early stage VC & Veteran Pacemaker 20 근데, 머클트리해쉬?! 어렵지 않아요. 그냥 거래 정보를 모아서 모아서 뭉친거 이렇게 하면 헤더에 정보가 너무 많잖아요ㅠ 비교도 못하고 머클트리해쉬 Nonce 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원
  21. 21. Early stage VC & Veteran Pacemaker 21 머클트리해쉬?! 어렵지 않아요. 그냥 거래 정보를 모아서 모아서 뭉친거 그래서 헤더엔 뭉치고 뭉친 해시 값을 둡니다 머클트리해쉬 Nonce 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원 021acee2.. 31daeb.. a2123fd..aa25a2.. daefd123.. … …
  22. 22. Early stage VC & Veteran Pacemaker 22 Nonce는? 말씀드린대로 - 그냥 1,2,3,4,5,6,.. 입니다. 그래서 헤더엔 뭉치고 뭉친 해시 값을 둡니다 머클트리해쉬 23 1. A->B 500원 2. B->C 1,000원 3. B->A 500원 4. C->A 200원 021acee2.. 31daeb.. a2123fd..aa25a2.. daefd123.. … … 열심히 계속 넣어서 해싱해봄
  23. 23. Early stage VC & Veteran Pacemaker 23 그럼 거의 다 됐는데, 정리를 한번 해볼까요? [1] 각자 거래 정보를 모은다. 되는대로. 1MB 어치 C->A 300원 F->A 100원 B->C 500원 F->A 100원 B->C 500원 C->A 300원 B->C 500원 A->B 500원 D->E 20원 A->B 500원 B->C 500원 C->A 300원 … … … … 길동 선녀 꺽정 세종 Header Header Header Header 사실 이건 눈 깜짝 할 새 입니다.
  24. 24. Early stage VC & Veteran Pacemaker 24 그럼 거의 다 됐는데, 정리를 한번 해볼까요? [2] 다 모으면 채굴 시작 C->A 300원 F->A 100원 B->C 500원 F->A 100원 B->C 500원 C->A 300원 B->C 500원 A->B 500원 D->E 20원 A->B 500원 B->C 500원 C->A 300원 … … … … 1 21 32 3 Header Header Header Header 이게 10분짜리 Nonce 0cd2d.. 12dca.. 0eedc.. bddac..해쉬값 목표: D80F394E2CE8C4994BC7B18AB216D7E9BCA89518326BD77102C29E82100A5472 보다 작은 애를 찾아라!
  25. 25. Early stage VC & Veteran Pacemaker 25 그럼 거의 다 됐는데, 정리를 한번 해볼까요? [3] 찾음. 전파 시작 C->A 300원 F->A 100원 B->C 500원 F->A 100원 B->C 500원 C->A 300원 B->C 500원 A->B 500원 D->E 20원 A->B 500원 B->C 500원 C->A 300원 … … … … 12 56 35 164 Header Header Header Header 전파 전파.. Nonce 0ff2d.. 00eca.. ffedc.. b03ac..해쉬값 목표: D80F394E2CE8C4994BC7B18AB216D7E9BCA89518326BD77102C29E82100A5472 보다 작은 애를 찾아라!
  26. 26. Early stage VC & Veteran Pacemaker 26 그럼 거의 다 됐는데, 정리를 한번 해볼까요? [4] 받으면 체크->맞으면 장부 복사 0 0 0 0 F->A 100원 B->C 500원 C->A 300원 … Header Nonce - - - -해쉬값 목표: D80F394E2CE8C4994BC7B18AB216D7E9BCA89518326BD77102C29E82100A5472 보다 작은 애를 찾아라! F->A 100원 B->C 500원 C->A 300원 … Header F->A 100원 B->C 500원 C->A 300원 … Header F->A 100원 B->C 500원 C->A 300원 … Header 맞으면 맞춘 애 보상 / 다 같이 다음 채굴 준비 (참고로 보상이 바로 이루어지진 않아요. 여러가지 이유로 좀 더 두고보다가 줍니다.)
  27. 27. Early stage VC & Veteran Pacemaker 27 잠깐! 보상은 얼만큼? 최초에 50BTC부터 시작해서, 때가 되면 절반씩 줄어듭니다. (현재 12.5BTC) 0 0 0 0 F->A 100원 B->C 500원 … Header Nonce - - - -해쉬값 목표: D80F394E2CE8C4994BC7B18AB216D7E9BCA89518326BD77102C29E82100A5472 보다 작은 애를 찾아라! F->A 100원 B->C 500원 … Header F->A 100원 B->C 500원 … Header F->A 100원 B->C 500원 … Header 그래서 블록의 첫 줄은 항상 “채굴자에게 xx를 줬다”가 되죠 선녀 12.5btc선녀 12.5btc 선녀 12.5btc 선녀 12.5btc 길동 선녀 꺽정 세종
  28. 28. 28 아직 몇 개 더 남은, 블록체인의 신비 끝인 줄 알았죠?
  29. 29. Early stage VC & Veteran Pacemaker 29 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 캐나다에 있는 길동. 호주에 있는 세종 길동 선녀 꺽정 세종 C->A 300원 F->A 100원 B->C 500원 F->A 100원 B->C 500원 C->A 300원 B->C 500원 A->B 500원 D->E 20원 A->B 500원 B->C 500원 C->A 300원 … … … … Header Header Header Header 길동파의 생성 세종파의 생성 신 블록체인 파벌주의의 도래??
  30. 30. Early stage VC & Veteran Pacemaker 30 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 그려보면 이렇습니다. (엄청 유명한 그림. 출처: Mastering Bitcoin) 유럽에 있는 노드들은 어떤 선택을 할까요? - 먼저 도착한 애를 따라갑니다. 전체적으로 보면 줄기가 갈라지겠네요 길동 세종
  31. 31. Early stage VC & Veteran Pacemaker 31 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 다음 턴에서, 이번엔 러시아에서 Nonce를 찾았다고 합시다. 근데 러시아는 세종파예요 길동 세종
  32. 32. Early stage VC & Veteran Pacemaker 32 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 그럼 유럽에 있던 길동파 애들은 이렇게 되겠죠? 골라야겠네요!
  33. 33. Early stage VC & Veteran Pacemaker 33 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 그럼 유럽에 있던 길동파 애들은 이렇게 되겠죠? 그러면, 긴 쪽을 고릅니다.
  34. 34. Early stage VC & Veteran Pacemaker 34 Q1. 만약에 길동과 세종이 동시에 채굴에 성공하면? 이렇게 되면 어떡해요!! 그리고 내가 BTC를 보냈으면 간 데도 있고 안간 데도 있고 그런가요?? 이렇게 될 일은 거의 없으며(a.k.a. 사토시나카모토의 증명) 보상도, 당신의 돈도 묵혀뒀다 적당히 정리되면 실제로 처리됩니다
  35. 35. Early stage VC & Veteran Pacemaker 35 Q2. 유실되는 거래는 있다/없다? 저렇게 되면, 빨간 애가 모은 정보는 어떡해요? 그건 초록 애 어딘가와 핑크 애 어딘가에 잘 나눠담겨 있을 겁니다. 그래도 없으면 다음 블록에 담겨있겠죠.
  36. 36. Early stage VC & Veteran Pacemaker 36 Q3. 잠깐만. 그럼 해싱파워가 엄청 크면 독점 아니야? 1. 일단은, 웬만큼 커도 확률 게임이라 매번 이기지는 못합니다. 컴퓨터가 아무리 좋아도, 운이 좋아야 함! 소프트웨어버전 블록생성시각 채굴난이도 머클트리값(노드 별 상이) 이전블록해쉬 Nonce 머클트리 값이 다 다르기 때문에, 누구는 Nonce = 1에서 찾고, 누구는 938에서 찾고. 다 다릅니다. 근데, 해싱파워가 좋으면 숫자를 더 빨리 넣어볼 순 있겠죠 이번 판은 20보다 작은 숫자가 나오면 합격 “이번 판은 운 좋게 옆 동네 순돌이가 이겼군..”
  37. 37. Early stage VC & Veteran Pacemaker 37 Q4. 노드를 다 가지면. 그러면 점령 아니야? 네 그걸 “51% 공격”이라고 합니다. 문제가 될 수 있죠. “중앙화”는 블록체인 세계에서 항상 경계하는 부분입니다. 다만 내역도 다 남고, 걸리면 신뢰 제로인데, 그럼에도 공격을 할까요? (“17.08월 기준) 전기세: $39k /day BTC Get: $250k /day
  38. 38. 38 POS, DPOS 맛보기 끝인 줄 알았죠2?
  39. 39. Early stage VC & Veteran Pacemaker 39 POW, POS, DPOS 요즘 뭐가 많은데.. 우리는 POW를 공부해보자 POW POS DPOS 관련 있는 말들 작업증명, 비트코인, 해쉬파워, 전기비가 많이들어, Nonce, 안정적 지분증명, 지분이 많으면 믿음, 비잔틴 합의 알고리즘, 이더리움 캐스퍼 위임지분증명, 스팀잇, 이오스, 민주주의, 국회의원 POS, DPOS는 백서를~ (Proof-of-work) (Proof-of-stake) (Delegated Proof-of-Stake)
  40. 40. Early stage VC & Veteran Pacemaker 40 참고 할 만한 곳들! 자료 준비 대부분은 여기서 발췌 https://homoefficio.github.io/2017/11/19/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D %B8-%ED%95%9C-%EB%B2%88%EC%97%90- %EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/ https://medium.com/@matthewminseokkim/ethereum-casper%EA%B0%80- token-economy%EC%97%90-%EB%AF%B8%EC%B9%98%EB%8A%94- %EC%98%81%ED%96%A5-d32bfbc75496 면접 대비용(?) https://steemit.com/kr/@jsralph/proof-of-stake-pos-2-pos-nothing-at-stake POS의 문제. Nothing at stake

×