比特币协议中最重要的部分就是交易,比特币协议其他的部分也都是为了确保交易的生成、广播、验证和打包而实现的。
1.UTXO == 比特币
其实并没有什么比特币,只有UTXO
UTXO(Unspent Transaction Output:Transaction简称TX)- 未花费交易输出
Transaction
比特币的区块链账本里记录的是一笔又一笔的交易。
每笔交易都有若干交易输入,也就是资金来源,也都有若干笔交易输出,也就是资金去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是 UTXO。
账户余额只是比特币钱包的概念
转账将消耗掉属于你自己的UTXO,同时生成新的UTXO,并用接收者的公钥锁定
一个UTXO就是一个数据结构,包含交易数据和执行脚本
2.交易的输出
锁定的比特币数量+锁定脚本(用接收者的公钥哈希)
3.交易的输入(UTXO+解锁脚本)
*解锁脚本(签名,发送者公钥)
Scripts
4.交易验证-基于栈的脚本语言
栈(stack)-操作数据的一种结构,只能从一端操作数据,后进先出LIFO Last In,First Out,可用于后缀表示法进行运算。
- 压栈(PUSH),出栈(POP)
交易验证-基于栈的脚本语言 - 对栈的操作: OP_DUP
- 逻辑运算符: OP_EQUALVERIFY
- 加密运算符: OP_HASH160,OP_CHECKSIG
- 算数运算符: OP_ADD,OP_SUB,OP_MUL,OP_DIV
交易验证:运行解锁脚本+锁定脚本=>True
虽然看我一遍课程,但是自己回过头来总结出来,并且讲清楚很不容易,这些概念还要反复琢磨
关于区块链投资最近一点体会:
1.EOS两天之内大涨,让大家都有点不淡定了,终于理解了越交易币越少是怎么回事,以为能在高点卖出在低点买入大概最后都很难再接回来,涨的太快即使回调几乎不可能回到原来的水平,跌的也许快涨回去更快;
2.涨起来了卖掉一部分收回成本,后面大概就没什么顾虑了吧,收回的法币大概也会在留回市场,因为市场长盈,手上的法币却买不回原来的币;
3.币不多,我大概就只有一直捂着了,还有越来越看好定投。