Bloom过滤器用于过滤SPV节点从其对等体接收的交易(和包含它们的块),仅选择SPV节点感兴趣的交易,而不会泄露其感兴趣的地址或密钥。 SPV节点将初始化“过滤器”为“空”;在该状态下...
精通比特币(51):比特币全节点简介
全节点是指维持包含全部交易信息的完整区块链的节点。更加准确地说,这样的节点应当被称为完整区块链节点”。在比特币发展的早期,所有节点都是全节点;当前的比特币核心客户端也是完整区块链节点。但在过去的两年中...
精通比特币(50):新节点如何发现比特币网络?
当新的网络节点启动后,为了能够参与协同运作,它必须发现网络中的其他比特币节点。新的网络节点必须发现至少一个网络中存在的节点并建立连接。由于比特币网络的拓扑结构并不基于节点间的地理位置,因此各个节点之间...
精通比特币(47):比特币网络中的节点类型及角色
尽管比特币P2P网络中的各个节点相互对等,但是根据所提供的功能不同,各节点可能具有不同的角色。每个比特币节点都是路由、区块链数据库、挖矿、钱包服务的功能集合。 比特币网络节点,具有所有四...
精通比特币(32):如何验证脚本?
每一个比特币验证节点会通过同时执行锁定和解锁脚本来验证一笔交易。每个输入都包含一个解锁脚本,并引用了之前存在的UTXO。 验证软件将复制解锁脚本,检索输入所引用的UTXO,并从该UTXO复制锁定脚本。...
精通比特币(31):比特币交易脚本和脚本语言
比特币交易脚本语言,称为脚本,是一种类似Forth的逆波兰表达式的基于堆栈的执行语言。 当一笔比特币交易被验证时,每一个输入值中的解锁脚本与其对应的锁定脚本同时 (互不干扰地)执行,以确...
精通比特币(30):怎样把交易费加到交易中?
交易的数据结构没有交易费的字段。相替代地,交易费是指输入和输出之间的差值。 从所有输入中扣掉所有输出之后的多余的量会被矿工作为矿工费收集走: 交易费即输入总和减输出总和的余量:交易费 = 求和(所有输...
精通比特币(28):如何计算交易费?
大多数交易包含交易费(矿工费),这是为了确保网络安全而给比特币矿工的一种补偿。 费用本身也作为一个安全机制,使经济上不利于攻击者通过交易来淹没网络。 . 大多数钱包自动计算并计入交易费。但是, 如果你...
精通比特币(25):钱包技术概述
“钱包”一词在比特币中有多重含义。 广义上,钱包是一个应用程序,为用户提供交互界面。 钱包控制用户访问权限,管理密钥和地址,跟踪余额以及创建和签名交易。 狭义上,即从程序员的角度来看,“钱包”是指用于...
精通比特币(24):纸钱包
纸钱包 纸钱包是打印在纸张上的比特币私钥。https://bitcoinpaperwallet.com/ . 纸钱包是一个非常有效的建立备份或者线下存储比特币(即冷存储)的方式。 . 作为备份机制,一...