Client Puzzle Protocol (CPP) is a computer algorithm for use in Internet communication, whose goal is to make abuse of server resources infeasible. It is an implementation of a proof-of-work system (POW).
The idea of the CPP is to require all clients connecting to a server to correctly solve a mathematical puzzle before establishing a connection, if the server is under attack. After solving the puzzle, the client would return the solution to the server, which the server would quickly verify, or reject and drop the connection. The puzzle is made simple and easily solvable but requires at least a minimal amount of computation on the client side.
Client Puzzle Protocol (CPP) はインターネットコミュニケーションの際に使用されるコンピュータアルゴリズムであり、サーバーリソースの濫用を不可能にすることを目的としている。Proof-of-work (POW) システムの実行である。
サーバーが攻撃に晒されている場合、サーバーに接続する全てのクライアントに、接続を確立する前に、数学的パズルに正解することを要求するのがCPPのアイディアである。パズルを解いた後、クライアントはサーバーに解答を送り、サーバーはすぐに認証するか、接続を切断する。パズルは単純かつ簡単に解けるものであるが、少なくともクライアント側に最低限のコンピュータ計算を要求するものである。
Legitimate users would experience just a negligible computational cost, but abuse would be deterred: those clients that try to simultaneously establish a large numbers of connections would be unable to do so because of the computational cost (time delay). This method holds promise in fighting some types of spam as well as other attacks like Denial of Service.
Until 2009, Finney's system was the only RPOW system to have been implemented; it never saw economically significant use. In 2009, the Bitcoin network went online. Bitcoin is a proof-of-work cryptocurrency that, like Finney's RPOW, is also based on the Hashcash POW.
正当なユーザには取るに足らないコンピュータ計算のコストだが、これによって濫用を防ぐことができるであろう。なぜなら、同時に多くの接続を確立しようとするクライアントは、コンピュータ計算のコスト(計算による時間の遅れ)により、接続できなくなる。これはスパムやDoS攻撃への対抗手段として有効である。
2009年以前は、Finneyのシステムが唯一の実行されたPROWシステムであったが、経済的見地からは有効なものではなかった。2009年、Bitcoinネットワークがオンラインに登場した。BitcoinはPOWの暗号通貨であり、FinneyのPROW同様、Hashcash POWに基づいている。
But in Bitcoin double-spend protection is provided by a decentralized P2P protocol for tracking transfers of coins, rather than the hardware trusted computing function used by RPOW. Bitcoin has better trustworthiness because it is protected by computation; RPOW is protected by the private keys stored in the TPM hardware and manufacturers holding TPM private keys. Hackers who steal a TPM manufacturer key, or anyone capable of obtaining the key by examining the TPM chip itself, could subvert that assurance. Bitcoins are "mined" using the Hashcash proof-of-work function by individual nodes and verified by the decentralized P2P Bitcoin network.
しかし、Bitcoinにおいては、RPOWによって用いられているハードウェアのコンピュータ機能への信頼ではなく、むしろコインの取引を追跡するための分散化されたP2Pプロトコルによって、二重使用からの保護を行っている。Bitcoinはコンピュータ計算によって守られているため、より一層信頼できるものである。なぜなら、PROWはTPMハードウェアに保存されたプライベートキーとTPMプライベートキーを所持するメーカーによる保護であり、TPMメーカーキーを盗むハッカー、あるいはTPMチップ自体を調査してキーを得ることができるものなら誰でもそのセキュリティを破ることは可能であろう。Bitcoinは個人のノードによるハッシュキャッシュのPOW機能を用いて「採掘」され、分散化されたP2P Bitcoinネットワークによって認証されているのである。