develop custom_top_html:no
default debug random = 0 / type = READ / detected = READ
개발
2014-10-21 16:39:57

비트코인에서 POW에 대한 질문

비트코인에서 POW를 이용합니다.


그런데, POW라는 것이 기본적으로 도스(DOS) 공격을 막기 위해서 사용되던 고전적인 방법인데요..


그 특성은 기본적으로 하나인데, 즉, 계산량의 비대칭성에 있습니다.


즉, 기본 원리는 메세지를 생성하는 측에서는 특정 기준을 만족하는 해쉬값을 얻기 위해서 난수를 이용하여 많은 계산을 수행해야 하지만, 검증하는 측에서는 한번에 메세지 및 난수를 해쉬함수로 입력하여 검증할 수 있게 되는 계산량의 비대칭성을 이용하는데요..


다시 말하면, 보내는 측에서는 기준을 만족하는 해쉬값을 찾기 때문에 계산량이 많고, 받는 측에서는 아주 쉽게 검증이 가능하므로 계산량이 아주 적게 됩니다.


이런 것은 기본적으로 서버를 가지고 있는 경우 도스공격을 하는 입장에서 일정량의 일을 해야 하기 때문에 도스공격을 일정 부분 방어할 수 있는 특징이 있습니다.


하지만, 비트코인의 POW가 하는 기능은 1) 비대칭성 2) 랜덤성의 성질을 이용하는 것으로 보이는데요.. (더 있나요?) 


즉, 비트코인의 POW는 DOS 공격을 방어하기 위한 기존 POW의 기능에 더하여, 다수의 피어(노드) 환경에 의한 랜덤성이 더 포함되어 운용되는 것으로 보입니다.


일단 제 생각에는 이것 중에서 코인의 합의 알고리즘에서 필요한 부분은 2) 랜덤성인 것처럼 보이는데요.. 


이유는 POS의 경우, 이런 비대칭성을 이용하지 않는 것으로 보이며, 단지 coinday에 의한 랜덤성을 이용하는 것으로 보이기 때문입니다. (확실하지는 않습니다.)


따라서, 비트코인에서 POW의 이런 비대칭성이 반드시 필요한 것으로 보이지는 않습니다.


어떻게 생각하시나요..?


왜냐면 제가 올린 글(합의 알고리즘)에서 랜덤성만을 이용하여 알고리즘을 만들었기 때문입니다.


참조: http://www.ddengle.com/bitcoindeveloper/889821 

0

loum님의 서명

 

 
 
 
댓글 2
  • 글쎄요. POS나 POW나 비대칭성은 동일합니다.
    블럭을 만드는 쪽은 힘들지만.. 검증하는 쪽은 아주 아주 쉽죠.
    차이점이 있다면.. 오로지 POW는 해시파워에게 보상한다는 점, POS는 보유 지분에 보상한다는 점입니다.
  • ?
    @동네불패
    좀 더 구체적으로 말씀해주시면 도움이 될 것 같습니다.
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
101 개발 [엑스코인]함께할 개발자님들을 모집합니다. 안녕하세요 엑스코인의 왕건일입니다. 엑스코인에서 대한민국 비트코인 시장에 한 획을 긋고 싶은 열정있는 개발자님들을(6분) 모집합니다. 땡글인일경우, 비트코인에 대한 열정과 개발에 대한 ... 3 2894
COINKING
2015.02.09
100 개발 node.js 에서 콜백지옥이 어떨때 발생하는건가요? for(var i=0;i<10;i++){ console.log(i); } for(var a=0;a<10;a++){ console.log(a); } console.log('end'); 이렇게 돌려봐도 첫번째 두번째 for문이 순차적으로 실행되는데 비동기식 코딩에서... 4 0 6452
지우긩
2015.02.01
99 개발 Gateway 구축비용 리플코인은 Ripple Trade 안에서 모든 거래(시장형성)가 진행되도록 만들어 놓았는데요,  Pax Moneta 는 반(Half) 독립적이며 자동 입출금 시스템으로 운영하고 리플마켓코리아는 리플트레이드에... 4 2 2918
V.June
2015.01.31
98 개발 redis 에 배열 자체를 담을수있나요? redis 에 key value 를 담아 배열처럼쓰는게아닌 a[0]='a'; a[1]='b'; 이 a 배열변수자체를 redis에 통째로담을수있나요? 1 0 2798
지우긩
2015.01.30
97 개발 timestamp 에 관해.. 안녕하세요 반갑습니다 늦게 프로그래밍이란걸 접하게되어 하나하나 배워가고있는 초짜입니다. 다름이아니라 서버와 클라이언트 사이의 시간을 동기화시키고싶은데요. 서버의 위치가 클라이언트... 3 0 1972
지우긩
2015.01.22
96 개발 파이썬 교재입니다. 파이썬 교재입니다. 제목은 "정보교육을 위한 파이썬"입니다. 교재로써 도움이 될까 해서 올립니다. 우리나라 두분이 번역해 주신것입니다. 첨부파일로 올리니 다운받으시면 됩니다. 파이선교재.... 9 file 6 8941
서울코인
2015.01.21
95 개발 프로그래밍 입문 - 무얼 어떻게 공부해야 할까요? 안녕하세요. @V.June 님 질문 보고 좀 자세히 여쭈어 보려고 합니다. 코인을 만들고 그와 관련된 생태계를 직접 꾸며보고 싶습니다. 코인(256D/스트립트/POS 등등) 을 만들고, 지갑을 만들고, 홈... 6 3 3935
음교수
2015.01.20
94 개발 프로그래밍 입문 안녕하세요,  프로그래밍에 너무도 관심이 많은 일반인 입니다.  지식이라면 거의 '0'에 가깝다고 볼 수 있습니다. 제가 모르는 영역이기에 시간을 두고 배우고 싶은데요, 궁극적인 목적이 '간단... 9 3 2334
V.June
2015.01.20
93 개발 서버에 지갑을 싱크해봤는데 트래픽이 어마어마하네요... 개인적으로 IDC에 테스트용 서버를 한 대 가지고 있어서 로컬에 있는 지갑 몇개를 서버로 옮겨봤습니다. 국제 트래픽이 20GB까지 무료인데, 싱크 띄워놓으니 하루만에 무료트래픽 다 털리는군요 ... 14 0 3412
디지털디자인
2015.01.19
92 개발 socket.io 사용하다 생긴 궁금증.. socket.io 로 웹서비스 하나 제작해보려 하는데 벌써부터 김칫국 마시는건 아닌지는 모르겠습니다만 나중에 해결못할 궁금증이 생겨 이렇게 질문올려봅니다. 바로 질문들어가겠습니다 socket.io ... 3 0 3249
지우긩
2015.01.18
91 개발 웹소켓 질문 있습니다 질문 1 : 웹소켓 타임아웃 보통 몇 초 정도로 하는게 적당할까요? 계속 데이터가 들어와야 되는 시스템인데.. 무한으로 설정해도모 큰 문제는 없을까요? 질문 2: 소켓 onClose 시에 재 접속을 시... 8 0 2941
메슬렁
2015.01.16
90 개발 갑자기 문득. 유레카! 그동안 사실, A 라는 사용자가 B 라는 사용자에게 코인을 보내기 위해 QR 코드를 오픈하는것만으로 코인을 전송하는 방법이 없을까.. 혹은 기존과 조금은 다른 결제 방법이 없을까.. 고민을 조금... 27 4 3846
calmlake79
2015.01.16
89 개발 비트코인(Bitcoin) 시스템 분석 노트 - kt 경제경영연구소 비트코인 공부할 때 찾아놓았던 자료입니다. 정리는 굉장히 잘 되어 있습니다. 비트코인 알고리즘에 관심이 있다면 읽어볼만한 자료입니다. 혹시 이 자료가 이전에 올라왔던 자료인지는 확인을 ... 7 file 18 9059
loum
2014.12.20
88 개발 Coinone API 오픈했습니다 안녕하세요. 코인원 입니다. Coinone API를 오픈하게 되어서 글을 남기게 되었습니다. https://coinone.co.kr/developer/ 앞으로 코인원이  다양한 아이디어를 구현할 수 있는 플랫폼으로 성장하... 2 10165
Coinone
2014.12.09
87 개발 주식 자동 매매 프로그램 이번 주는 많이 바빴습니다. 회사 업무도 있었지만, 프로그램 만드는 일도 몇 일 걸렸습니다. ETF(Exchange Traded Fund) 자동 매매 프로그램입니다. 저가에 매수하고, 고가에 매도하는 전략이... 28 file 11 25625
drjoon
2014.11.21
86 개발 공짜 파이썬 강의 듣기 파이썬(Python) 언어가 여러분야에 많이 쓰이고 있지요. Ethereum 가 파이썬을 지원하고 있고, 카운티파티 같은 경우는 전체가 파이썬으로 짜여있더군요. 영어공부도 할겸 파이썬도 배우고 싶다... 6 file 13 10179
atomrigs
2014.11.19
85 개발 우분 dd 5 0 2472
구스터(°͜ʖ°)
2014.11.18
84 개발 bitcoin rpc sendtoaddress method질문입니다 구조가 아래와 같은데요 sendtoaddress  하면서 전송 수수료를 설정으로 못하나요? 예를들어서 sendtoaddress  xxxx 0.1 이렇게하면 전송수수료 0.0001 이 나가거든요 이 전송수수료를 0으로 해... 5 0 2469
메슬렁
2014.11.18
83 개발 [JS] 개발자 분들 도와주십시오! 수고하십니다. 나이먹을만큼 먹고 자바스크립트 책을 5권이나사서 몇달째 공부중인 사람입니다. 다름이아니라 화폐를 단위별로 잘라야하는데.. 도저히 감이 잘안와서 혹시 땡글분들중에 알려주... 7 0 3850
지우긩
2014.11.14
82 개발 네트워크 부담이 없는 합의 알고리즘 저의 이전 글(http://www.ddengle.com/bitcoindeveloper/889821)에서 몇분이 네트워크 부담을 이야기하셔서 네트워크 부담이 없는 합의 알고리즘을 다시 만들었습니다. 일단 제 눈에는 이것이 PO... 47 3 5481
loum
2014.10.29
Board Pagination Prev 1 ... 83 84 85 86 87 88 89 90 91 92 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ