2021-08-28 17:41:27 -04:00
|
|
|
|
===========================================================
|
2021-10-18 06:56:45 -04:00
|
|
|
|
{% trans -%}20 Years of Privacy: A Brief History of I2P{%- endtrans %}
|
2021-08-28 17:41:27 -04:00
|
|
|
|
===========================================================
|
|
|
|
|
|
|
|
|
|
.. meta::
|
|
|
|
|
:author: sadie
|
|
|
|
|
:date: 2021-08-28
|
|
|
|
|
:category: general
|
|
|
|
|
:excerpt: {% trans %}A history of I2P As We Know It{% endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}
|
|
|
|
|
Invisibility is the best defense: building an internet within an internet
|
|
|
|
|
{%- endtrans %}
|
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
{% trans -%}I believe most people want this technology so they can express
|
|
|
|
|
themselves freely. It’s a comfortable feeling when you know you can
|
|
|
|
|
do that. At the same time we can conquer some of the problems seen
|
|
|
|
|
within the Internet by changing the way security and privacy is
|
|
|
|
|
viewed, as well as the extent to what it is valued.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% trans -%}In October 2001, 0x90 ( Lance James) had a dream. It started as a
|
|
|
|
|
“desire for instant communication with other Freenet users to talk about
|
|
|
|
|
Freenet issues, and exchange Freenet keys while still maintaining
|
|
|
|
|
anonymity, privacy and security.” It was called IIP — the Invisible IRC
|
|
|
|
|
Project.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. compound::
|
|
|
|
|
.. image:: /_static/images/history/invisibleirc_banner.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
.. image:: /_static/images/history/invisibleirc.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
|
|
|
|
|
{% trans -%}The Invisible IRC Project was based on an ideal and framework behind The
|
|
|
|
|
InvisibleNet:{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In an interview from 2002, 0x90 described the project:{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}“InvisibleNet is a research & development driven organization whose main
|
|
|
|
|
focus is the innovation of intelligent network technology. Our goal is
|
|
|
|
|
to provide the highest standards in security and privacy on the widely
|
|
|
|
|
used, yet notoriously insecure Internet."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"The InvisibleNet team is comprised of a talented group of developers and
|
|
|
|
|
architects entirely dedicated to providing its users with both
|
|
|
|
|
convenience and the very best in secure communication."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"Our technological ideals are reflected in the implementation of a
|
|
|
|
|
framework that is solid in design, and transparent in its application."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"Here at InvisibleNet we strive towards the greatest level of quality
|
|
|
|
|
possible by keeping all areas of our research & development open and
|
|
|
|
|
available to the public for peer review, feedback, suggestions and new
|
|
|
|
|
ideas.”{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"The Invisible Internet Project: Defined as the “New Internet”.
|
|
|
|
|
Peer 2 Peer Internet. Using your peers to protect you. It is a
|
|
|
|
|
similar concept to the Invisible IRC Project, with its design as our
|
|
|
|
|
test model. We plan to re-design the Internet by taking it a step
|
|
|
|
|
further and having security and privacy be first priority."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"The Invisible Internet Project or Protocol will be utilizing the
|
|
|
|
|
tests and research/development concepts of the Invisible IRC Project
|
|
|
|
|
to give us the scalability that we need and leverage this to take it
|
|
|
|
|
to the next level."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}"This, in essence will be an impenetrable neural-network, that is
|
|
|
|
|
self-driven, self-defensed, and completely seamless to already
|
|
|
|
|
applied protocols, specifically client to server (or agents as I call
|
|
|
|
|
them). It will be THE next transport layer, a layer on top of the
|
|
|
|
|
notoriously insecure Internet, to deliver full anonymity, privacy,
|
|
|
|
|
and security at the highest level possible. Decentralized and peer to
|
|
|
|
|
peer Internet, by the way, means no more worrying about your ISP
|
|
|
|
|
controlling your traffic. This will allow you to do seamless
|
|
|
|
|
activities and change the way we look at security and even the
|
|
|
|
|
Internet, utilizing public key cryptography, IP steganography, and
|
|
|
|
|
message authentication. The Internet that should have been, will be
|
|
|
|
|
soon."{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. compound::
|
|
|
|
|
.. image:: /_static/images/history/invisiblenet.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
|
|
|
|
|
| {% trans -%}All citations and quotes are from the interviews found here:{%- endtrans %}
|
|
|
|
|
| http://invisibleip.sourceforge.net/iip/mediaDCInterview1.php
|
|
|
|
|
| http://invisibleip.sourceforge.net/iip/mediaDCInterview2.php
|
|
|
|
|
| http://invisibleip.sourceforge.net/index.php
|
|
|
|
|
|
|
|
|
|
{% trans -%}By 2003, several other similar projects had started, the largest being
|
|
|
|
|
Freenet, GNUNet, and Tor. All of these projects had broad goals to
|
|
|
|
|
encrypt and anonymize a variety of traffic. For IIP, it became clear
|
|
|
|
|
that IRC alone was not a big-enough target. What was needed was an
|
|
|
|
|
anonymizing layer for all protocols. IIP by now was also being called
|
|
|
|
|
“InvisibleNet”.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In early 2003, a new anonymous developer, “jrandom” joined the project.
|
|
|
|
|
His explicit goal was to broaden the charter of IIP.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}jrandom wished to rewrite the IIP code base in Java, a language he was
|
|
|
|
|
familiar with, and the same language Freenet was using. He also wished
|
|
|
|
|
to redesign the IIP protocols based on recent papers and the early
|
|
|
|
|
design decisions that Tor and Freenet were making. Some of these
|
|
|
|
|
concepts and naming conventions, such as “onion routing”, were modified
|
|
|
|
|
to become “garlic routing”. For several of the design decisions, jrandom
|
|
|
|
|
made different choices than Tor did, including selecting different
|
|
|
|
|
cryptographic primitives in a number of places. Many (but not all) of
|
|
|
|
|
these choices turned out quite well. For some others, such as using
|
|
|
|
|
unidirectional tunnels rather than Tor’s bidirectional tunnels, the
|
|
|
|
|
benefits and trade-offs are still not well-studied.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}jrandom also set out a clear vision for the architecture of the code. It
|
|
|
|
|
would be a client/server model, with the server (i.e. the router)
|
|
|
|
|
isolated from any “client” protocols. Clients such as web browsers, web
|
|
|
|
|
servers, IRC clients and servers, and others, would communicate through
|
|
|
|
|
the router using I2CP, the I2P Client Protocol.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}jrandom also had strong opinions on the direction of the project and its
|
|
|
|
|
philosophy. He was strongly committed to open source and free software.
|
|
|
|
|
He explicitly set a goal of protection from organizations with
|
|
|
|
|
“unlimited financial and political resources.”{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}By late summer 2003, jrandom had taken control of the project, and
|
|
|
|
|
renamed it the Invisible Internet Project or “I2P”. He published a
|
|
|
|
|
document outlining the philosophy of the project, and placed its
|
|
|
|
|
technical goals and design in the context of mixnets and anonymizing
|
|
|
|
|
layers. He also published the specification of two protocols (I2CP and
|
|
|
|
|
I2NP) and their underlying data structures, that formed the basis of the
|
|
|
|
|
network I2P uses today. Lance (“nop”) was last seen in a project meeting
|
|
|
|
|
on November 11, 2003.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. image:: /_static/images/history/bw1.png
|
|
|
|
|
|
|
|
|
|
https://www.bloomberg.com/news/articles/2003-09-14/the-underground-internet
|
|
|
|
|
|
|
|
|
|
.. image:: /_static/images/history/bw2.png
|
|
|
|
|
|
|
|
|
|
{% trans -%}By fall 2003, I2P, Freenet, and Tor were rapidly developing. Business
|
|
|
|
|
Week published an article on “The Underground Internet” which referenced
|
|
|
|
|
InvisibleNet and discussed “darknets” extensively. jrandom released I2P
|
|
|
|
|
version 0.2 on November 1, 2003, and continued rapid releases for the
|
|
|
|
|
next 3 years. He maintained regular weekly meetings and status notes
|
|
|
|
|
during this time. Several popular services and “respites” emerged during
|
|
|
|
|
this time. Auto updates via clearnet HTTP became available in 2004.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Through 2004 and 2005, router development continued, and several
|
|
|
|
|
“clients” or applications were added to the I2P package. “Mihi” wrote
|
|
|
|
|
the first streaming protocol implementation and the i2ptunnel interface
|
|
|
|
|
for configuring and starting client tunnels. “Susi” wrote the web mail
|
|
|
|
|
and address book applications SusiMail and SusiDNS. Many people worked
|
|
|
|
|
on the router console web interface. A bridge to make it easier for
|
|
|
|
|
non-I2P clients to communicate over I2P, called “SAM” (Simple Anonymous
|
|
|
|
|
Messaging) was added.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
| {% trans -%}In February 2005, zzz installed I2P for the first time.{%- endtrans %}
|
|
|
|
|
| {% trans -%}Anonymity projects were in the news. After surveying the field, he
|
|
|
|
|
installed Freenet, and found it ambiguous, and difficult to explore.
|
|
|
|
|
Not only that, it was very resource heavy and it was difficult to get
|
|
|
|
|
anything to load. Tor and I2P were the other options, and he tried
|
|
|
|
|
I2P.{% endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}zzz had no preconceived plans to contribute to the project, and had
|
|
|
|
|
never written a line of Java. He had maybe used IRC once. At this time,
|
|
|
|
|
I2P was at version 0.5, with maybe a thousand users and three hard-coded
|
|
|
|
|
floodfills. Forum.i2p and postman’s tracker were up and running at the
|
|
|
|
|
time, and weekly meetings and status notes, and releases every couple of
|
|
|
|
|
week were happening.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}By summer 2005, zzz had set up two websites. The first was zzz.i2p,
|
|
|
|
|
which over the years became a central resource for I2P development, and
|
|
|
|
|
still is. The second was stats.i2p, the first site to gather statistics
|
|
|
|
|
on I2P network performance and present graphs on both the network and
|
|
|
|
|
individual routers. While the individual router statistics eventually
|
|
|
|
|
had to be shut down due to the tremendous growth of the network, the
|
|
|
|
|
overall performance graphs remain. We are not sure that he ever planned
|
|
|
|
|
to become the release manger for almost 2 decades, but we are happy he
|
|
|
|
|
did. The project has not only stayed active, it has thrived and scaled
|
|
|
|
|
to the demands of its growth.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. compound::
|
|
|
|
|
.. image:: /_static/images/history/statsi2p.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
|
|
|
|
|
{% trans -%}On July 27, 2005, jrandom released I2P version 0.6, including an
|
|
|
|
|
innovative new UDP transport protocol he designed called “SSU”, for
|
|
|
|
|
Secure Semi-reliable UDP. It contained features for IP discovery and
|
|
|
|
|
firewall traversal.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In September 2005, jrandom bundled “Syndie”, his new high-latency
|
|
|
|
|
anonymous messaging system. In October 2005, jrandom ported Snark, a
|
|
|
|
|
Java BitTorrent client, to become an I2P application and bundled it with
|
|
|
|
|
the I2P package. This completed the collection of client applications
|
|
|
|
|
that are still bundled with I2P today.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In late 2005 and early 2006, jrandom redesigned the way that I2P built
|
|
|
|
|
tunnels. This was a major effort that was done to increase the security
|
|
|
|
|
of the tunnel building, which is crucial to maintain anonymity and
|
|
|
|
|
resist attacks. He worked closely with the Freenet developers, including
|
|
|
|
|
“Toad”, on this design. The new build protocol required new I2NP
|
|
|
|
|
messages and a hard cut-over or “flag day”. These changes were released
|
|
|
|
|
in version 0.6.1.10 on February 16, 2006. This is significant as it is
|
|
|
|
|
the last flag day I2P has had. While, in practice, an 0.6.1.10 router
|
|
|
|
|
would not work well, if at all, in today’s network, we are, technically
|
|
|
|
|
speaking, backwards-compatible with this ten-year-old version today.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}By early 2006, the I2P software was at least feature-complete, but it
|
|
|
|
|
was still not widely-known. jrandom’s view was that it shouldn’t be
|
|
|
|
|
marketed publicly until it was near-perfect, and labeled as version 1.0.
|
|
|
|
|
The network had perhaps a thousand users at the time. Project members
|
|
|
|
|
were discouraged from talking about it online, and the website
|
|
|
|
|
(`i2p.net <http://i2p.net>`__) was unpolished and incomplete.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}On July 27, 2006, jrandom released I2P version 0.6.1.23, including an
|
|
|
|
|
innovative new TCP transport protocol he designed called “NTCP”, for
|
|
|
|
|
new-IO-based TCP. It used Java’s new IO library for efficient handling
|
|
|
|
|
of large numbers of TCP connections.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In late 2006, jrandom turned his focus to Syndie. He came to see it as
|
|
|
|
|
his top priority, and the “killer application” for I2P. Highly secure
|
|
|
|
|
and almost unusable, it delayed messages for up to two days before
|
|
|
|
|
delivery to resist traffic analysis. Later in 2006, he stopped work on
|
|
|
|
|
the bundled Syndie application and started a new, incompatible,
|
|
|
|
|
standalone messaging application. This application was, confusingly,
|
|
|
|
|
also called “Syndie”. The new Syndie was a large and complex
|
|
|
|
|
development, and it was essentially a one-man project.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}From late 2006 into 2007, core I2P development and releases slowed
|
|
|
|
|
dramatically. From almost 30 releases in 2005 and 13 in the first half
|
|
|
|
|
of 2006, there were only 5 in the second half of 2006 and only 4 in all
|
|
|
|
|
of 2007. During this time, zzz and a developer named Complication had
|
|
|
|
|
source code commit privileges and were making changes, but their
|
|
|
|
|
understanding of the code base was limited. zzz worked, for example, on
|
|
|
|
|
improving i2psnark, fixing bugs, and redesigning the strategy for
|
|
|
|
|
anticipatory tunnel building. But there was a lot more that needed to be
|
|
|
|
|
done. Complication and zzz did what they could, and they wrote the code
|
|
|
|
|
for almost all the changes in the four 2007 releases
|
|
|
|
|
(0.6.1.27–0.6.1.30). By this time, jrandom was providing very little
|
|
|
|
|
guidance, code review, or direction for the project.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}It wasn’t apparent at the time, but the project was in trouble.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}jrandom had almost stopped working on the core I2P router and
|
|
|
|
|
applications. Even the new Syndie, which he had declared as far more
|
|
|
|
|
important than I2P itself, languished. After regular releases through
|
|
|
|
|
March 2007, his next Syndie release, 1.100a, was August 25, 2007. All
|
|
|
|
|
I2P releases were required to be signed by jrandom’s key, and he built
|
|
|
|
|
and signed his last release, 0.6.1.30, on October 7, 2007.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In November 2007, disaster struck. Complication and zzz received a
|
|
|
|
|
cryptic message from jrandom, that he would have to take time off from
|
|
|
|
|
both Syndie and I2P development for a year or more. He expected that he
|
|
|
|
|
would still be available to sign releases, but was willing to pass the
|
|
|
|
|
release signing key to somebody else. Complication and zzz immediately
|
|
|
|
|
replied with a request for the release key and other credentials, such
|
|
|
|
|
as access to the website, mailing list, CVS administration, and others.
|
|
|
|
|
Unfortunately, they never heard from jrandom again.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Late 2007 and early 2008, they awaited jrandom’s response, and wondered
|
|
|
|
|
what to do next. However, all of the project infrastructure remained
|
|
|
|
|
active, so it didn’t seem to be an immediate crisis. They knew, however,
|
|
|
|
|
that without the release key or website access, they would have to sign
|
|
|
|
|
with new keys, host the files on a new website, and require everybody to
|
|
|
|
|
manually update since their keys wouldn’t be recognized.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}The second stage of the disaster happened on January 13, 2008. The
|
|
|
|
|
hosting company for almost all `i2p.net <http://i2p.net>`__ servers
|
|
|
|
|
suffered a power outage, and they did not fully return to service. Only
|
|
|
|
|
jrandom had the credentials required to restore service. In addition,
|
|
|
|
|
the centralized CVS source control appeared to be down, so five years of
|
|
|
|
|
source control history appeared to be lost. Luckily, the CVS server was
|
|
|
|
|
up, only the name server for it was down. The full contents of the CVS
|
|
|
|
|
archive was quickly downloaded.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
| {% trans -%}Complication, welterde, and zzz quickly made a number of decisions to
|
|
|
|
|
get the project back up and running. Welterde started a new website at
|
|
|
|
|
`i2p2.de <http://i2p2.de>`__. I2P needed to move to a decentralized
|
|
|
|
|
source code control system. They tested bazaar and that did not work
|
2021-08-28 19:00:32 -04:00
|
|
|
|
well over I2P. Git was just getting started. jrandom had used monotone
|
2021-08-28 17:41:27 -04:00
|
|
|
|
for Syndie and liked its security properties, and it worked well over
|
|
|
|
|
I2P, so it was selected.{%- endtrans %}
|
|
|
|
|
| {% trans -%}Several people set up new services. The next release, 0.6.1.31, was
|
|
|
|
|
signed by Complication and required a manual upgrade. It was released
|
|
|
|
|
on February 10, 2008.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}The project realized that even though it claimed to be totally
|
|
|
|
|
decentralized, it actually depended on a number of centralized
|
|
|
|
|
resources, above all, on jrandom. Work was done throughout 2008 to
|
|
|
|
|
decentralize the project, and distribute roles to a number of people.
|
|
|
|
|
Additionally, it was realized that development had essentially stalled
|
|
|
|
|
in 2007, because jrandom had stopped working on it, but had not
|
|
|
|
|
delegated to other developers. Nobody had an overall understanding of
|
|
|
|
|
the code base.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Complication continued to sign the releases through mid-2009, but his
|
|
|
|
|
contributions declined as he focused on activism and other projects.
|
|
|
|
|
Starting with release 0.7.6 on July 31, 2009, zzz would sign the next 49
|
|
|
|
|
releases.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In December 2008, zzz attended his first CCC, 25C3 in Berlin, and met
|
|
|
|
|
other I2P project team members for the first time, including hottuna and
|
|
|
|
|
welterde. The experience was overwhelming, and also humbling, as he
|
|
|
|
|
struggled to explain I2P to others or answer even basic questions about
|
|
|
|
|
its design and use of cryptography.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}By mid-2009, zzz had come to understand the code base much better. Far
|
|
|
|
|
from being complete or perfect, it was filled with problems and
|
|
|
|
|
scalability issues. In 2009 the project experienced more network growth
|
|
|
|
|
due to its anonymizing properties as well as its circumvention
|
|
|
|
|
abilities. Participants appeared who were beginning to adopt the network
|
|
|
|
|
for reasons like censorship and clearnet issues like blocking of popular
|
|
|
|
|
services. For development gains, in-net auto updates became available
|
|
|
|
|
for the software.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. image:: /_static/images/history/propaganda.jpeg
|
|
|
|
|
|
|
|
|
|
{% trans -%}July 2010 zzz briefly presented I2P at the end of Adrian Hong’s
|
|
|
|
|
presentation at HOPE XXXX. Adrian talked about how tech has helped
|
|
|
|
|
expose human rights violations, and the need for defensive tools for
|
|
|
|
|
activists. He urged that we all be ambassadors for all tech, stay on top
|
|
|
|
|
of new tech, and keep the barrier low and educate people about how to
|
|
|
|
|
use the tool we create.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}He also talked about how we need many options for people to use, and
|
|
|
|
|
asked how do we make it easier to support human rights, freedom of
|
|
|
|
|
expression?{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}At the end of the talk, zzz was invited on stage to introduce I2P and
|
|
|
|
|
give an overview of what the project was about. The same weekend, it was
|
|
|
|
|
pointed out that the I2P documentation was not in great shape.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In Fall 2010, zzz declared a moratorium on I2P development until the
|
|
|
|
|
website documentation was complete and accurate. It took 3 months to get
|
|
|
|
|
it done.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Beginning in 2010, until COVID restrictions were put in place, zzz, ech,
|
|
|
|
|
hottuna, and other I2P contributors have attended CCC ( Chaos
|
|
|
|
|
Communications Congress) every year. Over the years, meeh, Zab, Sadie,
|
|
|
|
|
LazyGravy, KYTV, IDK and others have made the trip to Germany to share
|
|
|
|
|
tables with other projects and celebrate the end of a year of releases.
|
|
|
|
|
The project looks forward to one day being able to meet up again and
|
|
|
|
|
have an in-person yearly roadmap meeting.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Anoncoin, a digital cryptocurrency that focuses on privacy and anonymity
|
|
|
|
|
for its users was created in 2013. It was the first coin that provided
|
|
|
|
|
built-in support for I2P, as well as Tor that makes it impossible to
|
|
|
|
|
determine the IP address of the user. The developers, including meeh,
|
|
|
|
|
also ran organizations like Privacy Solutions, and provided infrastructure
|
|
|
|
|
support to the I2P network by running services like outproxies and
|
|
|
|
|
reseed servers.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}I2PBote development started to take off again in 2014 when str4d began
|
|
|
|
|
contributing to the project. Bote is a server-less email client — it
|
|
|
|
|
stores email in a `distributed hash
|
|
|
|
|
table <http://en.wikipedia.org/wiki/Distributed_hash_table>`__. Email is
|
|
|
|
|
“automatically encrypted and digitally signed, which ensures no one but
|
|
|
|
|
the intended recipient can read the email, and third parties cannot
|
|
|
|
|
forge them.” ( https://i2pbote.xyz/). The project has existed since
|
|
|
|
|
2009.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. compound::
|
|
|
|
|
.. image:: /_static/images/history/bote.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
|
|
|
|
|
> I2PBote screenshot Credit: AceBarry
|
|
|
|
|
|
|
|
|
|
{% trans -%}At Real World Crypto that year, zzz, psi and str4d began to talk about
|
|
|
|
|
and review the plan to update I2P’s cryptography. The same year, the
|
|
|
|
|
project was awarded a $5k donation from Duck Duck Go. Lavabit,
|
|
|
|
|
SecureDrop, RiseUp and Mailpile also received donations for supporting
|
|
|
|
|
better trust and privacy online.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}By late 2014 most new signing crypto was complete, including ECDSA and
|
|
|
|
|
EdDSA. New destination crypto was available; but new router info crypto
|
|
|
|
|
needed to wait a year for the network to upgrade sufficiently.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}During the early part of 2015, zzz posted to Twitter that it would be
|
|
|
|
|
great to have a mini conference for I2P. In Spring, it was decided that
|
|
|
|
|
I2PCon would take place that August over the course of a weekend.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Hottuna and Sadie organized most of the details, getting graphic assets
|
|
|
|
|
created, posters printed and a banner made for the podium. Nick at
|
|
|
|
|
Hacklab, where the event would take place, helped with making sure the
|
|
|
|
|
space was ready for the event. Sadie reached out to the local infosec
|
|
|
|
|
community and helped secure guest speakers as well. The event happened
|
|
|
|
|
on one of the hottest weekends of the Summer, with attendees arriving
|
|
|
|
|
from America and Europe. The I2P community did an amazing job of
|
|
|
|
|
supporting the event by postering, giving talks, and spreading the word
|
|
|
|
|
in forums and on social media. The talks can be viewed on KYTV’s YouTube
|
|
|
|
|
Channel https://www.youtube.com/channel/UCZfD2Dk6POE-VU8DOqW7VVw{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. compound::
|
|
|
|
|
.. image:: /_static/images/history/i2pcon1.png
|
|
|
|
|
:width: 100%
|
|
|
|
|
|
|
|
|
|
{% trans -%}In January 2016 at Real World Crypto Stanford — str4d gave a talk on the
|
|
|
|
|
crypto migration progress and future plans for the project. zzz and
|
|
|
|
|
others would continue weekly meetings to plan the migration over the
|
|
|
|
|
next few years.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}NTCP2 was implemented in 2018, in release 0.9.36. It was disabled by
|
|
|
|
|
default so that it could be tested. It was enabled in 0.9.37. NTCP1 was
|
|
|
|
|
disabled in 0.9.40.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}The new I2P transport protocol provides effective resistance against
|
|
|
|
|
DPI censorship. It also results in reduced CPU load because of the
|
|
|
|
|
faster, modern cryptography used. It makes I2P more likely to run on
|
|
|
|
|
low-end devices, such as smartphones and home routers. Both major I2P
|
|
|
|
|
implementations have full support for NTCP2 and it make NTCP2
|
|
|
|
|
available for use starting with version 0.9.36 (Java) and 2.20 (i2pd,
|
|
|
|
|
C++).{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}The complete implementation details can be read here
|
|
|
|
|
https://geti2p.net/en/blog/post/2018/08/20/NTCP2{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}0.9.39 included extensive changes for new network database types
|
|
|
|
|
(proposal 123). The i2pcontrol plugin was bundled as a web-app to support
|
|
|
|
|
development of RPC applications.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}In 2019, the team decided to attend more conferences. That year IDK and
|
|
|
|
|
zzz attended DefCon, and IDK gave a workshop on I2P application
|
|
|
|
|
development. At Monero Village, zzz gave a talk called I2P for
|
|
|
|
|
Cryptocurrency Developers.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Late that year, Sadie and IDK attended Our Networks in Toronto, where
|
|
|
|
|
IDK gave a lightning talk about I2P.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Sadie attended RightsCon in Tunis and the Internet Freedom Festival in
|
|
|
|
|
Valencia to meet with NGO’s and Human Right Defenders. Thanks to the the
|
|
|
|
|
connections we made, the project received grants for usability and
|
|
|
|
|
accessibility support from Open Tech Fund, and most recently Internews.
|
|
|
|
|
This will ensure more user friendly onboarding, UX, and information
|
|
|
|
|
architecture improvements to support the growing interest in the
|
|
|
|
|
network. It will also support specific tooling to help in-need users
|
|
|
|
|
with specific risk surfaces through user research.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. image:: /_static/images/history/phong.png
|
|
|
|
|
|
|
|
|
|
{% trans -%}That Summer, Hoàng Nguyên Phong had his research into I2P censorship
|
|
|
|
|
accepted too FOCI at USENIX in Santa Clara. Sadie had supported the
|
|
|
|
|
research and they attended together. I2P Metrics was created during this
|
|
|
|
|
time https://i2p-metrics.np-tokumei.net/, and well as research into more
|
|
|
|
|
resistant reseed servers for the I2P network
|
|
|
|
|
https://homepage.np-tokumei.net/post/notes-i2p-reseed-over-cloudflare/.
|
|
|
|
|
You can read the research report here
|
|
|
|
|
https://homepage.np-tokumei.net/post/notes-otf-wrapup-blogpost/.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}At CCC that year, the decision was made to migrate from Monotone too
|
|
|
|
|
GitLab. The project was one of the last to use Monotone, and it was time
|
|
|
|
|
to prepare to move on. IDK would spend 2020 ensuring the process was as
|
|
|
|
|
smooth as it could be. The pandemic would result in the team not being
|
|
|
|
|
able to see each other that year to celebrate the ( mostly) smooth move
|
|
|
|
|
to Gitlab. On December 10. 2020, the project switched off the old mtn
|
|
|
|
|
i2p.i2p branch, and moved the development of the core Java I2P libraries
|
|
|
|
|
from Monotone to Git officially.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Congratulations and thanks to everyone who helped in the git
|
|
|
|
|
migration, especially zzz, eche|on, nextloop, and our site mirror
|
|
|
|
|
operators! While some of us will miss Monotone, it has become a
|
|
|
|
|
barrier for new and existing participants in I2P development and
|
|
|
|
|
we’re excited to join the world of developers using Git to manage
|
|
|
|
|
their distributed projects.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
https://geti2p.net/en/blog/post/2020/12/10/Hello-git-goodbye-mtn
|
|
|
|
|
|
|
|
|
|
{% trans -%}0.9.47 enabled the new end-to-end encryption protocol (proposal 144) by
|
|
|
|
|
default for some services. A Sybil analysis and blocking tool was also
|
|
|
|
|
now enabled by default. 0.9.48 enabled the new end-to-end encryption
|
|
|
|
|
protocol (proposal 144) for most services. Preliminary support was added
|
|
|
|
|
for new tunnel build message encryption (proposal 152). There were
|
|
|
|
|
significant performance improvements throughout the router.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}0.9.49 was the release that brought faster crypto. The I2P network
|
|
|
|
|
became faster and more secure. Improvements and fixes for the SSU (UDP)
|
|
|
|
|
transport resulted in faster speeds. The release also started the
|
|
|
|
|
migration to new, faster ECIES-X25519 encryption for routers. The
|
|
|
|
|
project had been working on the specifications and protocols for new
|
|
|
|
|
encryption for several years, and was getting close to the end of it.
|
|
|
|
|
The migration would take several releases to complete.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}To minimize disruption, only new installs and a very small percentage of
|
|
|
|
|
existing installs (randomly selected at restart) would be using the new
|
|
|
|
|
encryption.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}The project had “rekeyed” the network twice before, when changing the
|
|
|
|
|
default signature type, but this was the first time it had changed the
|
|
|
|
|
default encryption type. 0.9.50 enabled DNS over HTTPS for reseeding to
|
|
|
|
|
protect users from passive DNS snooping. There were numerous fixes and
|
|
|
|
|
improvements for IPv6 addresses, including new UPnP support.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
.. _31b4:
|
|
|
|
|
|
|
|
|
|
{% trans -%}1.5.0 — The early anniversary release because it is so good!{%- endtrans %}
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
{% trans -%}Yes, that’s right, after 9 years of 0.9.x releases, we are going
|
|
|
|
|
straight from 0.9.50 to 1.5.0. This does not signify a major API
|
|
|
|
|
change, or a claim that development is now complete. It is simply a
|
|
|
|
|
recognition of almost 20 years of work to provide anonymity and
|
|
|
|
|
security for our users.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}This release finishes implementation of smaller tunnel build messages
|
|
|
|
|
to reduce bandwidth. We continue the transition of the network’s
|
|
|
|
|
routers to X25519 encryption. Of course there are also numerous bug
|
|
|
|
|
fixes and performance improvements.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}As usual, we recommend that you update to this release. The best way
|
|
|
|
|
to maintain security and help the network is to run the latest
|
|
|
|
|
release.{%- endtrans %}
|
|
|
|
|
|
|
|
|
|
{% trans -%}Congratulations team. Let’s do another 20.{%- endtrans %}
|