16
Kudos A Peer-to-Peer Discussion System Based on Social Voting Luca Matteis [email protected]

Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Embed Size (px)

Citation preview

Page 1: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

KudosA Peer-to-Peer Discussion System

Based on Social Voting

Luca Matteis [email protected]

Page 2: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Social Voting (online discussions)

Page 3: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Nothing decentralized exists for discussing online using social voting. Central entities have control over what can

be discussed. Could alter users reputation.

Challenges for decentralized systems: Who keeps track of user's reputation?

Where is information stored and retrieved?

Page 4: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

distributed hash table

peers

blockchain

key

key

get(key)

put(key, val)

Page 5: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Incentives

• Similar to Bitcoin: mine and get points. • Universal fixed amounts make it uneconomical to

use for trading. • To earn points users post content that others are

willing to upvote.

Page 6: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Transaction (vote): Input —(key)—> Output

A—(a)—>B C—(d)—>D D—(a)—>A B—(c)—>A

B—(b)—>A B—(d)—>C C—(b)—>D

A—(a)—>C C—(d)—>C D—(c)—>B

4 users: A, B, C, D 4 DHT keys: a, b, c, d

block #300block #299block #298

points(user A) = Outputs(A) = 3 points(key b) = key(b) = 2

Page 7: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

A—(a)—>B C—(d)—>D D—(a)—>A B—(c)—>A

B—(b)—>A B—(d)—>C C—(b)—>D

A—(a)—>C C—(d)—>C D—(c)—>B

4 users: A, B, C, D 4 DHT keys: a, b, c, d

block #300block #299block #298

Most relevant keys: a = 3 d = 3 b = 2 c = 2

DHT

Transaction (vote): Input —(key)—> Output

Keys in the latest block are fresher because they are pushed more often to the DHT points(user A) = Outputs(A) = 3

points(key b) = key(b) = 2

Page 8: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

peer

What's relevant lately?

1. get most relevant keysfrom the blockchain

keys: a: 30 points, b: 45 points

distributed hash table

2. get() the keys from the DHT

3. push() the keys to keep them alive in the DHT

Page 9: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

peer

Publish content.Content has a key = k and a value = "Hello World"

1. push(k, "Hello World") to the DHT

distributed hash table

2. make a transaction (vote) with k inside and soon it will be mined in a block

Page 10: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Transactions universal fixed amount

Problem: same user might have several addresses

1EzwoH… 1AZyMz…50 points

They could send votes with specific key to themselves to promote their own content

(key)

Page 11: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Transactions universal fixed amount

(constant)

With universal fixed amounts, transactions are of an atomic value.

1EzwoH… 1AZyMz…

To send 50 points, he now needs to break it into 50 transactions (with amount=1)

1E..0

1…..

1…..

1..N-1

1….N

1 point 1 point

amount = 1

Page 12: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Transactions universal fixed amount

Each transaction also requires a fixed fee

1EzwoH… 1AZyMz…

To send someone a point (a vote) it requires 2 points from the sender: 1 for the receiver, 1 for the miners.

Sending 10 points to someone would require 10 addresses with at least 2 points each. Creating 10 addresses with 2 points each, would

require 10 transactions of 4 points each, meaning 40 points.

1E..0

1…..

1…..

1..N-1

1….N

2 points (1 fee, 1 receiver)

tx amount = 1 fee amount = 1

Page 13: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Keep aliveTransactions in the latest blocks are republished more

frequently to the DHT to enable quicker response times. Intuition: latest content is more frequently fetched.

higher republish ratelower republish rate

This means old content might not be present in the DHT anymore. System only works well for latest

content: it's not meant to function as a permanent storage system (although DHT keys will remain

permanently in the blockchain).

Page 14: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Groups subscriptionContent can be categorized under specific groups such as: sports, videos, politics, astronomy, etc. to enable creation of

communities (subreddits).

higher republish ratelower republish rate

Users subscribe to specific groups and their republish rate is biased towards content they're subscribed to. Intuition: smaller communities might die off into old blocks, therefore subscribers can help store that

content for longer periods of time in the DHT.

Userasubscription = soccer

Page 15: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

DHT structure

• Hierarchical structure of comments to enable discussion (replies/responses are nested).

• Two types of content: posts and comments. • Store little information (limited amount of bytes

needed for comments/posts). • Groups can be assigned to posts to categorize

content and enable creation of communities. • Blockchain doesn't care about this at all (all it needs

is a reference).

Page 16: Kudos - A Peer-to-Peer Discussion System Based on Social Voting

Use cases

45128

119

1890

Decentralized reputation

Freedom of speech

Proof of what anybody said available in the blockchain

Relevant content stands out