公鑰和地址有時被認為是同一個東西,在某種程度上它們是相同的。
過去,當使用舊類型的比特幣地址時,我們可以從交易中獲取UTXO 的方式是使用公鑰。但是,今天已不再是這種情況,地址和公鑰是兩個非常不同的東西。
在本文中,我將向你介紹它們以及最本質的區別是什麼,以便當你繼續了解這個迷人的世界時,你會非常清楚每一件事是什麼。
什麼是加密貨幣地址?
加密貨幣地址是一個唯一標識符,用作硬幣所在位置的虛擬定位器。
我們可以像查看電子郵件地址一樣查看比特幣或山寨幣地址。不同之處在於每次收到交易時使用新地址很方便,而不是像使用電子郵件地址那樣永遠保留它。
它通常由一個字母數字字符串組成,在比特幣的情況下可以是26-35 個字符。
要獲得地址,必須通過公鑰的散列函數停止。
什麼是公鑰?
公鑰是一種加密貨幣代碼,允許我們在我們的帳戶中接收加密貨幣。這與私鑰一起允許對信息進行加密貨幣,並且區塊鏈技術以這種方式工作。
正如我們之前所說,它們經常被混淆,因為看起來地址和公鑰是相同的,或者這樣的地址不是必需的,但是稍後我們將看到使用地址而不是使用地址的目的是什麼是的公鑰。
目前有必要了解公鑰是從私鑰中獲得的。
公鑰對比加密貨幣地址
在最終區分這兩個術語之前,我們還需要考慮一些概念。
如果你已經對加密貨幣學和加密貨幣有所了解,那麼也許你可以跳過我們討論什麼是哈希的下一點。
如果沒有,請繼續閱讀,我會盡量簡短,這樣我們就不會在上面浪費時間並直奔主題。
什麼是哈希?
哈希基本上是由具有固定長度的函數返回的字母數字字符串。
有趣的是,我們可以輸入任何維度的數據,它總是會返回一個大小相等的字符串。
關於散列函數我們必須考慮的另一個方面是它們是單向的,也就是說,我們可以將原始信息轉換為散列,但不能從散列中恢復該信息。
這意味著獲得哈希非常容易,但很難確定產生它的信息是什麼,實現它的唯一方法是嘗試使用不同的信息,直到我們找到指示的哈希。
同樣,當一個值發生變化時,一個強大的散列函數,無論多麼小,都應該返回一個完全不同的散列。例如,“hello”會給我們一個與“holo”完全不同的哈希,儘管只改變了一個字母。
私鑰和公鑰
無論我們使用橢圓曲線還是RSA,思路都是一樣的,從私鑰我們可以得到公鑰。
人們可以使用公鑰對信息進行加密貨幣,從而確保只有與公鑰匹配的私鑰的所有者才能讀取它。只有那個私鑰才能解密信息。
這就是為什麼我們發佈公鑰以便有人在向我們發送只有我們自己知道的信息時可以使用它並沒有那麼有害的原因。
這裡還涉及數字簽名,這是只能使用私鑰創建的東西。但是只有使用公鑰才能驗證簽名是否正確,並且只能使用私鑰生成。
所以你可以使用我的私鑰來簽署一個文件,如果有人擁有我的公鑰和簽名的文件,他們可以根據公鑰檢查簽名並確定我是第一個的作者。
簽名基本上證明我是私鑰的所有者,不需要透露私鑰本身。
為什麼要使用公鑰的散列?
發送比特幣和其他加密貨幣的最常見方式是使用地址,即公鑰的哈希值。這樣做的原因是,如果橢圓曲線存在漏洞,資金將被安全保存,因為公鑰是未知的,只有它的哈希值。
公鑰僅在花錢時才會顯示,因為有必要證明數字簽名來自我們的私鑰。
正是通過公開公鑰,我們可以得出作為地址的哈希值,這使我們能夠驗證該地址是否屬於用於解鎖資金的公鑰。
就比特幣而言,礦工將檢查此信息以確定交易是否有效並且可以集成到區塊鏈中。
這一切的最終原因是安全性。假設在橢圓曲線中發現了一個錯誤,它允許某人在幾個小時內從公鑰中找到私鑰。
擁有該地址的人仍應獲得公鑰,在這種情況下,哪個哈希函數沒有受到影響。這給了我們一定的優勢。但是,如果我們直接使用公鑰,那麼所有資金在遇到該問題時都會立即受到攻擊。
這對於加密貨幣開發人員來說也是一個優勢,他們將有時間找到解決方案,而人們由於害怕洩露他們的公鑰而不會花費他們的加密貨幣。
它還解釋了為什麼許多人並不總是重複使用相同的地址,因為儘管通常出於安全和匿名的原因這樣做,但在出現此問題時也很重要,因此不會洩露公鑰。
概括
出於安全原因,使用地址而不是公鑰。如果有人發現如何從私鑰創建公鑰的漏洞,使用該地址仍然很難竊取資金。這也將給開發人員更多的時間來解決問題。
資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載