5.1 소개
(1) 에테르방이 출블록 시간을 10 여 초로 줄이면 시스템의 througput 을 높이고 시스템 응답 시간을 줄이는 데 도움이 된다. 비트코인의 10 분 출퇴근 시간에 비해 에테르의 출속 속도가 40 배 빨라진 셈이다. 그러나 이렇게 블록 시간을 대폭 줄인 후에도 새로운 문제가 제기되었다.
(2) 앞서 살펴본 바와 같이 비트코인과 에테르는 모두 애플리케이션 계층에서 실행되는 합의협정으로, 맨 아래는 peer to peer 의 over network 입니다. Over network 자체 전송 프로토콜은 토폴로지 프로토콜이 flooding 을 할 때 실제 토폴로지를 고려하지 않기 때문에 비교적 길다.
(3) 한 블록을 게시한 후 네트워크에서 다른 노드에 업로드하는 데 10 여 초가 걸릴 수 있습니다. 비트코인의 경우 10 분의 출블록 시간이 600 초와 같다면 새로 발표된 청크가 네트워크의 다른 노드로 전파될 수 있을 만큼 충분하다. (윌리엄 셰익스피어, 비트코인, 비트코인, 비트코인, 비트코인, 비트코인, 비트코인)
(4) 그럼에도 불구하고 광산을 파는 것은 확률의 과정이기 때문에 두 광부가 동시에 부기장권을 획득하고 동시에 블록을 발표할 가능성이 있다. 앞서 이 상황을 소개한 적이 있는데, 이것은 일시적인 분기점을 가져올 것이다. 그러면 에테르의 경우, 이런 일시적인 분기점이 정상화되며, 분기점의 수도 더 많아질 것이다. (윌리엄 셰익스피어, 햄릿, 이별명언) 10 여 초의 출몰 시간 때문에, 다른 노드가 실제로 네가 발표한 블록들을 미처 받지 못하고, 여전히 원래의 블록사슬을 따라 아래로 파고 있다. 그가 네가 발표한 블록들을 받았을 때, 아마 그 자신이 이미 새로운 블록들을 파냈을 것이다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 성공명언) 그렇다면 합의 합의에 어떤 도전이 있을까요?
(5) 비트코인의 경우, 가장 긴 합법적인 사슬에 포함된 블록에 포함된 보상만 정말 유용하다. 다른 분기점의 사슬에 대한 보상은 결국 무효가 된다. 다음은 예를 하나 그려 보겠습니다.
위 그림의 블록체인은 세 번째 블록에 분기점이 생겨 세 갈래로 나뉘는데, 이 세 개는 거의 동시에 회계권을 얻었고, 마지막으로 한 개는 승리하여 가장 긴 합법사슬이 될 것이다. (윌리엄 셰익스피어, 햄릿, 희망명언) (윌리엄 셰익스피어, 윈스턴, 희망명언) 중간에 이긴다면 위와 아래 블록처럼 orphan block 또는 stale block 이라고 합니다. 이 블록을 파낸 광부들은 이 블록 안에 주화 거래 coinbase transaction 이 있어 일정한 수의 비트코인을 얻을 수 있지만, 실제로는 쓸모가 없다. 그가 가장 긴 합법적인 사슬에 있지 않기 때문에 여기서 받은 보상은 무효가 되는 것이다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) 비트코인의 경우 이런 일시적인 분기점이 발생하는 경우가 많지 않기 때문에 이 규정은 여전히 받아들일 수 있다. 하지만 에테르의 경우, 이렇게 처리한다면 광부들이 파낸 블록이 백파일 가능성이 높다는 뜻입니다.
시스템에 분기점이 많기 때문에 당신이 파낸 이 블록이 결국 가장 긴 합법적인 사슬이 되지 않았기 때문에 헛수고가 될 가능성이 높습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 남녀명언) 이것은 광산을 파낸 광부들에게는 그다지 공평하지 않다. 특히 이런 개인 광부들에게는 더욱 심각하다. 앞서 말씀드린 바와 같이, 광산을 파는 것은 두 가지 추세를 보이고 있습니다. 하나는 광산 설비의 전문화입니다. 현재 우리의 일반 데스크탑으로 광산을 파는 사람은 거의 없습니다. 서버는 거의 없습니다. 일반적으로 ASIC 칩이나 에테르방처럼 전용 설비를 사용합니다. GPU 로 광산을 파다. 두 번째 추세는 대형 광산지의 출현이다. 개별 광부의 계산력이 제한되어 있고, 많은 것들이 대형 광산을 구성하고, 자본의 운영 하에 많은 계산력이 실제로 대형 광산에 집중되어 있다는 것이다. 앞서 우리가 알고 있던 비트코인뿐만 아니라, 아래에 우리가 말한 에테르방도, mining pool 이라고 한다. (윌리엄 셰익스피어, 비트코인, 비트코인, 비트코인, 비트코인, 비트코인)
이것은 개인 광부, 특히 불공평합니다. 정상적인 상황에서, 우리가 희망하는 것은, 당신의 광산이 얻을 수 있는 수익은 당신의 계산력 비율과 일치해야 한다는 것입니다. 예를 들어, 광산지의 계산력은 전체 시스템 계산력의 30% 를 차지한다. 만약 당신이 큰 광산장이라면, 당신이 얻은 광산 수익도 전체 시스템의 30% 가 되어야 공평하다고 할 수 있다. (윌리엄 셰익스피어, 햄릿, 광산명언)
(6) 하지만 우리의 합의협정이 잘 설계되지 않았다면, 큰 광산이 그 계산력을 초과하는 수익을 얻을 수 있을 것이다. 예를 들어, 우리가 처음 분기점이 생겼을 때, 상하 두 블록이 개인 광부들이 파낸 것이고, 중간 블록은 어느 대형 광산 못에서 파낸 것이라고 가정하면, 아래는 어떻게 변하는가? (윌리엄 셰익스피어, 햄릿, 희망명언) 큰 광산지는 분명 그 자신의 갈래를 따라 아래로 파고 있을 것이다. 왜냐하면 그의 계산력이 강하기 때문에, 다음 블록을 파낼 확률은 비교적 크다. 상하 이 두 갈래는 개인 광부의 것이다. 그들은 주로 다른 광부들이 그들 두 갈래를 따라 아래로 파낼 것을 희망한다. 왜냐하면 그 자신의 계산력은 하찮기 때문이다. 그는 개인 광부로, 그 자신만으로 이 사슬을 따라 아래로 파는 것은 다른 사람보다 못하다. 하지만 다른 광부들에게는, 그는 사실 이 두 개인 광부의 갈림길을 파는 경향이 없다. (윌리엄 셰익스피어, 템페스트, 광부, 광부, 광부, 광부, 광부) 즉, 개별 광부가 전체라면 분기점이 발생한 후 산산이 흩어진다. 이것은 결과를 초래할 것이다. 이 광산이 블록을 파낼 확률은 30% 이지만, 그가 블록을 파낸 후 가장 긴 합법적인 체인이 될 확률이 높다고 가정해 봅시다.이로 인해 mining centralization 이 발생합니다.
(7) 실제 상황은 이것보다 더 나쁠 수 있다. 일반적으로 대형 광산이 이 블록체인 네트워크에서 차지하는 위치가 비교적 좋다. 어떤 것은 네트워크 내 여러 곳에 인터페이스가 있을 수 있기 때문에 대형 광산이 발표한 블록은 다른 노드에 의해 더 일찍 수신될 수 있다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) 따라서 이 세 개의 블록이 동시에 파내져도 중간에 있는 대형 광석이 발표한 블록은 다른 노드가 가장 먼저 받은 블록일 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) 그리고 과거의 역사적 경험으로 볼 때, 대형 광산이 있는 갈래가 가장 긴 합법 사슬이 될 가능성이 더 높으며, 이로 인해 다른 광부들이 그 갈래를 따라 계속 파낼 수 있게 된다. 왜냐하면 네가 다른 갈래를 따라 파면 헛되이 파낼 가능성이 높기 때문이다. 이로 인해 대형 광산에 악순환이 생기고 대형 광산이 얻는 수익도 커질수록 mining centralization 도 더욱 심각해진다. 때때로 우리는 그것을 centralization bias 라고 부르는데, 이는 중심화가 가져오는 불균형적인 장점이다.
(8) 만약 우리가 아무것도 바꾸지 않는다면, 에테르가 비트코인 공감대를 고수하면 문제가 생길 수 있다. 이러한 문제를 해결하기 위해 에테르에는 고스트 프로토콜을 기반으로 한 공감대 메커니즘이 채택되었습니다. 고스트 프로토콜은 에테르가 발명한 것이 아니라, 에테르방 이전에도 고스트 계약이 있었다. 에테르는 이 협정에 대해 약간의 수정을 했다. 이 협정의 핵심 사상은 광산을 파고 한 블록을 발표했는데, 결국 이 블록이 폐지되면 너는 매우 괴로워한다. 내 텔레그램의 공식 홈페이지의 다운로드 주소가 얼마인지, 몇 장의 출지 항공기 홈페이지의 다운로드가 얼마나 많은 보상인지 위로로 삼을 수 있다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 스포츠명언) 예를 들어, 위의 사슬은 가장 긴 합법적인 사슬이 되지 않고 orphan block 이나 stale block 으로 바뀌었고, Etherfang 은 그에게 uncle block 이라는 이름을 붙였습니다. 비행기 홈페이지의 다운로드 홈페이지는 어떻게 찾습니까? (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언) 이 블록은 가장 긴 합법적인 체인의 현재 블록에 비해 숙부 블록이며, 그와 그의 아버지는 항렬이다. (알버트 아인슈타인, 가족명언) 고스트 프로토콜의 초기 버전은 다음과 같습니다.
5.2 고스트 프로토콜 최초 버전
(1) 예를 들어, 이더넷 스퀘어 시스템이 다음과 같은 경우, A, B, C, D 가 네 가지 분기에 있고, 마지막으로, B 가 있는 체인은 시간이 지남에 따라 가장 긴 합법적 체인이 되므로 A, C, D 블록은 모두 폐기되지만, 이 블록들이 속한 광부들의 작업을 보완하기 위해 이들 블록에 약간의 ";
(2) E 블록이 발표될 때 A, C, D 숙부 블록을 포함할 수 있도록 규정하고, A, C, D 숙부 블록은 블록 보상의 7/8 을 받을 수 있으며, E 가 숙부 블록을 포함하도록 장려하기 위해 E 는 숙부 블록 1 개당 1/32 의 보상을 추가로 받을 수 있도록 규정하고 있다. E 가 숙부 블록을 대량으로 포함하는 것을 막기 위해 한 블록에 최대 두 개의 숙부 블록만 포함할 수 있도록 규정하고 있으므로 E 는 A, C, D 에 최대 두 개의 블록만 포함할 수 있습니다.
(3) 한 광부가 B 를 파냈다고 가정하면, 그는 자신이 있는 사슬을 따라 계속 파는데, 그는 A 가 자신의’ 동배’ 라는 것을 알고, A 를 청크 광산에 포함할 수 있고, 광산을 캐는 과정에서 C 도’ 동배’ 라고 들으면 광산을 캐는 것을 멈추고, C 를 포함시키고, 새로운 블록으로 재구성하고, 실제로
(4) 최초 버전 결함:
1. 숙부 블록이 최대 2 개까지만 포함될 수 있기 때문에 그림 3 개가 나오면 어떡하죠? 2. 광부들은 이기적이고 일부러 숙부 블록을 포함하지 않아 숙부 블록의 7/8 이 보상을 잃었지만, 자신은 단지 1/32 만 잃었다. 갑, 을 두 개의 대형 광산에 경쟁관계가 있다면 고의로 상대방을 포함하지 않는 숙부 블록을 채택할 수 있다. 이는 자신에 대한 손실이 적기 때문에 상대방에게 큰 손실을 입힐 수 있기 때문이다.
5.3 고스트 프로토콜 새 버전
(1) 아래 그림은 위의 예를 보완하는 것이고, F 는 E 뒤의 새로운 블록입니다. 규정 E 에는 최대 두 개의 숙부 블록만 포함될 수 있으므로 E 에는 C 와 D 가 포함되어 있다고 가정합니다. 이때 F 는 A 를 자신의 숙부 블록으로 생각할 수도 있다. (실제로는 숙부 세대가 아니라 할아버지 세대의 것이다.) 계속 아래로 파면 F 뒤의 새 블록에는 여전히 B 동배의 블록이 포함될 수 있습니다 (E, F 가 다 포함되지 않았다고 가정). 이렇게 하면 위에서 언급한 원래 고스트 프로토콜 버전의 결함이 효과적으로 해결됩니다. 하지만 여전히 문제가 있습니다.
(2) 우리는’ 숙부’ 라는 개념을 확장했지만, 문제는’ 숙부’ 라는 정의가 몇 세대에 걸쳐서야 좋을까?
다음 그림에 표시된 대로 M 은 블록 체인의 마지막 블록이고, F 는 엄격한 의미에서 숙부이며, E 는 엄격한 의미에서 "할아버지 세대" 입니다. 에테르에서는 M 이 F 세대 블록을 포함하면 F 가 7/8 의 보상을 받는다고 규정하고 있습니다. M 에 E 세대 블록이 포함되어 있으면 F 는 6/8 의 보상을 받는 등 앞으로 나아갑니다. A 세대 블록이 포함될 때까지 A 는 2/8 의 보상을 받았고, 앞으로 나아가는’ 숙부 블록’ 은 M 에게 더 이상 M 의’ 숙부’ 로 인정받지 않는다. M 에게 어느 항렬의’ 숙부’ 를 포함하든, 받은 보상은 모두 1/32 의 보상이다. 즉, 숙부 블록의 정의는 현재 블록과 7 세대 내에 공통 조상이 있어야 한다는 것이다 (합법적인 숙부는 6 대밖에 없다).
(3) 이렇게 하면 전체 노드 기록을 쉽게 할 수 있고, 협정에서 분기점이 생기면 바로 합병하도록 권장한다. 블록 체인의 현재 상태에 대해 일시적인 의견 차이가 발생했기 때문에, 우리는 그것을 합병할 방법을 강구했다. 만약 다른 이유라면, 우리가 앞서 말한 비트코인 스크립트, CHECKMULTISIG (이 작업은 다중 서명의 합법성을 검사하는 것), 이 작업의 실현에는 버그가 있는데, 이 작업은 검사할 때 스택에서 한 개 더 튀어나오기 때문에, 실제로 정상적으로 작동하면 검사에 실패하면, 먼저 안에 여분의 요소를 눌러야 한다. 왜 이 버그를 고칠 수 없을까요? 왜냐하면 당신이 고쳐서 버전이 달라져서 딱딱한 갈래가 생기기 때문입니다 (여기는 중심화된 시스템과는 다름). 두 체인은 현재 상태에 대한 의견 차이가 아니라 상대방이 불법이라고 생각하는 경우 (상대방의 블록에 불법 거래가 포함되어 있다고 생각하는 경우) 이런 방법으로 병합할 수 없다.
(4) 에테르의 보상은 다음과 같습니다
BTC: 정적 포상 (출블록 포상)+동적 포상 (거래비, 차지하는 비율이 매우 적음) ETH: 정적 포상 (출블록 포상+숙부 블록을 포함한 포상)+동적 포상 (휘발유비, 차지하는 비율이 적고 숙부 블록 없음) BTC 에서 인위적인 희소성 에테르에는 일정한 간격으로 보상을 낮추는 인위적인 규정이 없다.
(5) 에테르에는 숙부 블록이 포함되어 있는데 숙부 블록의 거래를 포함하시겠습니까?
답: 아닙니다. 숙부 블록과 동배의 주쇄에 충돌하는 거래가 있을 수 있습니다. 그리고 앞서 말씀드린 바와 같이, 숙부 블록은 역동적인 보상이 없습니다. 따라서 한 노드는 숙부 블록을 받을 때 블록의 합법성 (합법적인 발행 여부, 광산 발굴의 난이도에 부합하는지 여부) 만 확인하고 그 중 거래의 합법성은 검사하지 않는다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) 내 거래 중 하나가 숙부 블록에 포함되어 있다고 가정해 봅시다. 즉, 내 거래가 집행되지 않았다는 뜻입니다. 이 문제에서 광부들은 손해를 보지 않고 거래비를 받았지만, 나의 거래는 집행되지 않았다. 주 체인 노드는 거래를 받은 후에도 계속 실행됩니다. 한 블록만 더 기다려야 할 수도 있지만, 결국 flooding 이 모든 노드에 도달할 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언)
(6) 앞 체인에 몇 개의 숙부 블록이 있는지 어떻게 감지합니까?
게시된 각 블록마다 상위 블록이 어떤 블록인지 설명해야 하므로 상위 블록과 현재 블록에 공통 조상이 있는지 확인할 수 있습니다.
(7) 그럼 갈라진 사촌 블록에 대해 어떻게 하죠?
예를 들어 다음 그림과 같이 A->F 체인은 가장 긴 법적 체인 중 하나가 아니므로 B->F 블록들은 어떻게 합니까? 광산 발굴에 대한 보상을 해야 합니까?
아래 체인 전체를 전체로 삼아 보상을 해준다면, 이는 분기점 공격을 어느 정도 장려한다. (분기점 공격 비용을 낮추면, 공격이 실패하더라도 보상을 받을 수 있기 때문이다.) (알버트 아인슈타인, 도전명언) 따라서 ETH 시스템은 A 블록만 숙부 블록으로 인정하고 보상을 해주고, 이후 블록은 모두 폐기한다고 규정하고 있다.
(8) 우리가 이 협정을 설계한 주된 목적은 비트코인이나 에테르방도, 왜 가장 긴 합법사슬을 규정하는지, 변조를 막기 위해 거래가 쉽게 변조되지 않도록 하기 위한 것이다. 사실 임시 분기점을 해결하기 위해서다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) 가장 긴 합법적인 체인은 임시 분기가 발생한 후 실행 합병을 수행하는 메커니즘을 제공합니다.
(9) 에테르의 실제 데이터를 함께 살펴 보겠습니다
최신 데이터를 보려면 https://cn.etherscan.com/ 웹 사이트에서 확인할 수 있습니다.
오른쪽 곡선은 지난 2 주간의 거래 내역을 보여 주고, 왼쪽 아래에는 최근 발굴된 블록이 표시되고, 오른쪽 아래에는 최근 거래가 표시됩니다
위 그림은 숙부 블록의 몇 가지 경우를 보여 줍니다. 여기서 각 행은 숙부 블록에 해당하며, 첫 번째 행의 block height 는 블록의 일련 번호입니다. 즉, block number 가 첫 번째 줄 (첫 번째 빨간색 상자) 과 같은 숙부 블록의 일련 번호는 이 블록 자체보다 두 개 작습니다. 이 설명은 거리가 2 인 숙부 블록이며 6/8 의 상을 받아야 합니다. 다음 두 줄은 모두 이런 상황의 숙부 블록에 속한다. 다음 줄 (두 번째 빨간 상자) 을 더 내려가면 숙부 블록의 일련 번호가 그것보다 한 개밖에 안 되는데, 이는 당대 숙부이며, 7/8 * 3 = 2.625 개의 태화 등 7/8 의 상을 받아야 한다는 뜻입니다. 시스템의 대부분의 분기점이 빠르게 합병되었다는 것을 설명한다. 맨 아래 줄의 숙부 블록의 일련 번호가 이 블록보다 3 개 더 작다면 5/8 의 상을 받아야 한다. 아래 표에 나와 있는 여러 세대의 숙부가 받은 uncle reward 의 수.
다음 두 블록의 예를 살펴 보겠습니다. 왼쪽에이 블록에는 삼촌 블록이 포함되어 있습니다. 끝에서 두 번째 줄의 uncle reward 가 2.25 임을 알 수 있습니다. 이것은 2 의 삼촌이라고 판단 할 수 있습니다. 이 블록에 대한 보상은 그 자신이 받은 reward (꼴찌의 세 번째 줄) 로, 세 가지 내용으로 구성되어 있으며, 보너스+휘발유비+숙부 블록에 대한 보상을 포함한다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 스포츠명언)
오른쪽 블록을 살펴 보겠습니다. 두 개의 삼촌 블록이 포함되어 있습니다. 하나는 거리가 1 인 현대 숙부, 다른 하나는 거리가 2 인 이전 숙부입니다. 그래서 여기서 끝에서 두 번째인 uncle reward 는 2.25+2.625=4.875 이고, 이 블록의 reward 도 세 부분으로 되어 있습니다. 첫 번째 행의 하이트를 통해 확인할 수 있습니다. 예를 들어, 왼쪽의 이 블록은 하이트가 5695161 이고, 첫 번째 빨간색 상자는 이 줄에 해당합니다. 오른쪽 블록은 비슷합니다.
6.1 광산 개론
(1) 작업 로드 증명에 기반한 블록 체인 시스템의 경우 광산을 파는 것은 블록 체인의 안전을 보장하는 중요한 수단이다. 그래서 block is secured by mining 이라는 말이 있습니다. 비트코인에 사용되는 광산 발굴 알고리즘은 전반적으로 비교적 성공적이다. 시간의 검증을 거쳐 지금까지 아무도 안에 큰 허점이 있다는 것을 발견하지 못했다.
(2)bug bounty (회사 현상금이 소프트웨어 허점을 찾아 찾으면 상금을 받을 수 있음), 비트코인의 광산 발굴 알고리즘은 천연 bug bounty 다. 내부의 허점이나 광산을 파는 지름길을 찾을 수 있다면 큰 이익을 얻을 수 있다. 하지만 지금까지 갈 수 있는 지름길이 있다는 것을 아무도 발견하지 못했기 때문에 비트코인의 광산 발굴 알고리즘은 전반적으로 비교적 성공적이며 시간 테스트를 거쳤다. 하지만 비트코인의 광산 발굴 알고리즘에도 개선할 만한 점이 있다. 논란이 되는 문제 중 하나는 광산 설비의 전문화로 일반 컴퓨터로 광산을 파낼 수 없고, 전용 설비, 전용 ASIC 칩으로만 광산을 파낼 수 있다는 점이다. 많은 사람들은 이런 관행이 중심화의 이념에 어긋난다고 생각한다. 중본총 최초의 비트코인 논문에서 one CPU one vote 라는 말이 나왔다. 이상적으로는 일반인들도 광산을 파는 과정에 참여할 수 있도록 자신의 데스크톱, 노트북, 심지어 휴대전화로 광산을 파는 것이 더 안전하다. 산산이 흩어지면악의적인 공격자가 51% 의 산력에 모여 공격을 개시하려고 하면 훨씬 더 어려워질 것이다.
(3) 그래서 비트코인 이후 나타나는 많은 암호화 화폐는 에테르의 디자인 mining puzzle 을 포함해 ASIC resistance 를 목표로 하고 있다. 그렇다면 어떻게 ASIC 칩의 불친절한 mining puzzle 을 설계할 수 있을까요? 한 가지 일반적인 방법은 메모리 액세스, 즉 Memory Hard Mining puzzle 에 대한 이 Puzzle 의 수요를 늘리는 것입니다. 이는 ASIC 칩이 일반 컴퓨터에 비해 가장 큰 장점은 계산력이 강하지만 메모리 액세스 성능에는 그다지 큰 장점이 없기 때문입니다. ASIC 광산기의 컴퓨팅 능력은 일반 컴퓨터의 수천 배에 달할 수 있다. 그 안에는 많은 코어가 있어 많은 병렬 계산을 할 수 있지만 메모리 액세스에서는 성능 차이가 그리 크지 않기 때문이다. 따라서 메모리 요구 사항이 높은 puzzle 을 설계할 수 있다면 ASIC 칩을 억제하는 역할을 할 수 있습니다. 그럼 어떻게 디자인해야 할까요?
6.2 라이트 마이닝 알고리즘
(1) 이와 관련하여 LiteCoin 의 초기 예가 있습니다. 라이트화폐는 한때 비트코인에 버금가는 두 번째로 큰 화폐가 되었다. 라이트화폐의 퍼즈클은 스크립트를 기반으로 합니다. Scrypt 는 메모리 성능에 대한 요구가 높은 해시 함수로, 이전에는 컴퓨터 보안 암호화 분야에서 많이 사용되었습니다.
(2) 레스터 동전 발굴 알고리즘의 기본 아이디어:
1. 큰 배열을 설정하고 일부 의사 난수를 순서대로 채웁니다. 해시 함수의 출력을 미리 예측할 수 없기 때문에 무작위 데이터처럼 보이기 때문에 이를 "의사 난수" 라고 합니다. 사실, 우리는 실제로 난수를 사용할 수 없습니다. 정말로 난수를 사용하면 확인할 수 없습니다.
Seed 는 시드 노드로서 Seed 를 통해 일부 연산을 수행하여 배열의 첫 번째 위치에 배치한 다음 각 숫자는 이전 위치의 값을 통해 해시를 취합니다. 이러한 배열의 값에 대한 전후 종속성이 있음을 알 수 있습니다.
2. Puzzle 을 해결해야 할 경우 의사 랜덤 순서에 따라 배열에서 숫자를 읽습니다. 각 읽기 위치는 이전 숫자와 관련이 있습니다. 예: 처음 A 위치에서 데이터를 읽은 다음 A 의 숫자 값에 대해 몇 가지 연산을 수행하여 다음 읽기 위치 B 를 얻습니다. 두 번째로 B 위치에서 해당 데이터를 읽고 B 의 데이터 계산에 따라 다음 읽기 위치 C 를 얻습니다.
(3) 분석:
배열이 충분히 크면 광산 광부의 경우 질의를 위해 배열을 저장해야 합니다. 만약 네가 이 배열이 없다면, 너는 첫 번째 숫자에서 A 의 값을 순차적으로 계산해야 한다. 그런 다음 두 번째 위치의 수를 읽어야 합니다. 저장하지 않았습니다. 다시 한 번 계산하고, B 위치의 값을 계산하고, 그 뒤에 있는 C 도 마찬가지입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 위치명언) 이것은 광부들에게 계산 복잡성이 크게 증가했다. 그래서 효율적으로 광산을 캐려면 메모리 영역을 보존해야 한다. 물론 광부들은 데이터의 일부만 저장하도록 선택할 수 있습니다. 예를 들어 홀수 위치 데이터만 저장하고 짝수 위치가 필요할 때 이전 홀수 위치 데이터를 기준으로 계산하면 됩니다. 따라서 메모리 공간 크기를 절반으로 줄일 수 있습니다 (계산 복잡성은 조금 증가하지만 메모리는 절반으로 감소). time memory trade off 라고도 합니다.
핵심 아이디어: 연산만 하고 메모리에 대한 액세스를 증가시켜 ASIC 칩에 불친절한 것을 실현할 수는 없습니다.
(4) 이 디자인에 문제가 있습니까?
꽤 괜찮은 것 같아 ASIC 광산기 광산을 파는 것은 불친절해졌지만, 이 방법은 Puzzle 검증에 그다지 우호적이지 않다. 이 Puzzle 을 검증하려면 배열을 저장해야 하므로 가벼운 노드에서는 친숙하지 않습니다 (시스템의 대부분의 노드는 가벼운 노드임). 앞서 비트코인을 소개했을 때, puzzle 을 설계하는 원칙을 언급했습니다. 즉, puzzle 을 해결하기가 어렵고 검증이 쉽다는 것입니다. 그러나 이 설계를 통해 푸즈블을 확인하는 데 필요한 메모리 영역은 푸즈블을 해결하는 데 필요한 영역과 거의 같습니다. 가벼운 노드가 검증될 때 이 데이터도 저장해야 합니다. 그렇지 않으면 계산의 복잡성도 크게 높아질 것입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 스포츠명언)
(5) 따라서, 라이트화폐의 실제 응용에서는 배열 크기를 너무 크게 설정할 수 없다. 예: 컴퓨터의 경우 1G 는 스트레스가 없고, 휴대폰 앱의 경우 1G 가 차지하는 공간이 너무 크다. 따라서, 실제로, Letter 화폐 시스템이 설계한 배열의 크기는 겨우 128K 에 불과하다. 처음에 레트 화폐가 발행되었을 때, ASIC 에 저항할 수 있을 뿐만 아니라 GPU 에도 저항할 수 있기를 바랐다. 하지만 실제로는 GPU 광산이 서서히 나타났고, 이후 ASIC 칩 광산도 등장했다. 실제 응용에서, 라이트화폐의 디자인은 예상대로 작용하지 않았다. 즉, 128k 는 ASIC Resistance 에 대해 작다.
(6) 레스터 화폐의 이 디자인은 좋은 것인가 나쁜 것인가?
예상대로 작용하지 않는 것은 물론 나쁜 일이지만, 다른 관점에서 볼 때, 초기에 이 디자인 목표를 홍보함으로써 더 민주적이고, 더 많은 사람들을 참여시키는 이념을 선전하고, 광부의 참여를 효과적으로 끌어들이고, 라이트화폐의’ 시동 가능’ 문제를 해결했기 때문에, 현재 라이트화폐는 여전히 비교적 주류의 암호화 통화이다. 또한 비트코인과 비트코인의 또 다른 차이점은 블록 시간, 라이트화폐는 2.5min, 비트코인의 1/4 입니다. 이러한 차이점을 제외하고, 이 두 통화는 기본적으로 같다.
(7) 활성화 문제: 비트코인을 포함한 모든 암호화 통화에 활성화 문제가 있습니다. 처음에는 아무도 이 암호화 통화를 알지 못했습니다. 한 가지 문제가 있습니다. 작업량 증명에 기반한 암호화된 통화에는 광산을 파는 사람이 너무 적고 안전하지 않습니다. 악의적인 공격을 시작하는 것이 너무 어렵기 때문입니다.
6.3 이더넷 스퀘어 마이닝 알고리즘
(1) 에테르의 디자인을 살펴봅시다. 에테르의 이념은 레트 동전과 같습니다. 모두 Memory Hard Mining Puzzle 이지만 구체적인 디자인은 레트 동전과는 다릅니다.
(2) 이더넷 스퀘어 마이닝 알고리즘의 기본 아이디어:
에테르방에서 두 개의 데이터 세트, 하나는 크고 하나는 작다. 작은 것은 16MB 의 캐시, 큰 데이터 세트는 1G 의 Dag (dataset) 입니다. 관계는 1G 의 데이터 세트가 16MB 데이터 세트를 통해 생성된다는 것입니다.
(3) 왜 하나 또는 두 개의 데이터 세트를 설계해야하는지 생각해보십시오.
검증을 용이하게 하기 위해 라이트 노드는 검증을 위해 16MB 캐시를 보관하는 반면 광부들은 광산을 더 빨리 파내기 위해 중복 계산을 줄이려면 1GB 크기의 큰 데이터 세트를 저장해야 합니다.
(4)16MB 의 작은 캐시 데이터 생성 방식은 레트화폐의 배열 생성 방식과 비슷하며 대략 다음과 같습니다.
1. Seed 를 통해 일부 연산을 수행하여 첫 번째 숫자를 얻습니다. 이후 각 숫자는 이전 위치의 값을 통해 해시를 취합니다. 이렇게 하면 전체 배열이 이동 후 이러한 의사 난수를 채워 캐시를 얻을 수 있습니다.
차이점은 다음과 같습니다.
레트 통화: 배열에서 직접 의사 랜덤 순서로 일부 데이터를 읽어 연산합니다.
에테방: 선생은 작은 배열보다 훨씬 큰 배열로 되어 있습니다. (참고: 에테르의 두 배열 크기는 고정되어 있지 않습니다. 컴퓨터 메모리 용량이 계속 증가하는 것을 감안하면 두 배열을 정기적으로 늘려야 하기 때문입니다.)
3. 큰 DAG 생성 방법:
큰 배열의 각 요소는 작은 배열에서 의사 랜덤 순서로 일부 요소를 읽습니다. 이는 레터 통화와 같습니다. A 위치 데이터를 처음 읽는 경우 현재 해시 값 업데이트를 반복하여 다음 읽기 위치 B 를 계산하고 해시 값 업데이트를 반복하여 C 위치 요소를 계산합니다. 이렇게 256 회 반복해서 읽고, 결국 숫자를 DAG 의 첫 번째 요소로 계산하는 등, DAG 의 각 요소가 생성되는 방식이 순차적으로 반복됩니다.
(5) 분석:
라이트 노드는 작은 캐시만 저장하므로 검증 시 계산하면 됩니다. 그러나 광산을 파는 경우 대부분의 계산력이 Cache 를 통해 DAG 를 계산하는 데 사용되므로 더 빨리 광산을 파낼 수 있도록 큰 배열 DAG 를 저장해야 합니다.
(6) 이더넷 스퀘어 준설 공정 (퍼지 공정 해결):
블록 block header 및 블록 내의 Nonce 값을 기준으로 초기 해시를 계산합니다. 이 해시는 위치 A 에 매핑되고, A 위치 수와 인접한 다음 위치 A’ 의 수를 읽고, 그 수를 기준으로 계산됩니다. 다음 위치 B 를 계산하고, B 와 B’ 위치의 수를 읽는 등 마지막으로 해시가 광산 난이도 목표 임계값과 비교되어 난이도 요구 사항을 충족하는지 여부를 계산합니다. 충족되지 않을 경우 Nonce 를 다시 교체하면 해시 값이 난이도 요구 사항을 충족하거나 현재 블록이 파낼 때까지 위 작업을 반복합니다.
(7) 의사 코드에서 이더넷 스퀘어 마이닝 알고리즘 이해
이 함수 mkcache () 를 보십시오. 이 함수는 seed 를 통해 cache 를 계산하는 의사 코드입니다. 의사 코드는 원래 코드에서 캐시 요소의 추가 처리를 생략하고, 캐시의 요소가 순차적으로 생성되고 각 요소가 이전 요소와 관련된 원리만 보여 줍니다. 30,000 블록마다 seed (원래 seed 에 대한 해시 값) 가 재생성되고 새로운 seed 를 사용하여 새로운 캐시가 생성됩니다. 동시에 캐시의 초기 크기는 16M 이며 30,000 개의 블록이 재생성될 때마다 초기 크기의 1/128-128K 를 늘립니다.
이 함수 calc_dataset_item () 을 다시 살펴봅니다. 이 함수는 cache 를 통해 dataset 에서 I 번째 요소를 생성하는 의사 코드입니다. 이 dataset 은 DAG 라고 하며, 초기 크기는 1G 이며, 30,000 블록마다 업데이트되며 초기 크기의 1/128-8m 을 증가시킵니다. 의사 코드는 대부분의 세부 사항을 생략하고 원리를 보여줍니다. 먼저 cache 의 i%cache_size 개 요소에서 초기 mix 를 생성합니다. 서로 다른 두 개의 dataset 요소가 동일한 cache 의 요소에 해당할 수 있기 때문입니다. 각 초기 mix 가 서로 다르도록 I 도 해시 계산에 참여하고 있습니다. 그런 다음 256 회 순환합니다. 매번 get_int_from_item 을 통해 현재 mix 값을 기준으로 액세스할 다음 캐시 요소의 아래 첨자를 구합니다. 이 캐시 요소와 mix 를 사용하여 cache _ Item 을 통해 새 mix 값을 구합니다. 초기 mix 값이 다르기 때문에 캐시에 액세스하는 시퀀스도 다릅니다. 결국 mix 의 해시 값을 반환하여 I 번째 dataset 의 요소를 얻습니다. 이 함수를 여러 번 호출했습니다.완전한 dataset 을 얻을 수 있습니다.
Calc_dataset () 이 함수는 앞에서 설명한 calc_dataset_item 함수를 계속 호출하여 dataset 의 모든 full_size 개 요소를 차례로 생성합니다.
위의 두 함수는 광부들이 광산을 파는 데 사용하는 함수와 가벼운 노드가 검증하는 데 사용하는 함수입니다. 첫 번째 함수를 살펴 보겠습니다. 첫 번째 매개 변수인 header 는 현재 생성 중인 블록의 블록 헤드입니다. Etherfang 과 Bitcoin 과 마찬가지로 광산은 블록 헤드 정보만 사용합니다. 두 번째 매개 변수인 nonce 는 현재 시도된 nonce 값입니다. 세 번째 매개 변수인 full_size 는 큰 데이터 세트의 요소 수입니다. 이 요소의 수는 3 만 블록마다 증가하여 원래 크기의 1/128 을 증가시킵니다.
광산 발굴 과정은 다음과 같습니다. 먼저 header 와 현재 nonce 를 통해 초기 해시 값을 구한 다음 64 라운드의 루프를 거칩니다. 각 루프는 큰 데이터 세트의 인접한 두 개의 숫자를 읽습니다. 읽기 위치는 현재 해시 값에 의해 계산됩니다. 그런 다음 이 위치의 수치에 따라 현재 해시 값을 업데이트합니다. 이 앞에서 큰 데이터 세트를 생성하는 방법은 비슷합니다. 루프 64 회 마지막으로 광산난도의 목표 임계값과 비교하기 위해 해시 값을 반환합니다.
▪ 토의할 점: 이 두 가지 가치가 관련이 있습니까?
A: 상관 없습니다. 이 두 값은 위치에 인접해 있지만 생성 프로세스는 독립적이며 모두 이전 16M 의 cache 에 의해 생성됩니다.
위 그림의 두 번째 함수는 라이트 노드가 검증하는 데 사용하는 함수이자 네 개의 매개변수이지만 의미는 위의 광부에서 사용하는 함수와 다릅니다. 라이트 노드는 광산을 파지 않는다. 광부가 발표한 블록을 받았을 때, 여기서 검증하는 데 사용되는 이 함수의 첫 번째 매개변수인 header 는 이 블록의 머리이고, 두 번째 매개변수인 nonce 는 블록 헤드 안에 포함된 nonce 이며, 블록을 게시하는 광부들이 선택한 것이다. (알버트 아인슈타인, Nonce, Nonce, Nonce, Nonce, Nonce, Nonce) 라이트 노드의 임무는 nonce 가 요구 사항을 충족하는지 확인하는 것입니다. 검증은 16M 의 캐시, 즉 마지막 매개변수인 캐시를 사용합니다. 세 번째 매개 변수인 full_size 는 위에서 광산을 파는 데 사용된 함수 안에 있는 full_size 의 의미와 동일합니다. cache 의 요소 수가 아니며 검증 과정도 64 라운드 루프입니다. 광산 파기 과정과 비슷해 보입니다.
그렇다면 이 두 함수의 차이점은 무엇입니까?
큰 데이터 세트에서 요소를 읽어야 할 때마다 라이트 노드는 큰 데이터 세트를 저장하지 않으므로 캐시에서 재생성하려면 다른 곳의 코드 논리가 동일합니다. 큰 데이터 세트의이 위치의 요소는 앞에서 언급했듯이 각 위치의 요소는 독립적으로 생성 될 수 있습니다.
위의 이 함수는 광부들이 광산을 파는 주순환이지만, 사실 각 nonce 를 끊임없이 시도하는 과정이다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 예술명언) 이곳의 target 은 광산 발굴 난이도 목표가 비트코인과 비슷하며 동적으로 조정할 수 있다. Nonce 의 값은 0 에서 2 사이의 64 제곱일 수 있습니다. 각 nonce 에 대해 앞서 언급한 함수를 사용하여 해시 값을 계산하고 난이도 목표보다 작지 않은지 확인하고, 그렇지 않으면 다음 값을 다시 시도해 보십시오. 그 값이 target 보다 작을 때까지. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Norce (미국 TV 드라마)
광부들이 전체 데이터 세트를 보존해야 하는 이유를 분석하는 동안 전체 프로세스의 의사 코드입니다. 빨간색 상자로 표시된 코드는 캐시를 통해 dataset 의 요소를 생성할 때 다음 사용된 cache 의 요소 위치는 현재 사용 중인 cache 의 요소 값을 통해 계산되므로 특정 액세스 순서는 사전에 예측할 수 없고 의사 무작위성을 충족한다는 것을 나타냅니다. 광부들은 많은 nonce 를 검증해야 하기 때문에 매번 16M 의 cache 에서 다시 생성해야 한다면 광산의 효율성이 너무 낮고, 무작위로 선택한 dataset 의 요소 중 많은 부분이 중복되며, 이전에 다른 nonce 를 시도했을 때 사용되었을 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Nonce, Nonce (미국 TV 드라마), Nonce 명언) 그래서 광부들은 전체 dataset 을 보존하기 위해 공간을 바꾸는 전략을 채택했다. 라이트 노드는 하나의 nonce 만 검증하기 때문에 검증 시 사용할 dataset 의 요소를 직접 생성하면 됩니다.
(8) 현재 에테팡 광산은 GPU 를 위주로 하고 있으며, ASIC 광산기를 사용하는 경우는 매우 적으며, 이 점에서 라이트화폐보다 성공하여 ASIC resistance 의 역할을 하고 있다. 이는 에테르가 설계한 광산 알고리즘 (Ethash) 에 필요한 대용량 메모리와 큰 관계가 있다.
광부들이 광산을 파는 데는 1G 메모리가 필요하고, 1G 의 큰 배열은 128k 에 비해 8000 배 이상 차이가 나고, 16MB 와 128K 에 비해 100 배 이상 커져 메모리 수요의 차이가 크다는 것을 알 수 있다. (게다가 두 배열의 크기는 계속 증가할 것이다.) 물론, 에테르의 ASIC Resistance 실현은 광산 알고리즘 설계 외에 또 다른 이유가 있다. 즉, 일찌감치 업무량 증명 (POW) 에서 권익증명 (POS) 으로 전환할 계획이라는 것이다.
(9) 초식권익 증명서 (POS: Proof of Stake), 이 다음 섹션에서는 이에 대해 구체적으로 설명합니다.
권익증명: 점유권익 투표에 따라 공감대를 형성하는 것은 주식회사가 주식수에 따라 투표하는 것과 유사하며, 권익증명은 광산을 파낼 필요가 없다는 것을 증명한다. 그리고 이것은 ASIC 광산 제조사들에게 큰 위협이다. ASIC 칩 R&D 주기가 길고 비용이 많이 들기 때문에, 에테르가 지분증명으로 이전된다면, 이러한 투입된 R&D 비용은 모두 낭비될 것입니다 (ASIC 광산기는 특정 암호화 화폐를 파는 데만 사용할 수 있음). 그러나 실제로 에테르는 여전히 POW 광산 공감대 메커니즘입니다. 에테르는 일찌감치 POW 에서 POS 로 돌아간다고 말했지만, 이전한 시점은 다시 밀고, 지금까지도 변하지 않았다. 그리고 광부들이’ 난이도 폭탄’ 을 전매하는 것을 막기 위해. 그러나 지금까지, 에테르는 여전히 POW 공감대 메커니즘에 기반을 두고 있다. 사실, 많은 경우, 몇 가지 문제에 직면하여 생각을 바꾸면 좋은 해결책을 얻을 수 있다. 이 경우, 원래의 생각대로 광산 발굴 알고리즘을 지속적으로 개선하여 ASIC Resistance 를 달성하는 것은 분명 어려운 일이다. 이곳은 끊임없이 POS 로 전향해야 한다는 홍보를 통해 광부들을 계속 겁먹게 함으로써 광부들이 ASIC 광산으로 무단으로 들어가지 못하게 했다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언)ASIC Resistance 를 실현했습니다. ASIC 칩 디자인 주기는 적어도 1 년, 올해는 겁을 다 끝냈고, 이듬해에는 POS 로 바뀌지 않은 다음 1 년 더 겁을 주어 내년에 POS 를 바꿀 것이라고 선언했다.
(10) 사전 발굴 (Pre-Mining)
에테르에서 채택된 사전 발굴 메커니즘. 여기서’ 사전 발굴 광산’ 은 광산을 파는 것이 아니라 에테르방을 개발할 때 개발자에게 일부 화폐를 남겨 주었다. 에테르의 초기 개발자들은 현재 돈이 많다. 비트코인은 이 모델을 채택하지 않았습니다. 모든 비트코인은 광산을 파서 만들어졌습니다. 하지만 초기 광산을 파는 것은 쉽지 않았기 때문에 중본총 본인은 원래 많은 화폐를 가지고 있었다. (하지만 쓰지 않았다세계 랭킹 1 위오피스타공식 웹 사이트 포털 주소는 어디에 있습니까?. 나에게 쓰지 않았다.) (윌리엄 셰익스피어, 햄릿, 지혜명언) ) 및 Pre-Mining 대응, 그리고 Pre-Sale, Pre-Sale 은 일부 자산을 암호화 통화 개발에 사용하기 위해 예약된 화폐를 판매하는 것을 의미합니다. 이는 라풍투나 크라우팅과 유사합니다. 현재 각종 암호화 화폐가 매우 많은데, 일부 화폐는 Pre-Sale 을 사용하여 자금을 확보하고 있다. 이때 매입하면 그 화폐가 성공하면 큰 수익을 얻을 수 있지만, 진정으로 성공한 화폐는 소수에 불과하다. 이것이 바로 그 위험성이다.
(11) 에테르의 통계를 함께 살펴보자
위 그림에서는 에테르의 이더넷 공급량 분포 (2018 년) 를 보여 줍니다. 총 1 억 개의 이더넷 화폐가 있으며, 각 이더넷 화폐의 시장 가격은 500 달러 이상입니다 (최신 데이터는 홈페이지에서 직접 확인하세요). 에테르의 시가는 약 500 억 달러 이상이니, 너에게 향긋한지 물어봐라. 원형 차트에서 파란색 부분은 모두 Pre-Mining (3/4 에 가까움) 으로 만들어졌기 때문에 기술을 익히는 것이 얼마나 중요한지 알 수 있다. 검은색 부분은 보상으로 생성된 에테르화, 녹색은 숙부 블록에 의해 생성된 보상 에테르화입니다.
위 그림은 최대 25 개의 에테르방 광산이 차지하는 계산력 비중 (2018 년) 을 보여준다. 광산을 파는 중앙 집중화 정도도 높다는 것을 알 수 있다. 특히 가장 큰 몇 개의 광산은 비트코인 상황과 비슷한 비중을 차지하고 있다. (윌리엄 셰익스피어, 비트코인, 비트코인, 비트코인, 비트코인, 비트코인, 비트코인)
위 그림은 이더넷 가격이 시간에 따라 변하는 상황 (2018 년까지) 을 보여 줍니다. 우리는 에테르의 초기 몇 년 동안 가격이 거의 오르지 않았다는 것을 알 수 있다. 2017 년까지 에테르가 급등하기 시작했는데, 1 억을 놓친 것 같습니까?
위 그림은 에테르의 시가 (market capitallization) 를 보여 주며, 이전 그림에 표시된 이더넷 가격 추세와 거의 일치한다.
이 그림은 에테르의 Hash Rate 변화 (2018 년까지) 를 보여줍니다. Hash Rate 는 시스템의 모든 광부들이 합쳐져 초당 해시를 계산하는 횟수로 전반적으로 상승세를 보이고 있으며, 17 년부터 크게 상승하고 있음을 알 수 있다. 서로 다른 암호화 통화를 사용할 경우 mining puzzle 이 다르면 Hash Rate 는 비교할 수 없다는 점에 유의해야 합니다. 예를 들어, 에테르와 비트코인의 Hash Rate 는 직접 비교할 수 없습니다. 왜냐하면 에테르가 nonce 를 찾는 것이 비트코인보다 훨씬 더 많기 때문입니다.
(12) 기타 의견:
이 섹션의 광산 알고리즘 설계는 항상 대중을 참여시키는 경향이 있는데, 이것이 공평한 것이다. 그리고 참가자의 분산으로 산산이 분산되고 시스템이 더욱 안전해졌다. 그러나 같은 것은 다른 관점에서 보면 다른 견해를 가지고 있다. 일반 컴퓨터를 광산 발굴에 참여시키는 것은 안전하지 않다고 생각하는 사람들도 있다. 비트코인처럼 전문화 설비를 광산 발굴에 참여시키는 것이 안전하다고 생각하는 사람들도 있다. 왜 그럴까요? 시스템을 공격하려면 특정 통화만 할 수 있는 광산기를 대량으로 구입해 계산력을 통해 51% 공격을 강행해야 하는데, 공격이 성공하면 해당 통화의 가치 다이빙이 불가피해 공격자가 투입한 하드웨어 비용이 모두 물거품이 될 수 있기 때문이다. 범용 컴퓨터도 광산 발굴에 참여하게 되면 공격 비용이 크게 절감되고, 현재 대형 인터넷 회사는 서버를 모아 공격하면 된다. 공격이 완료된 후에도 이 서버들은 여전히 일상적인 업무로 전환할 수 있다. 따라서 일부 사람들은 광산을 파는 데 ASIC 광산기가’ 천하를 통일하는 것’ 이 가장 안전한 방법이라고 생각한다.
7.1 난이도 조정 공식
(1) 이전 문장 에서 소개한 비트코인 난이도 조정은 2016 블록마다 난이도로 블록 시간 10 분 유지 목표를 달성했다. 에테르방과는 달리, 각 블록마다 난이도를 조정할 수 있다.
(2) Etherfang 난이도 조정은 더 복잡하고 여러 버전을 수정했으며, Etherfang 의 옐로우 북과 실제 코드를 포함하여 인터넷상의 소개에 많은 불일치가 있습니다. 우리는 코드 기반 원칙을 따르고 Etherfang 의 코드에서 Etherfang 난이도 조정 알고리즘을 분석합니다. Etherfang 블록 난이도 조정 공식은 다음 그림과 같습니다.
여기서 H 는 현재 블록 Hi 가 이 블록의 일련 번호 D(H) 가 이 블록의 현재 난이도라는 것을 의미합니다. 그렇다면 난이도 조정 공식에는 두 부분이 있는데, 맥스 () 는 첫 번째 부분이며, 때로는 기초부분이라고도 하는데, 그 목적은 약 15 초 정도 시간을 유지하기 위한 것이고, 그 뒤에 오는 ε은 두 번째 부분, 난이도 폭탄이라고도 하며, 그 존재는 주로 권익에 과잉을 증명하기 위한 것이다. 미래의 에테르는 합의메커니즘을 업무량 증명에서 권익 증명으로 점진적으로 옮기려고 한다.
(3) 먼저 첫 번째 부분을 살펴 보겠습니다. 첫 번째 부분의 조정 방법은 상위 블록의 난이도를 기준으로 일부 자체 조정 부분을 추가하는 것입니다. P(H)hd 는 상위 블록의 난이도입니다. 소위 상위 블록은 현재 블록 체인의 마지막 블록이며, 우리가 파고 있는 블록의 경우 이 블록의 상위 블록입니다. 첫 번째 부분의 난이도 조정에는 하한선이 있는데, 이 D0=131072 는 네가 어떻게 조정하든 최소 이 난이도보다 낮아서는 안 된다. 이것은 광산을 파는 데 가장 낮은 난이도가 있다는 것을 보장하기 위해서이다. 뒤의 이 엡실론 부분은 난이도 폭탄 부분이다.
(4) 첫 번째 부분을 계속 살펴본다. 위 그림에서 x 는 조정력이고 상위 블록의 난이도를 2048 로 나눈 것이므로 난이도를 조정할 때 올리거나 내릴 때 힘의 정수 배수에 따라 조정되고 상위 블록의 난이도의 1/2048 에 따라 조정 단위로 조정된다. X 뒤에 있는 기호는 시그마 (Sigma) 로, 위의 그림과 같이 계산됩니다. σ 의 가치는 두 가지 요인과 관련이 있는데, 하나는 블록 시간이고, 다른 하나는 삼촌 블록이 있는지 여부, 즉 부모 블록에 삼촌 블록이 있는지 여부입니다. 그럼 문제가 생겼는데 왜 숙부 블록과 관련이 있나요?
현재 블록체인의 마지막 블록인 경우, 숙부 블록이 포함되어 있다면, 이때 시스템의 총 화폐 공급량이 늘어난다. 숙부 블록이 보상을 받아야 하기 때문이다. 그러면 숙부 블록이 포함된 상위 블록도 일정한 보상을 받아야 하기 때문에 이 두 가지를 합치면 화폐의 총 공급량이 증가하게 된다. 그렇다면 시스템의 총 공급량의 안정을 유지하기 위해 일정한 균형을 유지하기 위해 현재 파고 있는 블록의 난이도는 1 단위를 높여야 한다. 뒤의 -99 는 난이도 조정 계수 부분에 하한이 있다는 것을 의미하며, max (,) 앞의 이 부분 (Y 빼기 부분) 은 양수일 수도 있고 음수일 수도 있습니다. 음의 설명이라면 난이도를 한 번에 99 단위까지만 조정할 수 있고, 각 단위는 앞서 말한 상위 블록의 난이도의 1/2048 이므로 일회성 인하의 난이도는 최대 99/2048 이다.
(5) 위 그림의 공식을 자세히 살펴보자. 이 Y 는 숙부 블록이 있는지 없는지, 숙부 블록이 있으면 y=2, 숙부 블록이 없으면 y=1 이다. 두 경우 모두 상수이므로 실제로는 상수에서 다음 항목을 뺀 것입니다. 다음 항목이 이 상수보다 크면 음수로 빼면 난이도가 낮아진다는 뜻입니다. 반대로, 뒤에 있는 것이 앞보다 작다면 빼기는 양수로 난이도가 올라가야 한다는 것을 설명한다. 이 Hs 는 현재 블록의 타임 스탬프입니다. 이 P(H) 는 상위 블록의 타임 스탬프입니다. 다음 두 빼기는 현재 블록의 블록 아웃 간격입니다. 그런 다음 블록 간격을 9 로 나눈 다음 다시 내립니다. 그럼 왜 이렇게 디자인해야 하나요?
예를 들어, 현재 블록의 출블록 시간은 1 초에서 8 초 사이이며, 전체 기호 계산 결과는 0, y-0=1 입니다. 숙부 블록, 즉 y=1 이 없다고 가정하면 전체 항목의 계산 결과는 1 입니다. 이 경우 난이도가 한 단위를 올리는 것이 합리적입니다. 우리가 유지하기를 희망하는 출블록 시간은 15 초로 안정되어 있고, 이제 출블록 시간이 1-8 초로 바뀌어, 블록 속도가 너무 빠르다는 것을 보여주기 때문에, 우리는 난이도를 한 단위 올리고 균형을 유지하자. 반대로, 블록 시간이 9 초에서 17 초 사이인 경우, 기호 부분을 반올림하여 계산한 결과 1, 앞의 y=1, 그럼 y-1=0 은 이때 블록 시간이 요구에 부합한다는 것을 의미합니다. 우리가 원하는 것은 15 초입니다. 9-17 초 사이인데, 이때 조정하지 않고 기초부분만 고려할 수 있습니다. 세 번째 경우는전체 기호의 분자 부분을 뺀 후 18-26 사이인 경우, 전체 부호를 통과한 후의 계산 결과는 2, y=1 인 경우 y-2=-1 은 난이도가 1 단위 인하되어야 함을 나타냅니다. 우리가 희망하는 출블록 시간은 15 초 정도 안정되어 지금은 18 초가 넘었기 때문에 난이도를 낮춰야 한다. 블록 시간이 더 길어지면 26 초가 넘으면 하향 조정 폭이 더 커지지만, 앞의 그림에서 max () 공식의 두 번째 항목은 -99 입니다. 단일 블록 시간이 길면 y- () 를 통해 음의 큰 숫자를 계산하지만 한 번에 99 단위를 넘을 수는 없습니다. 이는 주로 검은 백조 사건과 같은 일부 시스템에서 발생하는 이상 상황을 방지하기 위해서입니다. 정상적인 상황에서는 이렇게 큰 인하가 발생해서는 안 됩니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 성공명언)
(6) 기초부분을 끝낸 후 난이도 폭탄을 소개하겠습니다.
난이도 폭탄 설계의 원래 의도는 이렇다. 에테르의 공감대 메커니즘은 업무량 증명에서 권익 증명으로 점진적으로 옮겨져야 하고, 권익 증명은 광산을 파지 않는 것으로, 이미 광산 설비에 많은 자금을 투입한 광부들이 연합하여 전환을 거부할 것인가 하는 것이다. 그래서 에테르는 그때가 되면 모두가 권익 증명서로 전입하는 것을 꺼릴까 봐 걱정했다. 원래 업무량 증명에서 권익으로 전입한 증명은 딱딱한 갈래를 통해 이뤄져야 한다. 당신이 합의협정을 바꾼 것과 같습니다. 만약 광산 설비를 파는 일부 사람들이 돌아서서 지역사회를 분열시키려 하지 않는다면, 에테르가 두 개의 평행한 사슬로 분열될 수 있다면, 어떻게 이런 일이 일어나지 않도록 할 수 있습니까?
그래서 에테르는 이 난이도 조정 공식을 설계할 때 난이도 폭탄을 추가했다.
(7) 난이도 폭탄의 특징을 살펴본다. 앞서 언급한 바와 같이 난이도 폭탄을 설계할 때 이 두 번째 줄 (즉, 300 만 줄을 뺀 줄) 이 없었고, 첫 번째 줄에 직접 사용된 Hi (현재 블록의 일련 번호) 는 Hi’ 가 없었다. 이 공식의 특징을 살펴보면 분명히 지수 모델입니다. 즉, 난이도 폭탄이라는 부분의 가치는 기하급수적으로 증가한다는 것이다.
(8) 다음 그림을 보면, 에테르의 초기에는 블록 번호가 작고 난이도 폭탄의 계산치가 작으며, 기본적으로 무시할 수 있으며, 난이도 조정은 주로 앞서 소개한 첫 부분 (기초 부분) 을 통해 결정되며, 점점 더 많은 블록이 파내짐에 따라 블록 번호가 커지고 난이도 폭탄의 위력이 드러나기 시작했다
그래서 당초 설계한 계획은 난이도 폭탄의 위력이 발휘되기 시작했을 때, 바로 에테르가 업무량 증명에서 권익증명으로 옮겨갔을 때, 그때 광산을 파는 것이 점점 어려워지고 있다고 생각했을 때, 모두들 권익증명으로 전입할 의향이 있다는 것이다. 그러나 실제로 권익증명에 기반한 공감대 메커니즘은 실제로 설계한 문제가 많은데, 당초 생각했던 것만큼 순조롭지 못하여 권익증명으로 옮겨가는 시점이 다시 밀려나고 있다. (윌리엄 셰익스피어, 윈스턴, 권익명언) (윌리엄 셰익스피어, 윈스턴, 권익명언) 그리고 지금 광산을 파는 것이 점점 어려워지고, 난이도 폭탄의 위력이 드러나기 시작했지만, 아직 다른 방법이 없어 공감대를 형성할 수 있는 방법이 없기 때문에 (권익증명에 근거한 공감대 메커니즘은 아직 개발되지 않았다). 이로 인해 현재의 출몰 시간이 갈수록 길어지고, 원래의 안정에서 15s 에서 현재의 16s,17s 에서 30s 로 바뀌며, 조치를 취하지 않으면 계속 성장할 것이다. 에테르는 결국 EIP 에서 난이도 폭탄을 계산하기로 결정했을 때 블록 번호를 300 만 블록, 즉 공식의 Hi-3000000 으로 되돌려 Hi’ 를 계산하기로 했다.이것은 가짜 블록 번호로 볼 수 있습니다. 그런 다음 난이도 폭탄을 계산할 때 가짜 블록 번호로 계산하면 권익증명의 온라인상에 약간의 시간을 할애할 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 스포츠명언) 이렇게 하면 어떤 결과가 나올까요? 아래 그림을 보세요.
이 그림은 앞의 공식에 따라 계산한 것을 보여 줍니다. Y 축은 난이도 폭탄 (ε의 값), X 축은 블록 번호 (10 만 단위) 입니다. 초기에는 블록 번호가 비교적 작을 때 난이도 폭탄의 작용이 분명하지 않았고 난이도 조정은 주로 시스템의 출몰 시간에 따라 조정되었다는 것을 알 수 있다. 이 그림의 전반부 (최고점 전) 는 원래 공식에 따라 계산됩니다 (콜백을 결정하기 전). 약 430 만 블록 정도에 이르러 최고점에 도달한 후, 에테르는 난이도 폭탄을 리콜하여 300 만 블록을 줄이기로 결정했기 때문에 난이도 폭탄은 한 번에 떨어지고, 마치 평평한 직선처럼 보이지만, 실제로는 여전히 성장하고 있다. (윌리엄 셰익스피어, 템플린, 도전명언) (윌리엄 셰익스피어, 오페라, 희망명언)
7.2 난이도 조정 코드
(1) 에테르의 발전은 다음 네 단계로 나뉘어 있는데, 그 중 metropolis 는 두 단계로 나뉘어 있으며, 우리는 첫 단계인 비잔틴 단계에 있다. 난이도 폭탄의 콜백은 비잔틴 단계에서 이뤄졌다. EIP 는 Ethereum Improvement Proposal 이라고 합니다.
(2) 난이도 콜백과 동시에 5 개의 이더넷 화폐에서 3 개의 이더넷 화폐로 보상을 낮췄다. 그렇다면 왜 이렇게 조정했을까요? 이렇게 조절하지 않으면 리콜 전 광부들에게 불공평하기 때문이다. 콜백이 갑자기 진행되었기 때문에, 예를 들어 어제 나는 힘들게 광산을 파서 5 개의 에테르를 얻었고, 오늘 밤 사이에 난이도가 낮아졌고, 다른 한 사람이 광산을 파는 것도 5 개의 에테르를 얻었기 때문에, 이것은 나에게 매우 불공평하다. 그리고 이 시스템에서 화폐의 총 공급량으로 볼 때, 총 공급량의 안정성도 유지해야 한다. 지금 광산을 파는 것이 쉬워졌으니 그에 따라 덩어리 장려금을 좀 줄였다.
(3) 참고: 비트코인 중 일정 기간마다 보상을 반으로 줄이는 방법, 에테방들에는 없다. 이와 같이 5 개의 에테르화폐를 3 개로 낮추는 것은 일회용이다. 앞으로 정기적으로 하는 것은 아니다.
(4) 구체적인 코드 구현을 살펴 보겠습니다. 다음 그림은 비잔틴 단계에서 광산을 파는 난이도를 계산하는 코드입니다. 이 코드는 상위 블록의 타임 스탬프와 상위 블록의 난이도를 입력하여 현재 파고 있는 이 블록의 난이도를 계산합니다. 그림의 주석은 이전에 우리가 말한 것과 같은 난이도 계산 공식을 제시한다. 그것은 또한 두 부분으로 나뉘어져 있습니다.
첫 번째 괄호 안에는 첫 번째 부분 (난이도 조정의 기초 부분) 이 있습니다. 뒤에 2 의 거듭제곱을 더하면 그 부분이 난이도 폭탄이다. 다음 코드 행을 살펴보십시오. bigTime 은 현재 블록의 타임 스탬프이고 bigParentTime 은 상위 블록의 타임 스탬프입니다.
(5) 아래 그림과 같이 기본 부분의 계산은 주로 기본 부분의 난이도 조정을 계산하는 것입니다.
첫 번째 행은 현재 타임스탬프에서 상위 블록의 타임스탬프를 뺀 블록 시간을 계산하는 것입니다. 그런 다음 두 번째 행을 9 로 나누어 반올림합니다. 다음 if else 문은 숙부 블록이 있는지 판단하고, 어떤 말은 2 에서 앞의 숫자를 빼고, 없는 말은 1 로 줄인다. 다음으로 -99 와 비교해 보겠습니다. 난이도 조정 인하에 한계가 있기 때문에 -99 보다 작을 수 없습니다. 다음 계산은 난이도 조정력입니다. 상위 블록의 난이도를 이 difficultyBoundDivisor 로 나누면 실제로는 2048 로 나눈 다음 이전에 계산된 계수에 곱하고 상위 블록의 난이도에 더해집니다. 마지막으로 이 if 는 기본 부분 조정에 하한선이 있어서 아무리 작아도 D0 (앞서 언급) 보다 작을 수 없기 때문에 코드에서 MinimumDifficulty 를 사용할 수 없습니다. (D0 은 131072)
(6) 난이도 폭탄 계산
아래 그림은 fake block number, 즉 가짜 블록 번호, 우리가 앞서 말한 Hi’ 입니다.
우선 이 if 판단을 보고 2999999 와 비교하면 그보다 크면 2999999 를 빼야 한다.
그렇다면 질문은, 왜 3000000 을 빼지 않는가, 앞서 말한 그 공식은 300 만 원을 빼서는 안 되는가?
판단은 상위 블록의 일련 번호이고, 내가 현재 파고 있는 블록은 상위 블록의 일련 번호보다 한 개 더 많기 때문에 상위 블록의 일련 번호로 계산하면 딱 한 개 차이가 난다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 상위명언)
다음은 가짜 블록 번호를 expDiffPeriod 로 나눈 것입니다. 즉, 100,000 으로 나눈 다음 내려 가서 2 를 뺀 다음 그 결과를 2 의 지수 부분으로 계산하면 난이도 폭탄의 값이 계산됩니다. 마지막으로 X 위에 더하면 X 는 이전 코드에서 계산한 기본 부분의 난이도 X 입니다.
(7) 이제 에테르의 실제 상황을 함께 살펴보자
1. 이더넷 스퀘어 발굴 난이도 변화 곡선은 다음 그림과 같습니다.
에테르방 초기에는 광산을 파는 난이도가 눈에 띄지 않고 성장이 더디기 때문에 에테방이 시가가 매우 작았다는 것을 알 수 있다. (윌리엄 셰익스피어, 템플린, 과학명언) (윌리엄 셰익스피어, 오페라, 희망명언) 그림에서 절벽식 하락은 난이도 폭탄 300 만 개 블록 인하로 인한 것이다. 하향 조정 후 또 한동안 진동한 후 점차 상승하는데, 현재 에테르의 광산 발굴의 난이도가 이미 이전 수준으로 회복되었고, 또 증가하고 있다. 그림에서 볼 수 있듯이 현재 광산 발굴의 난이도는 기본적으로 안정된 경향이 있다.
2. 이더넷 스퀘어 블록 시간 변화 그래프
아래 그림과 같이 이 그림은 블록 시간 변화를 보여 줍니다. 그림에서 볼 수 있듯이, 개별 파동을 고려하지 않으면 전반적으로 15 초 안팎으로 안정된 시간이 오래 걸린다. 초기에는 광산 발굴의 난이도 조정이 주로 블록 시간 안정화에 중점을 두었으며, 이는 원하는 효과를 달성했다는 것을 설명한다. 그림 뒷부분에서 출블록 시간이 크게 늘어난 것이 난이도 폭탄의 효과다. 이때 출블록 시간은 이미 30 초 정도에 이르렀다. 그런 다음 난이도 폭탄의 콜백이 단번에 절벽식 하강하여 다시 15 초로 회복되어 안정을 유지했다.
3 다음 그림은 이전 고스트 프로토콜 장에서 본 두 개의 블록입니다. 이번에는 빨간색 상자로 그려진 두 줄을 주로 봅니다.
Difficulty 는 현재 블록의 난이도입니다. total difficulty 는 현재 블록 체인의 모든 블록의 난이도를 더한 것입니다. 즉, 이 체인의 총 난이도입니다. 이전에 우리가 말한 가장 긴 합법 사슬은 에테르방에 있어서 가장 어려운 합법 체인 (난이도가 가장 높은 합법 체인) 과 동일하다는 것을 알 수 있다. 각 블록의 난이도는 이 블록을 파내는 데 필요한 작업량을 반영하며, 총 난이도가 가장 큰 것은 이 체인의 모든 블록을 파내는 데 필요한 작업량이 가장 많다는 것이다.
8.1 작업 부하 증명 (POW) 에너지 소비
이전 문장 동안 우리는 줄곧 권익증명 (POS) 을 언급했는데, 이 장에서는 권익증명에 대해 전문적으로 다루고 있다.
(1) 비트코인과 에테르는 현재 POW (업무량 증명) 메커니즘을 채택하고 있지만, 이런 방식은 전기 낭비라는 보편적인 비판을 받고 있다. 다음 그림에서는 비트코인의 에너지 소비량이 시간에 따라 변하는 것을 보여 줍니다. Y 축은 TWh(Tera Watt Hour) 가 10 의 12 제곱입니다. 우리가 비교적 잘 아는 것은 KWh(kiloWatt-hour) 입니다. 10 의 3 차원, 킬로와트시 1 도 전기라고 합니다. 아래 그림에서 비트코인의 에너지 소비가 시간이 지남에 따라 증가하고 있음을 알 수 있습니다.
(2) 다음 그림은 몇 가지 구체적인 통계를 보여줍니다. 비트코인의 연간 총 에너지 소비량은 약 70 개의 TWh 로, 647 만여 명의 미국 가정의 에너지 소비량에 해당하며 세계 총 에너지 소비량의 0.31% 를 차지한다. 특히 거래당 평균 거래당 에너지 소비량은 1014 킬로와트시이며, 이는 34.26 개 미국 가정의 하루 에너지 소비량에 해당한다. 한 거래에 1000 도의 전기가 드는 것은 매우 무섭게 들린다. 신용 카드 회사가 한 거래를 처리하는 에너지 소비량은 그리 크지 않다. 비트코인 광산의 연간 총수입은 60 여억 달러, 61 억 달러, 그리고 비용은 거의 35 억 달러로 총소득의 57.48% 를 차지한다. 광산을 파는 이윤 공간이 여전히 크다는 것을 설명하다.
(3) 다음 그림과 같이 에테르의 데이터를 함께 살펴보겠습니다. 에테르의 에너지 소비도 시간이 지남에 따라 증가하는데, 중간에 약간의 변동이 있다.
구체적인 수치로 볼 때, 이태방은 1 년에 약 20 개의 TWh 를 소비하는데, 이는 비트코인의 70 여 개의 TWh 에 비해 적지 않다. 아이슬란드 이 나라의 에너지 소비와 맞먹는다. 또한 183 만 명의 미국 가정의 에너지 소비와 맞먹는다. 에너지 소비는 전 세계 총 에너지 소비의 0.09% 를 차지한다. 이는 거래당 평균 67 킬로와트시이며, 2.25 개 미국 가정의 하루 에너지 소비량에 해당한다. 비트코인의 킬로와트 시간 1000 개에 비해 훨씬 적습니다. 비트코인의 거래가 비교적 간단하고 단순한 이체 거래라는 데는 의문이 들지 않을 것이다. (윌리엄 셰익스피어, 비트코인의 거래, 거래, 거래, 거래, 거래, 거래, 거래, 거래, 거래) Etherfang 에는 스마트 계약에 대한 호출이 포함될 수 있으므로 Etherfang 의 에너지 소비가 더 높아야합니다. 그러나 실제로는 Bitcoin 보다 훨씬 낮습니다. 하나는 67 도, 하나는 1000 도 전기입니다. 이는 주로 비트코인이 한 블록을 파는데 10 분이 걸리고, 에테방이 15 초 만에 한 블록을 파낼 수 있기 때문에, 에테르가 짧은 시간, 광산을 파내는 시간이 짧기 때문에 거래당 평균 에너지 소비량이 훨씬 적기 때문이다.물론, Etherfang 의 단위 거래 에너지 소비량은 여전히 신용 카드 회사보다 훨씬 높습니다. 이 두 가지는 양급이 아닙니다. 에테르의 연간 광산 채굴 수입은 50 억 달러, 약 50 억 5500 만 달러, 그리고 그 비용은 24 억 달러에 육박하기 때문에 광산을 파는 이윤 공간은 여전히 크다.
(4) 비트코인과 에테르의 에너지 소비량을 한 나라로 합치면, 다음 그림과 같이 국가 내 순위가 이렇다.
8.2 권리 증명 설계
(1) 다음 몇 가지 문제에 대해 생각해 봅시다.
분명히,’ 광산 발굴’ 과정은 대량의 전력 자원을 소비하는데, 이러한 에너지 소비가 필요한가?
1. 광부들이 광산을 파는 것은 보상을 받고 수익을 얻기 위해서이다. 이 시스템은 광부들이 블록 체인 시스템 유지 보수에 참여하여 회계를 하도록 동기를 부여하는 것을 목표로 하고 있으며, 광산을 파는 것은 본질적으로 광부가 자금을 투입하여 결정하는 것 (자금을 투입하여 설비를 구입하는 것-> 설비는 계산력 결정-> 계산력 비율에 따라 수익을 결정하는 것) 이다.
2. 그래서 솔직히 말해서, 광산을 파는 수익은 스펠링에 의해 결정된다. 그럼, 왜 직접’ 돈’ 을 철자하지 않는 거죠? 우리가 직접 돈을 꺼내서 1 대 1 로 하면 되지 않을까요? 지금은 광부들이 경쟁산력을 통해 광산을 파는 수익이 어떻게 분배되는지를 결정하는데, 우리가 그것을 직접 돈보다 얼마나 많은 돈으로 수익분배를 결정할 수 있는지 결정할 수 있다. (존 F. 케네디, 돈명언) 예를 들어, 나는 백만 원을 내고, 너는 50 만 원을 낸다. 현재 방법은 우리 둘 다 이 돈으로 광산기를 사러 간 다음, 모두의 광산기가 광산을 발굴하기 시작하여 누가 더 많은 블록을 파는지 알아보는 것이다. (윌리엄 셰익스피어, 햄릿, 광산명언)
3. 이보다는 이 돈을 블록체인 개발에 투입하는 것이 낫다. 앞으로 각 사람이 투입한 자금의 양에 따라 수익 분배를 결정할 것이다. 광산을 파지 말고 직접 돈을 쓰면 된다. 이것이 바로 권익 증명의 기본 사상이다. 때로는 이런 방법을 가상 광산 (virtual mining) 이라고 부르기도 합니다. 권익증명서를 채택한 암호화된 화폐는 일반적으로 정식 발행 전에 개발자에게 일부 화폐를 예약하고 개발에 필요한 자금에 일부 화폐를 판매한다. 그렇다면 앞으로 권익증명에 따른 공감대 메커니즘은 각 사람이 보유한 화폐의 수에 따라 투표할 것이다.
(2) 이 방법은 작업 부하 증명과 비교하여 다음과 같은 특징을 가지고 있습니다.
1. 광산을 파는 과정을 절약하고 그로 인한 에너지 소비와 환경에 미치는 영향을 피하고 온실가스 배출을 줄였다. 2. 작업 로드 증명에 기반한 합의 시스템은 어떤 의미에서 블록 체인 보안을 유지하는 자원이 폐쇄 루프가 아닙니다.
(3) 구체적인 의미를 아래에 설명해 주세요
Block chain is secured by mining 의 equipment 는 어디에서 왔습니까? 분명히 사용화폐로 샀는데, 달러로 광산기를 사서 광산 발굴에 참여할 수 있습니다. 암호화 화폐의 생태계 밖에서 얻은 것입니다. 최근 몇 년간 암호화 통화의 총 시가가 크게 증가했지만 세계 경제 총량과 비교하면 여전히 미미한 문제가 제기됐다. 따라서 어떤 조직이 악의적인 공격을 개시해야 한다면, 그는 광산을 파는 장비를 구입하기에 충분한 자금이 필요하고, 암호화 화폐의 절반 이상의 계산력을 모으면 된다. 즉, 이런 공격을 개시하는 데 필요한 자원은 외부 세계에서 얻을 수 있다는 것이다. 예를 들어, 이 조직은 주식 시장에서 돈이 많거나 부동산, 석유 금융 분야 등에서 돈이 많을 수 있습니다. 이 분야의 자원은 광산을 파는 계산력으로 전환하여 암호화 화폐공격에 대한 능력으로 전환될 수 있다. 비트코인처럼 주류를 이루는 암호화 화폐는 공격력이 비교적 강하다. 왜냐하면 시스템이 비교적 강하기 때문이다. 새로 발행된 지 얼마 되지 않은 작은 통화라면 쉽게 공격을 받고 요람에서 직접 목을 졸라 죽일 수 있다. (윌리엄 셰익스피어, 햄릿, 희망명언) 그렇다면 우리가 권익 증명서를 채택한다면 상황이 어떻게 다를까요?
(4) 우선, 권익증명서가 어떻게 작동하는지 생각해 보자.
그것은 주식제 회사와 약간 유사하며, 모든 사람이 점유한 주식에 따라 투표한다. 권익 증명서는 네가 그 통화를 가지고 있는 화폐의 수에 따라 투표한다. 만약 누군가가 우리가 앞서 말한 51% 공격과 같은 악의적인 공격을 원한다면, 그는 통화 발행량의 절반 이상을 얻을 방법을 강구해야 한다. 즉, 공격을 개시하는 자원은 암호화 화폐 시스템 내에서만 얻을 수 있다는 것이다. 이것이 우리가 폐쇄 루프라고 말하는 이유입니다. 당신이 공격하는 조직자가 밖에서 얼마나 많은 돈을 가지고 있든 간에, 당신이 주식신이든, 석유대형이든, 부동산 대왕도 암호화 화폐 시스템에 직접적인 영향을 미치지 않을 것입니다. 공격하려면 먼저 돈으로 충분한 화폐를 사야 하며, 누군가가 암호화 화폐를 대량으로 매입하면 암호화 화폐가격이 크게 오를 수 있다. 이런 화폐의 개발자나 초기 투자자들은 이것이 나쁜 일이 아니라고 생각할 것이다. 마침 큰돈을 벌 수 있는 것은 주식제 회사가 악의적인 인수를 당한 것이다.
(5) 권익증명과 업무량 증명은 상호 배타적이지 않으며, 일부 암호화 화폐는 혼합모델이다. 그것은 여전히 광산을 파는 것이지만, 광산을 파는 난이도는 네가 가지고 있는 권익 (혹은 네가 가지고 있는 화폐의 수) 과 관련이 있다.
예를 들어, 각 광부들이 일정량의 화폐를 가지고 있다면, 광산을 파낼 때 가지고 있는 화폐가 많을수록 광산을 파내기가 더 어려워진다. (존 F. 케네디, 돈명언) 네가 가지고 있는 화폐권익에 따라 적시에 너의 광산 발굴의 난이도를 조정할 수 있다는 것이다. 하지만 이렇게 하면 문제가 생길 수 있다. 시스템에서 가장 많은 화폐를 보유한 그 사람은 매번 광산을 파는 것이 가장 쉽다. 그래서 일부 암호화 화폐는 당신이 투입한 화폐가 일정 기간 잠겨 재사용이 불가능할 것을 요구한다. 예를 들어, 현재 블록을 파낼 때 광산의 난이도를 줄이기 위해 일정량의 화폐를 투자한다면, 이 블록이 발표되면 당신이 투입한 이 화폐들은 한동안 잠길 것이다. 다음 블록을 다시 파낼 때 화폐는 더 이상 사용할 수 없습니다. 몇 개의 블록을 기다려야 다시 사용할 수 있습니다. 때로는 그것을 Proof Of Deposit 이라고 부르기도 합니다.
(6) 물론, 권익이 이렇게 좋다는 것을 증명하는데, 왜 실제로 대규모로 응용되지 않았는가? 그 이유는 여전히 많은 도전이 있기 때문이다.
한 가지 도전은 nothing at stake 라고도 하는 양면 베팅이라는 문제입니다.
1. 앞의 그림과 같이 블록사슬이 갈라지면 광산을 설치한다고 가정하면, 당신은 그 사슬을 따라 파낼 확률이 높습니다. 왜냐하면 그가 가장 긴 합법체인일 수도 있지만, 사실 아래 체인도 가능하지만, 두 체인을 모두 파지는 않을 것입니다. 산력이 분산되면 당신에게 좋지 않기 때문입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언)
2. 하지만 권익으로 증명된다면 양쪽에 걸 수 있습니다. 만약 위에 있는 그 사슬이 가장 긴 합법사슬이 된다면, 아래에 잠근 이 동전들은 아무런 영향을 미치지 않습니다. 즉, 아래의 이 블록을 파내어 투입한 화폐는 아래의 이 분기점에 기록될 뿐, 위의 분기점 사용에는 영향을 주지 않기 때문에 nothing at stake 라고 합니다. (윌리엄 셰익스피어, Nothing AT Stake, Nothing, Nothing AT Stake) 이것은 초기에 권익증명에 근거한 공감대 메커니즘이 직면한 문제이다.
(7) 에테르가 채택할 권익 증명서
에테르에서 채택할 자기자본 증명 프로토콜은 전환 단계에서 POW 와 함께 사용할 수 있는 Casper the Friendly Finality Gadget (FFG) 입니다. 작업 로드 인증을 위한 finanlity 를 제공합니다. Finanlity 는 최종 상태이며 finanlity 에 포함된 트랜잭션은 취소되지 않습니다. 단순히 업무량 증명 (또는 광산 기반) 에 근거한 거래는 롤백될 가능성이 있다.
예를 들어, 어떤 거래가 블록체인에 기록되었고, 누군가가 앞에서 갈라져서 더 긴 갈래사슬을 파냈다. (윌리엄 셰익스피어, 햄릿, 지혜명언) 이때 네가 원래 블록체인에 쓴 거래는 무효가 될 수 있다. 비트코인처럼 6 개의 확인 블록을 기다려야 한다고 규정하고 있는데, 이는 단지 당신이 6 개의 확인 블록을 기다린 후 롤백이 발생할 가능성이 매우 낮다는 뜻입니다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 자신감명언) 그러나 악의적 인 공격자가 있다면, 앞에서 갈라지기 시작합니다. 계산력이 충분히 강한 한, 예를 들어 산력의 절반 이상을 차지하는 한, 분기 체인은 여전히 원래 체인보다 길어질 수 있습니다. 그래서 단순히 광산을 파는 블록체인은 이런 finanlity 가 부족하다는 것이다.
(8) 그럼 카스퍼 계약은 구체적으로 어떻게 하나요?
Casper 프로토콜은 Validator 라는 개념을 도입했습니다. Validator 는 사용자가 Validator 가 되려면 일정량의 이더넷 화폐를 보증금으로 투자해야 합니다. 이 보증금은 시스템에 의해 잠깁니다. Validator 의 임무는 시스템이 가장 긴 합법적인 체인이 될 체인을 결정하는 데 합의하는 것이며, 투표 가중치는 보증금 수에 따라 결정된다. 작업량증명과 권익증명서가 혼용될 때 광산을 파낼 때마다 100 개의 블록을 파낼 때마다 하나의 epoch 로 삼아 finanlity 가 될 수 있는지 여부를 결정하고 투표를 해야 한다. 여러분 모두 two-phase commit (2 단계 제출) 에 대해 들어보셨을 겁니다. 1 차 투표는 prepare message, 2 차 투표는 commit message 입니다. Casper 는 각 투표 결과에 대해 검증자의 2/3 이상의 동의를 받아야 한다고 규정하고 있습니다 (보증금의 금액 크기에 따라 계산됨). 실제 시스템에서 이 두 메세지는 더 이상 구분되지 않습니다.그리고이 epoch 를 원래 100 개 블록에서 50 개 블록으로 줄이면 50 개 블록, epoch 가 됩니다. 그런 다음 각 epoch 는 1 라운드 투표만 하면 됩니다. 이 투표는 이전 epoch 의 경우 commit message 이고, 다음 epoch 의 경우 prepare message 입니다. 2 라운드 연속 투표 (두 epoch) 는 2/3 이상의 다수를 얻습니다. 다음 그림과 같이 그림을 그려 봅시다
(9) 광부들이 광산을 파면 보상을 받을 수 있고, 검증자가 하는 일도 그에 따라 상을 받을 수 있다.
물론 검증자가 나쁜 행동을 하면 들키면 그에 상응하는 처벌을 받고 들키면 처벌을 받아야 한다. 예를 들어, 어떤 검증자가’ 행정불행위’ 를 하고 투표에 참여하지 않아 시스템이 늦어져 합의에 이르지 못하는 경우, 그의 보증금 일부를 공제해야 한다. 어떤 검증자가’ 난장판’ 을 하고 두 충돌의 분기점을 모두 투표한다면 (양쪽에 걸면), 이런 상황이 발견되면 전체 보증금을 몰수해야 한다. 몰수된 보증금은 파괴될 것이며, 시스템 내 에테르의 총 공급량을 줄이는 것과 같다. 모든 검증자는 일정한 임기를 가지고 있다. 보증금을 내더라도 영원히 검증자가 될 수 있다는 뜻은 아니다. 임기가 만료된 후에는 일정 기간의 대기기간을 거쳐야 하며, 대기기간은 다른 노드가 검증자가 어떤 나쁜 행동을 했는지를 고발할 수 있도록 처벌하기 위한 것이다. 대기기간이 지났는데 문제가 없다면 검증자는 당초 보증금과 마땅히 받아야 할 상을 되찾을 수 있다. 이것은 Casper 프로토콜의 한 과정이다.
(10)Casper 프로토콜은 광산에서 파낸 블록 체인의 특정 상태에 대해 체크포인트를 만들 수 있는데, 이는 절대적으로 안전한가, 아니면 검증자 투표를 통해 달성된 finanlity 가 전복될 가능성이 있는가? 우리는 이전에 finanlity 에 포함된 거래가 전복되지 않을 것이라고 말했는데, 이것은 절대적입니까?
어떤 악의적인 조직이 공격을 개시한다고 가정해 봅시다. 만약 이 조직이 단지 광부일 뿐이라면, 그는 이미 달성한 finanlity 를 전복시킬 수 없습니다. Finanlity 는 검증자가 투표한 것으로, 단순히 광부일 뿐, 그가 아무리 힘이 세더라도 검증자가 한패가 아니라면 그는 전복할 수 없다. 어떤 상황에서 공격이 성공할까?
대답은: 반드시 대량의 검증자 양측에 베팅하고 앞뒤 두 개의 충돌한 finanlity 를 모두 베팅하는 것이다. 앞서 Casper 협정은 매 라운드 투표당 2/3 이상의 검증자 지원이 통과되어야 통과된다고 말했다. 따라서 이런 경우 최소한 1/3 의 검증자가 양측에 투표했고, 일단 발견되면 1/3 이 투표했다.
(11) 따라서 우리는 권익증명에 기반한 공감대 메커니즘과 업무량 증명에 기반한 공감대 메커니즘이 매우 다르다는 것을 알 수 있다. 에테르방 시스템의 구상은 점차 업무량 증명에서 권익 증명으로 전환하는 것이다. 시간이 지남에 따라 광산 발굴에 대한 보상이 점차 줄어들고 권익이 증명된 보상이 점차 증가하여 결국 광산을 전혀 파지 않아도 된다. 권익이 이렇게 좋다는 것을 증명한 이상, 왜 태방이 처음부터 권익으로 증명하지 않는가. 이는 권익증명서가 그다지 성숙하지 않고, 업무량 증명서가 비교적 성숙하고, 시간 검증을 거쳤기 때문이다. 앞서 말씀드렸듯이 bug bounty, 비트코인, 에테르의 광산 파기 알고리즘은 모두 bug bounty 의 테스트를 거쳤고, 아무도 어떤 허점도 발견하지 못했다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) 많은 사람들은 권익증빙이 미래의 방향이라고 생각하지만, 현재 주류 암호화 화폐는 여전히 업무량 증빙으로 사용되고 있다. 이태방이 지금까지 사용한 것과 같은 것은 업무량 증명이다.
현재 EOS 암호화 통화인 유자 (유자) 는 2018 년 온라인, 권익증명의 합의기제로 광산을 파지 않아도 되지만, Casper 협정이 아닌 DPOS:Delegated Proof of Stake 를 채택하고 있다. 이 협정의 핵심 사상은 투표를 통해 21 개의 슈퍼노드를 선택한 다음 슈퍼노드에서 블록을 생성하는 것이다. 그러나 현재, 권익증명의 공감대 메커니즘은 여전히 탐색 단계에 있다.
(12) 기타 관점: 앞의 기본 관점은 모두’ 광산을 파서 대량의 전기를 소비하는 것은 좋지 않다’ 는 것을 기초로 하지만, 반대의 견해를 가지고 있는 사람들도 있다.
그들은 그들이 소비하는 전기 에너지의 비율이 크지 않고 환경에 미치는 영향이 제한적이라고 생각한다. 많은 사람들이 업무량 증명에 반감을 갖고 있는 것은 많은 무용지물을 하고 많은 전기를 헛되이 낭비했기 때문이다. 광산을 파는 것은 전기를 돈으로 바꾸는 수단을 제공하지만, 전기 자체는 전송하고 저장하기가 어렵다. 일반적으로 낮에는 전력 사용량이 가장 많을 때 전기는 충분하지 않다. 한밤중이 되면 또 많은 여분의 전기를 다 쓸 수 없다. 전기도 전송하기 어렵습니다. 많은 데이터 센터는 전기를 전송하는 것보다 데이터를 전송하는 것이 더 쉽기 때문에 전기가 더 싼 곳에 구축되어 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 전기명언) 그리고 현재 많은 곳에서 청정 에너지, 풍력발전소, 수력발전소 등을 건설하고 있는데, 현지 수요를 충족시키는 것 외에 어떻게 주 전력망으로 돌아갈 수 있는지도 문제다. 많은 나라의 주요 전력망은 단방향 전송으로 설계되어 있습니다. 즉, 주 전력망에서 외진 지역으로 전기를 보내는 것이 가능합니다. 외진 지역에서 이러한 청정 에너지를 주 전력망에 반환하는 것은 그리 쉽지 않습니다. 텔레그램 홈페이지를 다운로드해야 하는 곳은 어떤 네트워크 개조입니까? 하지만 광산을 파는 것은 이러한 문제를 해결하기 위한 좋은 수단을 제공하고, 여분의 전기를 암호화 통화로 변환합니다.그물에 전기가 있는 곳만 있으면 광산을 파낼 수 있고, 파낸 암호화된 화폐저장 전송은 문제가 되지 않습니다. 개인키만 보관하면 됩니다. 그래서 어떤 사람들은 광산을 파서 전기를 소비하는 것은 나쁜 일이 아니며, 과잉 생산능력을 효과적으로 해소하고 현지 경제 발전을 이끌 수 있다고 생각한다.
5 월 1 일 휴가가 끝나기 전에 마침내 에테르방 관련 기초지식을 더 완성했습니다. 만약 착오가 발견되면 블로거에게 연락해 주시면 바로 수정하겠습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 휴가명언) 또 다음 블로그에서는 에테르방 지능 계약과 관련된 몇 가지 항목을 소개한다. 방학이 끝났으니 모두 힘내서 공부하세요. 또한 블로그 갱신은 쉽지 않습니다. 본인이 잘 썼다고 생각되면 3 연으로 지원해 주세요. 감사합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 블로그명언)