검수요청.png검수요청.png

피투풀

위키원
이동: 둘러보기, 검색
피투풀(P2Pool)
피투풀(P2Pool)
P2Pool 공유체인의 시각화

피투풀(P2Pool)은 마이너 노드를 P2P 네트워크를 만들어 작동하는 분산형 P2P 비트코인 마이닝풀이다. 피투풀은 통상적인 풀과 달리 더블 지출과 51% 공격으로부터 비트코인을 확보하는데 도움이 된다. P2Pool의 초기 설정에는 약간의 노력이 필요하지만, 풀 운영자에 대한 신뢰가 필요없는 높은 등가 지급액을 제공한다. 이 프로젝트는 2011년 6월 17일 Forrest Voight에 의해 발표되었으며 2011년 7월 중순 메인넷에 대한 테스트를 시작했다.

개요

피투풀은 난이도가 조정되어 30초마다 새로운 블록이 발견되는 새로운 블록체인을 만든다. 피투풀 블록체인에 들어가는 블록(공유체인)은 비트코인 블록체인에 들어가는 블록과 동일하지만 난이도가 더 낮다. 피어가 새로운 공유 발견(P2Pool 블록체인의 새 블록)을 발표할 때마다 다른 피어에 의해 수신되며, 다른 피어는 이 블록이 공유를 찾은 모든 마이너에 대한 대금이 포함되어 있는지 확인하고 발표한다. 피트풀은 공유체인(sharechain)으로 만들었다. 이는 일부 피어가 비트코인 네트워크의 난이도 목표를 달성하기 어려운 난이도를 발견 할 때까지 계속된다. 이 피어는 이 블록을 비트코인 네트워크에 발표하고 이 블록에 대한 지분을 제출한 채굴자는 그들이 최근에 발견한 주식의 수에 비례하여 생성거래에서 지불한다. 마이너와 마이너는 함께 로컬에서 실행할 수 있는 P2Pool 노드에 연결하도록 구성되어 있다. P2Pool 사용자는 트랜잭션과 비트코인 블록체인을 독립적으로 유효성을 검증할 수 있는 완전한 비트코인 노드를 실행해야 한다. P2Pool은 또한 통합된 마이닝과 몇 가지 대체 블록체인들을 지원한다.

P2Pool 노드는 비트코인의 블록체인처럼 연쇄적으로 작동한다. 각 노드는 이전 주식 소유자와 노드 자체에 대한 지급을 포함하는 블록에서 작동하며, P2Pool의 난이도를 충족할 경우 공유가 발생할 수도 있다. 비트코인의 탈중앙화 강화의 중요성때문에 일부 비트코인 지지자들은 P2Pool 채굴자에게 기부하는 등 평균 보상의 예상 보상의 100%를 초과한다. 그러나 이와 같은 수준의 탈중앙화권을 제공할 수 있는 다른 풀(BitPenny 및 Eligius 등)이 있다는 점에 유의해야 한다.

P2Pool 공유는 이전 공유의 해시를 참조하는 각 공유와 함께 "공유체인"을 형성한다. 각 공유에는 표준 비트코인 블록 헤더, 생성 거래(이 공유의 총 보조금, 지불 스크립트, nonce, 이전 공유의 해시 및 현재 공유대상)을 계산하는 데 사용되는 일부 P2Pool 특정 데이터, 그리고 해당 생성 트랜잭션을 블록 헤더의 Merkle 해시와 연결하는 Merkle 분기가 포함되어 있다.

비트코인이 10분마다 한 블록씩 생성하도록 규제하는 것처럼 30초마다 1주당 약 1주가 생성되도록 지속적으로 목표를 조정하고 있다. 이는 대규모 채굴자가 어려움을 겪을 수 있는 옵션이 있지만 P2Pool의 최소 난이도에 대한 채굴의 영향을 영향을 줄이면서, P2Pool에서 채굴하는 사람들이 많을수록 지분을 찾는 것이 더 어려워 짐을 의미한다. 비트코인과 달리 노드는 전체 체인을 알지 못하며, 대신 마지막 8640주(마지막 3일치)만 보유하고 있다. 공격자가 체인에서 비밀리에 작업한 다음 그것을 풀어 기존 체인을 재정의 하지 못하도록 하기 위해, 체인은 과거 어느 시점 이후의 작업량으로 판단된다. 그 시점 이후로 작업이 완료되었음을 확인하기 위해, 노드는 비트코인 블록이 공유가 참조하는 블록을 살펴보면서, 입증 가능한 타임스탬프를 설정한다(공유가 블록을 가리키는 경우, 해당 블록이 만들어진 후에 확실히 이루어진다).[1]

지불논리

각 지분에는 이전 n주에 지급되는 세대 거래를 포함한다. 여기서 n은 총 작업량이 블록을 해결하는 데 필요한 평균 작업의 3배인 주식의 수 또는 8640(= 72시간 주식)중 더 작은 것 중 하나이다. 지불금은 각 지분이 해결하는데 소요된 작업량을 기준으로 가중치를 부여하는데, 이는 당시 p2pool 난이도에 비례한다.

블록 보상금(현재 12.5BTC)와 거래수수료는 다음 규정에 따라 결합하여 배분한다.

블록 자격이 있는 솔루션을 공유하지 않도록 하기 위해 블록을 해결한 노드에 0.5%의 보조금이 전송된다.(다른 사람을 해칠 목적으로 마이너는 그 블록을 보류할 수 있으며 그로 인해 누군가가 지불금을 받지 못하게 할 수 있다. 지불금으 재전송할 수 없게 된다.) 나머지 99.5%는 최근 수행한 작업에 따라 마이너들에게 균등하게 분배된다.

공유가 블록츠로 자격이 되는 경우, 이 생성 트랜잭션은 비트코인 네트워크에 노출되어 각 노드에 지불금을 전송하여 적용된다.

특징

  • 소득이 증가하는 작은 통계적 이점
  • 자체 풀 노드 제어
  • 풀 연산자를 신뢰할 필요가 없음
  • 즉시지급
  • 비트코인 네트워크를 보호하고 유지하도록 지원

단점

  • 초기 설정이 복잡하다
  • 더 많은 CPU / RAM / 인터넷 대역폭 필요
  • 높은 지불 차이
  • 소액결제 시 소액거래수수료

마이닝

다음 단계에 따라 풀에 참여하면 된다.

  • RPC 인터페이스가 활성화된 상태에서 Bitcoin을 실행한다. bitcoin.conf를 편집하며 다음을 포함한다.
rpcuser = USER
rpcpassword = LONG_RANDOM_SECRET_VALUE
서버 = 1
  • LONG_RANDOM_SECRET_VALUE를 fju4M78yAj3ds39pak92raK와 같은 키보드 스매싱 출력과 같이 길고 임의의 값으로 바꾼다. 기억할 필요는 없다. RPC포트가 인터넷에 노출되면 도둑이 비트코인을 추측 할 수있는 경우 도용하거나 도용 할 수 있다.
  • 비트코인 0.8.5이상이 필요하다.
  • 시작하기 전에 Bitcoin 클라이언트를 완전히 동기화하는 것이 중요하다. Bitcoin 포트가 전달되어 있으면 더 좋다.
  • p2pool 다운로드:
  • Windows py2exe : run_p2pool.exe
  • 출처 : python run_p2pool.py
  • 사용자 이름과 비밀번호를 사용하여 포트 9332에서 127.0.0.1(또는 p2pool을 실행하는 호스트의 IP가 마이너와 동일한 컴퓨터에 있지 않은 경우)에 연결하는 긴 폴링으로 마이너 디먼을 실행한다.
  • 받는 사람 구독 P2Pool 통지 긴급 풀 상태 업데이트에 대한 메일 링리스트

소스에서 실행중인 경우의 종속성 :

  • Python 2.6 이상 (3.x 제외)
  • 파이썬-아르가 파스
  • 트위스트 (파이썬 트위스트 우분투 패키지)

수수료

기본적으로 P2Pool은 P2Pool의 개발 자금으로 1%를 받는다.

상호 운영성

P2pool은 대부분의 하드웨어에서 잘 작동한다. 작동이 확인된 하드웨어의 일부와 필요한 특수 구성은 아래와 같다.

  • ASICminer blade 10GH/s(사용자 이름 또는 프록시에 +1을 추가해야 함)
  • Avalon 110nm 60-110 GH/s(모든 배치)
  • Avalon 기반 55nm 200 GH/s(특정 메이커)
  • Avalon 프로토타입 55nm 120GH/s (~20개 존재)
  • 이카루스 FPGA
  • Bitfury H-card와 M-card 반격
  • Bitmain Antminer S1 180GH/s(20131226 펌웨어 필요)
  • Bitmain Antminer S3 440GH/s
  • BFL SC 잘라페노, SC 싱글 30, 50, 60 GH/s
  • Spondoolies Tech SP 10
  • Spondoolies Tech SP 30

(다양한 GPU와 BFL 단일 FPGA를 제외한 대부분의 FPGA도 잘 작동함)

p2pool에서 사용해서는 안 되는 문제가 있는 하드웨어의 목록.

  • Cointerra Terraminer IV(p2pool에서 마이닝 시 10-20% 해시 속도 손실)
  • Btimain Antminer S2(p2pool에서 마이닝할 때 10-20% 해시 속도 손실, S1 & S3 모두 p2pool에서 잘 작동함)

프로토콜 설명

P2Pool의 프로토콜은 여러 가지 방식으로 Bitcoin의 P2P 프로토콜을 반영한다. 동일한 프레임 (접두사, 명령, 길이, 체크섬, 페이로드) 및 유사한 명령을 사용한다.

  • version - 연결을 포함하기 위해 전송된 version -contains(version, services, addr_to, addr_from, nonce, ub_version, mode, best_share_hash)
  • setmode - 버전 메시지에서 전송된 모드를 업데이트하기 위해 전송됨 - 포함(mode)
  • ping- 연결을 유지하기 위해 전송됨-포함
  • addrme - 수신 노드가 송신 노드에 대한 가산기를 보내도록 요청 - 포함(포트)
  • addrs - 노드 주소의 브로드 캐스트 목록-포함 ( addrs )
  • getaddrs - 수신 노드 송신 계수 addrs를 포함 하도록 요청 - contains(count)
  • getshares - 수신 노드가 해시 및 패런츠에 의해 참조된 공유를 전송하고 중지된 공유에서 중지하도록 요청 - 포함(해시, 패런츠, 중지)
  • shares - 공유 내용의 브로드캐스트 메시지 - 포함(shares)

P2Pool 마이너 기부

사람들이 P2Pool에 채굴하도록 장려하기 위해 sendmany를 사용하여 최근 마이너에게 기부할 수 있다.

예를 들어, 10btc를 기부하는 bash 스크립트는 다음과 같다.

~ / src / bitcoin / src / bitcoind sendmany "" "$ (GET http://127.0.0.1:9332/patron_sendmany/10)"

특정 비트코인 계정에서 지불하려면 ""를 "계정 이름"으로 바꿀 수 있으며 로컬에서 실행하지 않는 경우 127.0.0.1을 P2Pool 노드의 주소로 바꿔야 한다.

기부 금액은 지난 24 시간 동안 수행한 작업량에 비례하여 최근 마이너에게 할당되지만 기부 금액의 지분이 0.01BTC 미만인 모든 광부가 공유한다. 단일 금액으로 합쳐져 무작위로 그들 중 하나에게 수여되며, 마이너 최근 수행한 작업에 의해 가중된 이 '추첨'에 당첨될 가능성이 있다. 예를 들어, 10BTC를 지불한다고 말하는 0.01BTC 임계값을 이와 같이 변경할 수 있지만 기본값은 0.01BTC가 아닌 0.001BTC로 줄이면 더 많은 채굴자들 사이에서 공유 할 수 있다.

~ / src / bitcoin / src / bitcoind sendmany "" "$ (GET http://127.0.0.1:9332/patron_sendmany/10/0.001)"

기부하기로 결정한 경우, 가능한 가장 많은 인센티브를 제공할 수 있도록 포럼에 그것을 발표해야 한다.

스폰서

  • 비트코인 재단(Bitcoin Foundation)
  • 라이트코인 프로젝트(Litecoin Project)

각주

  1. "P2Pool", Bitcoinwiki

참고자료

같이 보기


  검수요청.png검수요청.png 이 피투풀 문서는 채굴업체에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.