Programming Methodology Group

BFT - Practical Byzantine Fault Tolerance

This project is aimed at developing algorithms and implementation techniques to build practical Byzantine-fault-tolerant systems, that is, systems that work correctly even when some components are faulty and exhibit arbitrary behavior. We believe that these systems will be increasingly important in the future because malicious attacks and software errors are increasingly common and can cause faulty nodes to exhibit arbitrary behavior.

Publications | Software


Publications:

Copyright notice.

2012

“Automatic Reconfiguration for Large-Scale Reliable Storage Systems”
by Rodrigo Rodrigues, Barbara Liskov, Kathryn Chen, Moses Liskov, and David Schultz.
IEEE Transactions on Dependable and Secure Computing, vol. 9, no. 2, Mar. 2012, pp. 146-158.
Details. Download: pdf.

“Viewstamped replication revisited”
by Barbara Liskov and James Cowling.
MIT technical report MIT-CSAIL-TR-2012-021, 2012.
Details. Download: pdf.

2010

MPSS: Mobile Proactive Secret Sharing
by David Schultz, Barbara Liskov, and Moses Liskov.
ACM Transactions on Information and System Security (TISSEC), vol. 13, Dec. 2010, ACM.
Details. Download: pdf.

“From Viewstamped Replication to Byzantine Fault Tolerance”
by Barbara Liskov.
In Replication: Theory and Practice, 2010.
Details. Download: pdf.

2009

“Tolerating Latency in Replicated State Machines”
by Benjamin Wester, James Cowling, Edmund B. Nightingale, Peter M. Chen, Jason Flinn, and Barbara Liskov.
In Proceedings of the Sixth Symposium on Networked Systems Design and Implementation (NSDI), (Boston, Massachusetts), Apr. 2009.
Details. Download: pdf.

2008

“Detecting and Tolerating Byzantine Faults in Database Systems”
by Ben Vandiver.
Ph.D. dissertation, MIT, June 2008. Also as Technical Report MIT-CSAIL-TR-2008-040.
Details. Download: pdf.

“Computing Network Coordinates in the Presence of Byzantine Faults”
by You Zhou.
Masters thesis, MIT, (Cambridge, MA, USA), June 2008. Also as Technical Report MIT-CSAIL-TR-2009-015.
Details. Download: pdf.

2007

“Tolerating Byzantine Faults in Database Systems using Commit Barrier Scheduling”
by Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden.
In Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP), (Stevenson, Washington, USA), Oct. 2007.
Details. Download: pdf.

“HQ Replication”
by James Cowling.
Masters thesis, MIT, May 2007.
Details. Download: pdf.

“HQ Replication: Properties and Optimizations”
by James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira.
MIT Technical Report MIT-CSAIL-TR-2007-009, (Cambridge, MA), Feb. 2007.
Details. Download: pdf.

2006

“HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance”
by James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira.
In Proceedings of the Seventh Symposium on Operating Systems Design and Implementations (OSDI), (Seattle, Washington), Nov. 2006.
Details. Download: pdf, html.

“Tolerating Byzantine Faulty Clients in a Quorum System”
by Barbara Liskov and Rodrigo Rodrigues.
In Proceedings of the 26th IEEE International Confererence on Distributed Computing SYstems (ICDCS06), (Lisbon, Portugal), July 2006.
Details. Download: pdf .

2005

“Byzantine Clients Rendered Harmless”
by Barbara Liskov and Rodrigo Rodrigues.
MIT Technical Report MIT-CSAIL-TR-2005-047, (Cambridge, MA), July 2005.
Details. Download: pdf .

2004

“Reconfigurable Byzantine-Fault-Tolerant Atomic Memory”
by Rodrigo Rodrigues and Barbara Liskov.
In Twenty-Third Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), (St. John's, Newfoundland, Canada), July 2004. Brief Announcement.
Details. Download: ps, pdf .

“Authentication in a Reconfigurable Byzantine Fault Tolerant System”
by Kathryn Chen.
Masters thesis, MIT, July 2004.
Details. Download: pdf .

“Byzantine Modification Detection in Multicast Networks using Randomized Network Coding”
by Tracey Ho, Ben Leong, Ralf Koetter, Muriel Médard, Michelle Effros, and David Karger.
In Proceedings of the 2004 IEEE International Symposium on Information Theory (ISIT), June 2004.
Details. Download: pdf, ps.

“Byzantine Fault Tolerance in Long-Lived Systems”
by Rodrigo Rodrigues and Barbara Liskov.
In 2nd Bertinoro Workshop on Future Directions in Distributed Computing (FuDiCo II), (Bertinoro, Italy), June 2004. Also as Technical Report MIT-LCS-TR-962.
Details. Download: ps, pdf .

2003

“BASE: Using Abstraction to Improve Fault Tolerance”
by Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov.
ACM Transactions on Computer Systems (TOCS), vol. 21, no. 3, Aug. 2003.
Details. Download: abstract.

2002

“Practical Byzantine Fault Tolerance and Proactive Recovery”
by Miguel Castro and Barbara Liskov.
ACM Transactions on Computer Systems (TOCS), vol. 20, no. 4, Nov. 2002, pp. 398-461.
Details. Download: abstract.

“The Design of a Robust Peer-to-Peer System”
by Rodrigo Rodrigues, Barbara Liskov, and Liuba Shrira.
In 10th ACM SIGOPS European Workshop, (Saint Emilion, France), Sep. 2002.
Details. Download: ps, pdf, ppt.

2001

“BASE: Using Abstraction to Improve Fault Tolerance”
by Rodrigo Rodrigues, Miguel Castro, and Barbara Liskov.
In 18th Symposium on Operating Systems Principles (SOSP), (Banff, Canada), Oct. 2001. Best paper award.
Details. Download: ps, pdf, ppt.

“Byzantine fault tolerance can be fast”
by Miguel Castro and Barbara Liskov.
In International Conference on Dependable Systems and Networks (DSN), (Goteborg, Sweden), July 2001, pp. 513-518.
Details. Download: pdf.

“Combining Abstraction with Byzantine Fault Tolerance”
by Rodrigo Rodrigues.
Masters thesis, MIT, May 2001. Also as Technical Report MIT-LCS-TR-850.
Details. Download: ps, pdf .

“Using Abstraction to Improve Fault Tolerance”
by Miguel Castro, Rodrigo Rodrigues, and Barbara Liskov.
In 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII), (Elmau/Oberbayern, Germany), May 2001.
Details. Download: ps, pdf.

“Practical Byzantine Fault Tolerance”
by Miguel Castro.
Ph.D. dissertation, MIT, Jan. 2001. Also as Technical Report MIT-LCS-TR-817.
Details. Download: ps, pdf .

“A Scalable Byzantine Fault Tolerant Secure Domain Name System”
by Sarah Ahmed.
Masters thesis, MIT, Jan. 2001. Also as Technical Report MIT-LCS-TR-849.
Details. Download: pdf .

2000

“Proactive Recovery in a Byzantine-Fault-Tolerant System”
by Miguel Castro and Barbara Liskov.
In Fourth Symposium on Operating Systems Design and Implementation (OSDI), (San Diego, USA), Oct. 2000.
Details. Download: pdf, ps, html.

1999

“Authenticated Byzantine Fault Tolerance Without Public-Key Cryptography”
by Miguel Castro and Barbara Liskov.
MIT Technical Memo MIT-LCS-TM-589, June 1999.
Details. Download: ps, pdf .

“A Correctness Proof for a Practical Byzantine-Fault-Tolerant Replication Algorithm”
by Miguel Castro and Barbara Liskov.
MIT Technical Memo MIT-LCS-TM-590, June 1999.
Details. Download: ps, pdf .

“Practical Byzantine Fault Tolerance”
by Miguel Castro and Barbara Liskov.
In Third Symposium on Operating Systems Design and Implementation (OSDI), (New Orleans, Louisiana), Feb. 1999.
Details. Download: pdf, ps, html.

“Using a Byzantine-Fault-Tolerant Algorithm to Provide a Secure DNS”
by Zheng Yang.
Masters thesis, MIT, Jan. 1999.
Details. Download: ps, pdf .

Software:

The source code for our project is publicly available. The version provided here runs on Linux. We have made changes to support other operating systems, please contact us if you require one of these versions.

Update!

The BFT codebase has been recently modified to compile on modern operating systems, under gcc4. It now also uses the lighter-weight sfslite library, rather than SFS.

The updated source code, including sfslite-1.2 is available here.

Please contact James Cowling, or the original BFT/BASE authors below, with any problems or questions.

Original Distribution

The BFT code uses the SFS cryptography library. For convenience we provide the version of SFS that is used by BFT. Later versions have changed the crypto interface in a backward incompatible way.

Getting BFT and SFS

First, you must obtain the BFT/BASE source code from here.

Create a new directory where you will unpack the source code above.

% mkdir byz-code
% cd byz-code
% cp /tmp/base-bft-src-rh72.tar.gz .
% tar xvfz bft-base-src-rh72.tar.gz
 (...)
Download version 0.5 or 0.6 of SFS, and unpack it in the same directory. For convenience, we provide a local copy of SFS 0.6 here.
% cp /tmp/sfs-0.6.tar.gz .
% tar xvfz sfs-0.6.tar.gz
 (...)

How to build and run

Instructions on how to build BFT/BASE and SFS are provided in the README file in the top directory of the source code. If you have any problems or questions please contact Miguel Castro or Rodrigo Rodrigues.

License

The BFT/BASE code is released under the MIT license.


Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author s copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

This page was generated Tue Apr 9 20:09:11 2019 by bibtex2web

Programming Methodology Group