刚刚写入区块链的内容,还是比较容易被改动的。经过一段等待时间之后,或者后面几个区块被确认之后,被篡改的概率就大幅度下降(指数级别的下降)。 selfish mining# M→M'的交易所在的区块所在的链条虽然短,但是先偷偷的生成比上面更多的区块,然后等上面的链条公布后再公布,就能够胜过上面的几个区块了 目的一:selfish ...
但采用哈希表,难以提供Merkle proof(莫克树证明),在BTC和以太坊中,交易保存在区块内部,一个区块可以包含多个交易。通过区块构成区块链,而非交易 如何组织账户的数据结构 为什么不能将哈希表的内容组织为Merkle Tree 当新区块发布,哈希表内容会改变,如果将其组织为新的Merkle Tree,每当产生新区块(ETH中新区块产生时间...
记账权就是往比特币账本里写入下一个区块的权利。只有找到这个nonce(随机数),获得记账权的节点才有权利发布下一个区块。其他节点收到这个区块之后,要验证这个区块的合法性,比如block header的内容填的对不对,block header里面有一个域,叫nBits域,实际上它是目标预值的一个编码检查一下nBits域设置的是不是符合比特...
最近对区块链有一些兴趣,在b站看到了北大肖臻老师的公开课《区块链技术与应用》,特在此专栏记录学习笔记,大家共同学习交流。 课程链接: 北京大学肖臻老师《区块链技术与应用》公开课_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 建议配合以下视频食用: 【回形针PaperClip】区块链到底是什么?_哔哩哔哩 (゜-゜)つロ 干杯...
北大肖臻《区块链技术与应用》学习笔记,#二、BTC-数据结构##普通指针:存地址、存储的是某个结构体在内存中的地址(假如P是指向一结构体的指针,那么P里面存放的就是该结构体在内存中的起始位置)##哈希指针:存地址从哈希值H()这个哈希指针,可以找到该结构体的位置同时还能
3.新的区块的传播 新区块的传播和新发布的交易的传播方式是类似的,不过每个结点除了要检查区块的内容是不是合法的,还要检查区块是不是在最长合法链上。越大的区块在网络上传播越慢,比特币协议要求区块大小不能超过1M字节。因为BTC网络的效率比较低,一个1M大小的区块可能要几十秒才能传播给比特币网络上的绝大多数...
"locktime":0,//设定交易的生效时间,0代表立即生效,如果非0代表经过几个区块后才允许上链 "vin":[...],//交易的输入 "vout":[...],//交易的输出 "blockhash":"0000000000000000002c510d..5c0b",//交易所在区块的哈希值 "confirmations":23,//目前已经有几个确认,包括自己及其后面有多少区块上链 ...
北大肖臻《区块链技术与应用》学习笔记11 ETH-挖矿算法 Block chain is secured by mining Time-memory trade off 在BTC篇中,介绍了比特币系统中使用的挖矿算法。挖矿这一过程,虽然并没有创造什么实际价值,但挖矿本身维持了比特币系统的稳定。总体来说,比特币系统中的挖矿算法较为成功,并未发现大的漏洞。[Bug ...
智能合约是运行在区块链上的一段代码,代码的逻辑定义了智能合约的内容。 智能合约的账户里保存了合约的当前的运行状态,包含: Balance 当前余额 nonce 交易次数 coding 合约代码 storage 存储,存储的数据结构是一棵MPT 智能合约的代码一般是用solidity语言来编写的,语法和Javascript接近。
对于基于工作量证明的系统来说,Mining是保障区块链安全的重要手段(Block chain is secured by mining),比特币里面的Mining算法总的来说是比较成功的,经受了时间检验,到目前为止,没有人发现有什么大的漏洞。 Bounty(赏金),Bug Bounty:有的公司悬赏来找软件中的漏洞,如果能找到软件中的安全漏洞就可以得到一笔赏金。