Cardano SL中的地址

本文由幣乎社區(qū)(bihu.com)內(nèi)容支持計(jì)劃贊助。

為了發(fā)送和接收價(jià)值,幾乎所有的加密貨幣都使用了地址。Cardano SL支持了3種地址類型:

  • 公鑰地址
  • 腳本地址
  • 贖回地址

公鑰地址在其他的加密貨幣中就像一個(gè)正常的地址一樣。它是一個(gè)經(jīng)過哈希的公鑰。

腳本地址被用在一個(gè)所謂的P2SH交易中。它自主的運(yùn)作,而且有點(diǎn)像銀行里面的存款:你可以向它匯款,但是為了可以兌換這筆錢你必須要滿足一些特定的條件,條件由與地址相關(guān)的腳本來決定。地址本身包含著序列化腳本的哈希值。

贖回地址是ADA贖回的一種特殊地址類型。

不僅如此,Cardano SL還支持Unknown的地址類型。這種類型可以允許我們?cè)谖磥硎褂米远x的地址類型

地址看起來像什么?

地址是base58編碼的字節(jié)串,例如:

Ae2tdPwUPEZKmwoy3AU3cXb5Chnasj6mvVNxV1H11997q3VW5ihbSfQwGpm

編碼

base58就是比特幣中使用的編碼。它使用58個(gè)符號(hào)的字母表來編碼數(shù)據(jù),這也是它名字的由來。下面就是我們使用的字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

它跳過了非字母數(shù)字字符和在打印(0, O, I, l)時(shí)看起來模棱兩可的字母;因此它適用于手動(dòng)輸入數(shù)據(jù)的人類用戶,從一些可視化的源代碼復(fù)制地址,并且允許通過雙擊來簡單的拷貝和粘貼,不過雙擊通常會(huì)選擇整個(gè)字符串。

公鑰地址

就像在 Cardano SL的清算層 中提到的那樣,在用戶界面你看到的錢包就是代表在這個(gè)特定的錢包中你擁有可以花費(fèi)這筆錢的私鑰。但是這樣的花費(fèi)是如何被網(wǎng)絡(luò)驗(yàn)證的以及你如何接收到別人支付給你的錢?答案就是跟控制你錢包里面價(jià)值的的私鑰一起會(huì)產(chǎn)生一個(gè)公鑰,"公"是公共的意思,這個(gè)“公”的部分也就是指可以被任何人知道,因此叫做“公鑰”。

一個(gè)公鑰的地址包含了公鑰的哈希值。

公鑰在你創(chuàng)建一個(gè)交易或其他輔助用途的時(shí)候用來驗(yàn)證你的身份。

P2SH

P2SH的思想就是為花費(fèi)金錢制定復(fù)雜的規(guī)則提供很大的靈活性。與發(fā)送一筆交易到公鑰地址上相反,我們創(chuàng)建一個(gè)驗(yàn)證腳本,該腳本使用贖回腳本當(dāng)參數(shù)。為了贖回里面的資金,我們傳遞一個(gè)贖回腳本給驗(yàn)證腳本,然后開始計(jì)算。如果計(jì)算結(jié)果為success,那么金錢就會(huì)被匯到指定的贖回者那里,否則的話什么都不會(huì)發(fā)生。

引用一下比特幣 WiKi 里面的話:

使用 P2SH,你可以將比特幣打給一個(gè)用多種不常見的方法保護(hù)著的地址,而不用知道該地址安全設(shè)置的任何詳細(xì)信息。接收者可能需要多個(gè)人的簽名來花費(fèi)這些比特幣,或者可能需要一個(gè)密碼來花費(fèi)這些比特幣,也或者需要一個(gè)非常獨(dú)特的要求才能花費(fèi)這些比特幣。

贖回地址

贖回地址就是P2PKH。這樣的地址包含了贖回公鑰的哈希值。并且這個(gè)鑰匙是 Ed25519 公鑰。

其他地址類型

在未來,我們可能會(huì)使用升級(jí)的系統(tǒng)來引入其他地址類型。請(qǐng)閱讀 查看更多 了解關(guān)于以無破壞性的方式的來擴(kuò)展系統(tǒng)的相關(guān)信息。

地址結(jié)構(gòu)

地址包含了3個(gè)部分:

  • 地址根
  • 地址屬性
  • 地址類型

我們可以把地址想象成類似于JSON的結(jié)構(gòu),例如:

Address {
    addrRoot = AbstractHash e63175c654dfd93a9290342a067158dc0f57a1108ddbd8cace3839bd,
    addrAttributes = Attributes {
        data: AddrAttributes {
            aaPkDerivationPath = Nothing,
            aaStakeDistribution = BootstrapEraDistr
        } 
    },
    addrType = ATPubKey
}

addrRoot是由addrType、addrSpendingData、addrAttributes組成數(shù)組的BLAKE2b-224哈希值。

addrSpendingData是一個(gè)與地址綁定的特殊值,在花費(fèi)該地址上的 coins 時(shí)必須要被揭露。例如,對(duì)于公鑰來說,這個(gè)值就包含著公鑰。這樣的話,在不知道公鑰的時(shí)候是不可能改變地址屬性的,因?yàn)槿绻麑傩愿淖兞?,整個(gè)地址就變成無效的了。

addrAttributes包含了每個(gè)地址重要的屬性:衍生的路徑和權(quán)益的分配。

想要了解更多關(guān)于衍生路徑請(qǐng)閱讀 Cardano SL的HD錢包

想要了解更多關(guān)于權(quán)益分配請(qǐng)閱讀 Cardano SL中的交易

addrType的值與上面提到的地址類型相對(duì)應(yīng)。在上面的例子中它是一個(gè)公鑰地址。

長度

地址的長度可能是不同的,地址長度與地址類型和附加數(shù)據(jù)相關(guān)。

例如,這個(gè)地址:

Ae2tdPwUPEZKmwoy3AU3cXb5Chnasj6mvVNxV1H11997q3VW5ihbSfQwGpm

和這個(gè)地址:

4swhHtxKapQbj3TZEipgtp7NQzcRWDYqCxXYoPQWjGyHmhxS1w1TjUEszCQT1sQucGwmPQMYdv1FYs3d51KgoubviPBf

都是公鑰地址。

翻譯作者: 許莉
原文地址: ADDRESSES IN CARDANO SL

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容