BlockChain区块链学习笔记--概念理解

目录

一、区块

  • 什么是区块
  • 区块的结构
  • 产生一个区块的过程
  • 如何校验一个区块的有效性
  • 如何验证交易的有效性

二、区块链

  • 什么是区块链
  • 区块链的特点

三、智能合约

  • 智能合约是什么
  • 如何搭建一个智能合约

关键字

UTXO POW coinbase Markle Tree Nonce

正文

区块

什么是区块

在比特币网络中,数据会以文件的形式被永久记录,我们称这些文件为区块。同时也是一种记录交易的数据结构。每个区块由区块头和区块主体组成,区块主体只负责记录前一段时间内的交易信息,区块链的大部分功能都由区块头来实现。

区块的结构

区块的结构主要分为两部分:区块头和区块主体,如下:

区块结构

数据项 描述 长度
Magic no(魔法数) 总是0xD9B4BEF9 4字节
Blocksize(区块大小) 到区块结束的字节长度 4字节
Blockheader(区块头) 包含8个数据项 80字节
Transaction counter(交易数量) 正整数VI=VarInt 1-9字节
Transaction (交易) 交易列表(非空) <Transaction-counter>许多交易

Blockheader区块头表结构

数据项 目的 更新时间 大小(字节)
Version(版本) 区块版本号 更新软件后他指定了一个新的版本号 4
hashPrevBlock(前一个区块的hash值) 前一个区块的256位hash(父区块的hash,区块与区块之间就是靠次hash链接成链) 新区块进来时 32
hashMerkleRoot Merkle(根结点hash值) 基于一个区块中所有交易的256位hash 接受一个交易时 32
Time(时间戳) 从1970-01-01 00:00 UTC开始到现在,一秒为单位的当前时间戳 每几秒更新 4
Bits(当前目标的hash) 压缩格式的当前目标hash值 挖矿难度调整时 4
Nonce(随机数) 从0开始的32位随机数 产生hash时(每次产生hash随机数时都要增加) 4

产生一个区块的过程

1.矿工在挖矿前要组建区块
  将coinbase交易打包进区块(coinbase交易必须放在交易列表的第一个)
  将交易池中优先级的交易打包进区块
  (优先级 = 交易的额度 * UTXO的深度 / 交易的size)
2.创建区块的头部
  版本号 父区块哈希 Markle树根 时间戳 难度值 Nonce
3.挖矿成功后,将计算出来的随机数Nonce填入区块头部,向临近节点传播

如何校验一个区块的有效性

  • 利用算出来的nonce和本区块里面存储的父区块的hash值再做一次hash。
  • 验证POW的nonce值是否符合难度值
  • 检查时间戳是否小于当前时间2小时
  • 检查Merkle树根是否正确
  • 检查区块size要小于区块size的上限
  • 第一笔交易必须是coinbase(挖矿成功的那笔交易)交易
  • 验证每个交易

如何验证交易的有效性

  • 交易size不能大于区块的size上限
  • 交易输入的UTXO是否存在
  • 交易UTXO没有被其他交易引用
  • 输入金额要大于输出金额(交易中,矿工会收取费用)
  • 解锁脚本进行验证

区块链

什么是区块链

区块链是一个分布式账本,一种通过去中心化,去信任的方式集体维护的一个可靠数据的技术方案。是通过每相邻的两个区块中区块头里面的父hash(hashPrevBlock)关联在一起的一种链式数据结构。

区块链的特点

  • 去中心化
    由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

  • 开放性(没有限制,开源,数据公开)
    系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明

  • 自治性,集体维护
    区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。

  • 可靠的数据库(不可更改,永远可访问)
    一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

  • 匿名性,隐私保护
    由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。

智能合约

智能合约是什么

“智能合约”(smart contract)这个术语至少可以追溯到1995年,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。定义如下:
“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”
个人理解就是:将一些约定好的条款,用机器语言写入机器中,在一定的条件下会自动触发;期间不需要人为参与。
比如,通过淘宝下单付款后商家发货,确认收货后系统自动转钱给商家。

智能合约的部署

http://ethereum.github.io/browser-solidity //智能合约在线编辑器

https://learnblockchain.cn/2017/11/24/init-env/ //智能合约部署教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容