zoukankan      html  css  js  c++  java
  • 孤荷凌寒自学python第八十八天认识区块链002

    孤荷凌寒自学python第八十八天认识区块链002

    【主要内容】

    通过百度搜索了解区块链的基本知识,共用时间23分钟。

    (此外整理作笔记花费了约70分钟)

    详细学习过程见文末学习过程屏幕录像。

    主要继续昨天的博文进行学习:

    https://blog.csdn.net/Blockchain_lemon/article/details/81161449

    感谢博主的无私分享。

    【学习笔记】

    一、区块链数字货币的钱包

    在昨天的学习中,我明白了区块链数字货币诞生要解决的问题。那既然是为了解决无第三方信任担保情况下的去中心化的仍然可互相信任的直接点对点的交易 ,那么任何一个区块链的节点,都需要有自己的钱包。

    每个节点的钱包都有自己的一对

    公钥

    私钥

    这一对公钥和私钥是有对应关系的,在算法实现上是同时生成的。(具体算法我暂时没有深入理解,在此就不作阐述了。)

    任何一个钱包的公钥是可以直接对整个区块链开放的,便于整个区块链节点对其验证使用,同时,公钥可以直接通过一定的算法直接得到对应的钱包地址(可以有多个地址指向同一钱包)。

    (一)公钥

    通过椭圆曲线算法可以从私钥计算得到公钥,这是不可逆转的过程:K = k * G 。其中k是私钥,G是被称为生成点的常数点,而K是所得公钥。

    就是说,有私钥可以推算出公钥,而仅是知道公钥是不能推算出私钥的。

    (二)钱包地址

    数字货币的钱包其实就是一个地址(可以有多个地址指向同一钱包),所有信息都存放于区块链本身中,谁拥有这个地址的私钥,谁就拥有这个钱包的所有权,可以处理其中经验证的属于这个地址的所有数字货币。

    (三)私钥

    因此私钥对于数字货币的钱包来说就是所有权的证明,至关重要,数字货币拥有者一般会将此私钥抄写到纸条上,放入安全的地方谨慎保存,或者使用硬件冷钱包存储包括私钥在内的数字货币信息,放入保险柜等安全的地方谨慎保存。

    二、怎样从数字货币钱包地址转账

    一个节点(可以理解为交易卖买双方中的其中一方)发起支付时,将首先将自己钱包的公钥信息公布,并加上私钥签名,并广播到整个区块链网络所有节点。

    (一)私钥签名

    正式的数字签名算法等知识已经超越了我的数学基础,因此无法完全理解 ,但我基本上还是读懂了其大概意思,简单通俗的描述那就是:

    一个节点在公开广播自己的交易时,公钥信息是自然要公开广播出去的,同时私钥信息通过一定的算法处理,得到一个通过算法计算后得到的至少两段编码组成的签名信息,把这个签名信息也同时与公钥一起广播到区块链网络中,当然此处可以想象到我们是不可能仅仅通过得到的签名信息反推出么钥来的。这个过程就完成了本次交易广播的私钥签名。

    (二)如何验证一次广播的交易是否合法

    收到一个节点的一次交易广播的其它节点如何验证这次广播是符合区块链合约算法的呢,即其它节点怎样验证发起交易的节点拥有标明的公钥对应的钱包的所有权的呢?

    简单说,就是通过私钥签名与公钥进行特定的算法来验证证明两者的相关性即可(具体算法我暂时还理解不透)。我的理解 就是,虽然验证时没有节点可以还原得到私钥本身,但仍然可以验证私钥签名与公钥是否是对应的,因此来证明交易的合法性。

    三、矿工与矿工的作用

    (一)矿工

    矿工是区块链网络中特殊作用的节点,我的理解是,简单说,验证其它节点广播的交易的合法性的工作就是由矿工们完成的,同时,如果矿工验证了某次交易的合法性之后,就会从挖掘得到的新的区块中添加这一次交易或同时的多笔交易的信息到这个区块上,并添加到之前的区块链中。

    (二)矿工怎样挖掘新区块

    因为矿工节点非常多,而同一笔交易只能记录到一个新区块中并添加到区块链的最长链末端,那么怎么决定哪个矿工的新区块才是有效的呢?

    这就引入的竞争机制——工作量证明,矿工要进行复杂的算法运算解决一个复杂的算法问题(具体问题很多,我也没有完全理解,如常见的算法难题:对于被认为有效或“已挖掘”的区块,区块和Nonce的Hash值需要满足特定条件。例如,Hash值的四个前导数字需要等于“0000”。 我们可以通过使条件更复杂来增加挖矿的复杂性,例如我们可以增加Hash值开头0的数量。矿工需要解决的密码难题是找到一个Nonce值,使Hash值满足挖掘条件。),哪个矿工节点最先解决这个算法难题,则就获得生产出下一个新区块的权利,这样新的区块就由这个矿工节点处生成了,这个新区块中就记录了当时合法的广播交易 的信息,并附加到区块链中使链条变长,等待下一个新区块的加入。

    到此我基本理解到为什么矿工节点是区块链网络中非常重要的组成,因为矿工才是保证区块链无中心化信任形成的关键。

    为了鼓励矿工的参与,一个矿工节点成功竞争获得了生成新的下一个区块的机会,会得到网络的奖励的数字货币,因此这就是挖矿的最朴实的意义了。

    而且同时的,矿工们面对为数众多的来自其它节点的交易广播,它们有仅自主选择要对哪些交易进行合法性验证,以完成交易记录并添加到区块链中,那么这时发起交易的节点如果能在广播交易时,附加一定的报酬(即矿工费),就可以吸引矿工们优先处理这样的交易广播。

    【学习后记】

    一、简单的规则,复杂的世界

    今天算是用最肤浅的学识,也敢说自己理解了什么是区块链了吧!

    此刻我真正的感受是,区块链技术本身并不算一个全新的发明,因为它所用到所有技术,其实都早已存在或已有雏形,比如:p2p的分布式技术,密钥算法,哈希算法等。

    然而令我深深震撼的是:这些简单技术的变化 与整合,就成就了一种足以颠覆一切的新的技术!世界如些奇妙。

    就好似生命,组成生命的东西与原理,并不复杂,却成就了一个丰富,燦灿的世界。

    这世界是最复杂的东西,却是由最简单的规则 所构成,这难道不令人深思吗?

    原理总是那么简单,可是世界却又是那么复杂,复杂到没有一个人可以单独掌握之,甚至集全人类的力量之和也无法窥之一二。

    今天的世界很复杂,未来也许会更复杂,生存与发展是始终是生命要面临的最大考验,面对越来越复杂的未来世界,以如此老朽的躯体,我不由悲从心生,却也还得勇敢面对。生命意味着无法退缩,如中国象棋棋盘的上的兵卒,哪了有什么可以回去的退路,面对一个注定要彻底变革的未来,还能怎么做呢?唯有奔跑!向着越跑越快的未来疾驰而去的方向,奔跑!

    二、最有生存力的未来

    当我第一次了解到“自组织”现象的时候,并进而以自学的艰难理解其蕴含的深刻道理时,为整个宇宙的简单而恢弘而感到自己的渺小。

    这么复杂的宇宙是可以自组织起来的,其中充斥的就是矛盾的对抗与能量的变换。

    在这短暂的时空中,存在下去,是生命,也是万物均要完成的使命吗?

    当看到区块链技术(如比特币已实现的微不足道的一点功能,这被称为区块链1.)从简单而暴力的规则 就可以创造出那么有生存力的存在,甚至 可以改变过去的一切,还有什么比这更能改观人的世界 观的呢?

    我感慨自己也许将在那充满更大竞争,更大差距的未来失去仅有的生存力吧!

    如何才能得到一个更有生存力的未来呢?只有终身学习罢。

    为了追赶未来,终身学习,终身进步,我创建了【就是要学 终身成长】社群,欢迎立志于终身学习,终身成长的朋友们加入,共同交流学习。Qq群号码:646854445

    或访问:www.941xue.com

    【关于坚持自学的例行说明】

    最后例行说明下,我为什么要坚持自学。

    一、为什么一把年纪还在学习

    放弃很多去聚餐,去HI歌,去游玩,去看电影,去追剧……的时间,然后进行着这个年纪似乎已不应当再进行的学习,引来身边人们无尽的不解与鄙夷甚至可怜……

    但我不想放弃终身学习的誓言。

    因为——

    我对我今天的生活现状并不认同!

    罗伯特清崎告诉过我们,反省自己当下的生活是不是自己想要的,这难道不是最好的动力与答案?

    走过了大半生,然后才发现曾经、当下所正在进行的人生并不是自己想要的,那是一种怎样的体验?

    只有心中真切的感受才能回答这个问题,而任凭再丰富的语言也是无法描绘出来的。

    经历半生的跋涉,却发现走得并不正确,有多少人有勇气承认自己过去的一切都是错误的呢?

    而我愿意告诉过去的我:“你错了!”

    那么已经历半生错误,年岁之大又压于头顶,还有希望从这架的梯子的半端重新爬下,再蹒跚着爬上另一架梯子吗?

    我宁愿相信还有希望!

    这便是我为什么要继续坚持终身学习下去的全部理由。

    二、这个年纪还在学这些技术有意义吗

    纯的技术对这把年纪其实已没有意义。

    但兴趣可以超越意义。

    但技术可以引来思想的变革,这才是意义。

    投资自己的头脑 ,改革自己的思想,这是最保值,更长远的投资,过去我从来没有投资过,错过太多,那就从投资自己头脑开始吧。

    罗伯特清崎告诉我们,真正的富有是时间的富有;真正的自由是可以决定自己愿意做什么的自由。

    因为我愿意做我兴趣所在的事,所以我希望我有自由选择的那一天,虽然今天离那一天可能还是那么遥远,但我愿意相信,每天多赶几步,离希望就更近一步。

    再者,虽然我可能再已无法完全完整的掌握这些技术了,但技术本身却可以启迪心的觉醒,激发灵感,那么只要多了解一点,我相信我将离那个正离我而去跑得越来越快的未来更近一点,不至于被未知的那个未来抛弃得太远。

    于是我怎能放弃追逐求索的步伐?

    我要坚信:感觉太迟的时候,也许还不算太迟。

    感谢一直以来关注我,鼓励我的你!

    若不嫌弃这一个到了高龄才长大的可笑可叹的我,请不吝赐教。

    我的q号是:578652607,敬候你的指点。

    【同步语音笔记】

    https://www.ximalaya.com/keji/19103006/253267521

    【学习过程屏幕录屏】

    链接:https://pan.baidu.com/s/1V8usqAvsx08DvUXG1BYDwA

    提取码:vhsv

    欢迎大家添加我为好友: QQ: 578652607
  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/lhghroom/p/12301420.html
Copyright © 2011-2022 走看看