 
Summary: Project Description
We propose to develop the theoretical and engineering basis for the trustless dissemination
of software. We seek to develop the means to distribute and execute software among literally
thousands of networked computers without compromising their integrity, while minimizing the need
for trust among participants and maximizing the usage of their collective computational resources.
To make this possible, we propose to undertake a comprehensive investigation into the use of
certifying compilers to produce eÆcient machine code that is equipped with a checkable certicate
of compliance with the security, integrity, and privacy requirements necessary for its safe execution
on unknown computers. We propose not only to develop the enabling technology, but also to build
a demonstration system that allows developers to deploy, rapidly and reliably, applications that
make use of the idle computing and storage resources of a network of computers, perhaps spanning
the entire Internet.
The general concept of making productive use of idle computational resources has been around
for decades. With the advent of the Internet, the sum total of all idle resources is thought to be
many times greater than the fastest supercomputers. Therefore, the prospect of harnessing this
power has attracted an increasing number of researchers, and in recent years some substantial
progress has been made. Many of the early successful applications have been devoted to solving
basic problems in number theory and cryptography, such as computing the digits of Pi [3, 44],
computing the factors of large numbers [53], and nding large primes [15]. In just the last three
years, however, the range of problems being attacked has been expanding rapidly, to include global
