philosophy.texi 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. @cindex Philosophy
  2. @node Philosophy
  3. @chapter Philosophy
  4. @c NOTE: We should probably re-use some of the images lynX created
  5. @c for secushare, showing some of the relations and functionalities
  6. @c of GNUnet.
  7. The primary goal of the GNUnet project is to provide a reliable, open,
  8. non-discriminating and censorship-resistant system for information
  9. exchange. We value free speech above state interests and intellectual
  10. monopoly. GNUnet's long-term goal is to serve as a development
  11. platform for the next generation of Internet protocols.
  12. GNUnet is an anarchistic network. Participants are encouraged to
  13. contribute at least as much resources (storage, bandwidth) to the network
  14. as they consume, so that their participation does not have a negative
  15. impact on other users.
  16. @menu
  17. * Design Principles::
  18. * Privacy and Anonymity::
  19. * Practicality::
  20. @end menu
  21. @cindex Design Principles
  22. @node Design Principles
  23. @section Design Principles
  24. These are the GNUnet design principles, in order of importance:
  25. @itemize
  26. @item GNUnet must be implemented as
  27. @uref{https://www.gnu.org/philosophy/free-sw.html, Free Software} ---
  28. This means that you have the four essential freedoms: to run
  29. the program, to study and change the program in source code form,
  30. to redistribute exact copies, and to distribute modified versions.
  31. (@uref{https://www.gnu.org/philosophy/free-sw.html}).
  32. @item GNUnet must minimize the amount of personally identifiable information exposed.
  33. @item GNUnet must be fully distributed and resilient to external attacks and rogue participants.
  34. @item GNUnet must be self-organizing and not depend on administrators or centralized infrastructure.
  35. @item GNUnet must inform the user which other participants have to be trusted when establishing private communications.
  36. @item GNUnet must be open and permit new peers to join.
  37. @item GNUnet must support a diverse range of applications and devices.
  38. @item GNUnet must use compartmentalization to protect sensitive information.
  39. @item The GNUnet architecture must be resource efficient.
  40. @item GNUnet must provide incentives for peers to contribute more resources than they consume.
  41. @end itemize
  42. @cindex Privacy and Anonymity
  43. @node Privacy and Anonymity
  44. @section Privacy and Anonymity
  45. The GNUnet protocols minimize the leakage of personally identifiable
  46. information of participants and do not allow adversaries to control,
  47. track, monitor or censor users activities. The GNUnet protocols also
  48. make it as hard as possible to disrupt operations by participating in
  49. the network with malicious intent.
  50. Analyzing participant's activities becomes more difficult as the
  51. number of peers and applications that generate traffic on the network
  52. grows, even if the additional traffic generated is not related to
  53. anonymous communication. This is one of the reasons why GNUnet is
  54. developed as a peer-to-peer framework where many applications share
  55. the lower layers of an increasingly complex protocol stack. The GNUnet
  56. architecture encourages many different forms of peer-to-peer
  57. applications.
  58. @cindex Practicality
  59. @node Practicality
  60. @section Practicality
  61. Whereever possible GNUnet allows the peer to adjust its operations and
  62. functionalities to specific use cases. A GNUnet peer running on a
  63. mobile device with limited battery for example might choose not to
  64. relay traffic for other participants.
  65. For certain applications like file-sharing GNUnet allows participants
  66. to trade degrees of anonymity in exchange for increased
  67. efficiency. However, it is not possible for any user's efficiency
  68. requirements to compromise the anonymity of any other user.