ZeroNet Blogs

Static ZeroNet blogs mirror

Идут годы, и экскурс в прошлое становится всё более интересным. Можно для круглости взять отметки 15 и 20 лет. Фотоархив 2002 года уже обширный, я, как раз, в этом году свой первый цифровик Canon A40 купил. Вот за 1997-й фотографии единичные и эпизодичные, со сканов фотографий друзей.

Ну, поехали :)

IMG_1322-1280.JPG (0x0)

На фото — моё рабочее место от 10.09.2002 года.


  • Содержимое системника уже не помню, хотя, наверное, можно вспомнить через посты на форуме
  • Монитор Samsung 3NE
  • Колонки Genius
  • Клавиатура какая-то из BTC, характерная тем, что была чуть ли не единственная на тот момент совершенно классическая AT-клавиатура без левых кнопок
  • Модем U.S. Robotics Sportster Courier... Кстати, контора-то исчезла с рынка. Жалко, название было кошерным, по Азимову :D
  • Два кредла, под КПК Casio PV-S450 и под Audiovox Maestro. Первый был интересен фантастической автономностью. 160 часов от одной пары AAA. Я из-за этого даже аккумуляторы туда не ставил, всё равно батареек на несколько месяцев работы (и активного чтения) хватало. Второй интересен тем, что это было революционное решение — полноценный цветной PockerPC за $250. Но контора Audiovox на рынке так и не смогла закрепиться.
  • Сложенный ноут IBM Thinkpad 560X

就个人看法来说,如果操作系统采用 Debian,无论是作为客户端还是服务端,使用 shadowsocks-libev 都是一种非常舒适流畅的体验。本文介绍如何在 Debian 系统中搭建 ss-libev 服务端。

注:以下的所有命令,都是针对 Debian 9 Stretch,并在 root 用户下执行的。

安装

添加 stretch-backports

sh -c 'printf "deb <http://deb.debian.org/debian> stretch-backports main" > /etc/apt/sources.list.d/stretch-backports.list'

apt update

安装 shadowsocks-libevsimple-obfs

apt -t stretch-backports install shadowsocks-libev simple-obfs -y

配置

编辑配置文件:

vim /etc/shadowsocks-libev/config-obfs.json

{
    "server":["[::0]","0.0.0.0"],
    "server_port":端口,
    "local_port":1080,
    "password":"密码",
    "timeout":60,
    "method":"aes-256-gcm",
    "mode":"tcp_and_udp",
    "fast_open":false,
    "plugin":"obfs-server",
    "plugin_opts":"obfs=http"
}

接下来,编辑 /etc/default/shadowsocks-libev 指定使用哪个配置文件,如下所示,更改了文件中 CONFFILE 的值(改成了 config-obfs.json ):

vim /etc/default/shadowsocks-libev

# Defaults for shadowsocks initscript
# sourced by /etc/init.d/shadowsocks-libev
# installed at /etc/default/shadowsocks-libev by the maintainer scripts

#
# This is a POSIX shell fragment
#
# Note: `START', `GROUP' and `MAXFD' options are not recognized by systemd.
# Please change those settings in the corresponding systemd unit file.

# Enable during startup?
START=yes

# Configuration file
CONFFILE="/etc/shadowsocks-libev/config-obfs.json"

# Extra command line arguments
DAEMON_ARGS="-u"

# User and group to run the server as
USER=nobody
GROUP=nogroup

# Number of maximum file descriptors
MAXFD=32768

启动并检查

激活服务,以便开机自动启动:

systemctl enable shadowsocks-libev

启动服务:

systemctl start shadowsocks-libev

查看服务状态:

systemctl status shadowsocks-libev

至此,对服务端的部署配置愉快完成。

相关

Debian 9 开启 BBR 加速的方法,见 Enable BBR on Debian Stretch

Debian 9 使用 ss-libev 客户端的方法,见这篇文章。

Notes Update Log

- Posted in BinChan's ZeroNotes by with comments

09/10/17 Some Experiments about ZeroHello Feed add PS1, I can receive feed from ZeroMail now, but meaningless.

25/09/17 Some Experiments about ZeroHello Feed add an example to follow new ZeroNet-related topics on ZeroTalk.

25/09/17 Tutorial: How to Fetch Twitter Profile and Read it Offline add two tips to handle progress hanging problem.

23/09/17 A Dark Theme For ZeroNet add privacy alert for Chrome version of Stylish plugin.

20/09/17 ZeroMessage: ZeroChat as a Widget for Any Zite! improve code for better compatibility (still buggy for ZeroBlog, afaik code related to siteinfo is in conflict with ZeroBlog, have no solution yet), add PS2 (Follow button and how to only follow username mention).

01/08/17 A Dark Theme For ZeroNet fix ZeroHello, Independent Scroll for Panel in ZeroHello is also fixed for new ZeroHello. The Ultimate ZeroNet Mobile Guide remove ZeroHello from ZeroNet mobile userscript :>

24/07/17 The Ultimate ZeroNet Mobile Guide change Note 1 to a harmless method, also add more explanation to browser recommendation.

19/07/17 Independent Scroll for Panel in ZeroHello fix a bug that feedlist keeps autoloading, but also the right topbar and searchbar are not pinned anymore.

12/07/17 ZeroMessage: ZeroChat as a Widget for Any+Zite! add PS1, extra step for zite that already has dbschema.json.

23/06/17 Playing Jekyll ~ add "a phote gallery zite by Jekyll"

09/06/17 Language Sorting for ZeroTalk adds PS (dream tool to sort languages).

30/05/17 Language Sorting for ZeroTalk adds Point 4.

17/05/17 Check if a zite connects to clearnet adds PS2 (relative info and link)

08/05/17 ZeroMe Feed Bot adds summary limited to 300 characters.

28/04/17 ZeroMe Feed Bot adds troubleshooting for a bug that the script sometimes hangs up.

27/04/17 A Dark Theme For ZeroNet changes code host.

23/04/17 ZeroMe Feed Bot step 2 and step 5 add PS (One-line command and another way to repeat command).

17/02/17 Profile changed to "Messy Notes about using Zeronet and other things", so this ~~blog~~ notebook will also cover some other things, mainly some gnu/linux tweaks I guess.

15/02/17 Userscript to filter users on ZeroMe adds PS4.

03/02/17 Userscript to filter users on ZeroMe improves the script and adds PS3.

01/02/17 ZeroNet+on+a+Raspberry+Pi+2 adds PS (solution) to Try to add --ui_restrict argument, but failed, log said "too few arguments." and to "Other issues".

01/02/17 Userscript to filter 'Hello ZeroMe!' posts on ZeroMe adds PS, the feature is officially supported now.

06/01/17 A Dark Theme For ZeroNet adds two screenshots

22/12/16 ZeroNet+on+a+Raspberry+Pi+2 adds solution to ZeroMail always has one file that updates failed.

~~PS: I change the date of this note to 2022 :3 I guess it can pin on the top for a while ~~~ (tip: remove timestamp and save it to renew date)

Недавно пришла в голову ещё одна интересная особенность ZeroNet. Зайты в ней могут быть абсолютно анонимного авторства. Т.е. сделал статью на блоге, дал утянуться через какой-нибудь прокси через Tor, утянули желающие — и всё, можно у себя удалять. При желании можно где-то оставить ключ и тогда можно будет со временем отредактировать откуда угодно. При желании можно ключ грохнуть, тогда изменить уже никому ничего не получится.

Правда, это касается только небольших объёмов. Скажем, с видео так уже не получится, всё равно кто-то должен сидеть на его раздаче :)

magnet:?xt=urn:btih:A15DCD6909A615BAD0526266AE469508F1D5EEB8&dn=SDDE-506 image alt

上零网时间长了,总有很多屏蔽的id。特别是论坛里有几个疑似机器人的id,整天发无意义帖。但是有时候换了台设备,又得重新再屏蔽一次,比较麻烦。


目前官方的ZeroTalk已经可以在帖子下方点击作者id,直接屏蔽发帖id或者回帖id,但是NewGFWTalk还没有更新。下面提供的方法可以让用户在自己的机器上更新这个功能:

  • 首先,备份/data/19BPUZYAdCMxExKHoVSG3cG95wfUfFTEC9(NewGFWTalk的网站文件夹)下的index.html,文件夹css,文件夹js
  • 访问https://www.zerogate.tk/bbs.leafok.bit ,等待加载完成。
  • /data/1PijtZc1gsDPjPfgp35NMhG7wyZrrm8umL下的index.html,文件夹css,文件夹js复制到/data/19BPUZYAdCMxExKHoVSG3cG95wfUfFTEC9下,替换原来的文件和文件夹。
  • 关闭所有零网网站,关闭浏览器,重启ZeroNet主程序,再打开就ok了,站点标题会改变,不习惯的可以自己魔改。
  • 此方法也适用于其他NewGFWTalk系的论坛,站点拥有者也可以参考此方法更新网站。
  • 有问题可以到 https://www.zerogate.tk/bbs.leafok.bit/?Topic:13_1Q2yjutP8VevpmW5ZuKzNcDUQbUFn3gsVT/ ,回复建议或提交bug。

过程中遇到一个问题:“-=政治讨论板块=-”的标题在all.js中读取不到,所以在1454行加了一行代码if(topic_parent && topic_parent.title),屏蔽了版块名称。其他论坛不一定需要这行代码。

1.png (951x345)

2.png (1071x186)​​​​​​​

IM聊天软件推荐:Riot

- Posted in 工科菜鸡的瞎bb by with comments

即时通信(IM)软件是一种非常常用的软件,而传统的QQ以及微信(有人更喜欢提Telegram和Line)正是其中的几个。

传统的单一中心化IM软件,就拿QQ和微信来说,对中心服务器有极其严重的依赖,而且作为专有平台和软体,你的信息其实不归你所有(最近QQ和微信的因言获罪案例想必在0n混迹的各位早已有所耳闻)。优点当然是功能繁多,但缺点(尤其是出在(管理者)身上的缺点)怕是和它们日益臃肿的功能一样多,这里就不细说。


完全对等化的去中心化IM(如Tox以及Ring),也各有各的苦逼之处。首先一个通病就是离线消息的缺失,对于日益移动化的现在肯定是一个非常重大的缺陷。Ring的本职工作是打电话(VOIP),在其它功能上总有这样那样的不如意(但端对端加密值得肯定)。而Tox,目前各大平台的各个Tox客户端特性不齐,通用性和兼容性并不是特别高,而且Tox依赖广播来进行发现和状态(在线离线等)更新,所以你需要保证通讯录质量,因为联系人们知道你的IP地址,只要有一个联系人是蜜罐/沦为傀儡,那你的身份安全/匿名性也会陷入危机之中。

今天打算推荐的IM软件是Matrix协议一族的软件(Riot是其中之一,但较为泛用且功能比较完善),而它们一家其实可以通用(因为基于同一协议而且没有/很少有不兼容性延伸)。而Matrix一族是多中心化的IM,或者应该说服务器端的去中心化。各位可以在Matrix官网看到Matrix的工作过程:多个(相互联结的)服务器注册的不同用户可以在同一个聊天室下进行群聊,而他们发出的信息会被同步到他们所属的全部服务器上,然后推送到聊天室成员的客户端上。这群互相同步的服务器就同一个服务器一样让分别在不同服务器注册的用户可以共同讨论。

由于用户端到服务端之间应用了服务器——客户端的结构,离线消息和其它一些传统IM上的高级功能得以保留。

客户端(包括Riot在内)可以自定义自己要登陆的服务器。

同时,任何人都可以轻易地获取开源的服务端程序来自行搭建服务器,然后不同服务器之间在经过鹳狸猿配置之后可以互相联结组网(至少你不用担心不知道从哪个不知名的服务器天降骚扰还无法让鹳狸猿去干涉之)。意思就是,在服务器数量及其用户发展到一定程度以后,一旦进入极端状态,内网中的各个Matrix服务器可以自行组网,变成一艘巨轮,提供一个统一而去中心化(服务器层面上)的聊天平台。

哥除了对面那个正在说话的家伙以外谁都不信任?Riot提供了端对端加密功能,所有成员所有设备之间都需要两两互相验证(没错,哪怕是同一账号,你自己的电脑和手机之间也需要验证),向未被验证的设备发送加密信息会被警告,也可以在设置里选择不向任何未验证设备发送加密信息。而且,加密聊天室的新成员也好,老成员的新设备也罢,是无法从加密的历史消息里解密出明文来的

之所以推荐Riot,是因为它在各个平台的表现都很不错,移动端和桌面端都做到了全功能(虽然有时候可能会有点bug)。同时,它也有提供网页版,可以在未安装客户端的电脑上快捷的使用(虽然不建议把这当成主力用法)。

本咸鱼也只上手了它几天,说不出什么所以然,但它给我的体验感觉很不错,大可以成为主IM软件。

虽然本咸也不是老手,但至少可以给出几个Tips:

  • 注册账号的时候最好在网页版上注册,而且最好爬高高再去,因为会有验证问答,而验证问答目前来说不翻墙是用不了的
  • 同时不建议在注册的时候就直接关联邮箱,因为曾有人向本咸反应过各种无法注册的问题,而本咸直接注册一个无关联干净账号却是一帆风顺(邮箱电话什么的可以事后在个人设置页面绑定)
  • 建议不要更改PC客户端的语言,我曾经改过,下一次打开就会变回英语而且有时会碰上登陆卡死的问题,不得不在设备列表里把PC给删掉重新登陆。如果你不适应英语,建议你使用移动客户端,至少安卓客户端可以正常地更改软件显示语言而不出问题
  • 不会加好友?点击PC/网页端左下角第二个人像图标(Start chat),然后输入对方的ID就好了。
  • 端对端加密需要在聊天设置中手动开启,而且目前不提供关闭加密功能

本咸的Riot/Matrix ID是@Rollout:matrix.org,有事没事也可以稍微聊那么一下( = v = )

STEVEN LEE MYERS, CHRIS HORTON 2017年9月21日

北京——就在活动人士李明哲从澳门进入中国大陆,前去与民主倡导者会面的那天早晨,他失踪了。

他重新出现在公众面前,是在177天后,上周他站在中国中部一个法庭的被告席上,承认自己在社交媒体上传播批评意见,阴谋颠覆共产党。

19china-legal-1-articleLarge.jpg (600x400)


目前仍不清楚李明哲是在什么情况下被羁押,但在中国政府对批评者的打压中,这个案子之所以尤其引人瞩目,是因为李明哲并非中国公民,他来自台湾,北京声称对这个自治的岛屿拥有主权。

批评人士曾警告说,中国肆无忌惮地扩大其安全部队的活动范围,遏制它认为的海外势力威胁,针对李明哲的诉讼就是一个例子。预计李明哲一案将于本周宣判。

仅最近几个月,中国不仅要求引渡在埃及留学的维吾尔族学生,还像电影一般从香港一家酒店抓走了一名亿万富翁,此举违反了允许这块前英国殖民地自行管理的协议。这位亿万富豪名叫肖建华,目前他似乎是针对大连万达集团所做具政治色彩调查的重要证人。>

另外还有一个名叫郭文贵的亿万富豪,一直在美国对共产党领导层进行耸人听闻的指责,当他在美国寻求政治庇护之后,中国政府突然对其提出了强奸指控。特朗普政府与北京的关系因为朝鲜与贸易问题已经变得很紧张,郭文贵案可能会成为中美关系的一大考验。>

“中国在全球范围内加大了打压民间团体的力度,通常是通过联合国或国际刑警组织等官方渠道进行的。”人权卫士紧急救援协会(Chinese Urgent Action Working Group)的联合创始人迈克尔·卡斯特(Michael Caster)说。“不幸的是,他们非常擅长于这样做。”

人权卫士紧急救援协会为律师举办研讨会,在中国为被告提供法律援助,去年,中国强大的国家安全部逮捕了卡斯特的同事彼得·达林(Peter> Dahlin),并将这位瑞典公民关押了23天后,该机构陷入了停滞。

卡斯特指出,国际刑警组织主席孟宏伟是中国国家安全机构的资深人士。人权观察组织(Human> Rights Watch)近日报道,中国正在阻挠联合国机构对人权问题的调查,并阻止批评人士在听证会上作证,其中一人是世界维吾尔代表大会(World> Uyghur Congress)领导者多力坤·艾沙(Dolkun Isa)。

中国的经济和外交影响力意味着很少有国家愿意或有能力对其治外法权行为提出挑战。有些国家甚至配合他们工作。

亚美尼亚、柬埔寨、印度尼西亚、肯尼亚、西班牙和越南等国家也向中国引渡了数十名针对中国公民的电话诈骗嫌疑人,即便这些人像李明哲一样,都是台湾公民。>

陪同李明哲妻子从台湾到大陆出席审判的台湾民间司法改革基金会律师萧逸民说:“把李明哲视为大陆中国人标志着一个重大的分水岭。”

去年台湾选出新总统蔡英文以来,两岸关系出现恶化,李明哲一案又为此增添了新的压力。蔡英文拒绝对北京说的“九二共识”给予口头支持,中国也正式中断了与蔡英文政府的沟通。“九二共识”认同大陆和台湾都是一个中国,但是各自表述。>

对于李明哲一案,蔡英文政府相对沉默。总统府发言人黄重谚(Alex Huang)说:“我们对这个案件的一贯立场都是,我们将竭尽全力确保他安全返回,同时维护国家尊严。”

中国和台湾近年来根据一个协议进行刑事调查,它要求各方在逮捕对方公民的时候通知对方。台湾官员说,中国政府最近放弃了这种外交做法。

李明哲3月份在澳门附近被捕,10天之后,台湾政府和公众才被同时告知此事。澳门曾经是葡萄牙的殖民地,像香港一样,澳门也是中国特别行政区,拥有自己的法律体系。

无论其法庭认罪的真实性如何,42岁的李明哲与中国境内维权人士接触都承担着巨大风险。李明哲是台湾首府台北市文山社区大学的管理人员,自愿参加了一个名为人权公约施行监督联盟(Covenants Watch)的维权组织,经常前往大陆。

政府任命的律师本月与李明哲的妻子李净瑜联系时,她才得知这个案子到了重要关头。国际特赦组织(Amnesty International)香港研究员潘嘉伟(Patrick Poon)说,她丈夫上个星期在南部省份湖南的岳阳市出庭的消息,她还是在律师跟她联系两天之后从新闻报道中得知的。

岳阳市中级人民法院庭审记录显示,李明哲认了罪。他与大陆的共同被告彭玉华一起出庭,两人都被指控使用社交媒体平台微信、QQ以及在中国遭禁的Facebook组织抗议活动。

李明哲告诉法庭,在被羁押的这段漫长日子里,他看了中国电视台的节目,发现自己被台湾的自由新闻媒体蒙骗,误解了中国的政治制度。“这些错误思想,也导致我触犯一些犯罪的行为,”他说。

台湾律师萧逸民说,李明哲的熟人都没有听说过共同被告彭玉华。彭玉华作证说,他们一起在网上建立了聊天群组,组建了旨在煽动变革的掩护机构“梅花公司”。萧逸民则说没有这样的公司存在。

“他是假冒的,”萧逸民提到彭玉华时说。“这个家伙并不真的存在,他是在扮演一个角色。”

李净瑜也谴责丈夫的审判是场闹剧。她今天在岳阳的酒店说:“今天世界和我都一起见证了这一场政治大戏,也见证了台湾的核心信仰与价值和中国的差异性。”她还说,“台湾的论述习惯,在中国就是叛乱行为。”

李明哲案件与香港五名书商的经历不无相似,他们在出版了关于中国政治阴谋的八卦书刊之后,有四人在2015年秋季在这个半自治城市被人抓走。这些书刊虽然在香港是合法的,在中国却不合法。>

其中一位书商李波是英国公民。另一人桂民海则已经入籍瑞典;他2015年10月在泰国芭堤雅的海边公寓消失,而他被弄回中国的方式至今尚未获得充分解释。2016年1月,他出现在中国国家电视台上,表示自己因为2003年的一起致人死亡的车祸而自愿返回接受处罚。目前他还在监狱里。

“我父亲的遭遇是一个更大的问题,”桂民海的女儿安吉拉·桂(Angela Gui)在一封电邮中写道。她一直在为他的获释而奔走。“这表明外国公民在中国国界之外也是不安全的。我觉得奇怪的是,其他政府并不担心中国这个新的、自封的世界警察角色。”

We can follow posts, comments, mentions from ZeroBlog, ZeroMe, ZeroTalk, etc. But can we also follow update of zites that have no follow buttons? Yes we can :3 ZeroHello feed-follow feature is actually by reading "follow" keyword and sqlite command from /path/to/zeronet/data/users.json. So even a zite has no follow function, you can create one for yourself.

From ZeroNet doc, five columns are necessary for the SQL query: type, date_added, body, title, url.

Some examples: Following new submitted zites in German from ZeroSites:

          "New De Zite": [
            "SELECT 'post' AS type, title || ' -> 192.168.1.110:43110/' || address AS title, '' AS url, date_added, description AS body FROM site WHERE language = 'de'", 
            [
              ""
            ]
          ]

Following page "hubs" changes from ZeroWiki:

    "New Change From Page hubs": [
            "SELECT 'post' AS type, 'New Change From Page hubs' AS title, '?Page:hubs' AS url, date_added, '' AS body FROM pages WHERE slug = 'hubs'", 
            [
              ""
            ]
          ]

Need to restart ZeroNet server to take effect. We also need to create a follow keyword under the zite address in users.json if there is no one, so for ZeroWiki, the full recipe is (be aware of the comma at the end of every item except the last one, you'd better backup your users.json before directly edit it):

  "138R53t3ZW7KDfSfxVpWUsMXgwUnsDNXLP": {
    "auth_address": ...,
    "auth_privatekey": ...,
    "cert": "zeroid.bit"
  },

to

  "138R53t3ZW7KDfSfxVpWUsMXgwUnsDNXLP": {
    "auth_address": ...,
    "auth_privatekey": ...,
    "follow": {
      "New Change From Page hubs": [
            "SELECT 'post' AS type, 'New Change From Page hubs' AS title, '?Page:hubs' AS url, date_added, '' AS body FROM pages WHERE slug = 'hubs'", 
            [
              ""
            ]
      ]
    },
    "cert": "zeroid.bit"
  },

But for some zites this method doesn't work. For ZeroMusic there is no date_added table in database... But it's necessary for the follow command. I tried to use current time:

        "New music": [
            "SELECT 'post' AS type, 'New Submitted Music' AS title, '' AS url, strftime('%s', 'now') AS date_added, artist || ': ' || title AS body FROM songs  ORDER BY id DESC limit 10", 
            [
              ""
            ]
    ]

But didn't work and caused some trouble: On Icecat Mobile the screen kept flashing on ZeroHello... I also tried to use a specific unix time, still nothing showed up.

For ZeroMail I try to add a follow command for receiving new messages:

    "New Message": [
            "SELECT 'post' AS type, 'New Message' AS title, '' AS url, date_added, '' AS body FROM message LEFT JOIN json USING (json_id) WHERE directory = '1AWwhg4EiWAVttfQboJZ4wJfX3WawfJT3h'", 
            [
              ""
            ]
          ]

But after I added it to users.json, after a moment (even that I didn't restart zeronet yet), the follow command disappeared from users.json...

This feature is very flexible, with "LIKE" sql function you can filter content with keywords. For example, to follow topics that the title contains zeronet keyword:

    "New ZeroNet-Related Topic": [
            "SELECT 'post' AS type, title, '?Topic:' || topic.topic_id || '_' || topic_creator_json.directory AS url, added AS date_added, body FROM topic LEFT JOIN json AS topic_creator_json ON (topic_creator_json.json_id = topic.json_id) WHERE title LIKE '%zeronet%'", 
            [
              ""
            ]
          ]

Check your users.json for more examples. That's all.

PS1: I find that if I shut down ZeroNet and add follow command to ZeroMail, then restart ZeroNet, I can receive new message feed from ZeroMail. But... those messages are the one I sent, there is also a table named secret, but after some test guess it's my contact list, so the command is meaningless X(

A Decentralized YouTube?

- Posted in ZeroBlog.bit by with comments

Recently posted on the Bitcoin forum:

"Blockchain and DMCA"

I am curious on whether this might be legal or not for a decentralized version of YouTube. #wtfu

Let's say hypothetically someone created a video sharing site and each video's internet address corresponded to something like an ethereum address. Sort of like how ZeroNet addresses correspond to bitcoin addresses. After the site was registered as a "safe harbor" under the Digital Millennium Copyright Act a system of smart contract was set up to handle DMCA takedown and counter-notices.

The system works as follows: In order to create an account you had to have enough minimum ethereum to put into a new account's corresponding address and to have a video uploaded fully to the video site you have to deposit X amount of ethereum plus the transaction fee. The number of videos a user can upload to the video sharing site depends on the amount of ethereum in the main account address that can be divided into number of video uploads plus transactions fee(s).

If someone wants to claim a video on the site infringes on their copyright they create a new user account for the video sharing site and deposit enough ethereum to cover the videos they want removed (equal to the amount of ethereum it takes to upload the videos plus transaction fee) and the alleged infringing videos are removed. There are a certain number of blocks time for the video poster to challenge the DMCA takedown and have the videos restored (e.g. a month or two). If the DMCA takedown isn't challenged the ethereum from the alleged infringing video address goes to the account of the person making the claim (minus a transaction fee). If however the DMCA is challenged with a counter-notice and a lawsuit isn't filed after around two weeks block time the ethereum from the account of the person making the claim goes to the site (e.g. maintenance cost for process, ect) or is split some way between the site and the accused uploader since the uploader is also damaged by having the content disabled.

This system would help discourage both copyright infringement and false copyright claims by putting an actual price to such activities.

What I am wondering is:

1. Is it possibly legal to require someone to put ethereum upfront to make a copyright claim since the money is returned if the copyright claim is validated by the system?

2. Would the site be legally justified in keeping or splitting the ethereum if the DMCA takedown was challenged and no lawsuit was filed (e.g. DMCA Section 512(f)?