Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.8k stars 444 forks source link

Proof of Authorship on GigaChannel with TrustChain #4144

Closed ichorid closed 3 years ago

ichorid commented 5 years ago

When an author adds a torrent of their work to GigaChannel(GC), this action could be recorded into the author's TrustChain(TC), effectively creating a Proof of Authorship. TC being a DAG, coupled with a working Trust Function(TF), allows any GC user to determine the original author of the infohash, thus enabling donation-based media economy.

The same mechanism can be used to publish any kind of publicly domain contents: government reports, notarized documents, Linux distro releases, etc.

This is the reason to record the creation of each mdblob entity with TrustChain.

devos50 commented 5 years ago

I like the idea of this 'proof-of-ownership'. It aligns well with our other research work. As we have seen before, solid trust estimation functions are the main problem here but establishing a trust score for channel authors can definitely help us with sybil attacks and/or spam prevention.

This is the reason to record the creation of each mdblob entity with TrustChain.

Recording every single .mdblob might be a bit much for now. I wonder whether it might be enough to record only mdblobs that specify channel creation? In a sense, this would store the channel metadata on-chain and the torrent metadata off-chain. In other words, we only store the root metadata entry on TrustChain. Would this be sufficient?

Related to #1

qstokkink commented 5 years ago

Why would a digital signature not suffice?

ichorid commented 5 years ago

@qstokkink , because a signature alone is not enough to determine who was first to sign a message. Imagine Alice produces a music album and put it in public access with a signed mdblob on my channel. Then Bob can copy the infohash and publish it as if he was the original author. If Charlie then wants to donate to the album's author, he can't really decide who was the first to publish. TrustChain signing allows Charile to determine exactly who was the first to publish.

qstokkink commented 5 years ago

So if I steal someones work and publish it on our platform first, I will be the author? I'm not sure if timestamps can serve as proof of authorship.

devos50 commented 5 years ago

TrustChain signing allows Charile to determine exactly who was the first to publish.

Unfortunately, this is not entirely true. Although we have a total ordering in each individual chain, there are situations where we cannot determine who was the first to publish (unlike linear blockchains like Bitcoin/Ethereum). I make the assumption here that we cannot rely on the timestamp in a TrustChain block. Note that it is possible to defer order information from transactions but if there is no dual-signed transaction made between Alice and Bob, Charlie is unable to determine who was first.

Edit: even if there are dual-signed transactions between two individuals, it might not be enough to get order information (since we are using half blocks which are asynchronous). I have to think about this one more...

ichorid commented 5 years ago

There can be established trusted parties in the network that provide just that - blocks with trusted timestamps. If Alice transacts with any of those after her publication, the order of authorship can be established.

ichorid commented 5 years ago

Another option is to use the trust function to break ties in these corner cases.

synctext commented 5 years ago

Let keep it as simple as possible for Gigachannel upcoming improvement releases: you can donate to a Gigachannel owner public key. Minimal viable product for a gift-based media economy.

ichorid commented 3 years ago

RIP TrustChain