The internet’s initial design, which relied on the end-to-end framework principle, led to mobilization of program specific logic and complexity to the peripheral parts of the network, while keeping the network’s center focusing on the simple task of delivery of data. Nevertheless, the originally proposed end-to-end principle did not offer sufficient levels of trust and security. There are multiple central points of trust and failure throughout the conventional internet. Examples of these points include the Domain Name System (DNS) root servers and public key infrastructure e.g. Certificate Authorities (CAs) which are responsible for publishing security certificates. On the other hand, success of various cloud based services during the past few years means that most of users’ data is recorded on remote servers; thus, users have to trust these servers to successfully execute their applications.