本系列内容包含:基本概念及原理、密码学、共识算法、钱包及节点原理、挖矿原理及实现。
转账流程
大家都知道,我们日常使用银行卡进行转账的时候,一般需要填入户名、对方的账号、转账金额以及一些转账附言,接着输入密码以后,就把资金转到对方的账户了。
那这个流程背后的整个系统是如何运转的呢?
假如张三在招商银行开的户,他要将一笔资金转到李四在工商银行的开户行。
那么张三提交转账申请后,其转账卡所在招商银行支行,验证了用户名和密码以后,会将这笔交易提交给招商银行的总行,然后由招商银行的总行将这笔交易,发送给中国人民银行大额或小额的支付系统。
最后,这笔转账交易到达了李四开户的银行工商银行总行,并逐级向下,最终到达李四开户的网点支行。
区块链转账系统又是如何运转的呢?拿比特币系统来说,它是一种点对点的电子现金系统,我们具体看一下整个过程是如何运转的,大家看一下比特币白皮书中的流程图。
假如张三需要向李四转10个比特币,
去中心化云计算区块链网络aelf正式启动主网:刚刚,去中心化云计算区块链网络aelf官方宣布,已正式启动主网。就在主网启动前,官方提示称,主网启动需要两个步骤:
1.启动5个BP(区块生产)节点和6个全节点;aelf网络开始产出区块,创世区块诞生;8.8亿ELF被铸造并锁定以进行代币交换。2.aelf区块浏览器正式推出。此前12月3日消息,aelf官方公布路线图称,aelf主网启动路线共分为五个阶段,分别为:1、安全观察期,该阶段主网主链和侧链分步启动,主网将接入交易所;2、换币期,该阶段主网代币解锁,将启动代币迁移等;3、节点竞选期,DApp将陆续上线;4、完善期,即替换全部节点,并举办aelf DAO管理委员会竞选等;5、稳定期,实现aelf生态自治。[2020/12/10 14:49:19]
首先张三需要打开自己的数字货币钱包,然后扫描或者输入李四的钱包地址,接着张三填入需要转账的金额,以及选择对应的手续费之后,最后输入支付密码,点击发送,就完成了。
这整个过程和传统转账的交易是很类似的,都是需要输入对方的账户、转账金额以及支付密码,然后点击发送,最后资金到达对方账号或钱包,交易完成。
区别
两者之间关键是中间资金流转部分的区别。
动态 | 区块链银行联合企业We.trade计划重新调整平台定价模式:据Fora报道,总部位于都柏林的区块链银行联合企业We.trade计划重新调整其平台的定价模式,并将其开放给小型企业。据悉,该联合企业由包括汇丰和德意志银行在内的12家欧洲股东银行牵头,开发了一个由银行提供的区块链交易平台,以完成企业和供应商之间的跨境交易。在过去的12个月里,这个使用Hyperledger Fabric软件构建的平台已经为更多的银行客户推出服务,最近一次是为斯堪的纳维亚的北欧联合银行(Nordea)。 We.trade新任总经理Ciaran McGowan表示:“We.trade一直在收集中小企业对如何完善该平台的反馈意见。我们实际上正在撰写一份新的商业计划,以展示该公司未来5年的规模。”新计划的一部分将涉及收入模式的多元化。目前,银行使用该平台需支付固定的许可费。McGowan透露其将根据银行规模和中小企业的数量,改为分级定价。 此外,这家爱尔兰区块链公司正努力解决员工短缺问题。目前,We.Trade的基础拥有一支10人规模小团队,该公司计划将这个团队发展到30人,并在内部引入更多的开发技能。[2019/6/13]
首先,张三的钱包通过其私钥对交易进行签名,钱包将签名的交易广播到所有这个钱包连接的比特币节点上。
声音 | 徐成涛:2019将是区块链进入实体经济 推动产链融合的元年:据新浪看点报道,原中央国家机关工委信息中心主任徐成涛致辞:2019 年,越来越多的产链融合应用也昭示了区块链在各行各业的价值与潜力:它帮助资产确权,帮助数据、产品溯源,完善透明、安全、可追溯的溯源账本,实现信息资源共享,打通生产、流通、消费各个领域。区块链正在技术层面构建人与人、企业与企业间乃至整个社会的信任关系。2018是虚拟货币和ICO逐渐淡出的一年,而2019将是区块链进入实体经济,推动产链融合的元年。[2019/1/11]
第二步,这些节点,广播到比特币的其他节点,所有节点都将对这个交易的合法性进行验证。
第三步,如果这个交易是合法的,那么这个交易将会放到待打包的交易序列中,也可以称之为内存池或者交易池,列表中的交易被称为未确认交易。
第四步,比特币矿工会从节点中获得待打包的交易,并开始构建下一个区块,也就是挖矿。
第五步,当矿工挖出一个符合要求的区块后,矿工会将这个区块第一时间广播给系统的所有节点。
第六步,所有节点对广播过来的区块进行验证。如果验证通过,将这个区块添加到本地的账本。
最后,李四的钱包连接到新的节点,新节点的区块中包含了张三的转账信息,这时李四就通过自己钱包就看到了这笔转账成功。
动态 | 企银将建立“金融区块链函证”系统提供相应的服务:据中时电子报消息,中小企业银行(企银)为提供方便的金融服务,透过“金融区块链函证”系统运用区块链(分布式账本技术)不可否认、不易篡改伪造的特性,将银行函证数字化,确保资料来源正确性与交易记录不可修改,相关单位可随时掌握执行情况,解决了邮寄函证遗失风险。企银未来将采取API连接的方式建立“金融区块链函证”系统。[2018/11/1]
运转原理
请大家思考两个问题:
1.为什么使用张三的私钥进行签名,就可以被全网的所有节点接?。
2.这笔交易中已经包含了张三签名,也就是别人都有了张三的签名,那是否后续别人也可以用这个签名仿张三的签名,把张三的资金偷走?例如模仿一张支票的签名来伪造其它支票。
这里就涉及到密码学中的一个非对称加密的相关知识,后续我们再详细讲解这部分的知识。今天主要简单介绍一下非对称加密算法在这里的用法。
大家常常听到的加密算法一般是对称加密,也就是通讯双方都具有双重的钥匙。
中国艺术产业研究院副院长:利用区块链等技术,发展互联网艺术金融:近日,中国经济网文化产业特约专家、中国艺术产业研究院副院长西沐发表文章《国际艺术金融发展的问题与趋势》。文中指出,中国艺术金融创新发展要以风险结构化机制创新为抓手,以综合性服务平台建构为突破点,积极发展基于以第三方支付、数字资产、区块链技术为基础的互联网艺术金融及其产业业态,大力促进艺术金融新业态培育与产品体系成长。[2018/6/2]
举个例子,对称加密就好比给一个门装上锁,只有有钥匙的人才能开门,但是所有人的钥匙都是一样的,这就是对称加密。
而非对称加密与对称加密最大的不同就是:通讯双方不需要有相同的钥匙。
就好比甲用了钥匙A把门锁上,乙可以用钥匙B把门打开,这两把钥匙对应非对称加密中的私钥和公钥。
私钥和公钥是一一对应的,由私钥可以产生公钥,但是由公钥不能反推回私钥。
非对称加密的流程。
1.发送方生成公钥和私钥;
2.使用私钥对数据进行签名;
3.得到签名后的密文;
4.将密文和公钥发送给接收方;
5.接收方通过公钥对密文进行解密。
6.证明密文是经过发送方的私钥签名的。
其实这里就解答了第一个问题,因为张三使用私钥对交易数据进行了签名,同时全网都可以有张三的公钥,通过公钥和签名就可以验证交易的合法性。
我们再来看一下第二个问题。
如果李四收到了张三转的10个比特币,他是否可以把这个交易继续广播到比特币网络中,从而不断的从张三的账户中转出10个比特币呢?
这个答案是:肯定不行。我们可以看一下交易结构。
在每个比特币交易结构中都包括:输入以及输出两部分。
输出中包括了收款方的信息,比如上面的数量和锁定脚本。锁定脚本指定了接收者的比特币地址,以及什么情况下,这个比特币可以被花费。
而上面的输入,包括了前序交易的ID,前序交易的序号决定了输入在交易中排第几,以此解锁脚本。
前去交易的这些信息被称为?UTXO。
由于每个UTXO只能被使用一次,所以即使张三需要继续给李四转10个比特币,由于前面的input已经变化了,所以签名内容也会完全不同。从而,即使相同的交易,也不能被重复的广播到比特币的网络中。
我们继续看一下UTXO,有人可能会问,如果我这一个UTXO都用完了,后面我怎么转账呢?
其实我们日常生活中大家常用的,比如说银行、支付宝、微信这些,大家比较熟悉的是一个账户模型:我有一个账户,账户里有一个余额,我转出多少,账户就剩多少,每个人有一个或者多个账户。
这种模型是大家非常容易理解的,但是UTXO模型与账户模型有很大的不同。
个人理解UTXO模型更像是支票,就好比在比特币网络中是一张张比特币支票在不断的流转,当有一笔比特币转入的时候,就产生了一个新的UTXO,当向外转账的时候,钱包将会选择一个足够金额的UTXO作为交易的输入。
然后将找零金额和找零地址,作为交易的输出,构建在这笔交易中,当这笔交易被比特币网络确认的时候,这个交易中使用的一个UTXO就失效了。
同时因为有一个作为找零的输出,所以这个钱包就得到了一个新的UTXO,就相当于又得到了一个新的支票。
由于前面的UTXO已经失效了,所以说对应的签名肯定也是失效,因此也就不能被重复使用。
这里问大家一个问题:既然我知道了张三的地址和公钥,那为什么不能从这个地址和公钥反推回他的私钥呢?
假如李四有张三的地址和公钥以后,反推回张三的私钥,李四不就可以把张三的钱花掉了吗?是什么机制保证保证了这个不可逆呢?
请往下看
公、私钥的转换过程
私钥是通过椭圆曲线的算法得到了公钥,公钥经过多次的哈希运算,得到了这个公钥的哈希,之后再通过Base58的编码得到了地址。
整个过程中,从私钥到公钥,以及公钥到哈希的过程信息多次被压缩,都是单向的,也都是不可逆的。所以说,通过公钥的哈希是无法得到公钥的,也同时无法得到私钥。
而私钥从何而来的呢?私钥其实就是一个随机数。这个随机数的范围是1~2的256次幂,范围大约是10的77次方。目前宇宙中可见的粒子大约是10的80次方。
拿比特币来说,比特币全网已经使用过的粒子,也就是全球的地址大约是2400万,也就是10的8次方。大家可以想象一下这两个空间之间数量级差了多少,所以说比特币地址的空间是非常非大的,发生碰撞或重名的机会微乎其微。
有的朋友也听说过一件事情,就是某一个人注册了一个新的数字货币钱包,但是这个钱包创建完成以后,他看到这个钱包有过交易记录。简单的说就是他创建的这个个钱包曾经被别人使用过。
那是到底什么情况会发生这种事情呢?
一种情况是真的发生了碰撞,就好像高能粒子对撞机,每几十亿次实验就会发生几个粒子的碰撞。虽然碰撞的概率非常小,但并不是不能发生。
另一种情况就是由于钱包开发者或供应方的原因,钱包的随机数生成模块有问题,导致了钱包的随机数空间非常小。这样会指数级的提高发生碰撞的概率。
我们通过下面的图来总结一下:
首先是私钥产生一个随机数;这个随机数通过椭圆曲线的转换得到公钥;公钥经过SHA-256以及RIPEMD-160转换得到公钥哈希;最后经过Base58编码得到比特币的地址。
大家可以看到从私钥-公钥-公钥哈希-地址这个流程,信息被多次压缩,除了最后一步Base58是可逆的以外,其余只要数据压缩,就会造成数据的丢失。所以说这个过程是绝对不可逆的,这也保证了数字货币的安全。
这里大家可以预先思考一个问题:既然从私钥到公钥是不可逆的,那为什么我们不使用公钥来做数字货币的接收地址,而必须把公钥转成公钥哈希,之后再经过Base58转换成接收地址呢?
我们将在下期进行解答
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。