区块链-账本

一:钱包-Wallet

 1:公钥      用于签署不想被串改的数据

 2:私钥      用于验证签名

 3:UTXOs 当前钱包可以用的钱

描述:当用户有自己的钱包,就会生成该钱包的 公钥,和私钥。

二:区域块 block

1:hash  (当前去区块的标识):

2:previousHash(上一个区块的标识)

3:<Transaction> transactions  交易记录

      每次交易,都会生成该交易的区域块,并且记录上次交易所在区域块的地址

三:交易记录-Transaction
   每次交易都会生成一次交易记录,并且会把交易记录放在区域块区域

1:transactionId(交易的id)

2:tsender(付账的的公钥)

3:treciepient(收钱的的公钥)

4:tvalue(交易金额)

5:tsignature(签名)

6:t<TransactionInput> inputs

7:t<TransactionOutput> outputs(当前交易的记录)

四:UTXOS 记录不同钱包可以用钱

五:ArrayList<Block> 记录所有的区域块

列子:

1:钱币工厂向钱包a转账 100.

  1.1通过工厂公钥,钱包a的公钥,转账的金额,工厂的私钥,生成一个签名

  1.2会生成一个交易记录,该次交易记录,记录信息,工厂公钥,钱包a公钥,工厂私钥,转账金额,签名。以及交易内部信息(其实记录了钱包可以用的钱,如果是第一次交易,记录里的上一次的交易id则是0)

1.3把钱包a可以用的钱,放到UTXOS(该记录了所有钱包可以用的钱的记录)

1.4同时会生成一个区域块,跨区块记录了该次交易,以及上次交易生成区域块的id,如果是第一次交易,那么上次区域块的地址是0.

1.5最后把该区域块放到区域块集合内。

2如果钱包a想钱包b转钱40

1.1通过钱包a公钥,钱包b的公钥,转账的金额,钱包a的私钥,生成一个签名

  1.2会生成一个交易记录,该次交易记录,记录信息,钱包a公钥,钱包b公钥,钱包a私钥,转账金额,签名。以及交易内部信息(其实记录了钱包可以用的钱,上一次的交易id则工厂向钱包a交易记录的id)

1.3把钱包b可以用的钱,放到UTXOS(该记录了所有钱包可以用的钱的记录),同时把钱包a的可用钱取出来 减去转给钱包b的钱,生成一个新的交易记录存到UTXOS,然后把之前的移除掉。现在UTXOS只有两条,一个钱包a的60,一个钱包b的40。

    同时会把之前钱包a得钱 之前的移除掉,在生成一个新的 60记录

1.4同时会生成一个区域块,跨区块记录了该次交易,以及上次交易生成区域块的id,那么上次区域块的地址是工厂转钱包a的区域块的地址

1.5最后把该区域块放到区域块集合内。

发布了143 篇原创文章 · 获赞 41 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/qq_29257691/article/details/103977659