zoukankan      html  css  js  c++  java
  • 浅谈比特币

    最近比特币以及各种数字货币火的不行,区块链这个概念也三天两头霸占各种科技头条。以前虽然经常能听到「比特币」这个字眼,可完全没有足够的诱惑力吸引到我, 直到最近,因为曝光度实在太大,频繁出现在我的电脑和手机屏幕里,我才开始细心去研究它。

     

    刚开始了解比特币时,觉得这玩意特坑爹,反直觉,使用体验极差,因为我去比特币网站上下了软件客户端,安装到电脑上, 软件居然提示我要下载150GB数据到硬盘上, 为此我还特意扩展了我原有磁盘的分区,硬生生的挤出150GB空间来。此外,下载数据花了我一个礼拜。 

    为什么一个看起来很小的软件需要这么多数据,这和比特币的运行机制有关。 比特币基于区块链, 区块链有一个特性叫去中心化,大致的意思就是在区块链的世界里,每个人的权力是一样的, 数据是公开的, 由此带来的好处就是一切都是客观公正的,数据掌握在每个用户手中,谁都无法作假;坏处就是参与区块链的每个人都需要保存一份数据库,也就是上面所说的150GB数据, 特不方便。

     

    这150GB是从比特币诞生至今的所有交易数据,意不意外?每台安装了比特币软件的电脑都会保存一份总账,当然也可以不保存,但这样使用比特币的功能会受限。这和我们日常生活中的规矩不一样,因为它们都是中性化的, 我们使用人民币交易,那么我们的交易数据就在银行;使用Q币,交易数据就在腾讯。 这就导致掌握数据的人权力特别大,所有事情由他们说了算,包括随意篡改数据。而比特币的交易数据都掌握在用户手里,公开且透明,这就能保证客观公正,而且因为区块链的固有机制,区块链中的数据无法被篡改,因此安全性能得某种保证,至少能防止黑客的袭击和居心不良的人使坏。

     

    每台安装了比特币官方客户端(BitcoinCore)的电脑都会有一个账户,也叫做钱包,这个账户不用用户去指定网站注册,软件自己会生成。钱包是一叫wallet.dat的文件,放在比特币区块链数据目录下面

    如果你使用BitcoinCore客户端来交易比特币,那么这个文件一定要备份好,弄丢的话你的比特币也就没了。

     

    这个文件中最重要的东西是一串私钥,你的比特币在你磁盘上的150GB数据中, 只有通过这串私钥才能提取,弄丢私钥比特币就永远躺在数据堆里没人能找得到它, 这不像把钱放在银行,银行卡密码忘了去柜台重置就行,在比特币的世界中,密码忘了,就算比特币之父中本聪也没有办法找回来。

     

    比特币是货币,自然可以交易。 假如你要向某人支付一笔比特币

    在BitcoinCore客户端发送页面里填写付款目标的地址和金额就可以了。如果你要收款,也可以提供一个地址给付款方,地址由点击接受页面请求付款按钮生成

     

    1PZBGWc9AWKApjTXhp8QZcu7qyCE5qmVu9

     

    这就是一个比特币付款地址,它是一个base58格式的字符串。从技术的角度讲,这是一个公钥,你钱包里那个是私钥,公钥可以公开,私钥需要保密。假如某人拥有10个比特币,要转给你3个,过程大致如下。

     

    1. 用他自己原有有效交易记录计算出拥有比特币的数量,计算结果为10个
    2. 生成两条新交易数据, 一条是3个,转个你;另一条是7个,转还给他自己

    3. 用你的收款地址(公钥)对转3个比特币的那条数据加密,然后向全比特币网络广播(发送数据)。 转还给他自己的那条也是如此。

    4. 收到广播数据的比特币矿工们将数据打包进区块链,大概需要1个小时时间,具体视交易量和交易费定,这个时候这笔钱就是你的了。因为这条数据是用你的公钥加密的, 所以只有你的私钥才能解开

    5. 把他自己原来的交易记录销毁

    6. 当你需要用这笔钱的时候,就可以用你钱包里的私钥去解开这个交易数据,提取比特币。

     

    以上内容只是简单的介绍,事实上比特币和区块链真正的原理和机制还要复杂百倍,要完全摸透需要一个漫长的过程。 之后我会陆续更新一些比特币和区块链相关的内容,有兴趣的同学可以持续关注。 

  • 相关阅读:
    tensorflow 安装 CentOS查看CPU、内存、版本等系统信息
    tensorflow 安装 centos下显卡驱动和cuda安装
    tensorflow 安装: could no t load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
    安装tensorflow 官网手册
    安装 TensorFlow时:Cannot uninstall 'enum34'. It is a distutils installed project and thus we ca...
    python pip 和pip3区别
    安装TensorFlow报错Memoryerror
    使用清华开源镜像安装tensorflow
    centos7(python2.7) 安装tensorflow+keras过程
    JavaWeb核心之Servlet
  • 原文地址:https://www.cnblogs.com/aspwebchh/p/8274173.html
Copyright © 2011-2022 走看看