一个Transaction的生命周期

一共6个步骤:

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

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


几个问题:

如何证明你有钱?

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

如何证明你是你?

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


详细的钱包抵制生成过程如下:



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


所以,为了防止别人冒用你的钱包,你需要在每笔交易下进行签名.也就是说,转出签名证明了你是你!

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

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

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


友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信