029.
比特幣的數字簽名是什么?
比特幣有一套密碼規則,用來解鎖和管理貨幣交易,這種密碼叫作“數字簽名”。
比特幣的數字簽名,是在比特幣轉賬過程中由轉出人生成的一段防偽造字符串。驗證該字符串,不僅能證明該交易是轉出人發起的,還能證明交易信息在傳輸中沒有被更改。數字簽名由數字摘要和非對稱加密技術組成:首先,通過數字摘要技術把交易信息縮短成固定長度的字符串;然后,用自己的私鑰對摘要進行加密,形成數字簽名;接著,將完整交易信息和數字簽名一起廣播給礦工,礦工用公鑰進行驗證,若驗證成功,則說明該筆交易確實是對方發出的,且信息未被更改。
非對稱加密技術是指,數字簽名加密的私鑰和解密的公鑰不一致。這個過程看起來很復雜,其實在轉賬過程中只需要輸入私鑰就能瞬間完成。
比特幣既不是數字貨幣,也不是一段信息,只是一個龐大的信息化鏈條式的賬本,這個賬本由無數比特幣交易賬單組成。每段交易代碼里都標明了比特幣的交易數額。
賬本大致是這樣運行的:當A同學決定把1個比特幣付給B同學時,他會從自己的比特幣錢包中選一個或幾個“輸入”,將交易信息簽名,再廣播到比特幣網絡;網絡中的其他一些交易與Coinbase交易一起構成一個區塊,代表計算機算力的網絡礦工對區塊內各比特幣交易數字的簽名有效性進行驗證;正確后進行確認,礦工獲得Coinbase交易輸出的比特幣獎勵,交易代碼輸出正常,接收者收到比特幣。
比特幣的數字簽名就像現實生活中的親筆簽字,能夠證明交易的真實性,并通過一種數字算法來實現。這種算法能夠防止數據被復制或偽造,但與簡單的靜態密碼不同的是,每筆交易數字簽名都完全不同。在比特幣交易網絡中,完全是和陌生人打交道,因此永遠不要把密碼暴露給別人,以免密碼被復制和重新使用。
數字簽名取決于交易消息,因此每筆交易數字簽名都不同,不能在另一筆交易中再次使用;同時,由于數字簽名取決于交易信息的關系,自然也就沒有人可以修改該信息了。