区块链交易过程详解

一个Transaction的生命周期

一共6个步骤:

  1. Someone Requests a Transaction via something called a wallet.
  2. The transaction is send (broadcast) to all participation computers in the specific blockchain network.
  3. Every computer in the network checks (validate) the transaction against some validation rules that are set by the creators of the specific blockchain network.
  4. Validated transactions are stored into a block and are sealt with a lock (hash).
  5. This block becomes part of the blockchain when other computers in the network validate if the lock on the block is correct.
  6. Now the transaction is part of the blockchain and can not be altered in any way.

简化来说就是:

  1. 某人发出交易请求
  2. 广播交易请求到 P2P 网络
  3. 验证,miners验证交易正确性
  4. 多个交易组成一个区块
  5. 新的区块加入到一个已经存在区块链中
  6. 交易完成

区块链交易过程详解_第1张图片

几个问题:

如何证明你有钱?

根据过往的交易记录,看是否有 UTXO 的公钥与交易发起人的公钥是一致的.
如果遍历整个去区块链来判断你是否有钱,那么效率将会及其低下.所以一般会维护一个 UTXO集合

如何证明你是你?

这么说有点像个哲学问题,不如换个说法,如何防止别人冒用你的钱包?或者说如何防止别人仿冒你的签名.
这就涉及一个密码学问题了.先需要弄清楚私钥,公钥,钱包地址之间的关系.
简单地来说,私钥可以生成公钥,公钥可以生成公钥哈希,公钥哈希又可以生成钱包地址.整个过程中除了公钥哈希生成钱包地址是可逆的,其他都是不可逆的.

区块链交易过程详解_第2张图片
详细的钱包抵制生成过程如下:

区块链交易过程详解_第3张图片

在发起交易时,交易发起人需要使用[私钥]对交易进行签名,生成交易的过程如下:

区块链交易过程详解_第4张图片
所以,为了防止别人冒用你的钱包,你需要在每笔交易下进行签名.也就是说,转出签名证明了你是你

其实每个TX就像一个转账支票,转出公钥就是出票人账号,转入钱包地址就是收款人,而转出签名就是出票人签章!

如何防止你的钱被使用两次?

这个就涉及到比较复杂的共识算法了,比特币是使用的PoW(Proof of Work)算法.每个交易都需要广播请求到P2P网络.经过大家验证,大家验证就需要验证你是否有钱,验证你是不是真正钱包的主人,智能合约整个验证过程还是比较复杂的,之后单独再写一篇博客来讲.

区块链交易过程详解_第5张图片

你可能感兴趣的:(区块链)