摘要: BTC 用户只保存最近的一些区块,当要用到先前产生的区块,再向别人要就可以,这向别人要的过程是什么?(2-区块链) 答:在网络上传播自己需要哪个块,然后拥有这些块的人会给他 可以要求转账的人发来哈希值,那转账的人和全节点的关系 是什么?(2-Merkle proof ) 答:转账的人可以不是全节点, 阅读全文
posted @ 2021-11-12 13:05 不加糖不加奶 阅读(121) 评论(0) 推荐(0)
摘要: 智能合约智能吗? 智能合约并没有用到人工智能,应该叫做“自动合约”,按照事先写好的代码自动执行某些操作。 现实世界中自动执行某些操作的例子是ATM取款机,物理世界的自动合约,插入银行卡输入密码,就会自动把钱给你。 智能合约其实并不智能,因为一旦写好之后就无法修改,实际上是一种代码合同。 不可篡改性 阅读全文
posted @ 2021-11-12 13:04 不加糖不加奶 阅读(197) 评论(0) 推荐(0)
摘要: 权益证明 proof of stake 比特币和以太坊目前都是使用的基于工作量的证明,这种共识机制受到了普遍的批评——浪费电 以太坊与比特币相比能耗要少很多,这是因为比特币的出块时间长,以太坊的出块时间短,所以每个交易上比特币所花费的能耗要多很多,但是即使如此,以太坊挖矿所消耗的能耗要比信用卡公司多 阅读全文
posted @ 2021-11-12 13:03 不加糖不加奶 阅读(577) 评论(0) 推荐(0)
摘要: 智能合约是比特币和以太坊最大的区别。 什么是智能合约 智能合约是运行在区块链上的一段代码,代码的逻辑定义了智能合约的内容。 智能合约的账户里保存了合约的当前的运行状态,包含: Balance 当前余额 nonce 交易次数 coding 合约代码 storage 存储,存储的数据结构是一棵MPT 智 阅读全文
posted @ 2021-11-12 13:03 不加糖不加奶 阅读(1729) 评论(0) 推荐(1)
摘要: 以太坊难度调整算法 比特币是每隔2016个区块调整一下挖矿难度,目标是维持出块时间在10分钟左右。以太坊是每个区块都有可能调整挖矿难度,调整的算法比较复杂,已经变更了很多次。 以下是区块难度的公式,这个H是当前的区块,这个Hi是当前区块的序号,D(H))是当前的难度。 这里难度调整的公式有两部分,m 阅读全文
posted @ 2021-11-12 13:02 不加糖不加奶 阅读(1485) 评论(0) 推荐(0)
摘要: 挖矿这一过程,虽然并没有创造什么实际价值,但挖矿本身维持了比特币系统的稳定。总体来说,比特币系统中的挖矿算法较为成功,并未发现大的漏洞。 当然,比特币系统的挖矿算法也存在一定问题,其中最为突出的就是导致了挖矿设备的专业化,普通计算机用户难以参与进去,导致了挖矿中心化的局面产生,而这与“去中心化”这一 阅读全文
posted @ 2021-11-12 13:01 不加糖不加奶 阅读(1619) 评论(0) 推荐(1)
摘要: GHOST协议 比特币由于十分钟出一次块,而传播到其他节点大概需要十几秒,所以分叉情况少;但是以太坊出块时间十几秒,所以就导致了分叉情况很常见。 GHOST最初版本 如图,假定以太坊系统存在以下情况,A、B、C、D在四个分支上,最后,随着时间推移B所在链成为最长合法链,因此A、C、D区块都作废(or 阅读全文
posted @ 2021-11-12 13:00 不加糖不加奶 阅读(811) 评论(0) 推荐(0)
摘要: 以太坊如何组织账户状态的数据结构 以太坊采用基于账户的模式,系统中显式记录每个账户的余额。我们要完成的是从账户地址到账户状态的映射,addr-->state。 在以太坊中,账户地址为160位,表示为40个16进制数;状态包含了余额(balance)、交易次数(nonce),合约账户中还包含了code 阅读全文
posted @ 2021-11-12 12:59 不加糖不加奶 阅读(1756) 评论(0) 推荐(1)
摘要: 交易树和收据树 每次发布一个区块时,区块中的交易会形成一颗Merkle Tree,即交易树,跟比特币中的情况类似。 此外,以太坊还添加了一个收据树,每个交易执行完之后形成一个收据,记录交易相关信息。也就是说,交易树和收据树上的节点是一一对应的。主要是考虑到以太坊智能合约执行较为复杂,通过增加收据树, 阅读全文
posted @ 2021-11-12 12:59 不加糖不加奶 阅读(834) 评论(0) 推荐(0)
摘要: BTC是基于交易的账本 BTC系统是基于交易的账本,系统中并未显示记录账户有多少钱,只能通过UTXO进行推算。 但实际中,使用起来较为别扭:A转给B钱的时候,需要说明币的来源。账户中的钱在花的时候,必须一次性全部花出去。 如图1,B收到A的10个BTC,他想要给C3个BTC,如果按照1中方式,其余7 阅读全文
posted @ 2021-11-12 12:58 不加糖不加奶 阅读(525) 评论(0) 推荐(0)
摘要: ETH概述 BTC和ETH为最主要的两种加密货币,BTC称为区块链1.0,以太坊称为区块链2.0。之前文章中提出了比特币设计中存在某些不足,以太坊便对其进行了改进。 例如:出块时间、共识协议、mining puzzle(对内存要求高,反ASIC芯片使用(memory hard mining puzz 阅读全文
posted @ 2021-11-12 12:57 不加糖不加奶 阅读(628) 评论(0) 推荐(0)
摘要: 区块链中的哈希指针怎么在网络中传播? 哈希指针只是一种形象的说法,实际只有哈希,没有指针。怎么才能找到前一个区块的内容呢,全节点将这些区块保存在(key,value)数据库中,key是哈希值,value是区块内容。 分布式共识 为什么比特币可以绕过分布式共识中的那些不可能结论? 因为比特币严格意义上 阅读全文
posted @ 2021-11-12 12:56 不加糖不加奶 阅读(57) 评论(0) 推荐(0)
摘要: 比特币的匿名性 比特币系统中账户的产生不会暴露用户个人信息,用户可以产生很多对账户,然后用不同的账户做不同的事情。 但这种不暴露个人信息的账户显然不是完全的匿名,可以称为假名(pseudonymity)。所以比特币系统中的匿名只是一种假的匿名,就像作家写作用笔名,网民上网交流用网名一样。 比特币系统 阅读全文
posted @ 2021-11-12 12:56 不加糖不加奶 阅读(652) 评论(0) 推荐(0)
摘要: 产生分叉的情况 对区块链状态产生了分歧:state fork 如果两个节点差不多同时挖到一个区块,这两个区块都是挂在当前的区块上的,不同节点先收到的区块不同,就会各自沿着先收到的区块往下扩展,这种时候就会出现临时性的分叉,称为state fork,即由于对区块链当前的状态有意见分歧而产生的分叉。 分 阅读全文
posted @ 2021-11-12 12:55 不加糖不加奶 阅读(622) 评论(0) 推荐(0)
摘要: 基于栈的语言(stack based language) 比特币系统中使用的脚本语言很简单,唯一能访问的内存空间就是一个栈,这点和通用脚本语言的区别很大。 这个交易有一个输入和两个输出,其中一个输出已经被花出去了,另一个没有被花出去。 输入脚本 输入脚本包含两个操作,分别将两个很长的数压入栈中。 输 阅读全文
posted @ 2021-11-12 12:54 不加糖不加奶 阅读(1106) 评论(0) 推荐(0)
摘要: 全节点与轻节点 比特币系统中有两种节点,一种是全节点,一种是轻节点。 全节点特征 一直在线 在本地硬盘上维护完整的区块链信息 在内存中维护UTXO集合,以便快速检验交易的正确性 监听比特币网络上的交易信息,验证每个交易的合法性(有没有合法签名,是不是double spending) 决定哪些交易会打 阅读全文
posted @ 2021-11-12 12:52 不加糖不加奶 阅读(615) 评论(0) 推荐(0)
摘要: 挖矿难度 挖矿就是不断尝试区块块头中的nonce和extra nonce的值,使得: \[ H(block header)≤target \] 显然目标阈值target越小,则挖矿的难度就越大。所以调整挖矿难度就是在调整target,以调整目标空间在整个输出空间中所占的比例。 比特币中使用的哈希函数 阅读全文
posted @ 2021-11-12 12:52 不加糖不加奶 阅读(754) 评论(0) 推荐(1)
摘要: 比特币网络 新的交易要发布到比特币网络上,矿工将交易打包成的区块也要发布到比特币网络上 比特币协议工作在应用层,它的底层是P2P Overlay Network 比特币网络中的P2P网络是很简单的,所有结点之间都是对等的,没有超级结点。要加入这个网络,至少要有一个种子结点(seed node),和种 阅读全文
posted @ 2021-11-12 12:51 不加糖不加奶 阅读(371) 评论(0) 推荐(0)
摘要: 基于交易的账本模式(transaction-based ledger) 区块链是去中心化的账本,比特币采用的是基于交易的账本模式(transaction-based ledger),只记录了转账交易和铸币交易,并没有直接记录每个账户上有多少钱。如果想知道某个比特币账户上有多少钱,要通过交易记录来推算 阅读全文
posted @ 2021-11-12 12:50 不加糖不加奶 阅读(513) 评论(0) 推荐(0)
摘要: 区块链的共识协议 阅读全文
posted @ 2021-11-12 12:48 不加糖不加奶 阅读(516) 评论(0) 推荐(1)
摘要: 哈希指针和Merkle Tree 阅读全文
posted @ 2021-11-12 12:42 不加糖不加奶 阅读(269) 评论(0) 推荐(0)