Moo! Wrapper

From BOINC Projects
Revision as of 01:11, 22 May 2026 by Al Piskun (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search




Moo! Wrapper
Project
StatusActive
CategoryCryptography / Security research
ComputeCPU & GPU
Development
DeveloperTeemu Mannermaa
AuthorTeemu Mannermaa
SponsorDistributed.net (community-run)
Initial releaseMay 1, 2011  (15 years ago)
Repositoryhttps://github.com/BOINC/boinc
Software
Operating systemWindows, Linux, macOS, Android
BOINC statistics
Stats as of21 May 2026
Performance~929 GFLOPS (929,173.96 MFLOPS)
Active users1,178
Total users65,397
Active hosts2,219
Total hosts541,926
Metadata
Websitehttps://moowrap.net/
LicenseLGPL (BOINC wrapper); Distributed.net Client License

Moo! Wrapper is a volunteer distributed computing project that merges BOINC volunteer computing network resources and the Distributed.net projects. Moo! Wrapper allows any BOINC client to participate in the RC5-72 challenge — a long-running effort to break a 72-bit symmetric encryption key by exhaustive search.

The project was launched on 1 May 2011 by developer Teemu Mannermaa and has been running continuously since, making it one of the longer-standing bridge projects in the BOINC ecosystem.[1] The server software copyright notice reads "Copyright © 2011–2026 Moo! Wrapper Project."[2]

Why Moo! Wrapper?

Before Moo! Wrapper existed, BOINC volunteers and Distributed.net volunteers operated on entirely separate platforms. A user who wanted to contribute CPU or GPU cycles to the RC5-72 challenge had to install and manage the standalone Distributed.net client separately from their BOINC client, with no credit integration and no BOINC-standard scheduling. Moo! Wrapper solved this by wrapping the Distributed.net client inside a standard BOINC application, so the two systems communicate seamlessly through a proxy.[2]

This integration means that a BOINC user can point their existing installation at https://moowrap.net/, and BOINC will automatically download, manage, and run the Distributed.net client as just another task alongside other BOINC projects — with full BOINC credit accounting, checkpointing, suspend/resume, GPU affinity, and team leaderboards all working as normal.[1]

Moo! Wrapper intentionally focuses only on the RC5-72 challenge and not on Distributed.net's other active project, OGR (Optimal Golomb Rulers), because OGR can already be participated in via Yoyo@home.[2]

Goal

The distributed.net cow mascot. The bovine icon has been the symbol of Distributed.net since 1997.

The core goal of Moo! Wrapper is to maximise the number of computing devices contributing to the RC5-72 brute-force key search by lowering the barrier to entry for the large existing BOINC volunteer base.

The RC5-72 challenge itself, run by Distributed.net, asks a global network of volunteers to exhaustively test every possible 72-bit key against a ciphertext encrypted with the RC5 symmetric block cipher — the variant designated RC5-32/12/9 (32-bit words, 12 rounds, 9-byte / 72-bit key). The keyspace contains 272 (approximately 4.72 × 1021) possible keys. The search will end as soon as the correct key is found, or when the entire keyspace has been tested.[3]

The RC5-72 keyspace is 256 times larger than RC5-64, which took distributed.net 1,757 days to crack.[4] As of July 2025, the RC5-72 project is on pace to exhaust the keyspace in just under 36 years, though the project will end as soon as the correct key is found.[5]

The secondary goal is to demonstrate how a BOINC "wrapper" application can integrate a pre-existing third-party distributed computing client into the BOINC ecosystem — a model that other projects have since studied and replicated.

The RC5 cipher and its challenges

RC5 is a symmetric-key block cipher designed by Ronald L. Rivest of MIT in 1994.[6] It is notable for its simplicity and for its heavy use of data-dependent rotations — a novel feature at the time. The designation "RC5-32/12/9" means: 32-bit word size, 12 rounds, and a 9-byte (72-bit) key. RSA Security sponsored a series of challenges to probe the real-world security of various RC5 key lengths, offering $10,000 prizes to whoever found the correct key.[7]

Distributed.net RC5 challenge history
Challenge Duration Result
RC5-56 250 days (1997) Solved; key: 0x532B744CC20999
RC5-64 1,757 days (1997–2002) Solved; key: 0x63DE7DC154F4D039
RC5-72 2002–present In progress (~5.9% of keyspace as of 2025)

The RC5-56 challenge was solved on 19 October 1997 after 250 days. The RC5-64 challenge was solved on 14 July 2002 after 1,757 days; the winning key was found by a Pentium III 450 MHz machine running Windows 2000 in Japan. The RC5-72 challenge began 3 December 2002.[8] RSA Security withdrew its prize sponsorship in May 2007, but distributed.net continues the project and funds a $4,000 community prize.[4]

Methods

Why BOINC?

The BOINC logo. Moo! Wrapper is listed among the officially supported BOINC projects on the Android BOINC app.
The BOINC logo. Moo! Wrapper is listed among the officially supported BOINC projects on the Android BOINC app.


BOINC (Berkeley Open Infrastructure for Network Computing) is an open-source middleware system for volunteer computing developed at UC Berkeley's Space Sciences Laboratory and led by David P. Anderson, who also led SETI@home.[9]

BOINC was chosen as the hosting platform for Moo! Wrapper because it provides ready-made infrastructure for:

  • Secure work-unit distribution and result validation
  • Cross-platform application packaging (Windows, Linux, macOS, Android)
  • GPU resource scheduling via CUDA and OpenCL
  • Credit accounting, leaderboards, team tracking, and community features
  • Adaptive replication to detect and discard results from untrustworthy hosts
  • Automatic suspension when the volunteer's machine is in active use

By wrapping the Distributed.net client inside BOINC, Moo! Wrapper gives RC5-72 access to a pool of millions of BOINC-connected devices worldwide. As of May 2026, the project reports over 929 GFLOPS of combined computing power from more than 2,200 active hosts.[10]

Technical architecture

Moo! Wrapper uses the standard BOINC wrapper application framework (upstream BOINC wrapper, updated to v7.13.26016 in the v1.5 app release).[1] The wrapper launches the Distributed.net client (dnetc) as a child process and monitors it, forwarding stdin/stdout between the BOINC client and dnetc. Work is fetched from Moo! Wrapper's own BOINC scheduler, which in turn communicates with a Distributed.net proxy (the "bcserv01" proxy server) that queues and relays blocks to and from the main Distributed.net network.

Work units come in four sizes — Tiny, Small, Normal, and Huge — to accommodate the wide range of volunteer hardware. As of 21 May 2026, the project had over 104,000 tasks in progress across all size classes.[10]

The Distributed.net client included in Moo! Wrapper supports CPU computation on x86, x86-64 (with AVX2 optimisation for Intel Skylake and AMD FX/Opteron), and ARM64 (including a dedicated "MONIKA" core for ARM64 Linux). GPU computation is supported via NVIDIA CUDA and OpenCL (both NVIDIA and AMD). As of July 2025, GPUs contribute more than 95% of all work units completed each day across the wider Distributed.net RC5-72 network.[5]

A BOINC client showing active tasks from multiple projects. Moo! Wrapper tasks appear in the same task list as other BOINC projects, with full scheduling and credit integration.

How work units are processed

  1. BOINC downloads a work unit (a "block" of RC5-72 keys) from the Moo! Wrapper scheduler.
  2. The BOINC wrapper launches the Distributed.net client, passing it the block range to test.
  3. The dnetc client tests each 72-bit key in the assigned range against the known ciphertext.
  4. If a match is found, the result is flagged and propagated to Distributed.net's central servers. Otherwise the block is reported as "no key found."
  5. The result is returned to the Moo! Wrapper validator, then assimilated and credited.
  6. BOINC credit is awarded at approximately 8.5 BOINC points per Distributed.net stat unit.[11]

Participants who wish their Moo! Wrapper contributions to also count toward their Distributed.net team must separately link their Distributed.net ID in the Moo! Wrapper project preferences using the format [email protected].[1]

Project team / Sponsors

Moo! Wrapper was created and is maintained by Teemu Mannermaa, who joined the project on 20 April 2011 and released the initial v1.0 application on 1 May 2011.[1] Mannermaa holds the roles of Project Administrator, Project Developer, and Project Tester on the platform. As of May 2026 his account shows over 822 million credits earned.[10]

The project is community-funded and not affiliated with any academic or corporate sponsor. It operates in cooperation with Distributed.net, the originating network, which itself is a volunteer-run organisation founded in 1997.[3] The Moo! Wrapper server infrastructure was migrated to a new hosting provider in December 2018.[12]

The BOINC platform underpinning the project is developed by the Berkeley Open Infrastructure for Network Computing group at UC Berkeley, led by David P. Anderson, with funding from the National Science Foundation.[9]

Application version history

Version Release date Key changes
v1.0 1 May 2011 Initial release; GPU-only (CUDA and ATI Stream)
v1.1 8 May 2011 Fixed overactive hang detection; added core selection support
v1.2 18 May 2011 Fixed Linux Distributed.net ID handling; set default D.net ID scheme
v1.3 16 January 2012 Checkpoint fix; hang detection improvements; ATI/nVidia/CPU core separation
v1.4 6 September 2014 Added OpenCL, Android support; GPU detection improvements; single-GPU-per-task
v1.5 7 November 2018 Updated BOINC wrapper to v7.13.26016; updated dnetc to build 521 with AVX2 and IPv6 support

Results

As of 21 May 2026, the live Moo! Wrapper server reports the following statistics:[10]

  • Active users (recent credit): 1,178
  • Total registered users: 65,397
  • Active hosts (recent credit): 2,219
  • Total registered hosts: 541,926
  • Tasks in progress: 104,136
  • Current computing power: ~929,174 MFLOPS (~929 GFLOPS)
  • Current key rate: ~1,178,579 Mkeys/sec

Across the entire Distributed.net RC5-72 network (of which Moo! Wrapper is a significant contributor), approximately 5.9% of the 272 keyspace has been tested as of 2025.[5] The project began in December 2002 and has been running for over two decades without finding the key — reflecting the enormous size of the 72-bit search space, which is 256 times larger than the previously-solved RC5-64 challenge.[4]

Modern GPU hardware has dramatically accelerated the search. As of July 2025, GPUs represent nearly 89% of all completed work units in the RC5-72 project, with NVIDIA CUDA and AMD OpenCL clients completing more than 95% of all work units daily.[5] FPGA-based approaches have also been studied; a 2007 IEEE paper showed that an $80 FPGA board could achieve 145 Mkeys/sec at 10 W of power — roughly an order of magnitude more efficient than a general-purpose CPU of the era.[13]

Moo! Wrapper is listed as one of the officially supported projects in the Android BOINC application, broadening the contributing device base to smartphones and tablets.[14]

Scientific and technical papers

  • Anderson, D.P. (2019). "BOINC: A Platform for Volunteer Computing." arXiv preprint arXiv:1903.01699. PDF
  • Anderson, D.P. (2004). "BOINC: A System for Public-Resource Computing and Storage." 5th IEEE/ACM International Workshop on Grid Computing, Pittsburgh, PA.
  • Mota, L. et al. (2007). "Solving RC5 Challenges with Hardware – a Distributed.net Perspective." IEEE Conference on Field-Programmable Technology. doi:10.1109/FPT.2007.4380736}
  • Rivest, R.L. (1994). "The RC5 Encryption Algorithm." Fast Software Encryption (FSE 1994), Lecture Notes in Computer Science, vol. 1008. Springer. doi:10.1007/3-540-60590-8_7}

External links

References

  1. 1.0 1.1 1.2 1.3 1.4 (16 January 2012}).Application change history. Moo! Wrapper Project. Retrieved 21 May 2026}.
  2. 2.0 2.1 2.2 What is Moo! Wrapper?. Moo! Wrapper Project. Retrieved 21 May 2026}.
  3. 3.0 3.1 Project RC5. Distributed.net. Retrieved 21 May 2026}.
  4. 4.0 4.1 4.2 Pete Wilcock.(22 February 2021}).Distributed.net RC5-72 on Amazon Web Services. Retrieved 21 May 2026}.
  5. 5.0 5.1 5.2 5.3 Distributed.net. Wikipedia. Retrieved 21 May 2026}.
  6. RC5. Wikipedia. Retrieved 21 May 2026}.
  7. RSA Secret-Key Challenge. Wikipedia. Retrieved 21 May 2026}.
  8. distributed.net History & Timeline. Distributed.net. Retrieved 21 May 2026}.
  9. 9.0 9.1 David P. Anderson.(December 2018}).BOINC: A Platform for Volunteer Computing. Retrieved 21 May 2026}.
  10. 10.0 10.1 10.2 10.3 (21 May 2026}).Moo! Wrapper – Project Status. Moo! Wrapper Project. Retrieved 21 May 2026}.
  11. (2011}).Credit ratio discussion. Moo! Wrapper forums. Retrieved 21 May 2026}.
  12. (1 December 2018}).News: Server migration completed. Moo! Wrapper Project. Retrieved 21 May 2026}.
  13. (2007}).Solving RC5 Challenges with Hardware – a Distributed.net Perspective. IEEE Conference Publication. Retrieved 21 May 2026}.
  14. Berkeley Open Infrastructure for Network Computing. Wikipedia. Retrieved 21 May 2026}.