自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (3)
  • 收藏
  • 关注

原创 90. 小世界网络:节点和用户之间的连接结构

我们从整体“俯瞰”一下整个系统的结构,那应该如下图所示。 由于网络科学中的节点跟我们之前讨论的节点概念略有不同,为了避免误解,把图中数字档案馆的连锁店节点标记为了“存证节点”。 存证节点应该长期互相连接,方便它们广播数据和区块。用户的数量非常大,他们应该使用一种客户端,平时自动从存证节点同步区块头。某些用户会向存证节点上传数据进行存证;而某些用户会互相连接客户端传输数据,再连接到存证节点进行验证;用户也可以同时连接多个存证节点,确保网络通畅。 这样的网络结构,有一个特点:任意两个客户端之间的.

2020-07-02 00:10:16 780

原创 80. 同步区块:多节点如何统一历史数据

这一章,我们简单讲解一下,多节点之间是如何达成历史区块统一的。(如果你觉得这一章难以理解,可以跳过这一章,不影响后续的学习。) 首先,系统里的多个节点,它们的行为是基本上相同的,绝大部分时间都在做这几件事: 不断接收数据包并将新数据包填充到默克尔树底端,已填充的数据包不重复填充; 不断尝试任意数,努力凑出满足目标值的哈希值; 另外还有一件事,就是把新数据包不断广播给其他节点。 下图中,我们拆解了节点 X 的行为,而其他节点也是类似。 当节点 X 做出一个有效区块后,它会立即将部分区块信息广播给

2020-07-02 00:09:21 642

原创 50. 市场竞争、经济激励和难度调整

这一章,是本书第一篇里最难的一章,读者需要同时理解 4 个以上的新概念。而我们要解决的问题是: 工作量证明的目标值应该怎么定,才能让外界相信我们的数字档案馆已经投入了足够大的成本来制造区块头? 根据经济学理论,在一个充分竞争的市场里,企业的利润会趋近于零,而企业本身的规模有可能很大。虽然现实中没有完全竞争的市场,但竞争会不断挤压企业的利润空间,倒逼企业创新。 所以,只要把市场竞争和工作量证明相结合,就能解决我们的问题。 那么,之前提到的数字档案馆的“连锁店”,也就是“节点”,必须互相竞争,也就是说,

2020-07-02 00:06:35 290

原创 45. 工作量证明:让区块链条唯一

上一章,我们已经将区块链条的数据结构大幅优化,验证数据的成本也大幅降低。但是,验证者必须持续同步区块头链。而即使持续同步区块头链,也有可能同步的是一条被专门定制的虚假链。我们的数字档案馆伪造一条虚假链的成本并不高,甚至可以为每个人都精心制造一条虚假链,也可以在一个全新用户加入时临时伪造一条链。 如何让任何人一看到区块链条,就相信这个链条是唯一且正确的那个呢?解决思路是,提升制造一条区块链条的成本,并且要让人们相信,我们没有余力制造另一条虚假的链。 具体怎么做呢?还是利用哈希函数。 哈希函数 SHA25

2020-07-02 00:06:04 367

原创 40. 默克尔树:优化区块内部的数据结构

前几章提出了上面的数据结构,但验证时需要下载巨大的数据量,就如下图所示。 所以我们必须做一些优化。 我们将原始数据放在数据包外面,这样数据包就被瘦身了,暂且称它为“哈希小包”,里面只有上一个哈希小包的哈希值和当前原始数据的哈希值。 可以发现,这种优化的哈希链条,和原来的哈希链条,具有相同的防止篡改的能力。任何原始数据的改动,都会导致对应的哈希小包里的哈希值发生变化,继而导致后面一系列的哈希小包都发生变化。 哈希小包比上一个方案里的数据大包小了很多。 而验证数据的时候,只需要获取这一..

2020-07-02 00:05:20 962

原创 30. 多节点和区块的链:让存证系统永远在线

这一章,我们尝试解决这样的问题:万一我们的数字档案馆断网了,倒闭了,被灾难摧毁了,怎么办? 玩过游戏的都知道,防止老家被一波摧毁的策略就是开分基地。 在这里,我们拿加盟连锁店来类比。我们的数字档案馆必须有很多个“连锁店”。它们都有独立经营的能力,当其中一部分连锁店关闭时,剩下的连锁店可以正常工作,随后新的连锁店又可以随时加盟。只要不是同时瘫痪,我们的存证服务就可以一直运行。为了让全球各地都能享受到高效服务,最好各地都有连锁店。 需要注意的是,我们不能有“总部”,有总部就会有弱点! 用户在使用的时候,

2020-07-02 00:03:38 296

原创 20. 哈希链条和数字档案馆

这一章,我们试图解决一个问题:在对方没有保留初始哈希值的情况下,如何让对方相信一条数据没有被篡改? 我们的最终产品的目标,是存证海量的数据,服务全球人。我们需要存储大量的数据,有巨大的网络吞吐量,所以,我们应该是一个比较专业的机构,一家数字档案馆。 https://commons.wikimedia.org/wiki/File:A_view_of_the_server_room_at_The_National_Archives.jpg 我们该如何存储这些数据呢?我们创造这样一种数据结构,如下图所示

2020-07-02 00:02:42 296

原创 10. 哈希函数:实现不可篡改的第一步

理解比特币其实并不需要了解太多的技术概念,只需要知道两个技术:哈希函数、非对称加密。其他概念都可以通过逻辑推导得出,所以非技术出身的读者也能完全理解。 这一章来讲解一个极为重要的技术概念——哈希函数。理解起来非常简单。 计算机语言中的函数,和数学上的函数类似,就是输入一个数据,然后输出一个结果。 哈希函数是一类函数,它们的效果是,输入任意数据(可以是文件),输出一个长度固定的,但非常长的,看上去像乱码的整数,一般把输出值称为哈希值(甚至简称为“哈希”)。这时,哪怕只对输入的原始数据做很小的改动,哈

2020-07-02 00:00:36 956

Python基础教程(第2版)

Python基础教程(第2版),非常全面的基础教程和查询手册,也是我学Python的第一本中文书

2012-07-23

计算机图形学

计算机图形学基础教程,7章幻灯片。浅显易懂,是学习GL或Shader的入门,非常有意思的计算机学科

2012-07-21

仙林工作室C#程序编码规范

C#的编码规范,因人而异。这是我们公司的规范。我们使用Unity,在MonoDevelop或VS中可以设置自动格式以匹配我们的规范。

2012-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除