关于 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 做好。

11条评论
  1. 無聊想要開個 ipfs node 備份 matters.new 上所有文章有辦法嗎?

    1. 刘果

      需要一篇篇文章來 pin,因為每篇文章是獨立的前端。可以通過 api 獲取 文章 cid 列表,然後就可以 pin 了。

      之後我們會把每個作者的文章 feed 發佈到 ipns 中,同時捐贈會上到 polygon。這樣既可每個作者來 pin,也可以從 polygon 抓取被支持的 cid 了。

      1. javaing

        想請問,因還不懂IPFS的資料如何儲存,理解是p2p的,但目前沒有一個特定的鏈來存放資料是嗎,可以在polygon也可以在tezos,還是都在 Filecon的鏈上?

        1. 刘果

          嗯是,區塊鏈本身沒法用來存儲內容數據,因為成本太高,設計上是用於存儲金流數據的。所以要麼用戶自己存(最去中心化和抗風險的方式,如 BitTorrent、Planet 等),要麼通過虛擬貨幣激勵其他節點來存,要麼項目自己部署多個節點來存(最容易和最廉價)。

          目前 Matters 是自己部署的節點,以及少量用戶會進行備份。之後會通過整合客戶端讓更多的用戶容易自己存,也會接入 Crust Network(類似 Filecoin,但 Filecoin 目前還不可用)通過虛擬貨幣激勵其他節點存儲。

          但通過虛擬貨幣激勵其他節點,如果一直需要由團隊墊付,同樣是中心化、而不可持續的。

  2. hellolinux2021

    我当时在想matters是本身除了前端在自己的服务器,后面的文章数据也在自己的服务器上吗,还是说文章的数据在matters的数据库有备份,有异常的时候才会去IPFS的存储上去拿。

    对于前端其实应该可以一定程度分散DDOS攻击,另外是否可以依靠第三方客户端或者前端,来简单使用,上传文章,阅读一些简要信息等

    1. hellolinux2021

      另外问一个偏楼的问题,文章一多,文章的ipsf id就难整理,需要一种相对友好的方式获取某位作者的作品指纹,虽然开发者能做,要是在前端自己有这个功能就最好了

    2. 刘果

      是的,内容同时存在 IPFS 和数据库中。IPFS 中的内容还有待加强的地方是需要通过 Crust Network 等方式来 pin,保证是分散的。不过这会增加成本,或者需要用户习惯为自己的数据付费。

      的确需要不同的前端都能够读写,而且需要直接对接 IPFS / IPNS,而不是服务器。提到的 Planet 就是一个例子,我们也在设计如何与 Planet 联通。

      1. hellolinux2021

        多前端是必要的,而且最好有一两个开源部署使用的,能被普通开发者部署到公开的服务器上

      2. hellolinux2021

        IPFS目前拉取也要付费了吗,我记得市存取年限、时间才需要

        1. 刘果
          IPFS目前拉取也要付费了吗,我记得市存取年限、时间才需要

          拉取不收费,但是存储 / pin 有成本,现在是 Matters 用自己的节点在 pin,更可靠的是付费给 Crust Network 的矿工 pin,会有大量备份。

          多前端是必要的,而且最好有一两个开源部署使用的,能被普通开发者部署到公开的服务器上

          另外问一个偏楼的问题,文章一多,文章的ipsf id就难整理,需要一种相对友好的方式获取某位作者的作品指纹,虽然开发者能做,要是在前端自己有这个功能就最好了

          是的,目前的计划是把内容 feed(个人内容 feed、标签内容 feed 等)以 RSS 或 JSON feed 形式动态更新到 IPNS,然后用户可以直接通过 Planet 访问,就变成了纯分布式的前端了。

  3. 林宏信
    就好像森林里每只动物的存活与繁殖组成了进化的方向,但知道进化的方向却无助于每只动物的存活与繁殖。