关于 DDoS 与去中心化的碎碎念
2022 · 7 · 28
昨晚 Matters.News 遭遇了一次大规模的 DDoS 攻击。虽然 Matters.News 历史上遭遇过几次 DDoS,但这一次时间最长、流量最大,前后持续9小时,峰值达到每五分钟五千万次请求。
这次攻击成功之处也在于它的去中心化,发起请求的 IP 均匀分布在全世界各地,导致我们无法通过地理位置来屏蔽攻击者的流量。最后我们只能无差别地通过 CAPTCHA 来判别真实用户和机器人,来让用户可以正常访问。
有一种抵御 DDoS 的思路也同样是去中心化,将处理请求的服务放在边缘节点。每个请求会被分发到最近的服务器,即使攻击者流量集中的地区服务器不再响应,其余地区的用户仍然可以正常使用。这本质上也是 Google、Facebook 等大型服务抵御 DDoS 的方式,但小型团队和服务一般无法承担对应的成本。迫使服务的成本上升,本身就是一种常见而有效的攻击方式。
更彻底的抵御形式也是更彻底的去中心化。如果一个系统中,转账都通过区块链全节点客户端进行,内容数据都通过 IPFS Desktop 或者 Planet 传输,那就也不存在能够被 DDoS 的服务了。不过问题是,用户不愿意这么用,我们也还无法做到像 Matters.News 这么好用,尽管我们也费力尝试过。
DDoS 的攻击是能够显示出去中心化有用之处的。即使 Matters.News 网页无法访问,也不影响区块链上的资产和 IPFS 中的内容。但这种“有用”非常罕见,相反我们早就学到了,大部分情况下去中心化并不是需求,大部分使用者也并不在意。
许多理解技术的人都会直觉地支持去中心化,甚至成为一种审美或者理念。这种直觉背后也有分析的支撑,因为去中心化的网络更加联通、稳健和可扩展。信息系统同样遵循进化原则,那些能更好地为人们传递和承载信息的系统会更容易活下来,而那些更容易被干扰和阻塞的系统则会逐步淡出。
活下来的去中心化网络、去信任化网络、Web3,最终会带来新的组织形态和经济结构,这已经是老生常谈了。这些预判是没错,但对于每个项目和团队,它们又无济于事。就好像森林里每只动物的存活与繁殖组成了进化的方向,但知道进化的方向却无助于每只动物的存活与繁殖。
我想起八十年代个人计算机时代刚刚开启的时候,创业者们需要向用户和投资人证明这是世界的未来。他们唯一拿得出手的是各种表格软件,一个个黑白的、不堪用的早期 Excel。各个团队挤破头抢占电子表格市场,还需要证明自己不是花高价造出了一个笨重的计算器。
现在个人电脑无处不在了,谁都能看见个人电脑开启的新世界里远远不止 Excel。但处在技术变革之中,总是满腔鸡血、满地泡沫,拿着大炮打蚊子,却总也打不准。那些趋势和理想,宏大而飘渺,与每个当下的创造关系甚少。如果你身处八十年代,能做的事情,仍然只有把 Excel 做好。
無聊想要開個 ipfs node 備份 matters.new 上所有文章有辦法嗎?
需要一篇篇文章來 pin,因為每篇文章是獨立的前端。可以通過 api 獲取 文章 cid 列表,然後就可以 pin 了。
之後我們會把每個作者的文章 feed 發佈到 ipns 中,同時捐贈會上到 polygon。這樣既可每個作者來 pin,也可以從 polygon 抓取被支持的 cid 了。
想請問,因還不懂IPFS的資料如何儲存,理解是p2p的,但目前沒有一個特定的鏈來存放資料是嗎,可以在polygon也可以在tezos,還是都在 Filecon的鏈上?
嗯是,區塊鏈本身沒法用來存儲內容數據,因為成本太高,設計上是用於存儲金流數據的。所以要麼用戶自己存(最去中心化和抗風險的方式,如 BitTorrent、Planet 等),要麼通過虛擬貨幣激勵其他節點來存,要麼項目自己部署多個節點來存(最容易和最廉價)。
目前 Matters 是自己部署的節點,以及少量用戶會進行備份。之後會通過整合客戶端讓更多的用戶容易自己存,也會接入 Crust Network(類似 Filecoin,但 Filecoin 目前還不可用)通過虛擬貨幣激勵其他節點存儲。
但通過虛擬貨幣激勵其他節點,如果一直需要由團隊墊付,同樣是中心化、而不可持續的。
我当时在想matters是本身除了前端在自己的服务器,后面的文章数据也在自己的服务器上吗,还是说文章的数据在matters的数据库有备份,有异常的时候才会去IPFS的存储上去拿。
对于前端其实应该可以一定程度分散DDOS攻击,另外是否可以依靠第三方客户端或者前端,来简单使用,上传文章,阅读一些简要信息等
另外问一个偏楼的问题,文章一多,文章的ipsf id就难整理,需要一种相对友好的方式获取某位作者的作品指纹,虽然开发者能做,要是在前端自己有这个功能就最好了
是的,内容同时存在 IPFS 和数据库中。IPFS 中的内容还有待加强的地方是需要通过 Crust Network 等方式来 pin,保证是分散的。不过这会增加成本,或者需要用户习惯为自己的数据付费。
的确需要不同的前端都能够读写,而且需要直接对接 IPFS / IPNS,而不是服务器。提到的 Planet 就是一个例子,我们也在设计如何与 Planet 联通。
多前端是必要的,而且最好有一两个开源部署使用的,能被普通开发者部署到公开的服务器上
IPFS目前拉取也要付费了吗,我记得市存取年限、时间才需要
拉取不收费,但是存储 / pin 有成本,现在是 Matters 用自己的节点在 pin,更可靠的是付费给 Crust Network 的矿工 pin,会有大量备份。
是的,目前的计划是把内容 feed(个人内容 feed、标签内容 feed 等)以 RSS 或 JSON feed 形式动态更新到 IPNS,然后用户可以直接通过 Planet 访问,就变成了纯分布式的前端了。