Browse Source

Correct grammar

Carsten Porth 5 years ago
parent
commit
7ca3ef65c6

+ 5 - 5
thesis/content/02-background/dapps.tex

@@ -1,14 +1,14 @@
-The term Web 1.0 refers to the beginnings of the Internet, which consisted of simple static web pages. The central idea was to simply present or consume content. Characteristic for Web 2.0 is the user's participation in the creation process. Thus, a series of platforms (blogs, social networks) was launched on which users can provide content and connect with each other. Typically, Web 2.0 platforms have a centralized structure, which entails the problems mentioned in the previous chapter. This led the founder of the World Wide Web, Tim Berners-Lee, to say that the Internet was being misused - partly because of the system design \cite{berners-lee2019web30}.
+The term Web 1.0 refers to the beginnings of the Internet, which consisted of simple static web pages. The central idea was to present or consume content. The characteristic of Web 2.0 is the user's participation in the creation process. Thus, a series of platforms (blogs, social networks) was launched on which users can provide content and connect. Typically, Web 2.0 platforms have a centralized structure, which entails the problems mentioned in the previous chapter. On the occasion of the 30th anniversary of the World Wide Web in March 2019, the initiator Tim Berners-Lee summed up that the Internet was misused - partly due to the system design \cite{berners-lee2019web30}.
 
-With the next version 3.0 of the web more transparency, security and fairness should be created. However, while there is broad agreement on what is meant by terms Web 1.0 and Web 2.0, there is no uniform definition of Web 3.0 that has prevailed to date. There are many ideas, but no final solution yet.
+With the next version 3.0 of the web, more transparency, security, and fairness should be created. However, while there is broad agreement on what is meant by terms Web 1.0 and Web 2.0, there is no uniform definition of Web 3.0 that has prevailed to date. There are many ideas, but no final solution yet.
 
-An understanding of what Web 3.0 is, is all about decentralization, which is why it is also called the decentralized Web (dWeb). In this context, Web 3.0 is considered an umbrella term for a group of emerging technologies such as blockchain, crypto currencies, and distributed systems that are interconnected to create novel applications, so-called dApps (decentralized Apps). Although decentralized applications have existed for a long time (e.g. BitTorrent), these applications do not meet the criteria of a dApp (see next section).
+An understanding of what Web 3.0 is, is all about decentralization, which is why it is also called the decentralized Web (dWeb). In this context, Web 3.0 is considered an umbrella term for a group of emerging technologies such as blockchain, crypto currencies, and distributed systems that are interconnected to create novel applications, so-called dApps (decentralized apps). Although decentralized applications have existed for a long time (e.g., BitTorrent), these applications do not meet the criteria of a dApp (see next section).
 
 In the following, the characteristics of a dApp are described and individual, essential components are examined in more detail.
 
 \subsection{Characteristics of a dApp}
 \label{sec:dapp-characterisitics}
-Just as with client-server applications, a dApp is also divided into front and back end. The main difference is that the back end is not represented by a centralized server and thus a single point of failure, but by code that is executed in a decentralized P2P network. In the back end so-called smart contracts are used to perform logical operations and instead of a database a blockchain is used. There are no special requirements for the front end, so that it can be displayed as an app or website. It must only be possible to execute calls from the front end to the back end.
+Just as with client-server applications, a dApp is also divided into front and back end. The main difference is that the back end is not represented by a centralized server and thus a single point of failure, but by code that is executed in a decentralized P2P network. In the back end so-called smart contracts are used to perform logical operations, and instead of a database, a blockchain is used. There are no special requirements for the front end so that it can be displayed as an app or website. It must only be possible to execute calls from the front end to the back end.
 
 Johnston et al. and Siraj Raval name the following four criteria for a dApp \cite{johnston2015dapp,raval2016decentralized}:
 
@@ -27,7 +27,7 @@ In addition to the criteria of a dApp, Johnston et al. also describe a classific
 	\item \textbf{Type 3}: Protocols with own tokens, which in turn use protocols of a dApp of type 2.
 \end{itemize}
 
-The advantages of a dApp include not only reliability but also the avoidance of censorship and manipulation by design. Furthermore, there are no dependencies towards a service provider. However, the development of a dApp is complex and it is difficult to install updates and bugfixes. Currently there are still very few dApps, so interactions between different dApps are not able to create synergy effects.
+The advantages of a dApp include not only reliability but also the avoidance of censorship and manipulation by design. Furthermore, there are no dependencies towards a service provider. However, the development of a dApp is complex and it is difficult to install updates and bugfixes. Currently, there are still very few dApps, so interactions between different dApps are not able to create synergy effects.
 
 \subsection{Ethereum}
 \label{sec:ethereum}

+ 10 - 10
thesis/content/02-background/p2p.tex

@@ -1,18 +1,18 @@
-The special feature of peer to peer (P2P) System is that each participant has the role of both a server and a client. The participants are therefore equal with each other and provide each other with services, which is reflected in the naming. P2P networks are usually characterized as overlay networks over the Internet. With regard to the structure of the overlay network, a distinction is made between structured and unstructured networks. The P2P principle became particularly well known in 1999 with Napster. With the file-sharing application Napster, it was possible to exchange (mainly copyrighted) songs among the participants without having to offer them from a central server.
+The distinctive feature of peer to peer (P2P) systems is that each participant has the role of both a server and a client. The participants are therefore equal with each other and provide each other with services, which is reflected in the naming. P2P networks are usually characterized as overlay networks over the Internet. Concerning the structure of the overlay network, a distinction is made between structured and unstructured networks. The P2P principle became mainly well known in 1999 with Napster. With the file-sharing application Napster, it was possible to exchange (mainly copyrighted) songs among the participants without having to offer them from a central server.
 
-Popular applications of P2P networks are file sharing (e.g. BitTorrent), instant messaging (e.g. Skype) and blockchain technology (e.g. Bitcoin).
+Popular applications of P2P networks are file sharing (e.g., BitTorrent), instant messaging (e.g., Skype) and blockchain technology (e.g., Bitcoin).
 
-P2P networks are particularly characterized by their independence. There are no control points and not necessarily a fixed infrastructure. This also has a positive effect on operating costs. In addition, P2P networks are self-organized and self-scaling, as each additional user contributes its resources.
+Their independence particularly characterizes P2P networks: there are no control points and not necessarily a fixed infrastructure. This also has a positive effect on operating costs. Besides, P2P networks are self-organized and self-scaling, as each additional user contributes its resources.
 
 However, there are also some challenges in P2P networks that need to be solved for successful operation. These include finding peers in the network (peer discovery) and finding resources (resource discovery). Especially in file sharing networks, solutions have to be found how to motivate users to upload data and not only use the download one-sidedly. The replication of data and the associated availability must also be taken into account in solutions. Another critical issue is the Internet connection of individual participants, which may not be powerful or permanent.
 
 \subsection{Unstructured P2P}
 \label{sec:unstructured-p2p}
-In unstructured P2P networks there are no specifications for the overlay network, so the peers are only loosely connected to each other. Due to the loose structures, the failure of one peer has no great influence on the function of the rest of the network. Another advantage of the unstructured topology is the lower vulnerability.
+In unstructured P2P networks there are no specifications for the overlay network, so the peers are only loosely connected. Due to the loose structures, the failure of one peer has no significant influence on the function of the rest of the network. Another advantage of the unstructured topology is the lower vulnerability.
 
-While such loose structures are easy to create, the performance of the entire network suffers. A multicast request is sent to all connected peers, who forward the request again and flood the entire network. If a peer can respond to the request, it responds by the same route that the request used to reach it. Each request has a validity time (time to live, TTL) before it is discarded. Popular files with wide distribution can thus be found quickly. However, rare files are difficult to find because the TTL may have been reached before. A flooding search is not efficient and provides a large amount of signaling traffic. An example for this approach is Gnutella.
+While such loose structures are easy to create, the performance of the entire network suffers. A multicast request is sent to all connected peers, who forward the request again and flood the entire network. If a peer can respond to the request, it responds by the same route that the request used to reach it. Each request has a validity time (time to live, TTL) before it is discarded. Popular files with wide distribution can thus be found quickly. However, rare files are difficult to find because the TTL may have been reached before. A flooding search is not efficient and provides a large amount of signaling traffic. An example of this approach is Gnutella.
 
-In order to counteract the problem of inefficient and complicated searching for resources, central points are created in other network implementations where addresses of resources can be specifically requested. These include Napster, FastTrack and BitTorrent. Figure \ref{fig:unstructured-p2p} shows a comparison of the search process in the respective networks.
+In order to counteract the problem of inefficient and complicated searching for resources, in other network implementations, central points are created to answer the search requests. These include Napster, FastTrack, and BitTorrent. Figure \ref{fig:unstructured-p2p} shows a comparison of the search process in the respective networks.
 
 \begin{figure}[h!]
 	\centering
@@ -23,12 +23,12 @@ In order to counteract the problem of inefficient and complicated searching for
 
 \subsection{Structured P2P}
 \label{sec:structured-p2p}
-By defining a certain structure, for example a circle or a tree, search processes in the overlay network can be designed efficiently and deterministically. In such structured networks, compliance with the structure is strictly controlled. Routing algorithms determine how a node is arranged in the overlay network. The performance of the entire network depends directly on how the nodes are arranged and how quickly changes (joining and leaving nodes) are responded to.
+By defining a particular structure, for example a circle or a tree, search processes in the overlay network can be designed efficiently and deterministically. In such structured networks, compliance with the structure is strictly controlled. Routing algorithms determine how a node is arranged in the overlay network. The performance of the entire network depends directly on the arrangement of the nodes and how quick changes (joining and leaving nodes) are detected.
 
-Usually the routing algorithms are based on a Distributed Hash Table (DHT). Hash tables are data structures in which key-value pairs are stored, whereby the key must be unique. The corresponding value can then be queried via the key. The keys are ids, which are generated with a hash function (e.g. SHA-1). For the addresses of the nodes and for the files, ids are created equally, so that they lie in the same address space. To find a file, it is searched at the node with the same or the next larger id. If it is not available there, it is not existing on the network.
+Usually, the routing algorithms are based on a Distributed Hash Table (DHT). Hash tables are data structures in which key-value pairs are stored, whereby the key must be unique. The corresponding value can then be queried via the key. The keys are ids, which are generated with a hash function (e.g., SHA-1). For the addresses of the nodes and the files, ids are created equally, so that they lie in the same address space. For finding a file, it is searched at the node with the same or the next larger id. If it is not available there, it does not exist on the network.
 
-To join a network, either one or more peers must be known as the entry point or this information must be obtained from a bootstrap server. When entering a structured network, the joining node is assigned a unique id and thus positions itself in the structure. The routing tables of the nodes affected by the structural change must then be updated.
+For joining a network, either one or more peers must be known as the entry point, or this information must be obtained from a bootstrap server. When entering a structured network, the joining node is assigned a unique id and thus positions itself in the structure. The routing tables of the nodes affected by the structural change must then be updated.
 
-When leaving a network, this happens either gracefully and all affected nodes are informed to update their routing tables, or unexpectedly. Therefore, nodes must always check the correctness of their routing tables.
+When leaving a network, this happens either gracefully, and all affected nodes are informed to update their routing tables, or unexpectedly. Therefore, nodes must always check the correctness of their routing tables.
 
 Known routing algorithms that use DHTs include Chrod\cite{stoica2003chord}, CAN\cite{ratnasamy2001scalable}, Pastry\cite{rowstron2001pastry}, Tapestry\cite{zhao2004tapestry} and Kademlia\cite{maymounkov2002kademlia}. Among other things, they differ in their distinct structure and the hash functions used.

+ 7 - 7
thesis/content/02-background/software-system-architecture.tex

@@ -17,7 +17,7 @@ In the following, the characteristics and peculiarities of the different archite
 
 \subsection{Centralized Applications}
 \label{sec:centralized-applications}
-In a centralized application, the software essentially runs on a central node with a static address with which all other nodes communicate. This central node is called a server and the nodes connected to it are called clients. The clients use services of the server.
+In a centralized application, the software essentially runs on a central node with a static address with which all other nodes communicate. This central node is called a server and the nodes connected to it are called clients. The clients use the services of the server.
 
 Typically, most web applications are designed as centralized applications. The clients are usually (mobile) apps or browsers that act as the interface to the user. Examples of this are social networks such as Facebook.
 
@@ -27,11 +27,11 @@ The biggest disadvantage with this architecture is that with the failure or the
 
 \subsection{Decentralized Applications}
 \label{sec:decentralized-applications}
-What are advantages and disadvantages of centralized applications is largely reversed in decentralized systems. Unlike centralized applications, decentralized applications do not have a single point of failure. But there is no node in the system that has all the data which makes accessing information sometimes hard. There are any number of nodes that perform the tasks of a server and by exchanging with other servers in total form a complete system.
+What are the advantages and disadvantages of centralized applications, is largely reversed in decentralized systems. Unlike centralized applications, decentralized applications do not have a single point of failure. But there is no node in the system that has all the data which makes accessing information sometimes hard. There are any number of nodes that perform the tasks of a server and by exchanging with other servers in total form a complete system.
 
-Thus, the advantages of decentralized applications include, in addition to the already mentioned increased reliability, even further advantages. Each server only records the amount of users covered by its resources. New servers contribute new resources to the overall system. Distributed applications can not be disabled easily because a new server can be started at any time that does not fall under a lock. Because the data are not centrally available, they can not be processed, so that user data are better protected. Also, there is no longer a prominent attack target. So, hacking a single server loses lucrativeness.
+Thus, the advantages of decentralized applications include, in addition to the already mentioned increased reliability, even further advantages. Each server only records the number of users covered by its resources. New servers contribute new resources to the overall system. Distributed applications cannot be disabled easily because a new server can be started at any time that does not fall under a lock. Because the data are not centrally available, they cannot be processed, so that user data are better protected. Also, there is no longer a prominent attack target. So, hacking a single server loses lucrativeness.
 
-The drawbacks include the difficulty of finding data because they are spread across multiple servers. Search functionalities are thus difficult to implement. If a server is taken offline, the data is no longer available, even if the system itself remains functional. Since there is no longer a central point that is managed by an operator, rolling out updates is  difficult. This raises the challenge that server nodes of different versions can still work together.
+The drawbacks include the difficulty of finding data because they are spread across multiple servers. Search functionalities are thus difficult to implement. If a server is taken offline, the data is no longer available, even if the system itself remains functional. Since there is no longer a central point that is managed by an operator, rolling out updates is difficult. This raises the challenge that server nodes of different versions can still work together.
 
 Examples of decentralized applications are the social networks Diaspora and Mastodon. Each user can operate his own server in these networks. Unlike Facebook, the decision on the existence of the service is therefore not in the control of the operator, but the user. Bitcoin is also a decentralized application architecture. In doing so, transactions are carried out in a decentralized database (blockchain).
 
@@ -39,9 +39,9 @@ Examples of decentralized applications are the social networks Diaspora and Mast
 \label{sec:distributed-applications}
 A feature of distributed applications is the distributed computation across all nodes. At the same time, a single task is executed in parallel on several nodes of a system, and the entire system delivers the result in total.
 
-In distributed applications, there is no hierarchy with servers or clients. Each node is equal to the other nodes with everyone performing the same tasks. This is why a node in this architecture is called peer. The structure is then referred to as peer to peer (P2P). With such structures, there are no scaling problems, since each node contributes the required resources itself. Thus, the resources of the entire system grow with each new node added.
+In distributed applications, there is no hierarchy with servers or clients. Each node is equal to the other nodes with everyone performing the same tasks. For this reason, a node in this architecture is called a peer. The structure is then referred to as peer to peer (P2P). With such structures, there are no scaling problems, since each node contributes the required resources itself. Thus, the resources of the entire system grow with each new node added.
 
-BitTorrent is an application that belongs to this architecture type. It solves the problem of downloading large files efficiently. When downloading a file, it is offered by several nodes, so that different pieces can be loaded in parallel from different sources in difference to HTTP where only one source provides the file. Each node not only downloads, but also provides itself to other files. In order to avoid that nodes download only (so-called Leechers) but also contribute, they are penalized with slow download speeds. This principle is known as \textit{tit for tat}.
+BitTorrent is an application that belongs to this architecture type. It solves the problem of downloading large files efficiently. When downloading a file, it is offered by several nodes so that different pieces can be loaded in parallel from different sources in difference to HTTP where only one source provides the file. Each node not only downloads but also provides itself to other files. In order to avoid that nodes download only (so-called Leechers) but also contribute, they are penalized with slow download speeds. This principle is known as \textit{tit for tat}.
 
 \subsection{Comparison}
 \label{sec:architecture-comparison}
@@ -58,6 +58,6 @@ The following table \ref{tab:comparison-architectures} compares the main feature
 		\multicolumn{1}{|l|}{Performance}                                                  & ++                                       & +                                          &                                          \\ \hline
 		\multicolumn{1}{|l|}{\begin{tabular}[c]{@{}l@{}}Data \\ Availability\end{tabular}} & ++                                       & +                                          &                                          \\ \hline
 	\end{tabular}
-	\caption{Comparison of different software system architectures on scalability, maintenance, system stability, performance and data availability. The pluses indicate how positive something is relatively to the other systems.}
+	\caption{Comparison of different software system architectures on scalability, maintenance, system stability, performance, and data availability. The pluses indicate how positive something is relative to the other systems.}
 	\label{tab:comparison-architectures}
 \end{table}

+ 6 - 4
thesis/content/03-related-work.tex

@@ -1,21 +1,20 @@
 \chapter{Related Work}
 \label{ch:related-work}
-
-This chapter gives a comprehensive overview about different projects trying to protect the users' personal data in online social networks. Hereby, six different approaches are presented. First, extensions are considered that make the use of established social networks more secure. Then, alternative social networks will be presented that have placed the protection of personal data at the center. Thereafter two next generation social networks will be considered, which take advantage of the blockchain technology and belong to the group of dApps. Finally, the ActivityPub protocol is presented, which maps the communication in decentralized platforms. The chapter concludes with a summary of the related work.
+This chapter gives a comprehensive overview of different projects trying to protect the users' personal data in online social networks. Hereby, six different approaches are presented. First, extensions are considered that make the use of established social networks more secure. Then, alternative social networks will be presented that have placed the protection of personal data at the center. After that two next-generation social networks will be considered, which take advantage of the blockchain technology and belong to the group of dApps. Finally, the ActivityPub protocol is presented, which maps the communication in decentralized platforms. The chapter concludes with a summary of the related work.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % For each project, write about
 % - how is data stored
 % - how is communication realized
 % - how is data accessed (authorization)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % Extensions for better privacy
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Privacy through Extensions}
 \label{sec:extensions}
-Existing connections to other people and already created content can bind users to platforms. This so-called lock-in effect prevents users from switching to another platform. In the following, Twitterize and FaceCloak are two approaches that make the use of Twitter and Facebook safer by protecting data.
+Existing connections to other people and already created content can bind users to platforms. This so-called lock-in effect prevents users from switching to another platform. If switching to another platform is not an option, how can the use of the platforms be made more secure and user data better protected? In the following, two approaches (Twitterize and FaceCloak) are presented which try to increase the privacy and anonymity on Facebook and Twitter.
 
 \subsection{Twitterize}
 \label{sec:twitterize}
@@ -30,6 +29,9 @@ Existing connections to other people and already created content can bind users
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Privacy-protecting Social Networks}
 \label{sec:privacy-protecting-social-networks}
+In the business models of the large, popular OSNs, user data plays an essential role. The data is evaluated and used to make a profit, for example through personalized advertising. Anonymity and the protection of privacy are not among the overriding objectives. 
+
+In the following, two social networks, diaspora* and LifeSocial, are presented which have placed the protection of data at the center.
 
 \subsection{diaspora*}
 \label{sec:diaspora}

+ 12 - 11
thesis/content/03-related-work/activitypub.tex

@@ -1,10 +1,10 @@
 ActivityPub is a protocol published by the World Wide Web Consortium (W3C) in January 2018 as an official standard\footnote{https://www.w3.org/TR/activitypub}. The protocol regulates communication within an open, decentralized social network. There are two levels: client to server (Social API) and server to server (Federation Protocol). The two protocols are designed in such a way that they can be used independently of each other. If one of them is implemented, it is easy to implement the other. The Activity Streams\footnote{https://www.w3.org/TR/activitystreams-core} data format is used to describe activities in JSON-LD format. This data format is also an official W3C standard with the aim to record meta data of an action in a human-friendly but machine-processable syntax.
 
-The principle behind Activity Pub is similar to that of e-mail. Servers can be uniquely identified via the domain. Within a server, each mailbox is accessible via a unique name. Thus, users can communicate with each other via different servers by having their messages forwarded to their own mailbox.
+The principle behind Activity Pub is similar to that of e-mail. Servers can be uniquely identified via the domain. Within a server, each mailbox is accessible via a unique name. Thus, users can communicate with each other via different servers by having their messages forwarded to their mailbox.
 
 \subsubsection{Client to Server (Social API)}
 \label{sec:social-api}
-Users are called actors in ActivityPub and are represented by an associated account on the server. Since there can be several servers, it is important to emphasize that an account is only ever located on one server and user names must always be unique only within a server. Each actor has an inbox and an outbox on the server on which he is registered with his account. These are the two endpoints with which the client application communicates via HTTP requests. More is not necessary, because the server ensures that all messages and information for the user end up in his inbox and that the messages in his outbox are forwarded to the desired recipients (see \ref{sec:federation-protocol}). To ensure that only authorized clients store content in an outbox, the posts must be signed.
+Users are called actors in ActivityPub and are represented by an associated account on the server. Since there can be several servers, it is important to emphasize that an account is only ever located on one server and user names must always be unique only within a server. Each actor has an inbox and an outbox on the server on which he is registered with his account. These are the two endpoints with which the client application communicates via HTTP requests. More is not necessary, because the server ensures that all messages and information for the user end up in his inbox and that the messages in his outbox are forwarded to the desired recipients (see \ref{sec:federation-protocol}). For ensuring that only authorized clients store content in an outbox, the sender must sign the posts.
 
 \begin{figure}[h]
 	\includegraphics[width=1.0\textwidth]{activitypub-communication}
@@ -12,30 +12,31 @@ Users are called actors in ActivityPub and are represented by an associated acco
 	\label{fig:activitypub-communication}
 \end{figure}
 
-The outbox of an actor holds all his published posts. When accessing the outbox of an actor without authorization, the server delivers all public posts of the actor as response. If access with authorization occurs, the explicitly shared content is also transmitted.\\
-The own inbox can only be queried by the corresponding actors itself. With an access to his own inbox he receives all activities delivered to him from the server. The inbox is filled by POST requests from other servers to the inbox.
+The outbox of an actor holds all his published posts. When accessing the outbox of an actor without authorization, the server delivers all public posts of the actor. If access with authorization occurs, the explicitly shared content is also transmitted.
 
-Each actor has some so called collections. To these collections, objects can be added and removed. The collections are used to store information related to an actor. These are the collections each actor has:
+The corresponding actors can only access their own inbox. On access, the messages are downloaded from the server. New messages get in the inbox per HTTP POST request from another server.
+
+Each actor has some so-called collections. To these collections, objects can be added and removed. The collections are used to store information related to an actor. These are the collections each actor has:
 
 \begin{itemize}
 	\item \textbf{Followers Collection}: List of actors who have posted the actor a follow-activity and follow him. Can be used as addressee when sharing a post.
-	\item \textbf{Following Collection}: List of actors followed by an actor and whose content he is interested in.
+	\item \textbf{Following Collection}: List of actors followed by an actor and whose content he is interested in
 	\item \textbf{Liked Collection}: List of all objects the actor has liked
 \end{itemize}
 
-The following interactions are defined between the client and the server, but some of them are optional to implement: Create, Update, Delete, Follow, Add (add object to collection), Remove (remove object from collection), Like, Block, Undo. To address the activities, \textit{to}, \textit{bto}, \textit{cc}, \textit{bcc} provide the same possibilities as are known from e-mail. The server then has to ensure that the activity also reaches the addressed actors.
+The following interactions are defined between the client and the server, but some of them are optional to implement: Create, Update, Delete, Follow, Add (add an object to a collection), Remove (remove an object from a collection), Like, Block, Undo. To address the activities, \textit{to}, \textit{bto}, \textit{cc}, \textit{bcc} provide the same possibilities as are known from e-mail. The server then has to ensure that the activity also reaches the addressed actors.
 
 \subsubsection{Server to Server (Federation Protocol)}
 \label{sec:federation-protocol}
 
-This protocol defines how activities are exchanged between actors of different servers. The network between the servers with all actors is called a social graph. The interactions defined in the Social API must be implemented by the server so that they reach the addressed actors. The starting point is always the outbox of an actor. If a new activity is created using a POST request and, for example, the follower collection of the actor is selected as the addressee, the server must ensure that every actor in the follower collection receives the activity in its inbox. The recipients and their addresses can be found by following the links in the activities. It is also up to the server to ensure that there is no duplication of content.
+This protocol defines the exchange of activities between actors of different servers. The network between the servers with all actors is called a social graph. The interactions defined in the Social API must be implemented by the server so that they reach the addressed actors. The starting point is always the outbox of an actor. If a new activity is created using an HTTP POST request and, for example, the follower collection of the actor is selected as the addressee, the server must ensure that every actor in the follower collection receives the activity in its inbox. The recipients and their addresses can be found by following the links in the activities. It is also up to the server to ensure that there is no duplication of content.
 
 \subsubsection{Application Examples}
 \label{sec:mastodon}
 
-The most popular application example is the social network Mastodon\footnote{https://joinmastodon.org/}. Mastodon is a decentralized network based on free and open source software. Everyone is invited to host their own platform. With currently 1.6 million users it is the largest implementation of the ActivityPub protocol. The Federation Protocol is used for communication between the individual servers. The Social API is not used, instead Mastodon offers its own API\footnote{https://docs.joinmastodon.org/api/guidelines/} for communication with the client.
+The most popular application example is the social network Mastodon\footnote{https://joinmastodon.org/}. Mastodon is a decentralized network based on free and open source software. Everyone is invited to host their own platform. With currently 1.6 million users it is the most significant implementation of the ActivityPub protocol. The Federation Protocol is used for communication between the individual servers. The Social API is not used, instead Mastodon offers its own API\footnote{https://docs.joinmastodon.org/api/guidelines/} for communication with the client.
 
-Networking with other users is not limited to mastodon instances. Each service that has implemented the ActivityPub protocol allows its actors to network with actors of completely different applications because the communication is standardized. So it is possible without problems to follow an actor of the video platform PeerTube\footnote{https://joinpeertube.org/en/} as Mastodon actor and be notified when he uploads a new video there.
+Networking with other users is not limited to mastodon instances. Each service that has implemented the ActivityPub protocol allows its actors to network with actors of entirely different applications because the communication is standardized. So it is possible without problems to follow an actor of the video platform PeerTube\footnote{https://joinpeertube.org/en/} as Mastodon actor and be notified when he uploads a new video there.
 
-In addition to cross-platform networking, one big advantage is that it has no major impact no matter what happens to Mastodon. The network can still exist and thanks to the open protocols and open source software it can be developed and used without restrictions. If Facebook were to go offline, all contacts would be lost and the platform would never be accessible again.
+In addition to cross-platform networking, one big advantage is that it has no significant impact no matter what happens to Mastodon. The network can still exist and thanks to the open protocols and open source software it can be developed and used without restrictions. If Facebook were to go offline, all contacts would be lost, and the platform would never be accessible again.
 

+ 5 - 5
thesis/content/03-related-work/akasha.tex

@@ -1,12 +1,12 @@
-In early 2015, Mihai Alisie (co-founder of Ethereum) had the idea for AKASHA. AKASHA is a social network that differs from other known social networks mainly in its decentralization. The absence of a central server meant that censorship was ruled out by the design alone. This is realized by the two technologies Ethereum and the Inter-Planetary File System (IPFS). The technology stack is completed by Electron, React, Redux and NodeJS, so that the primary programming language is JavaScript. In addition to Mihai Alisie, 12 other employees now work at AKASHA. Furthermore, the founders of Ethereum (Vitalik Buterin) and IPFS (Juan Benet) advise the project.
+In early 2015, Mihai Alisie (co-founder of Ethereum) had the idea for AKASHA. AKASHA is a social network that differs from other known social networks mainly in its decentralization. The absence of a central server meant that censorship was ruled out by design alone. This is realized by the two technologies Ethereum and the Inter-Planetary File System (IPFS). Electron, React, Redux, and NodeJS complete the technology stack so that the primary programming language is JavaScript. In addition to Mihai Alisie, 12 other employees now work at AKASHA. Furthermore, the founders of Ethereum (Vitalik Buterin) and IPFS (Juan Benet) advise the project.
 
-Alisie sees AKASHA as \enquote{the missing puzzle piece that will enable us to tackle two of the most important challenges we face today as a modern information-based society: freedom of expression and creative perpetuity}. The central goal is therefore to prevent censorship and to obtain information over a long period of time.
+Alisie sees AKASHA as \enquote{the missing puzzle piece that will enable us to tackle two of the most critical challenges we face today as a modern information-based society: freedom of expression and creative perpetuity}. The central goal is therefore to prevent censorship and to obtain information over a long period.
 
 \textit{<<Describe what AKASHA can do>>}
 
-After the idea had been validated by a proof of concept, the above-mentioned technology stack was defined and development began at the beginning of 2016. The first goal was to develop a client based on Electron for Windows, Linux and MacOS. In January 2017, the first functional alpha version was completed and tested with a closed circle of users. Over time, additional functions were added, bugs fixed and performance optimized. In November 2017, a web version of AKASHA\footnote{https://beta.akasha.world/} was introduced. This was a big step towards a better user experience since the web client does not need to download the Rinkeby blockchain which took around 30 minutes on first run. The public beta phase started in February 2018 with the primary goal to see how the application behaves under heavy load.
+After a proof of concept had validated the idea, the technology stack mentioned above was defined, and development began at the beginning of 2016. The first goal was to develop a client based on Electron for Windows, Linux, and MacOS. In January 2017, the first functional alpha version was completed and tested with a closed circle of users. Over time, additional functions were added, bugs fixed, and performance optimized. In November 2017, a web version of AKASHA\footnote{https://beta.akasha.world/} was introduced. This was a big step towards a better user experience since the web client does not need to download the Rinkeby blockchain which took around 30 minutes on the first run. The public beta phase started in February 2018 with the primary goal to see how the application behaves under heavy load.
 
-With the announcement of the web version, the team behind AKASHA also released plans for their own AETH token. This token should have the special feature that it can take different states. The state transition from one state to the other is only possible as shown in Figure \ref{fig:akasha-aeth-transitions}. The developers describe the states as follows:
+With the announcement of the web version, the team behind AKASHA also released plans for their AETH token. This token should have the unique feature that it can take different states. The state transition from one state to the other is only possible as shown in Figure \ref{fig:akasha-aeth-transitions}. The developers describe the states as follows:
 
 \begin{itemize}
 	\item \textbf{AETH} is a transferable, ERC 20 compatible token, living on the Rinkeby test network
@@ -22,4 +22,4 @@ With the announcement of the web version, the team behind AKASHA also released p
 	\label{fig:akasha-aeth-transitions}
 \end{figure}
 
-After a long period of silence, the entire project was converted in January 2019, almost three years after the start. The domain was changed from akasha.world to akasha.org and the focus shifted from a social network to an umbrella organization that unites several projects. In the AKASHA blog Alisie writes about a metamorphosis and compares the change from a caterpillar to a butterfly. The alpha and beta phases are said to have corresponded to the caterpillar phase, the second half of 2018 to the chrysalis stage and now the butterfly is supposed to unfold with all its beauty. However, it is left open how the new orientation will look like and how the social network will continue. On the website you will find a software section as well as a hardware section. However, there is no content available yet. The public launch of the social network in version 1.0 was actually planned for the fourth quarter of 2018. With this launch, the change from the Rinkeby test network to the Ethereum main network should also be completed. It is currently not known when the public launch will take place.
+After a long period of silence, the entire project was converted in January 2019, almost three years after the start. The domain changed from akasha.world to akasha.org, and the focus shifted from a social network to an umbrella organization that unites several projects. In the AKASHA blog, Alisie writes about metamorphosis and compares the change from a caterpillar to a butterfly. The alpha and beta phases are said to have corresponded to the caterpillar phase, the second half of 2018 to the chrysalis stage, and now the butterfly is supposed to unfold with all its beauty. However, it is left open how the new orientation will look like and how the social network will continue. On the website, there is a software section as well as a hardware section. However, there is no content available yet. The public launch of the social network in version 1.0 was planned for the fourth quarter of 2018. With this launch, the change from the Rinkeby test network to the Ethereum main network should also be completed. It is currently not known when the public launch will take place.

+ 6 - 6
thesis/content/03-related-work/diaspora.tex

@@ -1,18 +1,18 @@
 Inspired by a lecture on surveillance in centralized social networks by Eben Moglen on February 5, 2010, the four mathematics students from New York University Grippi, Salzberg, Sofaer and Zhitomirskiy had the idea for diaspora*\cite{diaspora2010kickstarter-pitch}. Diaspora* is a decentralized social network. To its special features count:
 
 \begin{itemize}
-	\item \textbf{Decentralization}: Everyone can start their own server with the diaspora* software and be part of the network. Alternatively, there are public servers accepting registrations from everyone, so there is no need to set up an own instance of diaspora* to participate in the network.
-	\item \textbf{Privacy}: By running your own server, the data remains with the user. Furthermore, it is possible to determine which users can see content.
+	\item \textbf{Decentralization}: Everyone can start their server with the diaspora* software and be part of the network. Alternatively, there are public servers accepting registrations from everyone, so there is no need to set up an own instance of diaspora* to participate in the network.
+	\item \textbf{Privacy}: By running a server, the data remains with the user. Furthermore, it is possible to determine which users can see content.
 	\item \textbf{Open Source}: The source code is disclosed and hosted on GitHub\footnote{https://github.com/diaspora/diaspora}. The transparency created in this way ensures trust in diaspora*.
 \end{itemize}
 
-To fund the development of diaspora*, \$ 10,000 should be crowdfunded on Kickstarter\footnote{https://www.kickstarter.com/projects/mbs348/diaspora-the-personally-controlled-do-it-all-distr/description}. The project was very well received, so that after 14 days the target was reached\cite{diaspora2010wemadeit} and in the end a total of \$ 200,641 was donated. In November 2010, the first alpha version of diaspora* was released. One year later there was a big feature update. In May 2012 it was announced that diaspora* should be further developed within the Y Combinator start-up program\cite{diaspora2012y-combinator}. Due to the commercial influence there were fears that diaspora* could lose its independence. In August 2012, the developers announced that diaspora* is henceforth a community project\cite{diaspora2012community-announcement}.
+For funding the development of diaspora*, \$ 10,000 should be crowdfunded on Kickstarter\footnote{https://www.kickstarter.com/projects/mbs348/diaspora-the-personally-controlled-do-it-all-distr/description}. The project was very well received so that after 14 days the target was reached\cite{diaspora2010wemadeit} and in the end, a total of \$ 200,641 was donated. In November 2010, the first alpha version of diaspora* was released. One year later there was a prominent feature update. In May 2012 it was announced that diaspora* should be further developed within the Y Combinator start-up program\cite{diaspora2012y-combinator}. Due to the commercial influence, there were fears that diaspora* could lose its independence. In August 2012, the developers announced that diaspora* is henceforth a community project\cite{diaspora2012community-announcement}.
 
-The diaspora* back end is written in Ruby, the front end to the user is a website. A server running diaspora* is called pod. Each pod has its own domain, so users of a pod have a username similar to an e-mail address (for example, username@podname.org). The typical functionalities of a social network (hashtags, @ mentions, likes, comments, private messages) are also shown in diaspora*. What marked a peculiarity at the time of diaspora*'s appearance are so-called aspects. Aspects are groupings of contacts that can be specified as a target audience when posting content. Only the contacts associated with the aspect can see the post.
+The diaspora* back end is written in Ruby, the front end to the user is a website. A server running diaspora* is called pod. Each pod has its own domain, so users of a pod have a username similar to an e-mail address (for example, username@podname.org). Diaspora* has the typical functionalities of a social network (hashtags, @ mentions, likes, comments, private messages). What marked a peculiarity at the time of diaspora*'s appearance are so-called aspects. Aspects are groupings of contacts that can be specified as a target audience when posting content. Only the contacts associated with the aspect can see the post.
 
-To stay in contact with friends on other platforms like social networks (Facebook, Twitter) or blogs (tumblr, Wordpress), the initial idea was to connect these platforms. This should work both ways. Posts published on diaspora* should also appear on other platforms at the same time. And posts from the other networks should be viewed in diaspora*. Diaspora* should play the role of a social media hub. Unfortunately, the APIs of some platforms have become increasingly limited as instances of misuse of the interfaces have become public.
+For staying in contact with friends on other platforms like social networks (Facebook, Twitter) or blogs (Tumblr, Wordpress), the initial idea was to connect these platforms. Data exchange should work both ways. Posts published on diaspora* should also appear on other platforms at the same time. Also, posts from the other networks should be viewed in diaspora*. Diaspora* should play the role of a social media hub. Unfortunately, the APIs of some platforms have become increasingly limited as instances of misuse of the interfaces have become public.
 
-The data of the users are unencrypted on a pod, so that someone having access to the database can see them\cite{diasporaXXXXfaq-users}. In order to protect his own data in the best possible way, the operation of a separate diaspora* instance is necessary. The communication between the pods is encrypted with SSL\cite{diasporaXXXXfaq-users}. Furthermore, the exchanged messages are first signed (Salmon Magic Signatures), then symmetrically encrypted with AES-256-CBC\cite{diasporaXXXXmagic-signatures}. The AES key is encrypted with the public key of the recipient and sent together with the encrypted message.
+The data of the users are unencrypted on a pod so that someone having access to the database can see them\cite{diasporaXXXXfaq-users}. In order to protect his own data in the best possible way, the operation of a separate diaspora* instance is necessary. The communication between the pods is encrypted with SSL\cite{diasporaXXXXfaq-users}. Furthermore, the exchanged messages are first signed (Salmon Magic Signatures), then symmetrically encrypted with AES-256-CBC\cite{diasporaXXXXmagic-signatures}. The AES key is encrypted with the public key of the recipient and sent together with the encrypted message.
 
 Diaspora* does not use the ActivityPub protocol, but its own diaspora* federation protocol\cite{diasporaXXXXprotocol}. Other platforms such as Friendica\footnote{https://friendi.ca/}, Hubzilla\footnote{https://zotlabs.org/page/hubzilla/hubzilla-project} or Socialhome\footnote{https://socialhome.network/} can also communicate via the diaspora* federation protocol. There is no official API, which makes app development difficult. Diaspora* points out that the website is also usable on mobile devices, so there is no need for a native application\cite{diasporaXXXXfaq-users}.
 

+ 8 - 9
thesis/content/03-related-work/facecloak.tex

@@ -1,4 +1,4 @@
-Researchers Luo, Xiu and Hengartner of the University of Waterloo in Ontario propose an architecture to protect personal information from social networking platforms. This is achieved by transmitting fake data to the social network server and storing the correct data encrypted on a third party server. Authorized users can then replace the fake data with the correct data when they visit the site containing protected data. The prerequisite is that all users use a specific browser extension that communicates with the third party server and replaces content. In concrete terms, this was implemented for Facebook and both a server and an extension for the Firefox browser were developed and successfully tested.
+Researchers Luo, Xiu, and Hengartner of the University of Waterloo in Ontario propose an architecture to protect personal information from social networking platforms. Protection is achieved by transmitting fake data to the social network server and storing the correct data encrypted on a third party server. Authorized users can then replace the fake data with the correct data when they visit the site containing protected data. The prerequisite is that all users use a specific browser extension that communicates with the third party server and replaces content. In concrete terms, this was implemented for Facebook and both a server and an extension for the Firefox browser were developed and successfully tested.
 
 \subsubsection{Design Principles}
 FaceCloak's design is based on the following four principles:
@@ -11,7 +11,7 @@ FaceCloak's design is based on the following four principles:
 \end{itemize}
 
 \subsubsection{FaceCloak Architecture}
-After validating several available solutions for personal data protection, the researchers decided that a client-side architecture was the best solution for automated protection. Figure \ref{fig:facecloak-architecture} shows this architecture schematically.
+After validating several available solutions for personal data protection, the researchers decided that a client-side architecture was the best solution for automatic protection. Figure \ref{fig:facecloak-architecture} shows this architecture schematically.
 
 \begin{figure}[h!]
 	\centering
@@ -20,8 +20,7 @@ After validating several available solutions for personal data protection, the r
 	\label{fig:facecloak-architecture}
 \end{figure}
 
-During the setup phase, the browser extension is being installed and the encryption keys are generated. Afterwards the keys for decryption are shared with the trusted contacts. In phase two, when data worthy of protection is stored, it is transmitted in encrypted form to a third party server and stored there. Only fake data is transmitted to the social network server. 
-In phase three, whenever an authorized contact calls up a profile page and fake data is transmitted by the social network, the extension takes care of the replacement with the real data.
+During the setup phase, the browser extension is installed, and the encryption keys generated. Afterward, the keys for decryption are shared with the trusted contacts. In phase two, when data worthy of protection is stored, it is transmitted in encrypted form to a third party server and stored there. Only fake data is transmitted to the social network server. In phase three, whenever an authorized contact calls up a profile page and fake data is transmitted by the social network, the extension takes care of the replacement with the real data.
 
 In addition to adhering to the above design principles, the proposed architecture makes the following contributions:
 
@@ -32,15 +31,15 @@ In addition to adhering to the above design principles, the proposed architectur
 \end{itemize}
 
 \subsubsection{FaceCloak for Facebook}
-To protect the privacy of Facebook users, Luo, Xiu and Hengartner have developed a Firefox browser extension according to the previously described architecture, as well as a server application for storing encrypted real data.\footnote{Download: https://crysp.uwaterloo.ca/software/facecloak/download.html}
+To protect the privacy of Facebook users, Luo, Xiu, and Hengartner have developed a Firefox browser extension according to the previously described architecture, as well as a server application for storing encrypted real data.\footnote{Download: https://crysp.uwaterloo.ca/software/facecloak/download.html}
 
-To encrypt the data, the extension uses AES and a key length of 128 bits. The indices for the encrypted data are calculated using SHA-1. The authors propose e-mail for the key exchange. For this purpose, the browser extension automatically generates e-mail texts and recipient lists and forwards them to the standard e-mail program. The recipients then have to manually store the received keys in the extension.
+The extension uses AES and a key length of 128 bits to encrypt the data. The indices for the encrypted data are calculated using SHA-1. The authors propose an e-mail for the key exchange. For this purpose, the browser extension automatically generates e-mail texts and recipient lists and forwards them to the standard e-mail program. The recipients then have to store the received keys in the extension manually.
 
-In order to protect data with FaceCloak, the prefix @@ must be added to information in a text field. For other form elements such as dropdowns, radio buttons or checkboxes, the extension creates additional options that also start with @@. When submitting the form, the extension intervenes and replaces the data marked with @@ with fake data. The data to be protected is encrypted with the stored keys and transferred as key-value pair to the third party server where it is stored. All profile information can be protected by FaceCloak, but only for name, birthday and gender algorithms for the meaningful creation of fake data are implemented.
+In order to protect data with FaceCloak, the prefix @@ must be added to the information in a text field. For other form elements such as dropdowns, radio buttons or checkboxes, the extension creates additional options that also start with @@. When submitting the form, the extension intervenes and replaces the data marked with @@ with fake data. The data to be protected is encrypted with the stored keys and transferred as a key-value pair to the third party server where it is stored. FaceCloak can protect all profile information, but only for name, birthday, and gender algorithms for the meaningful creation of fake data are implemented.
 
-In addition to profile information, the extension can also protect Facebook Wall data and Facebook Notes. To avoid attracting attention with random, unusual character strings, the contents of random Wikipedia articles are transmitted as fake data.
+In addition to profile information, the extension can also protect Facebook Wall and Facebook Notes data. To avoid attracting attention with random, unusual character strings, the contents of random Wikipedia articles are transmitted as fake data.
 
-When loading a profile page that contains protected data, the extension with asynchronous HTTP requests retrieves the information from the third party server, decrypts it, and replaces the fake data. A large part of the replacement can thus be performed during the load process, so that the user does not see the fake data. But since Facebook also loads content asynchronously, some replacements can only be performed with a time delay and the fake data is shortly visible.
+When loading a profile page that contains protected data, the extension with asynchronous HTTP requests retrieves the information from the third party server, decrypts it, and replaces the fake data. A large part of the replacement can thus be performed during the load process so that the user does not see the fake data. However, since Facebook also loads content asynchronously, some replacements can only be performed with a time delay and the fake data is shortly visible.
 
 To use the same account on multiple devices, the keys must be transferred to all devices and stored in the extension. It is not possible to use multiple accounts with the same Firefox profile, as all data is stored in the extension and these are always bound to exactly one Facebook account.
 

+ 9 - 8
thesis/content/03-related-work/peepeth.tex

@@ -1,12 +1,12 @@
-Peepeth is a microblogging platform that is very similar to Twitter in functionality and design. There are also other parallels to Twitter: Instead of a blue bird in the logo, Peepeth uses a penguin and instead of \textit{tweeting} users \textit{peep}. The maximum post length is limited to 280 characters. This has no technical cause, but was taken over by Twitter. The main difference to Twitter is the decentralization. Behind Peepeth's development is Bevan Barton, who launched the platform in March 2018.
+Peepeth is a microblogging platform that is very similar to Twitter in functionality and design. There are also other parallels to Twitter: Instead of a blue bird in the logo, Peepeth uses a penguin and instead of \textit{tweeting} users \textit{peep}. The maximum post length is limited to 280 characters. This has no technical cause but was taken over by Twitter. The main difference to Twitter is the decentralization. Behind Peepeth's development is Bevan Barton, who launched the platform in March 2018.
 
-From Peepeth's point of view, social media is broken. The fault lies with the operators of social networks, who control the online identities of users, sell their data and violate their privacy. The news feeds are manipulated to drive the user to a higher level of interaction at any price. In addition, the platforms are teeming with trolls, bullying and flame wars. Barton wants to counter these grievances. Therefore there is no advertising on Peepeth. 
+From Peepeth's point of view, social media is broken. The fault lies with the operators of social networks, who control the online identities of users, sell their data and violate their privacy. The news feeds are manipulated to drive the user to a higher level of interaction at any price. Besides, the platforms are teeming with trolls, bullying and flame wars. Barton wants to counter these grievances. Therefore there is no advertising on Peepeth. 
 
-The website Peepeth.com is the front end of a decentralized app (dApp), which uses the Eteherum blockchain and the Inter-Planetary File System (IPFS). This front end can theoretically be exchanged arbitrarily and Peepeth's data can be read and written because the blockchain protocol is open. No Ethereum test network is used, but the main network. The execution of transactions on the Ethereum blockchain is associated with costs. Peepeth bears the costs for its users. The necessary capital was collected via a crowdfunding campaign. However, when accounts are misused for spam, Peepeth no longer bears the cost of writing to the blockchain. The resulting costs should make spamming unattractive and reduce it to a minimum, because technically it is still possible. A dApp browser (e.g. Opera) or a browser that has been extended by a wallet (e.g. using MetaMask extension) is required for use. Although Peepeth covers the costs, the user has to sign the transactions, which is why the browser has to contain the corresponding extension.
+The website Peepeth.com is the front end of a decentralized app (dApp), which uses the Eteherum blockchain and the Inter-Planetary File System (IPFS). This front end can theoretically be exchanged arbitrarily and Peepeth's data can be read and written because the blockchain protocol is open. No Ethereum test network is used, but the main network. The execution of transactions on the Ethereum blockchain is associated with costs. Peepeth bears the costs for its users. The necessary capital was collected via a crowdfunding campaign. However, when accounts distribute spam, Peepeth no longer bears the cost of writing to the blockchain. The resulting costs should make spamming unattractive and reduce it to a minimum because technically it is still possible. Peepeth requires a dApp browser (e.g., Opera) or a browser that has been extended by a wallet (e.g., using MetaMask extension) for use. Although Peepeth covers the costs, the user has to sign the transactions, which is why the browser has to contain the corresponding extension.
 
 In order to keep transaction fees low, the actions executed on Peepeth are collected on the server hosting the front end and written to the blockchain in batches every hour. Several actions are bundled in one file and transaction. The actual contents end up as a JSON file in IPFS and only the reference hash in the blockchain.
 
-While the Smart Contracts are open source, the front end is closed source. So it is impossible to understand what is happening on the server hosting the front end Peepeth.com. Image files are not only stored in IPFS but also mirrored at Amazon AWS to provide a better user experience. Basically, the client does not communicate directly with IPFS, but the server behind the front end communicates with the two back end technologies IPFS and Ethereum Blockchain, as shown in Figure \ref{fig:peepeth-architecture}.
+While the smart contracts are open source, the front end is closed source. So it is impossible to understand what is happening on the server hosting the front end Peepeth.com. Image files are not only stored in IPFS but also mirrored at Amazon AWS to provide a better user experience. The client does not communicate directly with IPFS, but the server behind the front end communicates with the two back end technologies IPFS and Ethereum Blockchain, as shown in Figure \ref{fig:peepeth-architecture}.
 
 \begin{figure}[h!]
 	\centering
@@ -15,10 +15,11 @@ While the Smart Contracts are open source, the front end is closed source. So it
 	\label{fig:peepeth-architecture}
 \end{figure}
 
-The data written to the Ethereum blockchain cannot be deleted or modified. For Barton, this is a main advantage since everyone is forced to be aware of his actions and the self-confidence for his own actions is sharpened. Furthermore, this fact of immutability is the main argument for freedom of expression and against censorship. However, not all messages are presented in the Peepeth front end. If they violate Peepeth's terms of use, they will be filtered. Peepeth calls this procedure \enquote{moderation} and argues that this is by no means to be understood as censorship, but much more \enquote{on cultivating mindful engagement and positive contribution}.
+The data written to the Ethereum blockchain cannot be deleted or modified. For Barton, this is a primary advantage since everyone is forced to be aware of his actions and the self-confidence for his actions is sharpened. Furthermore, this fact of immutability is the main argument for freedom of expression and against censorship. However, not all messages are presented in the Peepeth front end. If they violate Peepeth's terms of use, a filter will sort them out. Peepeth calls this procedure \enquote{moderation} and argues that this is by no means to be understood as censorship, but much more \enquote{on cultivating mindful engagement and positive contribution}.
 
-In addition to writing short messages, it is possible to like posts. However, posts cannot be liked infinitely. There is only one like per day available, a so-called Ensō. The resulting rarity should express the particular appreciation of a contribution. \enquote{Ensō (Japanese for \enquote{circle}) is a circle that is hand-drawn in one uninhibited brushstroke. It represents creativity, freedom of expression, and unity}. Furthermore, good content from other users can be rewarded with a tip. 10\% of the tip go to Peepeth and serve to finance. Also for the verification of an account and special badges go 10\% of the fees to Peepeth.
+In addition to writing short messages, it is possible to like posts. However, posts cannot be liked infinitely. There is only one like per day available, a so-called \textit{Ensō}. The resulting rarity should express the particular appreciation of a contribution. \enquote{Ensō (Japanese for \enquote{circle}) is a circle that is hand-drawn in one uninhibited brushstroke. It represents creativity, freedom of expression, and unity}.
+Furthermore, good content from other users can be rewarded with a tip. 10\% of the tip goes to Peepeth and serve to finance. Also for the verification of an account and special badges go 10\% of the fees to Peepeth.
 
-On 29th January 2019, Peepeth had 4055 users who posted a total of 66262 Peeps. For an account at Peepeth you first have to apply and after some time you will receive a link by email to join the platform. On invitation of an active user, new users can join directly without waiting time. Users can verify themselves with their existing Github and Twitter accounts. In the future, it will be possible to use further platforms for the verification of an account. In order to verify an account, the user must post a \enquote{special message}, which also contains his Ethereum address. The link to this post must then be handed over to a Smart Contract, which confirms the ownership of the account.
+On 29th January 2019, Peepeth had 4055 users who posted a total of 66262 Peeps. For an account, future users have to apply first and receive a sign-up link by email to join the platform after some time. On invitation of an active user, new users can join directly without waiting time. Users can verify themselves with their existing Github and Twitter accounts. In the future, it will be possible to use further platforms for the verification of an account. In order to verify an account, the user must post a \enquote{special message}, which also contains his Ethereum address. The link to this post must then be handed over to a Smart Contract, which confirms the ownership of the account.
 
-Peepeth communicated the next milestones to increase the user experience as part of the crowdfunding campaign. The first milestone has already been reached. The fact that the possession of a cryptocurrency requirement for the use and procurement of such a currency is difficult was to be eliminated. Peepeth bears the costs for its users. The next steps are the use without special software requirements (renouncement of special browsers or MetaMask) and the development of an iOS app. However, only 140.56 ETH could be collected from the required 1000 ETH. It is unclear to what extent the desired goals will now be achieved.
+Peepeth communicated the next milestones to increase the user experience as part of the crowdfunding campaign. The first milestone has already been reached. The fact that the possession of a cryptocurrency requirement for the use and procurement of such a currency is difficult was to be eliminated. Peepeth bears the costs for its users. The next steps are the use without special software requirements (renouncement of particular browsers or MetaMask) and the development of an iOS app. However, only 140.56 ETH could be collected from the required 1000 ETH. It is unclear to what extent the desired goals will now be achieved.

+ 16 - 16
thesis/content/03-related-work/twitterize.tex

@@ -1,17 +1,17 @@
-With Twitterize, Daubert et al. present an approach on how data can be protected by a special overlay network and anonymously exchanged within a social network\cite{daubert2014twitterize}. The proposal refers to micro-blogging social networks such as Twitter. For this, a proof of concept in the form of an Android app was developed.
+With Twitterize, Daubert et al. present an approach on how a particular overlay network can protect data and anonymously exchanged within a social network\cite{daubert2014twitterize}. The proposal refers to micro-blogging social networks such as Twitter. As proof of concept, they created an Android app.
 
 \subsubsection{Design Principles}
-Daubert et al. made various demands on the proposed solution. With regard to the protection of privacy in general:
+Daubert et al. made various demands on the proposed solution. Concerning the protection of privacy in general:
 
 \begin{itemize}
 	\item \textbf{Confidentiality}: Messages exchanged between sender and receiver should be transmitted secretly.
-	\item \textbf{Anonymity}: A certain user should not be identifiable within a set of users (anonymity set).
+	\item \textbf{Anonymity}: A individual user should not be identifiable within a set of users (anonymity set).
 \end{itemize}
 
-And with regard to the design of the implementation:
+Also, concerning the design of the implementation:
 
 \begin{itemize}
-	\item \textbf{Understandable privacy}: The user should decide for himself which level of privacy protection he chooses for his messages. The system should communicate this in an understandable way.
+	\item \textbf{Understandable privacy}: The user should decide for himself which level of privacy protection he chooses for his messages. The system should reasonably communicate this.
 	\item \textbf{Simple group management}: Group memberships should be managed quickly and easily.
 	\item \textbf{Low overhead}: The client should have the full functionality of the original client and have as little overhead as possible for the extended functionality.
 \end{itemize}
@@ -21,18 +21,18 @@ The basic idea behind Twitterize is the encrypted, anonymous exchange of message
 
 In order to establish communication within a group, the three following phases must be passed through one after the other: 
 \begin{enumerate}
-	\item Generating and exchanging the keys of a hashtag
-	\item Flooding and subscribing to build an overlay network
-	\item Exchanging of messages
+	\item Generation and exchange of the keys of a hashtag
+	\item Flooding and subscription to build an overlay network
+	\item Exchange of messages
 \end{enumerate}
 
-First, a user must define the hashtag and generate a key for symmetric encryption. This key is used later to encrypt the messages as well as the hashtag itself. From the encrypted hashtag only a hash value is used (so-called pseudonym), so that the actual hashtag is not revealed.
+First, a user must define the hashtag and generate a key for symmetric encryption. This key is used later to encrypt the messages as well as the hashtag itself. From the encrypted hashtag, only a hash value is used (so-called pseudonym) so that the actual hashtag stays private.
 
-In order join the group, other users need the key and knowledge of the name of the hashtag. However, the key exchange should not be carried out via the social network used. An exchange via e-mail, NFC, QR codes, etc. is conceivable.
+In order to join the group, other users need the key and knowledge of the name of the hashtag. However, the key exchange should not be carried out via the social network used. An exchange via e-mail, Near Field Communication (NFC), QR codes is conceivable.
 
-If the users of a group with a common hashtag are all aware of the key and the hashtag, the second phase of building an overlay network begins. Here the private flooding mechanism is used\cite{daubert2013distributed-anonymous-pubsub}. A publisher creates an advertisement tweet consisting of a pseudonym and the first element of a hash chain and posts it in the underlay network. This tweet appears in the timelines of his followers. If not already done, each follower distributes the advertisement tweet on his own timeline and thus reaches his own followers. However, this tweet differs from the original tweet by extending the hash chain. It generates a hash of the previous hash chain and thus receives the next element of the chain. According to this principle, the entire network is flooded and as a result, each user saves a triplet consisting of pseudonym, hash chain and the user before him in the chain in a database table.
+If the users of a group with a common hashtag are all aware of the key and the hashtag, the second phase of building an overlay network begins. Here the private flooding mechanism is used \cite{daubert2013distributed-anonymous-pubsub}. A publisher creates an advertisement tweet consisting of a pseudonym and the first element of a hash chain and posts it in the underlay network. This tweet appears in the timelines of his followers. If not already done, each follower distributes the advertisement tweet on his timeline and thus reaches his followers. However, this tweet differs from the original tweet by extending the hash chain. It generates a hash of the previous hash chain and thus receives the next element of the chain. According to this principle, the entire network is flooded, and as a result, each user saves a triplet consisting of the pseudonym, the hash chain and the user previous to him in the chain in a database table.
 
-If the advertisement tweet reaches a user who is aware of the hashtag and the associated key, the user (so called subscriber) responds with a subscription tweet. This message is addressed to the user from whom the advertisement tweet was received and contains the user name (@user) and the pseudonym. The user thus addressed in turn posts a message consisting of the user name of the user from whom he received the advertisement tweet and the pseudonym. This happens until the original publisher has been reached. In this process, another routing table is filled with pseudonym and sending user. The overlay network is thus formed. Since each user only has a local view of the message flow, no conclusions about sender and recipient can be drawn from the message flow.
+If the advertisement tweet reaches a user who is aware of the hashtag and the associated key, the user (so-called subscriber) responds with a subscription tweet. This subscription message is addressed to the user from whom the advertisement tweet was received and contains the user name (@user) and the pseudonym. The user thus addressed in turn posts a message consisting of the user name of the user from whom he received the advertisement tweet and the pseudonym. This happens until the subscription message reaches the original publisher. In this process, the pseudonym and the sending user are stored in another routing table. The overlay network is thus formed. Since each user only has a local view of the message flow, no conclusions about the sender and recipient can be drawn from the message flow.
 
 In the third phase, users can exchange messages using the previously shared hashtag. The messages are encrypted with the key belonging to the hashtag and then posted together with the hashtag to the timeline. By posting the message again, forwarders ensure that the message is forwarded to the recipient. The exact procedure is shown schematically in Figure \ref{fig:twitterize-information-flow}.
 
@@ -44,12 +44,12 @@ In the third phase, users can exchange messages using the previously shared hash
 \end{figure}
 
 \subsubsection{Proof of Concept}
-As proof of concept, Daubert et al. implemented Twitterize as an app for Android. The app was written in Java, the code remained closed source and the app is not available from the Google Play Store. The representation of the data in the app takes place on different timelines. In addition to the normal home and user timelines, each hashtag gets its own timeline. Each timeline is accessible via a tab.
+As proof of concept, Daubert et al. implemented Twitterize as an app for Android. The app was written in Java, the code remained closed source, and the app is not available from the Google Play Store. The representation of the data in the app takes place on different timelines. In addition to the standard home and user timelines, each hashtag gets its timeline. Each timeline is accessible via a tab.
 
 For encryption 128bit keys with AES CBC is used. The keys are exchanged between the users via NFC or QR codes. Since data structures, such as JSON, are too verbose, the tweets are encoded using Base64. To make message types distinguishable, rarely used UTF-8 symbols are used to give the messages a rough structure. The formation of the overlay network and the exchange of messages then works as described above.
 
-The privacy requirements are met by the design of the Twitterize architecture. The other requirements for implementation were also well received during the development of the app. With the exchange of keys via NFC or QR codes an easy way for key management was found and implemented. Just a few seconds of physical proximity are enough to form a group.
+The design of the Twitterize architecture meets the privacy requirements. The other requirements for implementation were also well received during the development of the app. With the exchange of keys via NFC or QR codes an easy way for key management was found and implemented. Just a few seconds of physical proximity is enough to form a group.
 
-The avoidance of overheads was also successful, although the timeline is updated in background every minute. CPU usage and power consumption were only slightly above the values of the original Twitter app. For the storage of the additional data only little space is necessary, since each hashtag occupies only 48 byte. Assuming that in the Twitter Social Graph two arbitrary users are connected via 4.71 following users in between, an average delivery time of 142 seconds was calculated for a message.
+The avoidance of overheads was also successful, although the timeline is updated in the background every minute. CPU usage and power consumption were only slightly above the values of the original Twitter app. For the storage of the additional data, only a little space is necessary, since each hashtag occupies only 48 bytes. Assuming that in the Twitter Social Graph two arbitrary users are connected via 4.71 following users in between, an average delivery time of 142 seconds was calculated for a message.
 
-Restrictions arise on the one hand due to limits on the use of the Twitter API and on the other hand due to the fact that the application must be always online to get the best user experience.
+Restrictions arise on the one hand due to limits on the use of the Twitter API and on the other hand because the application must always be online to get the best user experience.

+ 5 - 5
thesis/content/05-proof-of-concept/osn-selection.tex

@@ -1,10 +1,10 @@
 When selecting a suitable OSN for the development of a hybrid client, Facebook was the obvious choice due to the numerous negative headlines about data protection. With over 2 billion users per month, it is currently the most widely used social network in the world. In the recent past, it has often been criticized for its handling of its users' data. In particular, the scandal surrounding the data analysis company Cambridge Analytica, which had access to the data of up to 87 million users, hit Facebook hard. As a result, CEO Mark Zuckerberg had to face the US Congress and the EU Parliament in question rounds and did not leave a good impression by avoiding many questions. As a result of this scandal, the Facebook API was further restricted.
 
-However, the Facebook API is not suitable for developing an own client anyway. The functionalities offered by the API offer the possibility to develop an app that can be used within Facebook, for example for a game. So, it is not possible to make a like for a post through this API, which is part of the core functionality of a Facebook client. As discussed in Chapter 4, it is possible to access the data through crawling. However, the constant and rapid development would make this an arduous undertaking. Facebook writes in a blog entry\cite{facebook2017release} that the code changes every few hours. Therefore it is almost impossible to adjust the crawler fast enough and roll out the adjusted code.
+However, the Facebook API is not suitable for developing an own client anyway. The functionalities offered by the API offer the possibility to develop an app that can be used within Facebook, for example for a game. So, it is not possible to make a like for a post through this API, which is part of the core functionality of a Facebook client. As discussed in Chapter 4, it is possible to access the data through crawling. However, the constant and rapid development would make this an arduous undertaking. Facebook writes in a blog post\cite{facebook2017release} that the code changes every few hours. Therefore it is almost impossible to adjust the crawler fast enough and roll out the adjusted code.
 
-Even the mixed version of displaying and manipulating the mobile website in a WebView in a container app does not seem to be an option due to the short release cycles and frequent changes. Apps like "Friendly for Facebook" don't manage to keep up with the changes as reported in various user ratings on the Google Play Store. The erroneous representations and bugs worsen the user experience and result in frustration of users.
+Even the mixed version of displaying and manipulating the mobile website in a WebView in a container app does not seem to be an option due to the short release cycles and frequent changes. Apps like "Friendly for Facebook" don't manage to keep up with the changes as reported in various user ratings on the Google Play Store. The erroneous representations and bugs worsen the user experience and result in the frustration of users.
 
-For this number of reasons, Facebook dropped out as OSN candidate for the prototype despite the special interest. As a further candidate, the OSN Google Plus was dropped, as Google announced in October 2018 that it would discontinue its OSN\cite{google-plus2018shutdown}.
+For this number of reasons, Facebook dropped out as an OSN candidate for the prototype despite the special interest. As a further candidate, the OSN Google Plus was dropped, as Google announced in October 2018 that it would discontinue its OSN\cite{google-plus2018shutdown}.
 
 In the end, Twitter was chosen for the prototype. With 336 million active users per month, it is one of the largest social networks. It is particularly well suited for the development of a hybrid client for two reasons: on the one hand, it has a detailed API that provides almost full functionality free of charge, and on the other hand, compared to Facebook, it offers only a few simple functions. These are the ideal prerequisites for a first proof of concept.
 
@@ -19,6 +19,6 @@ Twitter offers different APIs for developers that serve different purposes. The
 
 In the case of the hybrid client, the standard API is the right one. In order to use this API you first have to create a \enquote{Twitter App}. After registering you will get a consumer key and access token. These two authentication tokens are required to log in users via their own app and successfully execute requests to the API.
 
-Twitter offers almost the entire range of functions via the API. The lack of functionalities (such as querying Reply to a Tweet or the search results come only from the last days) are not so difficult. A major limitation is the limitation on the number of requests. This is to prevent Twitter being exposed to too much load. It also aims to prevent bots from abusing Twitter. The exact limits can be found on a help page\footnote{https://developer.twitter.com/en/docs/basics/rate-limits}. In the app stores of Google and Apple, there are a number of alternative Twitter clients (Twitterific\footnote{https://itunes.apple.com/de/app/twitterrific-5-for-twitter/id580311103?mt=8}, Talon for Twitter\footnote{https://play.google.com/store/apps/details?id=com.klinker.android.twitter\_l}, Fenix 2 for Twitter\footnote{https://play.google.com/store/apps/details?id=it.mvilla.android.fenix2}), which are also subject to these restrictions in terms of functionality and limitation.
+Twitter offers almost the entire range of functions via the API. The lack of functionalities (e.g. the targeted retrieval of replies to a tweet) is not so critical. A major limitation is the restriction on the number of requests. This is to prevent Twitter being exposed to too much load. It also aims to prevent bots from abusing Twitter. The exact limits can be found on a help page\footnote{https://developer.twitter.com/en/docs/basics/rate-limits}. In the app stores of Google and Apple, there are a number of alternative Twitter clients (Twitterific\footnote{https://itunes.apple.com/de/app/twitterrific-5-for-twitter/id580311103?mt=8}, Talon for Twitter\footnote{https://play.google.com/store/apps/details?id=com.klinker.android.twitter\_l}, Fenix 2 for Twitter\footnote{https://play.google.com/store/apps/details?id=it.mvilla.android.fenix2}), which are also subject to these restrictions in terms of functionality and request restrictions.
 
-Basically, the API can be used via HTTP requests. The data exchanged are available in JSON format. However, there are also various libraries (e.g. Twit\footnote{https://github.com/ttezel/twit}), some of which are developed directly by Twitter (see Twitter Kit for Android\footnote{https://github.com/twitter/twitter-kit-android} or iOS\footnote{https://github.com/twitter/twitter-kit-ios}) and greatly simplify the use of the API.
+The API can be accessed using HTTP requests. The data exchanged are in JSON format. Furthermore, there are also various libraries (e.g. Twit\footnote{https://github.com/ttezel/twit}), some of which are developed directly by Twitter (see Twitter Kit for Android\footnote{https://github.com/twitter/twitter-kit-android} or iOS\footnote{https://github.com/twitter/twitter-kit-ios}) and  simplify the use of the API.