区块链基础认识-BTC

BTC比特币

BTC比特币

  • BTC交易exchange

    BTC钱包Wallet

    • 私钥Private Key

      • 定义:一个随机生成数。一个比特币

        地址中的所有资金控制权都对应于私

        钥的所有权和控制权。私钥用于支付

        比特币所必须的签名以证明资金的所

        属权,私钥必须保持机密

        私钥创建:生成密钥的第一步,就是

        扫描二维码关注公众号,回复: 5578748 查看本文章

        要找到足够安全的熵源,即随机性来

        源,我们可以使用python中的random

        函数生成我们的密钥,或者我们也可

        以使用椭圆曲线密码学中的ECC函数

        来生成我们的密钥

        • numpy:key = np.random.random()

          Key = EEC_Encrypte()

      公钥Public Key

      • 定义:通过椭圆曲线乘法来得到我们需要的公钥,这ge过程是不可

        逆转的,将私钥作为ECC函数的输入,从而得到公钥输出结果

        椭圆曲线方程

        • ECC曲线图

          BTC采用的EEC方程为secp256k1标准所定义

          的一条特殊的曲线以及一系列的数学常数,该

          标准由NIST设立:

          y^2 mod p = (x^3+7) mod p

          素数p:2^256-2^32-2^9-2^8-2^7-2^6-2^4-1

          G点:称为生成点的常数点

          加法运算:P1+P2=P3(P3为曲线上P1和P2两点 连线与椭圆曲线的交点)

          乘法运算:k*P=P+P+...+P(k个P相加)

      比特币地址Address

      • 定义:比特币地址由数字和字母组成的字符串,由公

        钥生成的比特币地址以数字1开头 :

        eg:1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy

        比特币地址可以由公钥通过单向哈希加密算法得到:

        alg1:SHA256()   alg2:RIPEMD160()

        生成流程

    BTC区块Block

    • 定义:用来保存和记录交易的有效数据块,

      除了交易相关的信息以外,区块中还包含

      了当前的版本、区块创建的时间戳、区块

      自身的Hash值、上一个区块的Hash

      区块的数据结构:

      class block:

         def __init__(self):

            self.data = {...}

            self.edition = 1.0

            self.time = 0

            self.Hash = 0

            self.PreHash = 0

      区块相关API

      • 工作量证明算法:def proof_of_work(header)

        获取区块自生HashVal:def Self_Hash_Get(PreHash, time, data)   

        创建新的块:def New_block(transitions, PreBlockHash, block)  

        创世区块生成:def NewGenesisBlock(block)  

    BTC区块链Block Chain

    • 定义:用来将创建的区块相互连接起来,

      形成链条的形式,区块链中包含了每个

      区块的所有内容,区块链将区块按照堆

      栈的方式存储着

      区块链数据结构:

      class block_chain:

              def __init__(self):

                      self.block = []

      区块链相关API

      • 添加区块到区块链:def AddBlockChain(block,chain) 

        创建区块链:def CreateBlockChain(chain) 

        获取区块链顶端块Hash:def GetLastBlockHash(chain) 

猜你喜欢

转载自www.cnblogs.com/uestc-mm/p/10554446.html
今日推荐