热门标签相关文章

系统学习区块链

热门标签相关文章

初识比特币与区块链

比特币是什么?比特币是加密数字货币,没有现钞,没有比特币实物货币,也没有银行网点;所有账目公开透明、可查询;比特币是基于P2P网络的一种分布式系统;比特币是基于非对称加密技术(公开密钥算法)的交易;法币是通过央行来发行,而比特币是通过挖矿产生。

韩茹 2018-12-29
000
1592

密码学hash函数

加密数字货币也必须采取安全措施,以防止人们篡改系统状态,同时加密数字货币还需要防止“混淆”,也就是说,对不同的人做出相互不一致的声明。例如,如果Alice说服Bob她给了他一枚数字硬币,那么她就不能说服Carol,让她相信她也给了她同一个硬币。加密数字货币与法定货币不同的是,它的安全规则需要完全依靠技术来执行,而不需要依赖中央机构。

韩茹 2018-12-29
000
352

牛刀小试-创建最简单的区块链

1. 了解区块链的结构 2. 学会创建一个区块(Block) 3. 学会创建区块链(BlockChain) 4. 学会向一个区块链上添加新的区块 我们创建了一个非常简单的区块链原型:它仅仅是一个数组构成的一系列区块,每个块都与前一个块相关联。真实的区块链要比这复杂得多。在我们的区块链中,加入新的块非常简单,也很快,但是在真实的区块链中,加入新的块需要很多工作。

韩茹 2018-12-29
000
276

工作量证明(proof-of-work)

当前实现的区块链有一个巨大的缺陷:向链中加入区块太容易,也太廉价了。而区块链和比特币的其中一个核心就是,要想加入新的区块,必须先完成一些非常困难的工作。了解什么是PoW,学会生成目标hash,学会在程序中通过代码实现PoW

韩茹 2018-12-29
000
189

区块持久化存储

我们了解持久化的原理,并采用`RocksDB`进行区块的持久化存储。RocksDB和我们平时使用map集合类似,都是通过put()和get()方法,进行存储和获取数据。通过对RocksDB数据库的操作,我们实现了创建区块添加到区块链,实际上是将区块的数据,进行序列化后,存入到数据库中。此外,我们还提供了迭代器获取每个区块,并进行区块的打印。

韩茹 2018-12-29
000
1077

CLI (Command Line Interface) 命令行界面

我们知道了什么是CLI,并通过CLI命令执行程序。通过Apache Commons CLI包设置终端命令,通过命令配合命令参数执行对应的功能。本章节中我们并没有新增功能,项目功能目前为止还是3个,创建创世区块:`creategenesis`,添加新区块:`add`,以及打印区块:`print`。

韩茹 2018-12-29
000
1063

UTXO模型

交易(transaction)是比特币的核心所在,而区块链唯一的目的,也正是为了能够安全可靠地存储交易。在区块链中,交易一旦被创建,就没有任何人能够再去修改或是删除它。了解什么是交易,我们知道了什么是转账交易的输入,输出,以及转账的原理。为了能够实现转账交易和查询余额,我们需要学习UTXO模型,以及统计未花费的Output的算法。

韩茹 2018-12-29
000
178

比特币地址生成解析

我们知道了如何创建一个钱包,钱包中如何创建一对秘钥。我们可以根据公钥生成钱包地址,这个过程虽然有点繁琐,但是不难理解。首先将公钥,进行一次sha256,一次ripemd160,进行hash散列,生成公钥hash(也叫指纹)。再用公钥hash前加1个byte的版本号,一般都是0x00,然后进行两次sha256,获取前4位,作为checksum,然后就得到了版本号+公钥hash+checksum的数据。最后进行一次Base58编码,就得到了钱包地址。

韩茹 2018-12-29
000
126

区块链技术交流群

  • • 区块链部落1群 加入
  • • 区块链部落2群 加入

扫码关注

扫码关注

Copyright © 2016- 北京从零到壹科技有限公司 京ICP备18017811号-1