traders_free custom_top_html:no
default debug random = 0 / type = READ / detected = READ

경쟁적 합의 알고리즘에는 pow(Proof Of Work)와 pos(proof of stake)가 있습니다.

 

이들은 마치 100m 경주를 이어달리기 하는 것과 유사합니다.

일등을 하는 사람(노드)가 블럭을 생성합니다.

 

블럭이 생성된 후 다음 블럭을 찾으므로, 이어달리기를 무한 반복합니다.

비트코인의 경우 10분이고, 이더리움은 약 10초(?) 정도의 경주를 무한 반복하죠..

 

이들 경주자의 뛰는 능력은 pow의 경우 초당 해시 계산능력, 즉 계산능력에 비례하고, pos의 경우 지분에 비례합니다.

즉, 해시 계산능력인 월등하거나 지분이 많으면 경주에서 일등하기 쉽겠죠.

 

하지만, 해시능력이나 지분이 가장 많다고 경주에서 항상 일등을 하는 것은 아닙니다.

 

가장 작은 경주 능력을 가진 경주자도 일등을 하도록 만들었습니다.

(블럭 생성하는 노드가 랜덤하게 선정되도록 하기 위함입니다.)

 

예를 들면, pow 경주자는 모래주머니를 발에 차고 뜁니다.

 

pow의 경우는 거의 완전한 난수성을 가진 난수발생기인 해시함수를 사용합니다.

이 해시함수가 일종의 모래주머니 역할을 하고 이 때문에 경주할 때마다 모래주머니의 무게가 달라집니다. 물론 다음 주자가 이어 달리기를 할 때마다 모래 주머니의 무게가 달라집니다.

즉, 경주 능력이 제일 작은 선수도 해시함수의 거의 완전한 랜덤성에 의해서 '자신의 해시능력/전체 네트워크의 해시능력'의 비율로 일등을 할 가능성이 있습니다.

 

이제 pos의 경우는 특정 시간 후에 누가 가장 큰 수를 가졌는가를 겨루는 이어달리는 경주 같습니다.

이때 숫자는 지분 * 시간으로 정해지는 coinage로 정해집니다. (coinage의 공식은 각 코인마다 조금씩 다릅니다.)

 

지분은 전체 코인 수 중에서 지갑에 들어있는 코인의 수이고, 시간은 계속 증가를 합니다.

만일 coinage가 제일 큰 지갑이 블럭을 생성하면, 이 지갑은 시간이 제로로 세팅이 되어서 coinage는 다시 제로부터 시작을 합니다.

따라서 지분을 적게 가져도 오래 기다리면 결국에는 coinage가 가장 많아져서 지분이 가장 적은 지갑도 블럭을 생성할 수 있습니다.

 

이와 같은 경쟁적 합의 알고리즘의 네트워크 보안은 1) pow의 기계값 + 전기료, 2) pos의 지분 (이것을 '비용'이라고 하자)에 의해서 유지됩니다.

그 외에 누가 블럭을 생성할지를 랜덤하게 결정하는데 이것도 일정 부분 네트워크 보안에 기여를 합니다.

 

하지만, 이 랜덤성의 중요성은 '비용'보다 보안에 취약합니다.

즉, 해시능력 또는 지분의 51%를 가진자가 모든 것을 할 수 있습니다. (마치 주식회사의 주식과 비슷함.. )

이 경우 랜덤성이 거의 필요가 없습니다. 

이를 51%공격이라고 하죠..

 

----

그러면 비경쟁적 합의 알고리즘은 무엇일까요?

 

마치 '가위바위보' 게임과 비슷합니다.

대부분의 노드들이 모여서 가위바위보 게임을 일정한 시간(예로 10초)마다 계속하게 됩니다.

전체 노드가 모일 필요는 없고 다수의 노드가 모여서 게임을 하면 됩니다.

 

예로 매 10초마다 게임을 하게 된다면, 당시 게임에서 이긴 노드가 합의 알고리즘을 각각 만들게 됩니다.

 

제가 처음 비트코인의 pow 합의 알고리즘을 보고, 참 힘들게 게임을 한다고 생각했습니다.

 

그 당시 제 생각에는 비트코인의 pow 알고리즘은 어차피 다음 블럭 생성을 랜덤하게 하려는 게임인 것같이 보였는데,

왜 저렇게 전기를 많이 쓰고 해야 하나라는 생각이 처음 들었죠

 

하지만, 다수의 계정을 이용한 시빌 공격 때문에 랜덤하게 블럭을 생성하는 것만으로는 해킹을 막을 수 없다는 것을 나중에 알았죠.

 

비트코인의 pow 합의 알고리즘을 처음 이해했을 때, 제게 든 첫번째 생각은 노드들이 모여서 가위바위보를 하면 될 텐데 왜 저렇게 돈을 많이 들이면서 합의를 할까라는 것이었습니다.

 

어차피 '안전'하게 합의만 하면 될텐데...

(당시에는 '안전'은 '랜덤성', 즉 다음 블럭을 누가 생성할지 전혀 모르게 하는 것이라고 생각했죠)

 

그래서, 제가 처음 만든 합의 알고리즘의 제목이 'Proof of Randomness' 였습니다.

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

 

물론 pow는 앞에서 언급한 '비용'이 네트워크 보안을 강화하죠..

 

하지만 pow 알고리즘은 비트코인 이전에 도스 또는 디도스 공격을 방어하기 위해서 공격자 pc에게 일정량의 계산을 시킴으로서 도스 공격을 완화시키기 위해서 만든 알고리즘이었죠.

 

이것이 비트코인의 합의 알고리즘으로 쓰인 이유는 그냥 사토시가 합의 알고리즘에 쓸 것을 찾다가 이미 잘 알려진 pow를 선택한 것이 아닌가라는 생각도 했습니다.

 

비경쟁적 합의 알고리즘의 장점은

1) 유효한 블럭체인이 두개 이상이 동시에 존재하는 포크가 생길 가능성이 거의 없습니다. (이것은 굉장한 이점입니다. 포크가 발생하면, 어느 블럭체인을 선택할지에 대한 투표 등을 해야 하는 경우가 발생합니다.)

2) 일정시간마다 컨펌이 이루어집니다.

 이에 반해서 경쟁적 합의 알고리즘은 평균적인 일정시간마다 컨펌이 이루어지도록 난이도를 조정하죠..

3) 경쟁을 하지 않으므로 컴퓨팅 능력을 많이 사용하지 않습니다. 정해진 규칙에 따라서 베팅이 이루어집니다.

4) 컨펌시간을 거의 네트워크의 지연시간(약 2초)로 줄일 수 있습니다. 가위바위보 게임만 하므로, 경쟁을 하는 시간이 필요가 없죠..

5) pow의 경우, 네트워크가 1TH라고 하면 1Tera번의 블럭을 생성해서 그 중 마지막 하나의 블럭이 유효한 블럭이 되는 것입니다.

(엄청난 비능률이죠.., 즉 1Tera번 블럭을 계산하고 그 중에서 마지막 하나를 선택하고 이전의 모든 계산은 버리는 것입니다.)

 

하지만, 이런 비경쟁적 합의 알고리즘도 '비용'문제를 생각하지 않으면, 해킹에 매우 취약합니다.

 

따라서 비경쟁적 합의 알고리즘도 pos를 기반으로 만들게 됩니다. 

해커가 '비용'을 지불하도록 하지 않으면, 다수계정에 의한 시빌 공격에 아주 취약합니다.

 

--

경쟁적 합의 알고리즘은 각자 알아서 경쟁을 하는 것입니다.

구체적으로 말하면, 제일 처음 유효한 블럭을 만든 노드가 그 블럭을 네트워크에 전파를 하면, 다른 노드들이 자체적으로 검증을 해서 맞으면 이 노드들은 다음 블럭을 찾게 됩니다.

즉 블럭을 전파받은 노드는 만약 그 블럭이 유효하다면, 다음에 다른 블럭에 도착해도 이를 무시합니다.

이 때문에 블럭체인이 두개 이상이 유효한 포크가 생길 수가 있습니다.

네트워크에 특정 문제가 있을 때 vote(투표)를 한다고 사토시의 논문에 나옵니다.

원칙은 1cpu, 1vote라고 나오죠..

 

(급하게 쓴 글이라서,, 좀.. 산만합니다. 그리고 저는 이쪽에 전문가가 아니기 때문에 다소 틀린 내용이 있을 수 있습니다.)

 

 

10

loum님의 서명

 

 
 
 
댓글 2
  • 아주쉽게 설명을 해주셨네요.
    (여기서 해시계산능력을 다른것으로 바꾸어도 되겠지요?...최저비용을 계산해내는 문제로 말입니다.)

    여기서 랜덤성은 정답을 풀어낸 노드들중에서 랜덤하게 선택한다는 것이죠?
  • ?
    @신피질

    '해시계산능력'는 블럭을 만드는 초당 계산능력을 말합니다.

    에로 해시계산 능력이 1MH/s이라면 1초에 10^6번의 블럭을 생성할 수 있는 계산능력을 가진 것을 말합니다.

    이체 가능 컨펌이라고 있죠..
    비트코인은 6컨펌이 지나면 블럭체인을 바꿀 수가 없습니다.

    따라서, 해커가 6번 연속으로 블럭을 만들면 해킹에 성공한 것입니다.
    이를 방지하기 위해서 블럭을 누가 만드는지 모르게, 즉 다음 블럭을 만들 노드를 완전 랜던하게 선택하는 것이 네트워크 보안에 필요합니다.
    이 때문에 다음 블럭을 만드는 노드가 최대한 랜덤하게 선택되도록 해야 합니다.

default debug random = 0 / type = READ / detected = READ

List of Articles
번호 제목 추천 수 조회 수 글쓴이 날짜
5496 멜론포트 멜론 토큰 Contribution 정보 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 8 3 3279
호오라
2017.01.29
5495 파스칼 나노풀 마이너 입력 커맨드가 이게 맞는지요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 6 0 915
골방커피
2017.01.28
5494 파스칼 지갑지 제대로 구동되고 있는 건지 알 수가 없네요.     3시간째...저희 마이너들은 블럭을 찾아 헤매이고 있네요. ㅠ.ㅠ   그런데 밑에 짱가님의 지갑 이미지를 보니 저와는 다르게 어카운트 부분에 몇몇개의 계정이 생성되어 있는 것이 보이더라구요.   저는...없는... 2 file 0 819
마키
2017.01.28
5493 수수료 괜찮은 거래소 추천해주세요 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 1 0 1338
8888
2017.01.28
5492 파스칼코인지갑이 계속멈추네요 도와주십시요 윈도우를 밀었는데도 똑같은증상이일어나네요 여기서아에진행을안하네요 부탁드립니다 고수분들 34.56에서멈추네요 자꾸 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가... 7 file 0 1008
comlike
2017.01.27
5491 파스칼이 무섭게 계속 오르는 이유가 있을까요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 1718
초콜릿
2017.01.27
5490 파스칼 지갑 동기화 방법아시는분 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 57 0 1689
블루베리따로감
2017.01.26
5489 혹시 훈코인 지갑주소 여쭤봅니다~ *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 1217
즐거운마이닝
2017.01.26
5488 파스칼 코인 지갑과 채굴 오늘 폴로닉스에 파스칼코인(pascalcoin)이란 코인이 상장되었는데, 거래량이 엄청나네요. 과거체인 데이타를 사용하지 않고, 밸런스 확인과 중복지출방지를 이루어냈다고 자랑하고 있습니다. 자세한 내용은 저도 아... 19 4 3688
atomrigs
2017.01.26
5487 코인원에서 개인계정 저도 해킹 피해를 당했습니다 약 900만원 상당 털렸네요 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 12 file 2 9027
아이즈F
2017.01.25
5486 비트 코인 난이도가 올라 갔나요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 1086
발컨즈
2017.01.24
5485 해킹피해 대책과 관련한 제안 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 17 1 1201
코파시
2017.01.22
5484 4달 넘게 리펀드를 못받고 있는 ico 토근 어떻하면 좋을까요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 4 0 1287
귀염둥이후짱
2017.01.22
5483 제 지메일 해킹이 해킹되었네요. (해킹 증거를 추가했음) *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 36 file 2 16418
loum
2017.01.21
5482 이재용 구속영장 기각 기념 코인   구속영장 기각 기념으로 삼성코인이 곧 나오지 않을까? 다음 부터 기부(라 쓰고 뇌물이라 읽는)는 삼성코인으로....         5 file 6 2051
atomrigs
2017.01.20
5481 폴로닉스 계정동결되서 Support Center 로그인 하려는데 안되네요 아시는분 도와주세요 ㅠ.ㅠ 패스워드 분실로 이메일이 왔는데 계정을 Frozen 시켜버렸네요. Support Center에서 티켓을 보내야 한다는데  로그인 해야만 테켓발행이 되는거 같습니다. 그런데 폴로닉스는 정상적으로 로그인 되는데 Support Cente... 3 0 2561
유레카
2017.01.19
5480 국내에 국제 거래소 사이트를 만들면?? 안녕하세요~~   현재 해외 사이트에는 국제 거래소가 있잖아요?  ( 여러가지 코인을 거래 할 수 있는곳 )   우리나라에는 비트코인이나 이더리움 거래만 되는것으로 압니다.   그렇다면 우리나라에서 국제 거래소를 ... 6 0 3211
까페고래
2017.01.19
5479 mymonero 지금 전송 잘되나요? 폴로닉스로 보내려는데 자꾸 balance가 없다고 나오네요.. 혹시 저만 안되는건가요? 0 632
Victor36
2017.01.19
5478 BITCOIN CORE 지갑 관련 문의입니다... CORE잘아시는분 말씀좀 부탁드립니다. 코어 네트워크 옵션에서   tor 서비스를 이용하여 피어에게 연결하기 위해 분리된 SOCKS5 프록시 사용   체크하면 tor로 체크되는데요 이러면 다른 프로그램 필요없이  tor방식으로 통신하여 ip가 공개되지 않습니까? 1 701
라이트러브
2017.01.17
5477 ADA 가상화폐 수고하심니다..코인초보임니다...ADA 를  어디서  구입하나요??? 괜찬다고 소문이  나서요... 14 0 6356
그저그래
2017.01.17
목록
Board Pagination Prev 1 ... 854 855 856 857 858 859 860 861 862 863 ... 1133 Next
/ 1133
default debug random = 0 / type = READ / detected = READ