develop custom_top_html:no
default debug random = 2 / 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
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
100 개발 BitcoinYo - 비트코인캐시(BCH)결제 쇼핑몰 연동하기   이메일로 비트코인 결제 연동관련 문의를 주셔서 답변글을 공개합니다. 비트코인 캐시 결제를 쇼핑몰에 붙이려면 다음과 같이 처리해 주시면 됩니다. 우선 최종 결과물입니다^^ 연동하는 과정... 8 file 3 2176
비트코인요
2017.11.19
99 개발 BitcoinYo - 비트코인캐시(BCH) 결제 공식지원!   안녕하세요. 비트코인요 입니다^^ 비트코인캐시(BCH) 하드포크 이후 1. 저렴한 수수료 가격 2. 안정적인 네트워크 동작 두가지 조건에 부합한다고 생각하여  비트코인 캐시를 공식지원 합니다.... 1 file 3 1263
비트코인요
2017.11.19
98 개발 bitcoinj 사용기 안녕하세요. MultiBit 지갑에 쓰이는 bitcoinj 라이브러리 간단 사용법? 사용기입니다. 1. 이클립스에서 maven 프로젝트를 만들거나 아니면 자바 프로젝트로 만든 다음 maven 프로젝트로 convert... 2 file 4 9928
핀코인
2014.08.02
97 개발 bitcoind로 블록, 거래 내역 조회하기 안녕하세요. 핀코인입니다. bitcoind로 블록 탐색기 구현을 위해 RDBMS에 파싱해서 넣기 위한 방법입니다. blockexplorer.com의 경우 조회해서 crontab으로 주기적으로 새 블록을 찾아 집어넣는 ... 12 5 8477
핀코인
2014.08.13
96 개발 bitcoind sendfrom 질문입니다. sendfrom 을 이용해서 특정주소로만 코인을 보낼 수 있을까요? sendfrom AA 로 AA계좌에서 쏘라고 명령해도 블록체인가서 보면 엄한 주소로 코인을 내보내고 있습니다.. 이게 Qt가 Double Sepend... 4 0 2657
fourseam
2014.09.25
95 개발 bitcoind RPC Method 관련 질문 드리겠습니다~ 안녕하세요 다들 점심 맛나게 드셨나요 ㅎㅎ bitcoind 를 이용해서 웹지갑 서비스를 개발중인데요 처음부터 막혀서 이렇게 질문글 남겨 봅니다ㅠ listtransactions 를 이용해서 코인을 받을 지갑... 3 0 2639
fourseam
2014.07.07
94 개발 bitcoind rpc method listtransactions 에 관련한 질문드립니다. ----------- 자체 결론 냈습니다. 몇일동안 고민결과 blockchain rpc api 포기 하기로 하였습니다..도저히 답이 안나오네요 ㅎㅎ 0컨펌 Tx가 있을떄 listtransactions 메소드가 먹질 않으니 ㅋㅋ... 16 0 3463
fourseam
2014.07.17
93 개발 bitcoin 익스플로러 개발 질문입니다!     블록체인 익스프롤러 및 리치리스트를 만들어보고 싶습니다. 일단 bitcoin regtest로 트랜잭션 생성해서 bitcoin cli로 rpc call(getrawtransaction)로 블럭 데이터를 가져와서 db에 넣는 작... 13 0 996
bc개발자지망생
2018.07.25
92 개발 bitcoin 에서 submitblock 에 대해 문의 드립니다   안녕하세요    bitcoin 채굴기 개발을 하는 데 submitblock "hexdata" 에서 hexdata를 어떻게 구성해야 하는 지  문의 드립니다    구글에서 search 해서  개발을 해 봤는데  [Failed] Block d... 2 0 784
DreamSky
2017.11.02
91 개발 Bitcoin structure(비트코인 구조 뜯어보기) - 1       1. Prologue    최근 암호화 화폐(Crypto Currency)의 통화량이 세계 통화량 기준 33위를 돌파하면서 사실상 Market Cap 200조를 넘보고 있다. 이는 삼성전자의 규모와도 비교될만한 정도... 7 file 4 2624
ersillion
2017.12.02
90 개발 bitcoin segwit2x 개발현황   segwit2x 팀   https://github.com/btc1/bitcoin/graphs/contributors?from=2017-04-20&to=2017-06-17&type=c   정말 열악하군요. 5월부터 현재까지 프로젝트에 commit 한 개발자수가 ... 20 2 2592
비초이
2017.06.28
89 개발 bitcoin rpc sendtoaddress method질문입니다 구조가 아래와 같은데요 sendtoaddress  하면서 전송 수수료를 설정으로 못하나요? 예를들어서 sendtoaddress  xxxx 0.1 이렇게하면 전송수수료 0.0001 이 나가거든요 이 전송수수료를 0으로 해... 5 0 2492
메슬렁
2014.11.18
88 개발 bitcoin protocol 원문 : http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html Bitcoins the hard way: Using the raw Bitcoin protocol All the recent media attention on Bitcoin inspire... 1 file 1 7091
아하하호
2014.07.03
87 개발 BITCOIN PRIVATE KEY 1글자로 암호기억 가능합니다   graphical address generator   BITCOIN PRIVATE KEY 생성 과정 뭐 어쩌구 저쩌구 하여튼 암호과정을 대충 보여줍니다 1글자 또는 숫자1개로도 PRIVATE KEY 뽑아냅니다     렛져나노는 왜 그렇... 3 file 0 1044
돈벼락치기
2018.04.17
86 개발 bitcoin pool server구축 문의 안녕하세요 땡글 가입한지 얼마 안된 개발자 입니다.   이런저런 자료를 찾고 공부하다 보니 막히는게 많아서 bitcoin pool server를 study 용으로 구축해서 테스트 해보려 합니다.   늙다리 프... 1 1 2515
공배
2016.09.22
85 개발 Bitcoin Platinum git 관련..   Bitcoin Platinum fork 가... 그래서 해당 git 관련 히스토리 보고 있는데요..   해당 git master 브렌치에 bitcoin 마스터 브렌치에서 따온 다음?? naver 계정을 사용하는 분이 추가 수정하면... 1 0 1118
너무나무
2017.12.10
84 개발 Bitcoin Gold 빌드 완료     Bash로 7시간동안 삽질하다가 VM깔고 우분투로 하니까 바로 되네요 ㅋㅋㅋㅋㅋㅋ 아무튼 빌드 후 돌려보고 있는중입니다.             ------------------------------------- 꼬리말 * 게... 4 file 0 3196
인텔지원
2017.11.05
83 개발 bitcoin core에서의 root seed를 알고싶습니다. 분명히 HD지갑을 지원해준다면 root seed가 있을텐데    빗트코인 core에서의 (qt) 시드는 어떤 명령어로 볼 수 있는 거죠??   알려주시면 감사하겠습니다~  0 1352
Bitya
2017.07.28
82 개발 bitcoin core 관련 명령어 질문입니다. 안녕하세요..  이해가 안되서 도움을 요청 드립니다.    bitcoin core 를 설치하고 testnet 에서 학습중인데   getaddressesbyaccount view [ "mfiFk6Tpj15yjUtvtNuDKrzp5qfn4kja8E", "muRLb14zy... 4 file 0 1825
후다닥7
2017.09.08
81 개발 bitcoin core client api 질문입니다. bitcoin core 설치하여 testnet 에서 공부하고 있는데  이해가 되지 않는 부분이 있어서 도움 요청 드립니다.   1. sendtoaddress  이용하여 코인을 보내면 어떻 계좌에서 지급이 되게 되나요 ? ... 2 0 1592
후다닥7
2017.09.07
Board Pagination Prev 1 ... 83 84 85 86 87 88 89 90 91 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ