区块链中的数字签名(Digital Signature)

从先前的文中我们知道了一个帐户中有两把钥匙分别为公钥与私钥,那我们要如何使用它呢这就要来聊聊区块链中的数字签名机制了,首先我们为何需要数字签名机制呢使用了有什么功用呢

数字签名(Digital Signature)

数字签名主要功能在于接收资料的一方,其实并不能确定收到的资料是否就是原发送人传送的,透过数字签名的机制,可以保证收到资料的正确性,有效防止被中途拦截并窜改资料的情形。数字签名的流程如下图,图中两位使用者Alice与Bob分别式资料的发送方与接收方,数字签名有两个主要的动作分别为,签署(Sign)与验证(verify):

签署(Sign):

Alice将想送给Bob的资料做一次Hash,得到了Hash值后再使用Alice的私钥进行加密,最后将得到的加密信息与传给Bob的资料一起送给Bob。

验证(verify):

Bob将收到的明文资料与经过Alice的签名,为了确认Alice传送来的值是否相同,验证方式即是将明文取Hash值,并利用Alice的公钥解密得出的Hash值相比,即可证明资料确切是由Alice所传送,并且没有在传送的途中遭到窜改。

Sign & Verify的流程

为何这么做呢主要利用了Hash Function的特性,只要Alice的信息遭到窜改时,Hash值将会完全不同,便能清楚发现资料遭窜改。