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
번호 제목 추천 수 조회 수 글쓴이 날짜
5542 이더리움 네임서비스 (ENS) - 3월 14일 메인넷 론칭 이더리움 지갑주소나 컨트랙트 주소를 서로 보내거나 기억하기가 매우 힘들죠? 인터넷에서 ip 주소 대신 google.com 같은 기억하기 쉬운 이름으로 바꾸어서 사용하듯이 이더리움에서도 헥스주소를 임의의 이름으로 바... 7 file 11 5381
atomrigs
2017.02.18
5541 이더리움 챠트 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.   ------------------------------------------------------------... 12 file 7 4691
나빌래라
2017.02.18
5540 비탈릭의 cryptoeconomics 소개 비탈릭이 파리에서 진행중인 이더리움 유럽 개발자모임 (EDCON) 에서 발제한 cryptoeconomics 자료입니다.   http://vitalik.ca/files/intro_cryptoeconomics.pdf   비트코인의 PoW 와 이더리움의 PoS 에 대한 재미있... file 8 2657
atomrigs
2017.02.18
5539 Nexium 베타 게임 론칭 임박 이더리움을 사용해 RTS 게임안에서 사용할 수 있는 인게임 토큰인 넥시움을 발행한 프로젝트가 있습니다. 댓글에서 제가 몇번 언급을 했었는데, 다음주에 베타게임이 나오는다는 소식에 가격이 다시 움직이고 있네요.... 6 1 2121
atomrigs
2017.02.17
5538 코인원 홈피 다운 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 3 0 1076
cacao
2017.02.15
5537 비트코인을 적금 형식으로 맡겨두고 싶습니다 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 1561
Oyster
2017.02.14
5536 비트코인 대량구매 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 8 0 1829
vanvanee
2017.02.14
5535 제트코인 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 0 1200
오리궁뎅이
2017.02.14
5534 경제학적으로 비트코인을 계속 찍어내도 괜찮은가요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 3 0 1074
Vaultboy
2017.02.14
5533 혹시 비트코인 최초의 거래소가 어디인지 아시는 분 계신가요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 801
발컨즈
2017.02.14
5532 엔터프라이즈 이더리움 블럭체인 그룹 이더리움 블럭체인을 사용한 기업용 어플리케이션 개발에 관심을 가진 업체들에 대한 보도들이 이전에도 많이 있었지만, 이번에 보다 본격적인 그룹이 출범했습니다. 주요 참여 회사이름들은 다음과 같습니다.   JP M... 4 13 2645
atomrigs
2017.02.14
5531 지갑관련 궁금한 사항 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.***     땡글 회원인데 궁금한게 너무 많은 코인 초심자 입니다. 몇... 5 0 709
좋은하루님
2017.02.14
5530 코인원 접속 저만 안되나요 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 1 0 703
방울이
2017.02.13
5529 폴로닉스 마진거래 잘 아시는 분 계신가요? *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 4262
카네모치
2017.02.13
5528 이더 패러티 출금 질문... *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 file 0 592
skanEorl
2017.02.13
5527 폴로닉스 레벨2단계인데요 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 4 0 2399
호이짝
2017.02.12
5526 diem 코인 폴로에서 없어졌는데 *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 2 0 622
sunnydua
2017.02.12
5525 Blockchain 지갑 id alias 질문입니다. *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 0 452
mangsoogi
2017.02.11
5524 바이트볼 다들 들어오셨는지요? 저는 아직까지 안들어왔네요;; 20 0 2092
경제적자유
2017.02.11
5523 ok코인 선물관련. *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** -----------------------------------------------------------... 0 763
트럼프
2017.02.11
목록
Board Pagination Prev 1 ... 852 853 854 855 856 857 858 859 860 861 ... 1134 Next
/ 1134
default debug random = 0 / type = READ / detected = READ