go-filecoin 0.3.2版本更新公告(中英对照)

go-filecoin 0.3.2 is released

Go-filecoin 0.3.2已经发布!

go-filecoin-0.3.2

We’re happy to announce go-filecoin 0.3.2. This release is a big step towards completing the filecoin storage protocol. It includes many changes to the miner actor builtin smart contract that will allow the network to securely account for verifiable storage power once fault handling is in place. Many less visible but high impact code and testing improvements ship with this release. 0.3.2 also includes a big UX improvement with the new and improved go-filecoin deals command for user friendly management of storage deals. Getting paid as a storage miner is now as simple as a single CLI call.

我们很高兴地通知各位,go-filecoin 0.3.2版本已经正式发布。这是完成Filecoin储存协议开发应用的一大步,本次版本更新包括对矿工这一角色内置智能合约的更新,这可以让网络在处理好错误后能更安全地验证网络储存能力。0.3.2版本附带了许多看起来不显眼但实际影响很大的代码,以及相关的测试和改进。本次更新还包括了一项对用户体验很大的改进,也提升了go-filecoin deals 命令对于用户储存交易管理的友好性。作为一个储存矿工获得挖矿奖励将更加简单,就像调用一个CLI一样。

 

Features 重点

🏇 Storage protocol nearing completeness 储存协议即将完工

Our number one goal is a network securely powered by verifiable storage. In order for this to work we need to penalize cheating miners who do not prove their storage on time. This release includes most of the groundwork needed, including fundamental data structures and encoding work for tracking sets of sectors, improved power tracking in the miner actor built-in smart contract, and charging fees for late storage proof (PoSt) submissions. Expect these changes to blossom into the complete fault reporting mechanism in the next release.

我们的首要目标是通过可验证的储存协议来推动网络的安全运行。为了达到这一目的,我们需要惩罚那些没有及时提供其储存证明的作弊矿工。本次更新包含了(储存协议的)大部分基础内容,包括记录(储存)扇区设置的基本数据结构与编码工具,(这将)增进矿工对记录内置智能合约的动力,并对延迟提交储存证明(PoSt)的行为收取费用。在下一个版本中这些变化将有望成为“完整的错误报告机制”(Complete Fault Reporting Mechanism,可参见Girhub上filecoin-project/specs中的Faults.md文件)

👪 Multiple sector sizes 多扇区大小设置

In order for the network to scale gracefully, different miners may choose from a variety of different sector sizes to put data in and prove over: smaller sectors for faster and more nimble storage; larger sectors for slower but efficient storage. This release includes all of the software updates we need to support multiple sector sizes in a single network; however, we plan to properly vet network conditions with much bigger sectors before enabling multiple sectors sizes in the user devnet. Expect 1 GiB sectors on the user devnet in the next release.

为了令网络能温和的拓展,各个矿工可以选择不同大小的扇区来存入数据并生成证明:较小的扇区可以更快,更灵活的储存数据;较大的扇区虽然更慢,但能更高效的储存(数据)。本次更新包含对单一网络进行多个扇区大小设置所必需的内容;然而,我们计划在用户测试网启动多扇区设置前,使用更大的扇区来测试网络相关设置。在下一次更新中,用户测试网将能使用1GiB大小的扇区。

🤝 Deal management and payments 交易管理与支付设置

Both clients and miners can now easily inspect the fine details of all storage deals they have entered into using go-filecoin deals list and go-filecoin deals show. Miners can get paid for honoring a deal by running go-filecoin deals redeem. Additionally this release ships some improvements in payment channel safety for correct arbitration of deal disputes we want down the road.

客户端和矿工可以通过 go-filecoin deals list go-filecoin deals show 指令来检视其输入的所有储存交易之详细信息。矿工能通过运行 go-filecoin deals redeem 来从撮合交易行为中获取报酬。此外,本次更新还改进了支付渠道的安全性,以便对将来(可能出现的)交易纠纷进行仲裁。

 

Performance and Reliability 性能与可靠性升级

🌳 Upgrade in place 相关升级已就位

This release drives home previous work on repo migrations. The go-filecoin-migrate tool (included in the go-filecoin source repo) is now complete. This release includes a proof of concept migration: upgrading on-disk chain metadata from JSON to the more compact CBOR. Landing this means we are confident that this major technical challenge is behind us, putting us one step closer to a reliable, persistent testnet.

0.3.2版本将推动Repo的迁移工作。 go-filecoin-migrate 工具(包括go-filecoin的repo)目前已开发完成,最新版本也包含了对概念证明(Proof of concept)的迁移:将磁盘上链的元数据从JSON升级到压缩性更好的CBOR。我们相信这代表我们已经克服了一个重大的技术难题。一个更加可靠而健康的测试网离我们更近了。

 

Refactors and Endeavors 重构与进展

📈Major testing improvements 改进主要测试(的内容)

Testing is the silent champion of reliability and development speed. This release includes tons of behind the scenes work improving the quality of existing unit and integration tests as well as adding new tests to existing code. Continued improvements to the FAST framework promise to further accelerate integration testing and devnet deployments.

测试(Testing)是网络可靠性与开发速度的幕后保障。本次更新囊括了大量的幕后工作,这些工作提高了现有单元和集成测试之质量,并对现有的代码添加了新的测试选项。我们也在持续改进FAST框架,以期加速集成测试与开发者网络的正式部署。

💳 Tech debt paydown 技术预期部分完成

This release is not playing around when it comes to paying off technical debt. Fundamental chain refactors include an improved immutable tipset type and tipset cache sharing are at the top of the list. A major refactor of the message handling system into inbox and outbox queues is also a notable improvement. Don’t forget about a consistent internal attoFIL token type, a sleek new miner deal acceptance codepath, sector builder reliability fixes… the list goes on. We are excited to be shipping higher quality software with each release so that we can move faster towards a robust mainnet.

新版本并没有完全完成技术预期。我们优先考虑的是对主链进行重构,主要涉及 改良不可变的tipset类型(improved immutable tipset type) 与 tipset缓存共享(tipset cache sharing) 两大方面。另一个显著的优化是对消息处理系统的发件与收件序列的改进。其他工作包括(设计了)一个内部一致的attoFIL token类型,一个更流畅的新矿工交易接受代码路径,扇区构建的可靠性修复等……我们很高兴能在新版本中提供更高质量的内容,这样我们也离强健的主网更近了一步。

 

Changelog 日志

A full list of all 207 PRs in this release, including many bugfixes not listed here, can be found on Github.

你可以在Github上找到本次更新的207个PR的完整列表,还包括了这里没列出的许多BUG的修复。

 

CLI diff 命令行更新

go-filecoin command change
deals list added 新增
deals redeem added 新增
deals show added 新增
miner pledge removed 移除
mining status added 新增
show block args changed 参数变更

Contributors 贡献者

❤️ Huge thank you to everyone that made this release possible! By alphabetical order, here are all the humans who contributed to this release:

非常感谢大家让0.3.2版本的发布成为可能,以下是本次更新的贡献者名单(按字母顺序排列):

🙌🏽 Want to contribute? 想要贡献点什么?

Would you like to contribute to the Filecoin project and don’t know how? Here are a few places you can get started:

如果您希望为Filecoin项目做出贡献却又不知道如何开始,你可以参考以下内容:

查阅贡献指南Contributing Guidelines

go-filecoinrust-fil-proofs 中查阅 good-first-issue 标签

加入Matrix/Slack社群,在#_fil-lobby 中介绍你自己并让我们知道你想为我们做些什么。

加入用户测试网

 

⁉️ Do you have questions? 有任何疑问?

The best place to ask your questions about go-filecoin, how it works, and what you can do with it is at discuss.filecoin.io. We are also available at the community chat on Matrix/Slack.

对于go-filecoin,以及IPFS如何工作,你可以通过它做什么等问题,在 discuss.filecoin.io 上提问是个不错的方式,你也可以在 Matrix/Slack 上提问题。

 

源网页:http://filecoin.io/blog/go-filecoin-0.3.2-release/

译者:CyanGlacier

日期:2019年7月20日

 

 

【翻译】Introduction of IPFS 概述IPFS

什么是IPFS?

欢迎!如果你是第一次听说“IPFS”,那你可来对地方了。这篇文章为你提供快速而又全面的IPFS概述,包括IPFS是什么?它如何工作?以及如何使用它?

IPFS是一个分布式系统,它用于储存和访问各类文件,网站,应用以及数据。

这句话是什么意思?举个栗子,假设你希望查询“土豚”这个动物的相关资料(去查一下就能知道这家伙的有趣之处,它可以在5分钟内挖出1米深的隧道),那么你也许会先访问维基百科上“土豚”词条的页面:

https://en.wikipedia.org/wiki/aardvark

当你在浏览器输入上述URL后,计算机会开始请求“土豚”的百科页面。计算机将访问维基百科用作服务器的电脑,这些电脑可能和你在一个国家内,也有可能在地球的另一边。

如果你通过IPFS来访问“土豚”的百科页面,那么你的计算机将会请求以下页面:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

IPFS系统知道如何通过文件的内容而非“地址”来寻找“土豚”的信息(以下简称“内容寻址”)。在IPFS-ified版本中,“土豚”的百科页面内容将通过URL中间的一串字符串来表现,访问此字符串即可获取相关页面,而不是向维基百科服务器中的部分电脑请求某一页面的内容。通过IPFS,你的计算机可以向全世界的其他计算机发出某一特定内容的“请求”,具有该内容的计算机会向你共享相关内容和页面,即:你可以从任何拥有“土豚”内容的人那里获得信息,而不是只从维基百科获取信息。

除此之外,当你使用IPFS系统时,你不仅仅只从其他人处下载文件,你的计算机在下载文件时也在协助此内容在网络流动。当你同城的朋友或陌生人也需要和你一样的内容时,他们可以通过IPFS系统从你这获取到相关文件。

IPFS不仅使网页的内容寻址成为可能,还能令任何计算机可储存的文件都能通过IPFS进行交换,不论这些文件是文档、电子邮件、MP3还是数据库。

 

所以为啥要这样做?

能够不经某一具体组织的管理,从许多地方下载所需要的文件,具有以下优势:

  • 网站离线带来的危害更少。如果某人攻击了维基百科的服务器,或者他们的工程师不小心犯了错导致服务器起火了,服务器将不得不关机停止访问。如果通过IPFS,你仍然可以从其他地方获维基百科的内容
  • 组织审查内容的难度更高。由于IPFS网络中的文件来自世界各地,所以组织或个体对内容的管制将会很难。2017年土耳其禁止人民访问维基百科,同年西班牙禁止国民访问加泰罗尼亚独立的网站,如果通过IPFS技术,上述封禁行为将有被阻止的可能。
  • 不论你的网络延迟多少都能快速的访问网络。如果你可以从附近的人那里获取文件,而不是从数百里外的服务器获取,那么你获取文件的速度可以显著提升(如果你有足够的资金和技术,CDN——内容分发网络或者多个数据中心也能做到如此效果,但IPFS的宗旨是令每一个人都有实现此效果的能力)。这个特点尤其适用于那些社区内局域网发达而广域网连接贫弱的地方。

上述最后一点也是IPFS命名的由来:星际文件系统(Inter-Planetary File System)!我们正在努力构建一个可以跨越行星(传输内容)的系统,这个目标虽然过于理想,但也让我们持续思考和工作,而且我们在追求上述目标时所创造的东西在邻里之间相当的好用。

 

IPFS上的链接永不改变

之前到“土豚”页面的链接还记得么?他看起来有点不一般:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

/ipfs之后的一堆字母为“内容标识符”,这也是IPFS能从数个地方获取内容的方法。

传统的URLs(统一资源定位符)和文件路径就像下面这样:

根据文件所在位置来标识文件(位置寻址)——即(定位)文件所在计算机的地址以及所在硬盘的位置。如果单一文件储存在复数个地方,比如储存在城镇中你邻居电脑和你朋友电脑里,位置寻址可能无法正常工作。

IPFS通过一个文件的内容来标识文件,而非基于位置寻址。之前链接的内容标识符是特定地址所有内容的加密哈希。这个哈希来源于唯一的内容,尽管他看起来很短(相对于原始内容——“土豚”的维基百科页面而言,字节数要短的多)。加密哈希还能让你验证所得到的内容是否是你想要的——恶意节点不能提供与哈希相匹配的内容。(如果您不了解“哈希”的概念,可以查阅“哈希概念指南”

        为什么我们要说“内容”而不是“文件”或“网页”?因为一个内容标识符可以指向许多不同类型的数据,例如一个小文件,一个大文件或者元数据(元数据是指“和数据有关的数据”,例如你会在访问特定图片的日期、地址或者文件大小时用到它)。因此,单个IPFS地址能反映元数据、一个文件的分片、一整个文件、目录、网页或者其他的内容。想知道更多有关内容可以访问“IPFS是怎样工作的”相关文档

由于IPFS中的文件地址是由文件内容本身来形成的,因此在IPFS中的“链接“无法被更改,比如:

  • 如果某一网页的文本已被改变,那么该网页的新版本将得到一个全新的不同于之前网页的地址(哈希)
  • 一个地址的内容无法移动到另一个地址。在如今的互联网中,公司可以将他们网页的内容重组并移动到其他页面,如将 http://mycompany.com/what_we_do 移动到 http://mycompany.com/services 。在IPFS中,你所拥有的旧有链接仍可以指向之前的内容。

当然,人们总想更新与改变某些内容,并且不希望每次都要为改变的内容发送新的链接。虽然在IPFS中上述内容可以做到,但解释起来则会跨越本指南所应当涉及的范围,您可以查看 IPNS 和 MFS(Mutable FileSystem可变文件系统)的概念文档,来了解如何在分布式系统中依据内容寻址来改变内容。

需要注意的是,IPFS在上述情况下都是具有可参与性与可协作性的,即如果没有人使用IPFS来令某个地址标识的内容供他人访问,那么也将无人能接收到这个内容。另一方面,只要有人对某个内容感兴趣,并将其分享在IPFS网络上,不论分享者是否是该内容的原作者,分享的内容都无法从IPFS中删除。

 

所有的一切,都是为了使用性(Possession)与参与性

虽然IPFS使用了很多复杂的技术,但其基本理念是“改变人和计算机网络之间的通信方式“。如今的万维网由 访问权 和 所有权 构成,即如果他人授予你访问的权限,你可以从他人处获得文件。IPFS则基于 使用性 和 参与性 ,令大多数用户拥有彼此的文件并参与到文件的分享和储存当中。

这意味着,IPFS的良好运转依赖于人们的积极参与。如果你通过自己的电脑在IPFS中分享文件,然后将自己的电脑关闭,其他用户也将不能从你这获取分享的文件。但如果你或者其他用户可以确保这些文件的副本储存在了多个已启动并运行着IPFS的电脑上,那么这些文件对需要文件的用户而言将更加的“可靠“,这在某种程度上是自动运行的:默认情况下,你的电脑在通过IPFS下载文件后,将会于限定时间内和他人共享你所下载的文件。你也可以通过将文件”固定“(Pinning),来使某个内容能长久的被访问和下载。被”固定“的文件将保存到你的计算机当中,同时也让你能在IPFS网络中对其进行操作(分享或下载等),直到你决定对其”解固(Unpin)“。(在“固定”概念文档中你能了解到更多)

现如今, 如果你想保证能在互联网上长期共享你的文件,你也许会使用Dropbox等付费文件共享服务。一部分用户已经与IPFS上提供类似的服务,名叫 Pinning service。不过由于IPFS已经内置了这类分享功能,你可以选择同你的朋友合作或机构间合作(比如图书馆和博物馆会进行合作)来共享彼此的文件。我们希望IPFS能成为一个底层工具,允许丰富的社区、业务还有合作组织共同组建一个比目前互联网更可靠,更健壮、更公平的分布式网络

下一步:

对IPFS感兴趣吗?你可以了解下“如何使用它”

 

源网页:Introduction of IPFS

翻译者:CyanGlacier

【翻译】简单解读Filecoin白皮书

Simplifying the Filecoin Whitepaper

简单解读Filecoin白皮书

By:Robert Greenfield IV

翻译:冰青

Here we’ll quickly breakdown what filecoin is and the system’s consensus protocol, potential vulnerabilities, and projected future state — all straight from the whitepaper in a way we can understand!

本文将简明条理的为大家解读Filecoin是什么,以及Filecoin的共识协议,潜在问题和未来的可能性。所有的内容都直接来自于Filecoin白皮书,并尽可能以大家都能理解的方式来解读。

You can have access to my annotated version of the white paper here — with notes included!

你可以进入这个链接,里面有filecoin的白皮书以及本文作者的注释。

What is Filecoin?

Filecoin是什么?

 

Filecoin is a decentralized storage network that turns cloud storage into an algorithmic market. The market runs on a blockchain with a native protocol token (also called “Filecoin”), which miners earn by providing storage to clients. Essentially, filecoin is the airbnb of data storage — a peer to peer based exchange that accepts asks and bids to settle decentralized data storage transactions on blockchain.

FIlecoin是一个去中心化的储存网络,其令云储存成为一个基于算法的市场。这个市场运行在区块链上并具有原生的通证“Filecoin”,矿工们通过向客户提供储存来挣取通证。实际上,Filecoin颇似数据储存上的爱彼迎——一种点对点的,基于区块链的,通过撮合买卖方需求来解决去中心化数据储存交易的市场。

Filecoin works as an incentive layer on top of IPFS, which can provide storage infrastructure for any data. It is especially useful for decentralizing data, building and running distributed applications, and implementing smart contracts.

Filecoin是IPFS的顶端激励层,作为承载数据储存的基础,擅长于为去中心化数据提供储存服务,并为搭建、运行分布式应用以及架构智能合约提供相应平台

Filecoin System Basics

Filecoin系统基础

 

There are 3 types of entities in the Filecoin system:

在Filecoin系统中有三种个体:

·Client — Pay to store data and to retrieve data in the DSN, via Put and Get requests

·用户——为在分布式储存网络中发布数据储存和数据检索要求以及上传、取回文件的行为支付资金(一般是Filecoin)。

·Miner — Storage Miners provide data storage to the network. Storage Miners participate in Filecoin by offering their disk space and serving Put requests. To become Storage Miners, users must pledge their storage by depositing collateral proportional to it.

·(储存)矿工——在网络中提供数据储存服务,储存矿工通过提供闲置的储存空间与接受用户的储存要求来参与到Filecoin的挖矿过程。成为Filecoin矿工必须提供储存空间并抵押和储存空间大小相对应的Filecoin。

·Retrieval Miner — Retrieval Miners provide data retrieval to the Network. Retrieval Miners participate in Filecoin by serving data that users request via Get. Unlike Storage Miners, they are not required to pledge, commit to store data, or provide proofs of storage.

·检索矿工——检索矿工在网络中提供数据的检索与取回服务,检索矿工通过接受用户的检索请求和取回文件请求来参与到Filecoin的挖矿过程。不同于储存矿工,他们不需要提供储存空间和抵押Filecoin,也不需要接受数据的储存并提供储存证明。

Clients pay a network of miners for data storage and retrieval; miners offer disk space and bandwidth in exchange of payments. Miners receive their payments only if the network can audit that their service was correctly provided.

用户在网络中为数据的储存和检索向矿工支付费用;作为交换,矿工通过提供储存空间和带宽来获得报酬。矿工只有在他们提供的服务通过网络的审查后才能获得报酬。

Filecoin Consensus Protocol

Filecoin共识协议

Filecoin1

可信市场协议

匹配订单:

1、交易双方将“购买(空间)”订单和“出售(空间)”订单加入到公共账本中。

2、当两种订单匹配成功后,参与交易双方创建“成交”订单,成交订单将承诺交易双方进行交换(数据和通证),同时该订单将向全网广播并加入到公共账本中。

达成交易:

3、网络将通过要求服务提供者对其服务或数据传输生成正确的加密证明(时空证明与复制证明等)来确保数据交换或者服务的安全。

4、当交易完成后,网络将发送用户的付款并将订单从公共账本中移除。

 

·The Filecoin protocol is a Decentralized Storage Network construction built on a blockchain and with a native token. DSNs aggregte storage ordered by multiple independent storage providers and self-coordinate to provide data storage and data retrieval to clients.

·Filecoin是基于区块链构建的一个去中心化的储存网络,并附有原生的通证。分布式储存网络收集由不同个体提交的数据交易请求,同时撮合交易以向用户提供数据储存与检索服务。

·Filecoin is a protocol token whose blockchain uses a novel proof, called Proof-of-Spacetime, where blocks are created by miners that are storing data.

·Filecoin是该区块链的原生通证,此链以一种新颖的共识方式“时空证明”,令矿工在储存数据时挖掘区块。

·Provides a data storage and retrieval service via a network of independent storage providers that does not rely on a single coordinator, where: (1) clients pay to store and retrieve data, (2) Storage Miners earn tokens by offering storage (3) Retrieval Miners earn tokens by serving data.

·数据服务提供者(检索与下载)在网络中独立承担数据储存与检索服务,不依赖于任何组织或其他个体。其中:(1)用户为储存和检索数据支付费用;(2)储存矿工通过提供数据储存服务赚取通证;(3)检索矿工通过提供数据检索服务赚取通证。

·Uses Proof-of-Replication (PoRep), a novel Proof-of-Storage which allows a server (i.e. the prover P) to convince a user (i.e. the verifier V) that some data D has been replicated to its own uniquely dedicated physical storage, and Proof-of-Spacetime, where a verifier can check if a prover is storing her/his outsourced data for a range of time.

·通过复制证明,一种新颖的储存证明,令数据服务提供者说服用户相信数据已经被复制到了服务提供者独一无二物理储存设备上,而时空证明令用户可以检查服务提供者是否在一段时间内持续储存好某个数据。

·Filecoin mining power (amount of data stored per miner) is proportional to active storage

·Filecoin挖矿的能源消耗(每个矿工储存的数据量)与网络中的活跃数据(交换、检索、储存、下载的数据)成正比。

Filecoin Usability

Filecoin的用户可操作性

 

·Clients can select replication parameters to protect against different threat models.

·用户可以选择复制文件(即存储到矿工手里的文件)的相关参数,以保护文件免受可能的攻击风险。

·Clients can eventually retrieve data from miners

·用户可以从矿工处检索、取回完整的数据。

Potential Vulnerabilities

潜在攻击性

 

·Sybil Attacks: Malicious miners could pretend to store (and get paid for) more copies than the ones physically stored by creating multiple Sybil identities, but storing the data only once.

·女巫攻击恶意矿工可以假装从一份已储存的数据中,再复制多个备份并储存(且获得相应的额外报酬)并提供储存证明,但实际上其只储存了一份数据。

·Outsourcing Attacks: Malicious miners could commit to store more data than the amount they can physically store, relying on quickly fetching data from other storage providers.

·外包攻击:恶意矿工可以通过储存超额数据,高于其实际所能储存的数据量,来获得额外收益。为此恶意矿工通常需要从其他储存矿工处取用数据以生成储存证明。

·Generation Attacks: Malicious miners could claim to be storing a large amount of data which they are instead a ciently generating on-demand using a small program. If the program is smaller than the purportedly stored data, this inflates the malicious miner’s likelihood of winning a block reward in Filecoin, which is proportional to the miner’s storage currently in use.

·替代攻击:恶意矿工可以声称其储存了大量的数据,但数据并非原有数据,而是由其他程序生成的替代数据。如果程序和生成的数据小于原本应当储存的数据,那么恶意矿工赢得Filecoin区块奖励的可能性会增大,这个可能性与矿工最近储存的数据量成正比。

·Deals are time-boxed and become invalid — but malicious clients could DDOs specified miners and hold their storage up for (ts — now) periods of time indefinitely…

·(接受)交易具有时限,超过时限将视为失效。恶意矿工可以DDOS攻击指定的矿工以令其交易接受时间无限延长(即无法正常接受交易),以此来获得该矿工本应接受的订单。

·Given that clients will essentially need to strategize as to how many pieces they’re bidding to be assigned to m number of sectors AND that those pieces need to be encrypted — there seems a need for something to help manage bids and data encryption before transacting on such a network

·用户发起储存需求后,需要对储存文件应当分片为多少份制定相应计划并为每一部分指定编号,同时这些分片都需要单独加密——因此网络对交易发起和信息传输前的数据协助加密是有必要的(而Filecoin似乎没有做到这一点)

·Level of encryption and sharding of data is somewhat undescribed — seems like clients can opt to store their data in one place by just bidding for one piece (instead of breaking up their data into multiple pieces)

·白皮书对加密等级和数据分片的某些方面表达不清——客户端似乎可以选择在一个地方只储存一个分片(而不是把数据分片再复制多份储存)。

 

Leftover Inquiries

一些小疑问

 

·Is there any guarantee of zero storage faults given a certain amount of requested replicas?

·Filecoin通过设定一定数量的文件(分片)备份,能否避免零储存错误?

·Is the collateral necessary to become a storage miner the filecoin token as well? If so, how is it initially obtained given token sale limitations? Will investors that have filecoin naturally select to transact on the network?

·通过抵押Filecoin来成为储存矿工是否合理?如果是的话,在早期通证分发不全时,如何保证矿工能获得通证?拥有Filecoin的投资人会愿意自发的选择在Filecoin网络上传输通证么?

·How is the piece (data storage request) transacted, are there size limits to how big a piece can be? Isn’t it dangerous to put one piece on a sector (data storage miner space) at all — even if it’s encrypted?

·文件分片(储存请求发送时)是如何传输的?对于每个分片的大小有限制么?如果将一个分片只存储在储存矿工硬盘的一个扇区里,即使分片被加密,分片是否真的足够安全(有扇区损坏的风险)?

·When sectors are sealed (closed due to inadequate leftover space on the storage drive), where is the replica stored?

·当硬盘的扇区被锁定(由于磁盘剩余空间不足导致扇区关闭不予读写)时,分片的复制会被储存在哪?

·Are network assignments of pieces to sectors random?

·网络是随机分配分片储存到磁盘扇区中么?

·Are clients storing the hash of their data in another database, given that they might have billions of pieces given the size of each piece and assignment?

·考虑到用户上传文件的大小与分片数量可能数以亿计,用户是否可以选择将其(上传文件)的哈希值储存在其他的数据库中?

·What type of computational resource does being a Retrieval Miner entail?

·检索矿工使用哪种方式检索资源?

·Where is the off-chain orderbook held and can this be altered?

·离线账本(即储存在本地的文件目录与交易数据)储存在何处?可以更改(并被在线公共账本承认)么?

 

Potential Future State and Application Stack

Filecoin的未来

 

·Off chain settlements could incorporate the fee-less structure/support of IOTA tangle at scale

·(Filecoin作为)链下方案,可以具有减少交易手续费和提高IOTA缠结可扩展性两大功能。

·Potential to create smart contract based APIs that work within the specified Filecoin put framework (querying encrypted data even)

·具有基于Filecoin框架的API构建智能合约的潜力(甚至可以调用查询已加密数据)。

·Potential of Filecoin blockchain being the decentralized off chain storage of other blockchains like bitcoin

·Filecoin区块链具有作为其他链上项目(比如比特币)拓展链下储存的潜力。

·Could even call smart contracts in storage and execute on another blockchain like ethereum to avoid gas fees…

·未来甚至可以从储存的文件中直接调用智能合约并在其他区块链项目(如以太坊)上运行以避免(链上合约运行的)手续费。

参考文献:

Simplifying the Filecoin Whitepaper.  Robert Greenfield IV.  Medium

【翻译】CDN,是什么,为什么,怎么做

CDN — Content Delivery Networks

What, Why and How?

By:Anuradha Wickramarachchi

编译:冰青

因原文表述简练,为科普需要本人增添了部分内容,新增内容将以下划线标注出来

图片1

What?

What is a CDN? Well is a complex network focussed on delivering content. What content? pretty much everything you load from a popular web service would deliver content through a CDN. For an example, FaceBook, NetFlix and YouTube uses content delivery networks to serve the billions of users who requests data from their servers. The main idea behind a CDN is the distribution of content in a manner that improves spacial (location based) and temporal (access time based) localities.

是什么?

什么是CDN?CDN是一个着眼于内容分发的复杂网络,简称为“内容交付网络”。这里的“内容”类似于你在浏览某个热门网站时,网站给你呈现的所有东西(如图片,文字等),这些东西都是通过CDN发送给你的。例如Facabook,Netflix以及Youtube等运用内容交付网络来服务数以亿计的向中心服务器请求内容的用户。CDN背后的核心思想是通过合理的方式来分发内容以降低物理距离与网络距离带来的不便与延迟。

An example
Usually NetFlix installs redundant servers throughout the world at difference ISPs to server users. These servers are called Open Connect Appliances which keeps content locally based on access. Anything new that arrives at NetFlix core would be pushed into these so that the local users will be upto date with show catalogues.

一个例子

Netflix常常在全世界架设由不同服务商提供的冗余服务器来服务用户,这些服务器被称作Open Connect Appliances(开放网络服务器),他们将储存用户访问网飞的内容。同时,一旦有新的内容,网飞中央服务器将会把新内容推送到冗余服务器,用户能在首页目录中及时看到他们。

图片2

Why?

Think of the story of NetFlix or FaceBook. Huge number of users keep requesting content all around the world and obviously having a single huge server farm is not a solution due to many reasons.

为什么需要CDN?

设身思考下Netflix与Facebook的处境:大量来自世界各地的用户向你持续请求内容,在这种情况下,再大再厉害的单点服务器都可能存在以下问题:

1·Single Point of Failure (SPOF)

1、单点故障SPOF(即中央服务器宕机),尤其是DDOS攻击或大量流量集中访问时

2·Network Latency

2、网络延迟(比如中美之间的网络延迟)

3·Cost (ISPs have to jump through many BGs — Border Gateways, that connect different ISPs. This costs!!)

3、费用(网络供应商传输内容必须通过许多网关,这些网关又连向不同的供应商,这将是笔巨大的费用。就像过高速路要交钱一样。同时为了避免高延迟和丢包率造成的数据损坏,服务器一般会像客户端持续发放数据,这些数据会持续占用带宽)

4·Requires redundancy for fail safe

4、网络容错需要服务器有足够的冗余(即一个服务器出问题时还能调用其它服务器)

因此,为了避免单点服务器因为过多的访问量导致的不可预见的问题,中心服务器常和CDN供应商合作,我们以脸书的CDN供应商Akami为例。

Aakami

CDN能提供以下服务:

  • 通过预储存缓存网页内容,令全球用户能够及时的访问到网页与内容
  • 如果某个CDN服务器没有缓存内容,那么他可以向其他缓存了内容的CDN服务器调用资源(这将不同于传统的互联网要经过多个ISP与DNS丢包的问题,因为CDN服务器之间是平等的,结构化设置的)
  • 提高网站的流量负荷峰值,并分流主要节点(包括中心服务器与接收到过多请求的CDN服务器)的压力,使网页或内容即使受到每秒数百万的请求仍能让用户得以访问(即负载均衡)
  • 提高安全性,对于DDOS攻击,一是通过分流攻击压力,缓解攻击效果;二是基于已有设计区分(每个供应商都不同)非法流量与合法流量,拒绝非法流量访问

此外,CDN供应商的服务器还能收集用户的使用记录与流量资料,实现实时监控与个性化推送服务。

Furthermore, if you inspect the DOM (Document Object Model) of FaceBook, you can see the following.

此外,如果你检查脸书的DOM(文档模型),你能看见以下内容:

图片3

一个典型的CDN储存数据的模型

Images of FaceBook are usually rendered using the Akamai CDN. You can find more who uses Akamai here.

脸书常常使用Akami CDN来呈现内容(看Akami为那些客户提供了服务请点击

How?

CDN是如何工作的?(怎么做)

CDNs are mostly distributed systems that talk to each other. As per the definitionof a distributed system, the entire system appears to be one end point to anyone who reaches it.

CDN是一个高度分布式的系统,节点之间可以相互交流。根据“分布式系统”的定义,对于任何接入到这个系统的节点,分布式系统在他们看来都是单独的一个终端(即节点与网络是平等关系)。

Simplified Process

简要示意图

图片4

上图是CDN的一个简要工作原理示意图,包括以下内容

  • 用户在浏览器输入访问的域名,DNS服务器解析到CDN供应商服务器上
  • 根据流量管理,访问重定向到供应商的某一个CDN节点,反馈解析结果
  • 用户根据解析结果,访问相应的CDN节点,而非访问主服务器

再次以上图为例,如果没用开放网络服务器(即CDN服务器),那么用户要访问某一个页面时,访问请求就必须要经过许多ISP、网关等才能抵达,服务器反馈请求也需要再走一次相同的路径,那么将不可避免的造成延迟、丢包,以及大量的带宽消耗(服务器带宽是要花钱购买的)以保证访问得以进行。

Global Redirectors

The concept of global redirectors is important to discuss on CDNs. These are the ISP level or regional level redirects made to reach the closest server which has the requested content.

全球重定向服务

全球重定向服务的概念是讨论CDN避不开的内容,它指在有内容请求时,CDN供应商级别或者区域服务器级别的重定向将使用户的访问请求导向最近的可用CDN节点

Type www.google.com and you will be redirected to www.google.lk (since I’m writing from Sri Lanka). This is global redirection.

例如:当我们在搜索栏输入“bing.com”时,我们将会被重定向到“cn.bing.com”(因为从IP地址来看我们属于中国),而如果cn服务器宕机,我们则会访问bing.com主服务器,这便是全球重定向服务。

Why Open Connect Appliances

Why don’t ISPs have a single server rack to cache all the stuff, why CDNs push their own devices to ISP premises? Well if ISPs were to know what you requested they would have to open and see the content you requested over internet. Modern web enforces HTTPS, which makes this impossible. If they are to open your requests they would have to be a middle man which will again fail at browsers, because this will fail the SSL certificate validation. Therefore CDN issue their own appliance which does the task in a more secure and a reliable manner.

开放网络服务器的架设理由

如果服务器不会面对大量的流量访问,那为什么供应商不自己架设一个服务器来缓存内容,而仍然让CDN来执行此任务?

这是因为,如果数据传输加密不当(CDN服务商多会提供数据加密服务),内容直接通过ISP(网络服务供应商)传输,ISP将不可避免的获知用户向服务器发送请求的详细内容。那么ISP就存在拦截用户信息,向服务器发送伪造信息与向用户发送伪造反馈的可能,即“中间人攻击”现在网站多通过HTTPS来加强隐私,上述的情况将很难出现,因为如果ISP知晓了你向服务器发送的请求的详细内容,他们将成为“中间人”,这将令ISP传输的内容被浏览器所拒绝,因为他们无法通过SSL证书验证(即我们常见的提示——网站证书失效/不安全),存在欺骗用户的可能。也因为ISP直接传输请求存在上述问题,CDN供应商才得以更可靠、更安全的CDN设施来加密用户的请求,并通过重定向服务减少中间人攻击的可能性(多数数据只在用户和CDN节点间传输,仅个别数据由CDN发向中央服务器)。中间人攻击

This may sound like an annoying task for the ISP, to have some box at their premise. Well NOT!! This is because having such device will enable them to reduce the number of request that pass ISP and reach the WWW. This is a huge cost reduction. Eventually both the CDN and ISP are happy, so are we.

对于ISP来说,这听起来像是个很恼火的情况,因为有了很多条条框框的前提,让他们不能直接传输数据而必须通过CDN。其实正相反,这是因为有了CDN,CDN服务可以减少通过ISP到达WWW的请求数量,令ISP的带宽消耗大幅减少,这将节约一大笔资金,因此,ISP与CDN和用户都是受益者。ISP减少支出,CDN获得流量收入,用户得到更安全便捷的服务。

Thank you for reading. Hope you learned something new. Cheers! 🙂

谢谢阅读,希望能从中学到部分知识~乾杯!

参考文献:

  1. CDN — Content Delivery Networks:What, Why and How? Anuradha Wickramarachchi  Medium
  2. Man-In-The-Middle attack. Wikipedia 
  3. Aakamai CDN, Aakamai.com

【原创】什么是IPFS(练手用)

引言:

号称可以替代HTTP协议的IPFS技术究竟几何?本文尽量以简单通俗的语言进行描述(练手用)

一、IPFS定义

IPFS全称InterPlanetary File System(星际文件系统),是由Protocol Lab(协议实验室)开发的一项基于P2P网络的,旨在解决传统HTTP协议导致的网络集中化与数据不稳定问题的新型网络协议。

想要知道IPFS的优势,首先我们要了解HTTP协议存在哪些劣势:

二、HTTP的短处

NeXTCube PC

距离世界上第一台HTTP协议的服务器NeXT开机运行已有数十年,如今这台服务器静静躺在博物馆中,主机上的一张纸条格外醒目——不要关机!诚如纸条所言,HTTP协议中的服务器不能”关机“,关机即意味着其他电脑无法访问此服务器上的数据,也意味着未保存数据的丢失,表现在用户端上,即是大家常见的”404Not Found“。简单来说,HTTP协议存在着一下3问题:

 1. HTTP高度中心化,使用成本高。想要通过HTTP协议下载文件,用户必须向中心化的服务器发送请求。简单的例子便是,用户在成都点开某视频网站观看视频,由于网站只有一个服务器,同一时间观看人数过多,导致视频观看卡顿,哪怕网站服务器就在家门口。如果想解决卡顿,传统的方法是花钱架设更多更好的服务器,这无疑是巨大的成本。

2. HTTP中的文件经常被删除。不论是出于审查需要,还是出于储存成本,基于HTTP协议构建的服务器几乎无法永久储存文件,十年前的网页,多数已经无法打开,即使打开其中的图片也无法加载,其原因便是网站服务器出于经济压力或者行政压力删除文件。

3. 基于HTTP的互联网高度依赖根服务器。现在全球共有13台IPv4根服务器,9个在美国,2个在欧洲,1个在日本,根服务器管理着全球互联网的域名与地址。一方面,根服务器可以通过限制访问与拒绝服务令某些网页或某些用户无法使用互联网;另一方面,根服务器被攻击也意味着互联网的剧烈波动,甚至导致全球互联网无法正常工作。根服务器实际上代表着以”自由“为代表的互联网走向了”集中“。

上述3个问题令HTTP协议及构建在协议之上的互联网存在巨大的隐患,虽然出于经济与政治的平衡,整个互联网仍然安然无恙的运行中,但一旦平衡被打破,互联网也将脆弱不堪,如伊朗曾因攻击导致全国断网,令国内动荡的加剧。以一种新型的协议改进或取代HTTP刻不容缓。在这种背景下,IPFS诞生了。

想要知道IPFS的优势,首先要明白IPFS是如何工作的。

三、IPFS的工作原理与优势IPFS分片

IPFS储存原理示意图,新文件与已有文件只有Hash7的结果不同,故新文件只储存Hash7部分

1、每一份储存在IPFS上的文件都将被分片,如果分片中的文件与网络中已有文件的哈希值相同,那么该部分将不再上传;分片的文件将以数个备份储存在整个IPFS网络中,防止单一分片因网络原因无法下载。最终,用户下载的文件也是通过下载各个分片完成下载。.

2、IPFS为每一份储存在其网络上的文件和分片赋予一个独立的、不重复的哈希值(哈希值的含义将在以后的文章详细讲述),通过此哈希值,在整个网络内寻找此文件,不同于HTTP是基于网络域名来寻找文件,这种方式避免了服务器关闭导致的文件下载失败情况。

3、 储存的文件若发生更改,每一次变更的历史纪录都将保存以便回溯;同时储存的哈希值可以通过域名系统IPNS映射为域名方便查询。

4、如需下载文件,首先找到这个文件所属的哈希表,根据表上的各个分片哈希进行下载,最后组合即可完成。

通过上述4个方式,IPFS完成了文件的储存、查询、下载,可以同传统HTTP协议一般进行服务器的假设与运行,而基于IPFS的互联网,将能通过以下途径解决传统HTTP的缺点:

IPFS的优势

 1、下载速度快,不依赖于主干服务器与中心化网络。由于下载文件是基于分片的哈希值同时下载多个分片,故下载速度同P2P下载(如迅雷)一般迅速;而基于文件寻址也令下载不经过某个中心服务器,可以从物理距离与网络距离最近的节点下载,大大减少延迟。

2、储存空间价廉丰富。一方面,IPFS网络利用Filecoin激励层促使矿工们租赁自己的硬盘与带宽,利用人性的逐利行为,促使矿工不断发掘更低成本的挖矿方式;另一方面,通过文件分片的哈希值剔除冗余文件,相比传统云储存项目,大大优化了网络的储存能力。以上两点共同降低了用户使用与储存成本。

3、安全。当中心化的网络节点受到大量访问请求时极易宕机(即ddos攻击),而提高抗DDOS攻击能力需要花费大量的成本。在IPFS网络中,由于所有节点都是平等的,资源储存在多个节点中,即使数个节点宕机其余节点仍能负担起整个网络的需求。

 4、隐私而开放。隐私上,IPFS基于P2P网络构建,数据交流不经过中心化机构监管,文件储存以哈希和用户私钥加密,有效避免了文件因监管或利益因素而被第三方删除。而开放的分布式网络,文件的交换记录可以被查询,IPFS的复制证明甚至可以知道上传的文件是否被他人所复制,同时激励层Filecoin也使用户上传的文件可以用以交换,促进资源流动。

IPFS网络,不同于其他已有的云储存项目亚马逊云、storj、maidsafe等,IPFS是一个底层架构,同IPNS(域名系统),IPLD(寻址系统),Filecoin(激励层),以及libp2p与Multiformats等,共同构建了一幅对等是网络的蓝图。基于此蓝图,我们可以构建个人的隐私云盘而不用担心封禁;制作不会404的网页;用作虚拟机的根文件系统;构建加密通讯平台……IPFS能做到这些,是因为传统计算机的系统由三个方面组成:“输出”、“处理”、“储存”,而IPFS从储存角度入手,改变现有的中心化储存格局,提升整体效率。

四、IPFS的未来担忧

然而,我们从辩证法中会学到,所有的事物不会是一成不变的美好,IPFS同理。我们会经常接触到IPFS优良的一面,但我们也要了解到IPFS的局限性,以及它未来的不可控性。

1、来自中心化机构的压力。IPFS系统杜绝了中心化结构的审查与监管,将权力下放到各个节点,这样的情景在近代有类似的情形——不论是法国大革命还是十月革命,本质都是将上层权力下放,解放底层人民的生产力。然而,改革的阻力也是非常巨大的,没人愿意放弃自己手里的蛋糕,因此IPFS在发展过程中一定会遭遇中心化机构施加的压力,甚至会有直接的对抗。另外,我们无法肯定IPFS所处的时代是欧文新和谐公社的空想社会主义阶段,还是列宁十月革命阶段,只能让时间来证明一切。

2、节点质量的参差不齐。所有P2P网络都需要面对一个问题:如何在节点作恶或失效情况下维持运转,即我们常说的拜占庭将军问题。中心化机构中因中心有绝对权力可以进行调度以解决此问题,而IPFS网络中为了缓解此问题提出了时空证明、复制证明,并以节点失信即罚没押金行为进行处罚。然而网络早期不乏有节点使用家用硬盘而非企业硬盘进行储存,极易导致数据丢失,一方面影响网络稳定性,一方面降低用户使用体验。并且经济惩罚在面对某些力量(如自然、行政)时不一定具备优势。如何平衡节点与用户间的天平,IPFS还有一段路要走。

3、网络中心化问题。同比特币的发展一般,效率与公平始终是此消彼长之势。矿工们为了挖矿的效率,最终一定会自发联合形成联盟甚至合并为几个节点;用户与开发者为了网络稳定性与隐私性,更希望网络维持一定的去中心化程度。这一论点同样适用于IPFS网络,比特币尚有core开发者与比特大陆矿霸以及数个小矿工联盟和开发者联盟及用户的竞争,IPFS网络能否发展出类似比特币的群雄割据局面,甚或优于比特币形成更公平的去中心化结构,我们无从得知。储存文件的中心化会重蹈HTTP的覆辙,我们只能希望IPFS作为HTTP的颠覆者,不会成为第二个HTTP。

五、总结

IPFS协议令网络的自由与独立精神再次辉耀,在可见的未来,IPFS与HTTP共存并非空想,至于前者能否取代后者,我们无法定夺。但我相信IPFS的潜力,去中心化已成世界的趋势,未来已经来临,只是尚未流行。

参考文献:

  • IPFS——它能取代HTTP协议? 苏江同学 简书 https://www.jianshu.com/p/ddccae89a49a
  • 什么是IPFS? 飞向未来 微信公众号:IPFS指南(ipfs_guide)
  • 什么是IPFS?为什么说它将取代HTTP?张灏楠 微信公众号:IPFSFAN(ipfsfan)
  • IPFS – Content Addressed, Versioned, P2P File System (DRAFT 3),  Juan Benet, https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf

【搬运】区块DAG的范式入门

概要:

与大众的普遍观点相反,将 DAG(有向无环图)用作分布式账本并不会消除工作量证明式的挖矿,也不会消除区块和交易手续费。它的目的是利用 DAG 的结构特性帮助解决区块链的孤块率问题。DAG 解决这个问题并且改进可扩展性的能力取决于为了处理交易一致性而额外实现的规则,以及其它设计上所作的选择。

Directed acyclic graphs 有向无环图

DAG 并不是一个新概念或是技术,也不是一种共识机制;它纯粹是起源于几个世纪前的一种数学结构。在技术上,DAG 是一种包含有向边但不含环(即没有一条可以从一个顶点出发然后又回到它自己的路径)的图。

字节雪球

字节雪球Byteball的DAG结构

在分布式账本的环境中,区块 DAG 一种有特殊含义的 DAG。在这种 DAG 中,顶点代表区块,边代表区块对它们父辈的引用。显然,在区块 DAG 中,区块可能有多个父辈,而不是只有一个;下文会对此进行详细描述。首先,让我们回顾一下孤块率问题。

区块链的孤块率问题

有许多因素制约着区块链的可扩展性,包括处理速度、磁盘 I/O、RAM、带宽,以及新节点的同步(即新节点刚加入网络时将整条区块链下载同步到自己本地的过程)。虽说可以通过改善硬件和技术来突破这些限制,但一个最主要的瓶颈是在协议层面:孤块率。孤块是指由于不可避免的网络延迟而在最长链以外创建的区块。

加快区块创建速度或者增大区块大小会提高孤块率,即在一个新区块传播遍网络之前,很可能会有其它新的不引用它的区块被创建出来(即广义的“分叉”)。孤块率增大会导致安全性降低,这是公认的。如果有越多的诚实区块因为自然分叉的原因导致自己不在最长链中,那么这条链就越不安全。^1 (注:这里的自然分叉是指由于协议本身的特性和网络延迟导致的分叉,而非攻击导致的分叉。在最长链规则下,分叉越多,攻击者为了使自己成为最长链而需要的算力就越小,因此最长链就越不安全。比如在有三条分叉的情况下,攻击者只需超过全网三分之一的算力即可攻占最长链。因此从协议本身的角度来讲,自然分叉越少越好。)

区块链协议一般会规定一个最大区块大小和一个常数的出块率从而应对网络延时并且将孤块的数量降到最低。这种对交易吞吐量和等待时间下限的人工限制(在比特币的情况下,这个限制是每秒3至7个交易和数十分钟的确认时间)对区块链来说是一副苦药丸——它阻止了链上扩容,但保证了自然分叉和孤块极少出现,因此主链是安全的。然而 DAG 可以通过其它方式处理孤块问题。

区块 DAG 范式

DAG 结构有机地吸收了分叉这一概念,所以有必要考虑 DAG 是否可以比链式结构的区块链做得更好。于是,以中本聪的工作量证明为基础,为了生成一个区块 DAG,我们需要对挖矿协议做出一个改变:区块可以引用多个父辈,而非一个单一的父亲。一种经典的扩展账本的方式是让区块引用图中(产生区块的挖矿者在本地能看到的)的所有末端,而非依照中本聪的原始协议只引用最长链的末端。和在区块链中一样,区块会被立即发布。

然而,和区块链不同的是,区块链在构建时会一直维护着一致性(链中的每个区块添加的交易都与链中的父辈一致),而区块 DAG 包含了来自不同“分叉”的区块,所以可能包含许多冲突交易。因此,DAG 或是区块 DAG 本身并不能被认为是一个“解决方案”或是“新方法”或是“新协议”。区块 DAG 只是一个用来设计共识协议的框架,而基于它设计的协议与链式协议相比可能(也可能不)具有同等的安全性和更高的扩容性。^2因此,我们需要一种方法来恢复一致性;换句话说,区块 DAG 系统需要用新的共识协议来取代中本聪的最长链共识。

通过排序达成共识

如果一个分布式系统对系统中所有事件的顺序达成共识,我们就可以很容易地将这个共识扩展到状态的共识——只需要简单地按照达成共识的顺序遍历所有交易,并且接受那些与已经被接受的交易一致的交易。这种方法使网络在构建区块链的过程中就一直维护着一致性。我们现在要做的就是为系统中的所有事件,也就是 DAG 中的所有区块,定义一个排序协议。所有节点都会遵从这个协议从而在区块顺序上最终达成共识。

DAG 的自然拓扑本身就已经为区块引入了偏序排序:若在 DAG 中有一条路径是区块 X引用区块 Y,即可证明区块 Y 是在区块 X 之前被创建的,因此在全局排序中应该排在 X 前面,反之亦然。因此,我们只需要为并行创建的区块(相互之间没有路径相连的区块)所组成的集定义一种顺序。这种范式起源于耶路撒冷希伯来大学开发的基于区块 DAG 的协议(InclusiveSPECTRE,和 PHANTOM);这些协议分别定义了自己的算法,每个算法都对 DAG 中的区块进行排序,并按顺序遍历 DAG,消除与已经被遍历过的交易相冲突的交易。

区块 DAG 的优势

1. 确认时间可以以秒计算,至少是在有可见的双花和冲突交易时

2. 交易吞吐量可以变得很大,只受限于网络条件和终端能力;这样衍生出的好处是手续费会降低

3. 因为每天可以创建大约 100,000 个区块,所以矿工加入矿池的动机也会变弱,这进一步促成了挖矿去中心化

4. 规避了孤块的风险,从而带来很多额外好处(比如与第二层兼容)(注:第二层是指侧链或链下的解决方案,即在主链之上,新建一层辅助的平台和协议,比如闪电网络。)

5. 通过奖励所有区块,消除链上和链下区块的差别,从而消除自私的挖矿行为

区块 DAG vs. 无区块 DAG

市场上几乎每种基于 DAG 结构的加密货币(IOTA、字节雪球、Nano等等)都偏离了中本聪的区块链范式。这种偏离不仅体现在使用 DAG 结构上,还体现在经济学层面的设计上:有的将挖矿委托给用户,有的完全去除了工作量证明挖矿,许多货币没有交易手续费,并且实际上都没有区块——它们将一个个交易直接连在一起。虽然这些设计决策可以用在 DAG 系统中,但它们的特性和 DAG 完全无关。实际上,这些项目可能只用到了 DAG 特性的很小一部分。这些 DAG 系统的兴起很大程度上影响了社区对 DAG 的看法。一方面,狂热支持派将 DAG 技术吹捧为“区块链3.0”;另一方面,怀疑论者对其不屑一顾。可是几乎所有人赞扬或批评的都是现存 DAG 协议在经济层面的设计决策,而这和 DAG 结构根本毫无关系。

比如,在最近的一个问答中,著名比特币专家 Andreas Antonopoulos 将 DAG 描述为和工作量证明相对的“另一种共识机制”。“如果你没有将工作量证明挖矿去中心化,你其实并不需要区块。” Antonopoulos 说道,“你只需要直接将交易连起来,这就是有向无环图的基础。”(点击查看 Andreas Antonopoulos 的问答视频

但是上文已经解释过,DAG 并不是要取代工作量证明或区块。DAG 只是一种数学结构。只是这种数学结构恰好被一些偏离了中本聪的工作量证明系统的项目所使用。与此相反,区块 DAG 是要将 DAG 应用在基于中本聪的系统中(并且特别要强调的是,区块 DAG 使用工作量证明),只是将数据结构和共识层重新设计了一遍。比特流(BitTorrent)和 Chia 的创始人布拉姆·科恩(Bram Cohen)在推特上发表的尖锐评论更接近本质:

有向无环图(DAG)是一种数据结构,而不是一种工作量证明。早在2005年它就被用在 Git 中。它的起源则更是久远。DAG 并不是什么新奇的、引人注目的,或是让人兴奋的东西。

——布拉姆·科恩,2018年1月31日中午12点

的确,DAG 和区块链的不同纯粹只是在结构上,并且区块链也不是什么新奇的、引人注目的,或是让人兴奋的东西。中本聪系统的新颖之处是在它的全局设计上:工作量证明挖矿、区块、交易,以及一个在缺乏信任的系统和需要依靠物质激励的参与环境中达成共识的协议。像 SPECTRE 和 PHANTOM 这样的区块 DAG 系统比中本聪的革新设计更为通用和创新的地方在于:它们独特的共识协议对 DAG 的排序是不可翻转的,因此避免了孤块带来的安全性和扩容性之间的取舍问题。

脚注:

^1 该论述的证明可参考 [a][b][c]

^2 比如,如果一个 DAG 协议对交易进行排序时将最长链里的交易全部排在其余交易的前面,那它的安全性与扩容性的折衷关系就和区块链一样。

本文搬运自DAGFans.org 如有侵权请联系:mylifeform@qq.com,我们将会在24H内删除。