Comunion是一种基于区块链的组织形式(DAO)和创业互助网络,为数字时代的超级个体提供一种新的商业基础设施和价值转化机制,致力于让劳动价值像资本一样自由流通、交易和积累。本系列内容包括:基本概念和原理、密码学、共识算法、钱包和节点原理、采矿原理和实施。在区块链的什么地方使用ECDSA?通过前面的区块链原理和技术系
Comunion是一种基于区块链的组织形式(DAO)和创业互助网络,为数字时代的超级个体提供一种新的商业基础设施和价值转化机制,致力于让劳动价值像资本一样自由流通、交易和积累。
本系列内容包括:基本概念和原理、密码学、共识算法、钱包和节点原理、采矿原理和实施。
在区块链的什么地方使用ECDSA?通过前面的区块链原理和技术系列,你应该熟悉交易是技术,你应该熟悉在区块链系统或比特币或以太币系统里面是如何进行交易的。
进行交易的一个重要信息是,它需要被签署。
这意味着一项交易至少涉及三个要素:付款人、受款人和付款金额。
例如,当张三向李四付款时,张三是付款人,李四是受款人,付款金额假定为5代币。
当张三准备好交易时,他需要将其发送给整个网络,当其他人看到它时,他们需要验证它是由张三发起的,这就需要使用数字签名技术。
交易签名是如何使用ECDSA的?
交易的模块分为:交易输入和交易输出,一个交易由多个输入或多个输出组成。
交易输入代表支付信息,而交易输出代表收据信息。当然,其中也有一个支付金额,支付金额字段会显示在交易输出中。
这种类型的交易与我们通常认为的交易非常相似,资金的流动是从交易输入到交易输出,也就是说,从付款人到收款人。
图的右边有一个虚线框,里面有一个ScriptSig,是一个脚本签名,这个字段属于交易输入。同样地,ScriptPubKey也属于交易输出。脚本包含一些数据和操作码,以支持该脚本语言的运行。
ScriptSig和ScriptPubKey可以用中文直观地解释为:解锁脚本和锁定脚本。
为什么ScriptSig也叫解锁脚本?这是因为ScriptSig锁定了之前连接交易的输出中的一些钱。
如果张三想花掉以前存在的Token,也就是花掉一个未花掉的交易输出,那么他需要在另一个交易里面构造一个交易输入,在这个交易里面设置一个签名字段和一个公钥,以证明张三有资格花掉这个未花掉的交易输出。
这被称为解锁脚本,以前存在的资金被打开使用。
在这个过程中,解锁脚本里面有两个数据字段,<sig>和<PubK>(PubKey的缩写)。这两个字段分别代表:签名和公钥。两者都是由用户提供,以解决障碍。
在锁定脚本里面还有一些字段和操作码。DUP是复制操作码;HASH160是哈希操作码;<PubkHash>是字段;EQUALVRTIFY是验证操作码;CHECKSIG也是验证操作码。
总体意思是:进行复制–进行哈希–进行字段–验证是否相等–验证签名是否正确。
ECDSA里面的签名验证算法是在验证签名的时候调用的。
如何使用ECDSA 现在我们知道了在交易中签名的确切位置,那么ScriptSig和ScriptPubKey脚本语言是如何执行的,它们在执行过程中是如何使用ECDSA的?
正如你在上面看到的,这两个脚本语言是堆叠在一起的,也就是说,所有的字段和操作码都列在右边,两个在解锁脚本中,五个在锁定脚本中。
在第一步中,第一个字段<sig>被解锁并放在堆栈的底部;
在第二步中,<PubK>被解锁并推到堆栈的顶部,在<sig>
在第三步中,DUP正在复制操作码,它把刚才在解锁脚本里面的操作码,放在堆栈的顶部。
第四步,HASH160将复制的公钥散列到<PubKHash>,即公钥散列;
第五步,EQUALVRTIFY操作码将PubKHash与用户的PubKHash进行比较,如果两者匹配,则都被删除,然后继续进行(这是为了验证公钥,以显示公钥或地址是否相同)。
如果第5步匹配,则继续进行第6步–验证签名,这里是使用ECDSA的地方,也是交易中的关键步骤。
你可以在图中看到,当最后一个操作码被执行时,堆栈中有两个字。
CHECKSIG操作码验证签名<sig>是否与公钥的<sig>匹配,如果匹配,它在顶部显示TRUE,如果不匹配,它显示FLOSE。
如果返回值为TRUE,发送者也表明了它对发送令牌的所有权和使用权。
如果返回值为 TRUE,则发送者也表明他们拥有并使用发送的 Token。
这些是椭圆曲线数字签名(ECDSA)在区块链中被使用的主要位置和场景。
原创文章,作者:币圈百科,如若转载,请注明出处:https://6684456.com/1272.html