How a decentralized YouTube might work and why we would want one

Thursday 31 July 2014

Creating decentralized solutions to centralized problems has become a pressing consideration in recent times. As governments find ways of intervening with centralized entities, decentralized alternatives become much more palatable. One such intervention can be seen on YouTube, with governments placing pressure on Google to remove videos.

Bit451Not only that, but you have virtually no anonymity with YouTube. You must create a Google+ account in order to create a YouTube account, automatically revealing all relevant information such as your full name, email address, phone number, etc. Any new features that are implemented are well beyond the users’ control and cannot be reversed by users. Add to that the classic problem of it being a centralized organization, therefore providing an easy target for governments and malicious entities. Let’s not forget that said entity, YouTube, has monopolistic control over their features and no obligation to be fully transparent with its users.

An open sourced, decentralized, peer-to-peer alternative that requires no personal details to join can easily counteract the above issues so BitScan has been checking out Bit451.

So what is it?
Characterized as "YouTube meets BitTorrent meets Bitcoin", Bit451 will be a decentralized service much like YouTube; decentralized in the sense that it will be built on various open source projects and protocols like Storj, GreenAddress, MediaDrop, and BitTorrent. It will be open sourced, with forks from said projects being used in the Bit451 github page. It aims to combine projects that already either have promise or are well established in order to provide a media watching experience we’re mostly familiar with.

There are other projects aimed at the idea of a decentralized YouTube, such as WeTube, but the author of the Bit451 whitepaper raises some concerns with a few of its characteristics, such as the fact it is a “Distributed Autonomous Corporation” (DAC) and relies on its own currency. The author does, however, maintain that the platform is a "step in the right direction."

Other issues that I see are that it seems to add an unnecessary layer if forms of tipping content providers comes into play and as WeTube are taking their own approach to decentralized storage: Bitcloud; completion of WeTube will be delayed until the Bitcloud protocol is finished.  

Bit451 appears to be a much more open source model, which can help development pick up speed and, crucially, it isn’t profit-oriented in the way a DAC would be; rather it takes a more crowdfunded and donation-based approach with its own IndieGoGo and Coinbase pages. It’s also worth mentioning that the only currency that would be relevant at the moment would be bitcoin, which may help bring more people into the network more easily.

How will Bit451 work and be developed?

The development process for Bit451 appears well planned out based on the white paper. There will be three phases to development, each focusing on one aspect of the service.

Phase 1 will be oriented towards developing the frontend which will allow users to access content. It intends to take elements from GreenAddress as far as aesthetics. File transfer elements of other open source projects will also be integrated into the interface, ranging from BitTorrent to Dropbox. Depending on which File Transfer Protocol (FTP) is implemented, a sort of bridge between the frontend and file transfer network would have to be established.

For this, the whitepaper proposes WebTorrent, a torrent streaming client for modern web browsers. The implementation, however, will be aimed towards making “a browser BitTorrent client that requires no install and fully interoperates within the BitTorrent network.”

I see this as a very good approach considering convenience is going to be a big factor in getting people to use Bit451. If it’s a hassle to switch to something else, say from YouTube to Bit451, then not very many people will bother. It’s believed that only a few clicks can make the difference between success and failure, and I would have to agree, especially if there’s going to be anything competing with something well established.

Phase 2 is a bit more involved, focusing on the implementation of the actual Bit451 network. The preferred method of doing this will be via a distributed database, "distributed" meaning in this case spread throughout various computers (referred to as "nodes"). This method would create a layer of security (blocking malicious entities) and allow for reliable verification of user data across the network.

What is a node?
Within the Bit451 network, each computer will act both an account and node. A node would be an entity that receives and sends out data related to the network; they're intended to act as gatekeepers and make sure data is genuine. They also serve a role in preventing Denial of Service (DoS) attacks on the network, which could possibly shut it down. Connections to and from the database are intended to be authenticated in such a way that one single node isn't going to be the only connection to it. This would mean, however, that clients would have to be able to allow unauthenticated connections, simply because nodes will have to be accessed freely for a distributed system like this to work.

bit451 technology github

How can other accounts/channels be exposed?

Channel/account exposure is something that Bit451 handles in a unique way. Because of the fact that nodes will allow for unauthenticated connections from other nodes, two types of "networks" (for lack of a better term) will come about. One is called the Replication Network (R-Net), while the other is called the Transmition Network (T-Net). Nodes that perform the act of replicating accounts act as the R-Net, while nodes that are replicated act as the T-Net. It’s worth noting that subscribing will replicate one account, while recommending replicates several. This property will most likely enable an interesting means of exposure, as recommendations can propagate accounts more widely throughout the Bit451 network.

How would I recover an account?

Creating and recovering accounts will involve cryptographic properties. Remember how each bitcoin address has one or more private keys associated with it, so as to grant only those with the key(s) access; the same idea will be implemented regarding accounts. However, since private keys are unique and tied to specific accounts, the traditional email method can’t be used to recover account access. The whitepaper outlines a sort of deterministic wallet approach, with a master public key with child public keys. This plays into recovering access due to the fact that child public keys will be “burned” until the highest verifiable key is found. In the case of a whole account being lost for any reason (like a computer crash), then one can safely regain access with their account’s seed, much like a bitcoin deterministic wallet. All of these properties make for an account that is always recoverable.

As far as account functionality, it’d work as you may expect.

You can favorite and rate videos, as well as subscribe to/recommend/ignore/mimic other accounts. Mimicking would involve copying the subscriptions, recommendations, and/or ignores of another account.

Uploading content will also entail what you may expect: being able to create names, descriptions, and tags for said content.

Phase 3 focuses on enhancing user experience with a few notable features. Anonymity will be achieved by not recording last known IP addresses for each node. This acts as a form of encryption and allows for nodes “to push/replicate data without being able to be connected to”. However, as far as streaming content, the anonymity will be left to either the users or the network which they use to stream.

Cryptocurrency payments to users will be likely implemented through some external plugin API, which will allow for a form of tipping and “automated hosting agreements and payments.”

These hosting agreements would likely involve any node which chooses to host content, since all content must be stored on nodes that agree to it. These nodes can either belong to the content creator, a user who wants to donate their storage space (for free or otherwise), or a user who will pay the content creator for permission. There will also be a reputation system to determine if other users are trustworthy with payments.
Other standard features will include hashtag integration, the ability to create playlists, and comments.

How will this be significant?

I imagine that at the moment, there isn’t a whole lot of desire for a YouTube alternative. Websites like Dailymotion and Vimeo get a lot of traffic, but it pales in comparison to YouTube. However as YouTube continues to take acrtions such as integrating Google+ and allowing content to be taken down unfairly, there’ll be more of a reason for a competitor to take its place. How long that will be is unknown, but when there is a significant need for an alternative, I’d hope that Bit451 serves it.

Daniel Mestre

comments powered by Disqus