美文网首页
区块链技术原理

区块链技术原理

作者: 但我没有珍惜 | 来源:发表于2018-04-08 08:53 被阅读0次

    区块链技术原理

    我尽量不涉及太多细节,把区块链大概的工作原理用尽可能简单的语言描述一下,相信你能

    很快对区块链有所了解。

    以比特币的区块链为例,你可以把区块链想象成一个比特币的公共账本,这个账本:

    1.存放在互联网的各个比特币节点上,每个节点 都有一份完整的备份

    2.里面记录着自比特币诞生以来的所有比特币转账交易

    3.账本是分区块存储的,每一块包含一部分交易记录。每一个区块都会记录着前一区块的

    id,形成一个链状结构,因而称为区块链

    4.当你要发起一笔比特币交易的时候只需把交易信息广播到p2p网络中,矿工把你的交易信息

    记录成一个新的区块连到区块链上,交易就完成了。

    这里有几个问题:

    1.如何保证用户有足够的余额,例如你只有十个币,而你居然发起了一笔转20个币的交易怎

    么办。

    这个问题很好解决,因为区块链上记录了所有的比特币交易记录,只需要回溯所有的和你账

    户相关的历史交易就能知道你这个账户上到底有多少余额,余额不对矿工是会拒绝记录你的

    交易的。

    由此你可能又会产生一个疑问,那么最初的比特币是从哪里来的呢?

    最初的比特币是由系统奖励给记录区块的矿工的。每一个区块在生成的时候就会在生成这个

    区块的矿工的账户上生成一定数量的新比特币作为奖励。

    2.如何保证你的账户不被冒名顶替

    这问题也很好解决,用数字签名技术就好了。每个比特币账户都有公钥和私钥。你发起交易

    的时候用私钥对交易信息签名,矿工收到信息后用公钥检查一下签名就好了。

    3.那么多矿工,如何决定该由哪个矿工生成下一个区块?

    解决方案是这样的:

    中本聪设计了一个数学问题,这个数学问题会耗费大量的计算机cpu时间才能得出答案,同

    时每一次得出的答案都会作为下一次计算的初始条件进行技术。全世界的矿工一起来计算这

    个问题,谁先得出答案,他就可以用这个答案生成一个新的区块,再广播到网络中。收到这

    个新块数据的矿工会立即停止当前的计算,用新块里的数据重新进行下一次计算。这就是所

    谓的“挖矿”。矿工产生的区块一旦被网络接受,他就能获得一笔比特币作为酬劳。

    这时要考虑一种情况:如果同时有两个矿工各自得到一个正确答案,并各自生成了一个区块

    广播出去会发生什么呢?

    这时候在区块链上同一个位置就有了两个区块,所谓的“分叉”就出现了。

    分叉是绝对不允许的,所以当矿工发现区块链分叉之后,会选择最长的一条继续计算,短的

    那条区块链会被丢弃。

    仔细思考下这个体系,你会发现它几乎无懈可击。首先你不能凭空造出比特币,只能挖矿获

    得;其次你无法伪造交易,无法控制不属于你的账户。一旦交易被确认,几乎无法取消。我

    这里说“几乎”,是因为有“51%攻击”的存在。51%攻击条件非常苛刻,这里就不扩展开讲

    了。感兴趣的朋友可以自行查阅相关资料。

    ----------------------

    好吧,现在你应该大概明白了区块链是怎么回事。一个公开透明的可信赖的帐务系统,听起

    来还不错,是吧? 不过,我想告诉你区块链远远不止是一个帐务系统那么简单,它的意义

    之重大、用途之广泛,一旦你意识到,你一定会像我一样激动万分的。

    区块链技术使得DAC成为可能。DAC是一种能够从根本上颠覆人类社会组织模式的东西。我相

    信它对社会的影响,会超过工业革命,成为互联网给世界带来的最为深刻的变革。

    ----------------------

    区块链技术的用途和意义

    (未完待续)

    赞同(305)评论(82)

    相关问题

    现在的 SSL 加密技术,预计多少年以后会被轻易破解? 20 个回答

    如何将手中 20 多台旧电脑,组建一台超级计算机? 53 个回答

    在金融公司做 IT 是什么感觉? 93 个回答

    随机确定密文的加密方式,密码有办法被破解吗? 12 个回答

    暴力密码破解器 ocl-Hashcat-plus 支持每秒猜测最多 80 亿个密码,意味着什么? 16 个

    回答

    有了分布式计算平台后,像天河这种超级计算机还有存在的必要吗? 23 个回答

    其它回答

    文浩

    区块链攻城狮,http://blockchaindev.org

    #1. 区块链技术是什么?

    我在面试时为了让应聘者快速理解区块链,是这么打比方的:

    想象有一个100台的分布式数据库集群,现在的情况是这100个节点实际上的拥有者是一个机

    构,并且所有节点处在该机构的内网当中,所以这个机构想让这100个数据库节点干嘛就干

    嘛,换句话说这100个节点之间是处于一个可信任的环境,并且受控于一个实体,这个实体

    具有绝对仲裁分配权。

    现在的情况是这样的,想象这100个节点分别归不同的人所有,且每个人的节点数据都是一

    样的,即完全冗余,并且所有的节点是处在广域网当中,换句话说就是这100个节点之间是

    不信任的,且不存在一个实体,它拥有绝对仲裁权。

    现在考虑第二种情况,采用什么样的算法(共识模型)能够提供一个可信任的环境,使:

    每个节点交换数据过程不被篡改;

    交换历史记录不可被篡改;

    每个节点的数据会同步到最新数据,且承认经过共识的最新数据;

    基于少数服从多数的原则,整体节点维护的数据本身客观反映了交换历史。

    以上为背景,

    现在来谈谈区块链,区块链本质上就是要解决以上第二种情况的一种技术方案,更确切的说

    应该叫分布式的冗余的链式总帐本方案。

    只要包含了以:

    一种P2P的角度,链式的,只维护一本总帐的,能解决以上问题的技术方案,称之为区块链

    技术方案。

    有关区块链的一些要素,在我的文章里有总结过一些:

    包含一个分布式数据库

    分布式数据库是BC的物理载体,BC是交易的逻辑载体,所有核心节点都应包含该条BC数据的

    全副本

    BC按时间序列化Block,且是整个网络交易数据的主体

    BC只对添加有效,对其他操作无效

    基于非对称加密的公私钥验证

    记账节点要求拜占庭将军问题可解/避免

    共识过程(consensus progress)是演化稳定的,即面对一定量的不同节点的矛盾数据不会崩

    溃。

    相关文章

      网友评论

          本文标题:区块链技术原理

          本文链接:https://www.haomeiwen.com/subject/xcfphftx.html