区块链:比特币背后的技术-V1.2.pptx
《区块链:比特币背后的技术-V1.2.pptx》由会员分享,可在线阅读,更多相关《区块链:比特币背后的技术-V1.2.pptx(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、区块链:比特币背后的技术卫剑钒1区块链的定义狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。-百度百科2用麻将来比喻区块链?所有的比喻都是错误的,部分比喻有一些用。就好比用水解释金融。完全抓住一个概念需要自底而上的了解。3本次讲座讲解比特币背后的技术细节(比特级)把听众当零基础看只是领进门大约4050分钟4 2013年12月5日,人民银行、工信部、三会等五部委发布关于防范比特币风险的通知,“从性质上看,比特币是一种比特币是一种特定的虚拟商品特定的虚拟商品,不具有不具有与货币等同的法律地位与货币等同的法律地
2、位。但是,作为一种互联网上的商品买卖行为,普通民众在自担风险的前提下拥普通民众在自担风险的前提下拥有参与的自由有参与的自由。”比特币的定性5比特币长什么样子67比特币长什么样子8怎么把比特币发给别人别人怎么发比特币给我9涉及的概念比特币地址:形如12usb4VU1UqHSn2QLRyfyNxT3VGgVGaCNo的一串数。比特币地址是用公钥做哈希生成的。比特币公钥使用私钥生成的。比特币私钥是用户通过钱包生成的。比特币钱包是一个客户端。10比特币归根到底是比特1160e31600000000001976a914ab68025513c3dbd2f7b92a94e0581f5d50f654e788a
3、c01100000111000110001011000000000000000000000000000000000000000000001100101110110101010010001010010101011011010000000001001010101000100111100001111011011110100101111011110111001001010101001010011100000010110000001111101011101010100001111011001010100111001111000100010101100内含0.015比特币的UTXO:用16进制表示这个UT
4、XO:只有提供了正确的公钥和签名才能把这笔钱花了16进制和2进制(零基础)一个16进制(hex)字符可用4位(2进制)表示。0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 01118 9 a b c d e f 1000 1001 1010 1011 1100 1101 1110 111112所以:16进制的60e3就是2进制的0110 0000 1110 001116进制:2进制:16进制:2进制:区块链长什么样子13仔细看一个区块14头部 80字节交易存放区010000008a730974ac39042e95f82d719550e224
5、c1a680a8dc9e8df9d007000000000000f50b20e8720a552dd36eb2ebdb7dceec9569e0395c990c1eb8a4292eeda05a931e1fce4e9a110e1a7a58aeb01601000000010000000000000000000000000000000000000000000000000000000000000000ffffffff5370736a049a110e1a04b099a417522cfabe6d6d4e6988c831bb48c551eea50f87b3c6461ade476fe15c98bed7c6a574
6、aca4ff3501000000000000004d696e656420627920425443204775696c6420ac1eeeed88ffffffff0140ff082a010000001976a914ca975b00a8c203b8692f5a18d92dc5c2d2ebc57b88ac000000000100000001d81a8ff9114a09536c43b16003011a91bce5a2941d117e050c01ba1920181c72010000008c493046022100c7784a417a5780b922dd6385bd1cc07b530794c63d6b05
7、84378fc6dfb79d35d50221008812fd23e25549fca2ea6273e0f609f8aa93e2e822ec9a4537d57cd4fb664165014104cfe9363f2c7213bde611e57a4e16b2fb90cf3db160276e5f9f12081c718ebb3821a485866585b3fe416d1b28d4fd993db339dd38bef48da7ec4db5b618a1ce09ffffffff02404b4c00000000001976a91499e8943edcd38645f4a99a7173c9c42ab3e2160c88ac
8、440730ec010000001976a9142e61d7641959b2afcaae323186c239d65df1e58488ac00000000010000000171b250f62a6a5a17ab0a0d60592c39871ba2141a166a852c94cf4f00f0fcb88d010000008b48304502202e1f5fc8065c38a5d7471aa7d3f495048ea773049e6f30d939173dd553fa114f0221008fad13d287ead5c297589211ec0b687fe129f7ff61a344825b295a5c0eda
9、06450141047ef7874043d8355b39ca58c4894ff937c9bce598ac01b325407694d8ddd2132.版本号、哈希、merkle根、时间戳、难度值、Nonce交易数量交易1数据(即输入、输出)交易2数据(即输入、输出)交易3数据(即输入、输出).Block#15459515区块是怎么连接起来的版本号、上一区块头哈希、时间戳、难度值、Nonce本区块交易的merkle根、交易数量交易1数据交易2数据交易3数据.版本号、上一区块头哈希、时间戳、难度值、Nonce本区块交易的merkle根、交易数量交易1数据交易2数据交易3数据.哈希算法一种算法,把任意
10、长度的输入做复杂的变换后,输出固定长度的输出。MD5输出的是128位,16字节。SHA256输出的是256位,32字节。(BTC使用)RIPEMD160输出的是160位,20字节。(BTC使用)计算Hash很容易,逆向很难。倒推只能靠暴力尝试。不同的输入,算法产生完全不同的输出。尽可能等概率、均匀分布到整个地址空间,降低冲突(碰撞)发生几率。16 md5 s“weijianfan”MD5(weijianfan)=c49262b1117b9fd1d6ebd74aaa016f3emd5 s“weijianfam”MD5(weijianfam)=83cc9391aaf8c955b67ecdbf249
11、c5fbfmd5 APT攻击9.10.mp4MD5(APT攻击9.10.mp4)=e9c2a884af7b7c6db7919f8cc8abc51b注:该视频362M。17MD5生成思考给定输入data,然后不断变换Nonce,让你找出前面若干位是0的hash值。MD5(fixed data Nonce)0100110.011011如果让你找出第1位是0的hash值,一般大概需要两次。如果让你找出前2位是0的,大概需要4次。如果找出前3位是0的,几次?18MD5(This is a test 17)=b0fc7f1d91e9053995f707a90970001d 1011.MD5(This i
12、s a test 18)=2da096e2d33078719be1f71f19f3f10b 0010.MD5(This is a test 19)=32333b0fcb54a8c89e3de7d6c9ad4b5c 0011.MD5(This is a test 20)=bbe19f5c8edc2de5e19e7e374ba5e7ff 1011.MD5(This is a test 21)=95090ec4bc9582eeed1ffa5190ed6e7d 1001.MD5(This is a test 22)=2192d2e7b31a0ef78f2292631d5dd95d 0010.MD5(T
13、his is a test 23)=de2e3710ec0fa7fb59d5e28dffce88c9 1101.MD5(This is a test 24)=6cb7aaf335f7db96aff76568c7c528c9 0110.MD5(This is a test 25)=c7ca696058808f0185b68398bc59ab32 1100.MD5(This is a test 26)=162f09dd9c4d8f612f710fe54e5e585b 0001.MD5(This is a test 27)=0daa804de33f7f8559bdb33b3e2d6f5c 0000.
14、MD5(This is a test 28)=b484f277e80c304751f00d670db98fb3 1011.MD5(This is a test 29)=aa1cd22cc75b4b0eed9d48c639d3832d 1010.MD5(This is a test 30)=c11afafbbffecd4d558c5069f27ad103 1100.MD5(This is a test 31)=4f09394865cc6094e7a618a0a152e30c 0100.MD5(This is a test 32)=6907ecb0a7d7887e338315331559383b
15、0110.16进制2进制19想找出前面30bit都为0的哈希值,平均需要230 次尝试。2000000003fc7f1d91e9053995f707a909简要理解公钥算法公钥与私钥是通过一种算法得到的一个密钥对密钥对。公钥可以公开,私钥要保密。从私钥可以导出公钥,从公钥无法导出私钥。公钥算法:用公钥加密,用私钥解开。用私钥加密,用公钥解开。21如何理解你把信件用私钥加密,所有人都可以用你的公钥解开它看。(密码学保证是你写的)别人用你的公钥加密一封信,只有你才能用私钥解开来看。(密码学保证只有你才能看)22数字签名现实生活中的签名:表达了签名人对所签署文件的认可。隐含要求:文件不应该再被改动。
16、23数字签名一种做法:明文,签名者用私钥对明文加密对明文加密验证方法:用签名者公钥解开密文,对比明文明文明文签签名名24数字签名常见做法:明文,签名者用私钥对明文的哈希加密对明文的哈希加密验证方法:用哈希算法计算明文的哈希。用签名者公钥解开密文,对比哈希。明文明文签签名名25公私钥的模样(ECDSA算法)私钥是随机生成的,比如一个256位私钥(64个hex,32个字节):1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD公钥为520位(130个hex,65个字节)04F028892BAD7ED57D2FB57BF33
17、081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB压缩格式的公钥为264位(66个hex,33个字节)03F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A签名为576位(144个hex,72个字节)3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f0
18、39ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e381326比特币地址比特币地址是由公钥经hash变换而得:Hash160=RIPEMD160(SHA256(PubK)Address=Base58Check(Hash160)生成这样地址:1HTrkKfaYLGJYZhMCdmS5JNdgctGj7qG5oBase58check是在Bsae58编码的基础上,增加了错误校验功能,校验码占据4个字节。Base58使用在Bsae64的基础上,舍弃了容易搞错的字符:0(零),O(大写字母o),l(小写字母L),I(大写字母i),27比特币的基
19、本原理(重要!)1、网络中若干个节点运行比特币软件(开源软件)。2、每个节点可以收发比特币(这称为交易),然后在网络内广播该交易数据包,很快会传遍全网每个节点,每个节点都会把错误的交易抛弃掉。3、每隔一段时间(平均10分钟),网内某个节点就会率先打包出一个符合要求的数据块(区块),里面含有这段时间的所有交易,这个区块会广播到全网。28*这里说的节点都是全节点。比特币的基本原理(重要!)4、所有节点都在抢着打包,因为谁能正确打包谁就能得到比特币奖励(所谓挖矿)。只有通过海量尝试,计算出满足要求的哈希值的节点才能打出大家认可的包(也即出块)。5、每个节点收到区块后,如果验证无误,就接受该区块,将其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 区块 比特 背后 技术 V1
限制150内