首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

虾说区块链-52-《精通比特币》笔记七

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。

区块链-《精通比特币》笔记七:

《精通比特币》第二版网络在线阅读地址:

http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch08.html

加密和认证连接:在BIP150/151中提供了比特币通讯加密:tor传输和P2P认证和加密。

Tor传输:Tor洋葱路由网络,提供匿名、不可追踪和隐私的随机网络路径提供数据的加密和封装。在bitcoincore中有多种配置,允许运行通过Tor网络传输节点之间的流量,也提供Tor的隐藏服务,允许各个节点通过Tor直接连接到bitcoin节点。在0.12版本,连接本地的Tor服务,节点自动提供隐藏服务,且Tor和bitcoin core进程作为有足够权限的用户访问Tor认证cookie的用户运行,则自动运行,命令如下:bitcoind --deamon –debug=tor。在日志中看到:ADD_ONION success表示已添加隐藏服务。

对等认证和加密:bitc改进方案BIP150-151中在bitcoin网络P2P传输中增加了对P2P的认证和加密的支持,支持两个节点之间的所有通信的协商加密。具体如下:

BIP-150提供可选的对等认证,允许节点使用ECDSA和私钥对对方的身份进行身份验证。

BIP-151要求在认证之前,节点之间按照BIP-151建立加密通信。

以上两种改进方案允许节点连接到受信任的完整节点的SPV客户端,使用加密和身份验证来保护SPV客户端的隐私。使用身份验证来创建可信的bitcoin网络,防止攻击,P2P加密加强bitcoin对流量分析和隐私侵权监控的阻力。

交易池:在bitcoin中每个节点都会维护一份未确认交易的临时列表,称为内存池和交易池。节点利用这个临时的列表来追踪记录那些在网络上知晓,但为被打包进区块的交易。随着交易的接收,这些内容添加上交易池,并传播到网络中。当然有些节点还维护一个独立的交易池,一个交易的输入和一些未知交易相关,那么这个交易理解为孤立交易,暂时存储在孤立的交易池中,直到相关交易信息接收到。过程如下:一个交易添加到交易池,同时检查孤立交易池,查看是否有孤立交易引用了该交易的输出,任何相关交易进行验证,验证通过,那么孤立交易池中删除该交易,添加上交易池中,使得交易记录相关联,对于加入到交易池中的交易,不再是孤立交易,这个过程重复迭代,使得整个交易链连接起来,触发整个交易链重构。交易池和孤立交易池存储在本地内存中,注意是内存中不是存储在硬盘中,这些交易通过网络传入的消息动态填充,启动时候,交易池和孤立池都是空的,睡着新交易的接收慢慢填充。当然一般bitcoin客户端还会有一个UTXO数据库,这个之前文章有写到过,这称为UTXO池,这和交易池是两个不同的数据集合,UTXO池初始化不能为空,里面包含了数以百万级的未支付交易输出记录,这个永久性存储。最大一个区别点:UTXO池代表包含之前已确认的交易,交易池和孤立池是只包含为确认的交易。

区块链数据结构:区块链的数据结构一般包含交易信息的区块通过顺序有序的链接起来,可以想象一条很长的链,串联每一个有序生成的区块,区块中包含各种交易记录和相关信息。在bitcoin客户端使用LevelDB数据库存储区块链的元数据,每一个区块通过hash指向链接前一个区块。第一个区块称为创始区块,高度表示区块和首区块之间的距离,相隔多少个区块就是高度,顶部是指最新添加或者说是生成的区块。

区块头:每一个区块的区块头会进行SHA-256加密,生成一个hash值,通过这个hash值识别区块链中的区块,区块头中还有一个最重要的作用,通过该区块头的父区块hash值引用前一个区块,每个区块头都包含了父区块的hash值,用于链接,通过这个链接,区块串联成区块链。

区块分叉:这里简单说下,一个区块只有一个父区块,但是会出现有多个子区块,那么这种情况称为分叉,分叉有硬分叉和软分叉之分,之后专门会对分叉作说明,有兴趣可以参考之前写的分叉内容。

父区块hash值:在区块链中保障区块一致性,父区块hash值尤为关键,一旦一个区块的父区块hash值被恶意改变,那么父区块的hash值也必将变化,一次类推,一旦想要改变整个区块链,必须改变每个父区块的hash值,直到初始区块,那么这将是一个巨大的工程。这也保证了区块链的不可改变的一个特性。

本文由币乎社区(bihu.com)内容支持计划赞助。

之前写了点东西,随着对区块链的理解,发现有些理解的并不透彻,重新整理。如有理解不正确的地方,请及时指正,同时有兴趣一块交流的可以加笔者微信:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171226B0B7TI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券