HelloZeroNet / HelloZeroNet/ZeroNet

POW content signing

オープン
#1,815 コメント 13 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
18.8k
フォーク
2.3k
PR マージ指標
30日以内にマージされた PR はありません

説明

# Why bother

Right now we have 0 defenses against spamming, maybe this could be useful
Also this is NOT meant to exclude the possible damage of forcing POW as some users are mobile based and will struggle and lack the capability to legitimately post while the spammer on a mid tier rig can easily blast through POW
This is mostly a barrier of sort, not meant to be the only line of defense against spamming but to be used in combination with other tools..

(FYI: i used the word POW signing to refer to computing a hash that matches requirement)
Possible examples:
# POW each publish
This is a simple system where each time you want to publish the data also need to be POW backed to publish, actually it dosent stop spammer, they could choose to spam everything in one go.

# POW for file size
There should be a "POW sign" this to unlock XYZ more space
EDIT: also there should be ways to have diffrent POW requirements, between certs providers and anonymous certs #1812
Example in contents.json for users:
```
POW Sizegate signing:
0byte: /^0000.*$/ (4 zeros hash)
50mb: /^0000.*$/ (4 zeros hash)
100mb: /^00000.*$/ (5 zeros hash)
500mb: /^000000.*$/ (6 zeros hash)
1gb: /^0000000.*$/ (7 zeros hash)
*1gb: /^00000000.*$/ (8 zeros hash)
```
In order to even do your first post you need a 4 zero hash check(explained by the 0 byte).
Each time your data size reaches a new "milestone" you also need to create POW with matching regex.
The *1gb means each time you reach a new multiples of 1 gb you also must sign it, say you reached 3 gb, then you must sign it 3 times.

for example in the user's content.json
```
size sign:
0byte: (data that when combined will result in hash matching regex)
```

the hash match function would be something like
hash(auth address+size+site address+data)
size and site address may be optionally excluded by owner's will, so that a hash can be signed once and used at elsewhere, and allow users to precompute huge hashes only based on their auth address

# Other ways?
Only other ways i can think of is signing for every individual "entity" which depends on application, like zerome and zerotalk each have their own individual entity
It would sure be nice to be able to make each entity to require signing but i cant see a way without huge complication in the json structure of each file
Yes it's possible to do it front ended rather then at the network level, sure it hides the post but still dosent negate the fact people can spam and waste other's disk space

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。