# Snowflake

> software to circumvent internet censorship

**Wikidata**: [Q114880973](https://www.wikidata.org/wiki/Q114880973)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Snowflake_(software))  
**Source**: https://4ort.xyz/entity/snowflake

## Summary
Snowflake is a software application and browser extension designed to circumvent internet censorship. It functions as a pluggable transport, utilizing temporary WebRTC proxies to allow users to access the open internet in restricted regions. The system is written in the Go programming language and is licensed under the 3-clause BSD License.

## Key Facts
- **Classification:** Snowflake is an instance of software and a browser extension.
- **Primary Function:** It is used to bypass internet censorship (circumvention).
- **Technical Mechanism:** The system operates using temporary WebRTC proxies.
- **Programming Language:** It is developed using the Go programming language (specifically noted for the client/proxy components) and JavaScript (indicated by the WebExtension implementation).
- **License:** The software is distributed under the 3-clause BSD License.
- **Repository:** The source code is hosted by the Tor Project at `gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake`.
- **Browser Integration:** It is available for installation via Mozilla Firefox (ID: `{b11bea1f-a888-4332-8d8a-cec2be7d24b9}`) and Google Chrome (ID: `mafpmfcccpbjnhfhjnllmmalhifmlcie`).
- **Official Website:** `https://snowflake.torproject.org`

## FAQs
### Q: What is Snowflake used for?
A: Snowflake is a censorship circumvention tool that allows users to access the internet in regions where connectivity is restricted or blocked. It works by routing traffic through temporary proxies.

### Q: How does Snowflake work technically?
A: Snowflake uses WebRTC to create temporary, decentralized proxy connections. This allows a user's traffic to appear like a generic video call or data transfer, making it harder for censors to block.

### Q: Is Snowflake free and open-source?
A: Yes, Snowflake is open-source software released under the 3-clause BSD License. Its source code is publicly available via the Tor Project's GitLab repository.

## Why It Matters
Snowflake represents a critical evolution in anti-censorship technology. In an era where internet blackouts and content filtering are increasingly used to control information, Snowflake provides a decentralized solution. Unlike traditional VPNs that rely on fixed IP addresses which can be easily identified and blocked, Snowflake leverages the WebRTC protocol to create ephemeral, rotating proxies. This architecture allows volunteers to run proxies directly in their web browsers without specialized software, creating a vast, dynamic network that is difficult for censors to map and block.

Developed as part of the Tor Project's anti-censorship efforts, it serves as a "pluggable transport." This means it masks the traffic of the Tor network to look like ordinary web traffic. By lowering the barrier for volunteers to host proxies and providing a robust entry point for users in heavily censored regions, Snowflake plays a significant role in maintaining the free flow of information and digital rights globally.

## Notable For
- **Decentralized Proxy Model:** Utilizes temporary WebRTC peers rather than centralized servers to evade blocking.
- **Browser-Based Hosting:** Allows users to act as proxies simply by enabling a browser extension or visiting a webpage.
- **Open Source Accessibility:** Licensed under the permissive 3-clause BSD License, encouraging transparency and reuse.
- **Tor Project Integration:** Functions as a pluggable transport for the Tor ecosystem.

## Body
### Functionality and Purpose
Snowflake is a system developed to defeat internet censorship. It is categorized structurally as both software and a browser extension. Its primary objective is to provide an entry point to the Tor network for users in jurisdictions where standard Tor connections are blocked. By using "temporary WebRTC proxies," Snowflake allows blocked users to route their traffic through the internet connection of a volunteer elsewhere in the world.

### Technical Implementation
The software is primarily written in **Go** (referenced as the language for the core transport logic), with the browser extension component relying on standard web technologies compatible with Mozilla Firefox and Google Chrome.
*   **Language:** Go (developed by Google and the open-source community, inception 2009).
*   **Protocol:** WebRTC (Web Real-Time Communication).

### Availability and Distribution
Snowflake is accessible to both users seeking censorship circumvention and volunteers wishing to run proxies.
*   **Source Code:** Available at `gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake`.
*   **Firefox Add-on:** Listed as `torproject-snowflake` with the internal ID `{b11bea1f-a888-4332-8d8a-cec2be7d24b9}`.
*   **Chrome Extension:** Available via the Chrome Web Store with ID `mafpmfcccpbjnhfhjnllmmalhifmlcie`.

### Licensing and Copyright
While the software is "copyrighted," it is distributed under the **3-clause BSD License**. This allows for the redistribution and use in source and binary forms, provided that copyright notices are met. The project is verified by the Free Software Directory.

## References

1. [Snowflake](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake)
2. [Snowflake WebExtension](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext)
3. [Snowflake. Free Software Directory](https://directory.fsf.org/wiki/Snowflake)
4. [Snowflake, a censorship circumvention system using temporary WebRTC proxies. USENIX](https://www.bamsoftware.com/papers/snowflake/)
5. [Snowflake](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/)