最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

区块链和比特币入门

XAMPP相关 中文小张 36浏览 0评论

Hash:对于任意内容,计算一个长度相同的特征值。区块链中长度位256位。原始数据不同,hash一定不同,hash由区块头唯一决定——

* 可以通过hash标识区块

* 区块内容改变,hash一定改变

这个机制可以保证自身的可靠性——如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,Hash 的计算很耗时,同时修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。

智能合约:智能合约是一种在满足特定条件时,自动执行的计算机程序。

DApp:Decentralized Application的缩写,译为:分散式的应用程序。DApp运行在去中心化的网络上,也就是区块链网络中。网络中不存在中心化的节点可以完整的控制DApp。区块链相对于DApp来说是应用运行的底层环境。简单的可以类比为IOS,Andorid等手机操作系统于运行与之上的各种App。


比特币:一个去中心化的p2p系统

解决问题:一个是去中心化的p2p系统,一个是支付要解决的双花问题

点对点的电子现金系统:中间不需要任何金融机构,并防止双重支付。

解决双花问题:引入了基于时间戳的随机散列,并且让其形成前后文相关的序列,这就是为什么称之为区块链的原因。不可更改是一个缺陷,如果交易撤销的话回滚交易代价太大。

系统本身需要基础设施特别少,没有中心化服务器管理成本大大降低

交易:

区块链有区块链接而成,每个区块有hash值,公钥,私钥,数字签名构成,私钥+公钥生成数字签名,公钥+前一个区块的hash值生成数字签名,两个数字签名相互比对    公钥:比特币钱包地址,电子货币、其实是一条加密的记录(数据),也就是说你拥有的交易记录才是你的数字资产,这里面你需要注意的是,这条记录里面没有你的姓名、身份证号等这些中心化系统中常见的识别所有者的字段,唯一表示你身份的是你的公钥(钱包),证明你所有权的是你的私钥(密码)

最后可实现一条交易链条,通过追踪可以找到最初的所有者(有的货币做了加密就追踪不到了)

挖矿:

添加新块的速度不能太快,产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效 Hash,从而把新区块添加到区块链。

区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。显然,难度系数越大,目标值就越小。

如何避免双花?

传统解决方案是构建一个造币厂/第三方信任机构,但是这显然是中心化的,中本聪给出的解决方法是:比特币的交易是一个时间序列的链条,在产生一条新的交易记录时永远有先后顺序,即便是双花你总有先后顺序,你不可能同时创造两笔交易,那么我们只需要证明其中一条是有效的即可,并且将其记录到交易链条上即可,那么其他的交易就是无效的了(这也就是比特币的交易确认原理,交易确认是需要时间的)

要证明其中一条是有效的,就是发动所有的人参与这项活动,即交易信息就应当被公开宣布,如果你不公布交易信息,其他人怎么进行交易验证呢 也能解释为什么比特币交易需要手续费

时间戳服务器:

本解决方案首先提出一个“时间戳服务器”。——这里说是服务器,其实并不是中心化的,而是采用多数人时间中位数,中位数和本地时间不能差多于70min。时间戳服务器通过对以区块(block)形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,该时间戳能够证实特定数据必然于某特定时刻是的确存在的,因为只有在该时刻存在了才能获取相应的随机散列值。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强(reinforcing),这样就形成了一个链条(Chain)

工作量证明:

如果有人恶意更改时间,同时修改比特币源码造跳过时间检测机制怎么办或者恶意构造交易(图中的Tx)实现双花,这就需要一个机制来保证

这个机制就是POW工作量证明,简单讲就是提升作恶的成本,当然这样也让正常的操作要付出更多的计算成本,比特币引入SHA256算法,运算需要消耗大量的CPU时间和电力。安全可以有三个方面进行提升,可管理,可察觉,攻击成本,“随机散列值以一个或多个0开始。那么随着0的数目的上升,找到这个解所需要的工作量将呈指数增长”实现可以管理,通过SHA256碰运气实现攻击成本提升

工作量证明的难度(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一预设的平均数。如果区块生成的速度过快,那么难度就会提高。

激励:

我们约定如此:每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。这样就增加了节点支持该网络的激励,并在没有中央集权机构发行货币的情况下,提供了一种将电子货币分配到流通领域的一种方法。这种将一定数量新货币持续增添到货币系统中的方法,非常类似于耗费资源去挖掘金矿并将黄金注入到流通领域。此时,CPU的时间和电力消耗就是消耗的资源。另外一个激励的来源则是交易费(transaction fees)。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量的电子货币已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么本货币系统就能够免于通货膨胀。激励系统也有助于鼓励节点保持诚实。如果有一个贪婪的攻击者能够调集比所有诚实节点加起来还要多的CPU计算力,那么他就面临一个选择:要么将其用于诚实工作产生新的电子货币,或者将其用于进行二次支付攻击。那么他就会发现,按照规则行事、诚实工作是更有利可图的。因为该等规则使得他能够拥有更多的电子货币,而不是破坏这个系统使得其自身财富的有效性受损。

转载请注明:XAMPP中文组官网 » 区块链和比特币入门