What Is This?
Try It Out!
RPOW - What Is This?
The RPOW system is, in practice, comprised of one RPOW server (with the possibility of more servers in the future) and a package of client software to let people create, manage and exchange RPOWs.
This system is the RPOW server.
It receives POW (proof of work) and RPOW (reusable proof of work) tokens, and returns new RPOW tokens in exchange. The code runs on an IBM4758 secure cryptographic coprocessor, used in a mode intended to make it impossible even for me, as the owner and operator of the system, to violate the security rules and to create RPOW tokens without paying for them with appropriate POW tokens. More importantly, you, the potential user of the RPOW system, can verify these properties. See the theory and security pages for more details.
You can also download client software, which is released under an open source license, to allow people to experiment with new applications of the RPOW system.
This project would not have been possible without the aid and support of several people, although of course they are not to blame for any of my errors or shortcomings in this effort. The IBM Crypto team, along with those members of IBM Research who maintain the Alphaworks 4758 tools, have been helpful with answers to questions when I had a problem.
I particularly want to thank Sean Smith, Assistant Professor in the Department of Computer Science at Dartmouth College. Sean was one of the principle designers of the IBM 4758 and has encouraged his students to pursue a number of projects which are similar in flavor to RPOW. I was very impressed by the scope and magnitude of these projects, and this is what convinced me that it would be possible to set up RPOW to provide services to a worldwide community of untrusting users, relying on the outbound authentication features of the IBM 4758. Sean has been very helpful and supportive in answering questions I had about the security of the system.
Two authors whose work anticipated many of the concepts in RPOW are Markus Jakobsson and Ari Juels. Particularly relevant is their 1999 paper, Proofs of Work and Bread Pudding Protocols. They propose to use special POW tokens which create data that is directly useful in a proposed ecash minting system, allowing a form of re-use.
I am also interested in Markus' 1995 Ripping Coins for a Fair Exchange, and I hope to borrow some concepts from that paper for RPOW. Markus shows how an ecash system can be modified so that two parties can jointly withdraw a coin, such that neither one has the information necessary to deposit it. This kind of protocol can ameliorate some potential problems in RPOW token exchange, such as people who bargain in bad faith and don't provide tokens they have promised.
The RPOW system is an experimental technology demonstration and is exclusively for personal, experimental, and non-commercial use. This requirement is imposed by the license IBM Research provides for free use of its development tools. RPOW tokens have no monetary value and are to be used solely for their use as evidence of the computer work which is necessary to create them.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.