BlockchainTransactionSign (for ARK)
BlockchainTransactionSign[obj,key]
用指定的私钥对 ARK 区块链交易进行数字签名.
BlockchainTransactionSign[obj,{key1,key2}]
使用第一私钥和第二私钥对交易进行数字签名.
BlockchainTransactionSign[obj,{assoc1,assoc2,…}]
对与多重签名地址相关的交易进行数字签名.
更多信息
- 用指定的私钥对 ARK 区块链交易进行数字签名. 如果地址具有与之关联的第二个公钥,则必须提供第二个私钥来对交易进行签名.
- 如果发送方是多重签名地址,则必须提供含有每个参与者私钥的关联列表以便对交易进行签名. 必须根据多重签名地址的 "MinimumKeys" 参数提供最少数量的密钥.
- 列表中的每个关联必须具有以下元素:
-
"PrivateKey" 参与者的私钥 - 还可以给出以下附加元素:
-
"Index" 创建多重签名地址时使用的公钥列表中参与者的索引(从 0 开始) - 在 BlockchainTransactionSign[obj,…] 中,obj 是一个 BlockchainTransaction 对象.
- BlockchainTransactionSign 的密钥必须是一个 PrivateKey 对象、表示私钥的十六进制字符串或 WIF 格式的私钥.
- BlockchainTransactionSign 返回一个区块链交易对象,其属性 "Signed" 的值为 True,并同时具有附加属性 "RawTransaction".
范例
打开所有单元 关闭所有单元基本范例 (1)
创建一个 ARK BlockchainTransaction:
arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", "Fee" -> 500000,
"Amount" -> 5000000|>]BlockchainTransactionSign[arkTX, PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{112463271242020511913268553850576024704171613983200155594908209540978220622935,
5142141864654632412502491922889459950565538412481466601 ... 7159986346772386468502028015847542708926266702473865,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["Avij9K4sXZJWUqzBwBO73WMI4OylteE3fn58+1CVqmRX"],
"PrivateByteArray" -> ByteArray["1gk4lwSUp5gsf8GNG+fRJSIfQZfOZ2s8owB3DkLWqok="]]]]范围 (8)
WIF 私钥 (1)
arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", "Fee" -> 500000,
"Amount" -> 5000000|>]BlockchainTransactionSign[arkTX, "SH1bJ2yZoNqeV1ZQKseKLQsK5owhARLQ5QktTfQmJp4KB22YNvtn"]Hexadecimal 私钥 (1)
arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", "Fee" -> 500000,
"Amount" -> 5000000|>]BlockchainTransactionSign[arkTX, "f2066793e6227d474323bf0c1b18f0ffab7429644476e645345ff261bf11b20d"]第二签名地址 (1)
BlockchainAddressData["DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", {"Username", "PublicKey", "SecondPublicKey"}, BlockchainBase -> {"ARK", "Devnet"}]//ColumnarkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DADxmK6VvgFRJ1USzc9RVFUbtjBb1u7fKk", "Fee" -> 500000,
"Amount" -> 5000000|>]BlockchainTransactionSign[arkTX, {"SDbSpS5R3CvS5iYAAKgNcc3PiFDeCSqJBoQz4SjEMxvS31BEpjm6", "SDreXxLSdspsr7a5azJxcnSeMLN4pwn4pWVJuEnPvXi7YB2qSB8n"}]创建 Multisignature (4)
创建交易 (1)
各方都必须生成密钥对. 这些密钥将被组合起来创建一个新的多重签名地址:
keys1 = GenerateAsymmetricKeyPair["ARK"]keys2 = GenerateAsymmetricKeyPair["ARK"]keys3 = GenerateAsymmetricKeyPair["ARK"]senderPublicKey = BlockchainAddressData["DNeJSpEqKBy3oJ5MXrfuchwWj5a4JXxTQp", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Type" -> "MultiSignature",
"MinimumKeys" -> 2,
"PublicKeys" -> {keys1["PublicKey"], keys2["PublicKey"], keys3["PublicKey"]},
"SenderPublicKey" -> senderPublicKey
|>]同时签名 (1)
依次签名 (1)
arkTXMS0 = BlockchainTransactionSign[arkTX, {
<|"PrivateKey" -> keys1["PrivateKey"]|>
}]arkTXMS1 = BlockchainTransactionSign[arkTXMS0, {
<|"PrivateKey" -> keys2["PrivateKey"]|>
}]arkTXMS2 = BlockchainTransactionSign[arkTXMS1, {
<|"PrivateKey" -> keys3["PrivateKey"]|>
}]发送者签名 (1)
发送者必须使用与创建交易对象时提供的 "SenderPublicKey" 字段关联的私钥对交易进行签名:
arkTXSigned = BlockchainTransactionSign[arkTXMS, PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{57462485011872965801710100144286500884992829103026291705481767716456346255904,
93252910380326883084296527707983096725912573509936596202 ... 7594552434738658300043042142820255643943601719303638,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["An8KnSxl8mGALzf1tJ8fzeENub8lLY0vZXic8HOZQYIg"],
"PrivateByteArray" -> ByteArray["A24xoGmWYQ4Wnh+4YsWBXZCmI1EP+5YvkVVyCjb5XdY="]]]]arkTXSigned["MultiSignatureAddress"]作为发送方的 Multisignature 地址 (1)
对发送方为多重签名地址的 ARK 交易进行签名. 这种情况下,"SenderPublicKey" 是必需的:
senderPublicKey = BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "DGJkJXa9gq38kjSCZnvqNndn7jSWrd2zrT",
"Amount" -> Quantity[520000000, "DARKtoshis"],
"SenderPublicKey" -> senderPublicKey|>]必须根据多重签名地址的 "MinimumKeys" 参数,使用最少数量的参与者的私钥对交易进行签名:
BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "MultiSignature", BlockchainBase -> {"ARK", "Devnet"}]["MinimumKeys"]BlockchainTransactionSign[arkTX, {
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{57143976469766999610290879972632270167816533995122692469610637510833791145289,
10851753758690387871590145496903056174523413855971774365 ... 8995775012947838394065678172356468788225412929600241,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["An5WWDH2xsLdlHqVZXPNykyC/227dNX4udiF0XX//ZVJ"],
"PrivateByteArray" -> ByteArray["WRn7J2df1Dqv0nY7Hm3BOCJglO/a12+WWZWPIrHquvE="]]]|>,
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{36993751054435703412341007594940267743946195102568099488380666233303262143610,
10423346436196938680821092747767378668456564818288286644 ... 5166889460292483674185938995515423680963638343340623,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["A1HJuJl7Ks5J4Sejgc0Q3et28NYIQKwxgjoUcSEu6aR6"],
"PrivateByteArray" -> ByteArray["s01n9oGqdDM+o/dgEN72f0azYlg0p2/U/jzPSb2Fkk8="]]]|>}]arkTXMS0 = BlockchainTransactionSign[arkTX, {
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{57143976469766999610290879972632270167816533995122692469610637510833791145289,
10851753758690387871590145496903056174523413855971774365 ... 8995775012947838394065678172356468788225412929600241,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["An5WWDH2xsLdlHqVZXPNykyC/227dNX4udiF0XX//ZVJ"],
"PrivateByteArray" -> ByteArray["WRn7J2df1Dqv0nY7Hm3BOCJglO/a12+WWZWPIrHquvE="]]]|>
}]arkTXMS1 = BlockchainTransactionSign[arkTXMS0, {
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{36993751054435703412341007594940267743946195102568099488380666233303262143610,
10423346436196938680821092747767378668456564818288286644 ... 5166889460292483674185938995515423680963638343340623,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["A1HJuJl7Ks5J4Sejgc0Q3et28NYIQKwxgjoUcSEu6aR6"],
"PrivateByteArray" -> ByteArray["s01n9oGqdDM+o/dgEN72f0azYlg0p2/U/jzPSb2Fkk8="]]]|>
}]应用 (2)
创建一个 ARK BlockchainTransaction:
arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"}, "Recipient" -> "DLesojAmpcA4jQbJDz5JKQ73k1RervJwfi", "Fee" -> 500000,
"Amount" -> 5000000|>]arkTXSigned = BlockchainTransactionSign[arkTX, PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{87696465113910176578204891522220454745022058862683894191659089442189614354344,
72502334495718524445709347674468614586757811071611466963 ... 8003037045219516869875358425443035690542436100010227,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["AsHicLXwy33F53No6hMGWy33lkXzIX4FHPfAe4pJsY+o"],
"PrivateByteArray" -> ByteArray["oihE/G/Fmu7Za7kEhAHmpdhhwhHLx+zbr4WQr3ie8PM="]]]]BlockchainTransactionSubmit[arkTXSigned]创建一个使用多重签名地址的 ARK BlockchainTransaction:
senderPublicKey = BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "PublicKey", BlockchainBase -> {"ARK", "Devnet"}]arkTX = BlockchainTransaction[<|
"BlockchainBase" -> {"ARK", "Devnet"},
"Recipient" -> "DGJkJXa9gq38kjSCZnvqNndn7jSWrd2zrT",
"Amount" -> Quantity[520000000, "DARKtoshis"],
"SenderPublicKey" -> senderPublicKey|>]BlockchainAddressData["DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE", "MultiSignature", BlockchainBase -> {"ARK", "Devnet"}]["MinimumKeys"]BlockchainTransactionSign[arkTX, {
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{57143976469766999610290879972632270167816533995122692469610637510833791145289,
10851753758690387871590145496903056174523413855971774365 ... 8995775012947838394065678172356468788225412929600241,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["An5WWDH2xsLdlHqVZXPNykyC/227dNX4udiF0XX//ZVJ"],
"PrivateByteArray" -> ByteArray["WRn7J2df1Dqv0nY7Hm3BOCJglO/a12+WWZWPIrHquvE="]]]|>,
<|"PrivateKey" -> PrivateKey[Association["Type" -> "EllipticCurve", "CurveName" -> "secp256k1",
"PublicCurvePoint" ->
{36993751054435703412341007594940267743946195102568099488380666233303262143610,
10423346436196938680821092747767378668456564818288286644 ... 5166889460292483674185938995515423680963638343340623,
"Compressed" -> True, "PublicByteArray" ->
ByteArray["A1HJuJl7Ks5J4Sejgc0Q3et28NYIQKwxgjoUcSEu6aR6"],
"PrivateByteArray" -> ByteArray["s01n9oGqdDM+o/dgEN72f0azYlg0p2/U/jzPSb2Fkk8="]]]|>}]BlockchainTransactionSubmit[BlockchainTransaction[Association["BlockchainBase" -> {"ARK", "Devnet"}, "Signed" -> True,
"Type" -> "Transfer", "Fee" -> Quantity[10000000, "DARKtoshis"], "TransactionCount" -> 1,
"Sender" -> "DGVaLpr1BArTmAtimoDh8C5LujPTTF1EFE",
"Recipie ... b9f1ccfe108e6b4740f15ba487e69c64925c7aac16c83390380fb8\
6c88812d6e71773b0dfceb6133e89eef8003391a38753a15665", "02bf84c8b7021195b9efdd0276827b805ae2294a666f\
91932e4176a2cf5f2937a8601853468a35eceaca0f02fb65f811c0b17c2c4b4afb9ac1966bb332e3bdfdd6"}]]]可能存在的问题 (1)
不正确的私钥 (1)
如果提供了无效的私钥,将返回 $Failed:
tx = BlockchainTransaction[Association["BlockchainBase" -> {"ARK", "DevNet"}, "Signed" -> False,
"Type" -> "Transfer", "Fee" -> Quantity[10000000, "DArktoshis"],
"Timestamp" -> DateObject[{2019, 7, 10, 13, 13, 28.115883`8.201526708920333}, "Instant",
"Gregorian", -5.], "Recipient" -> "DB3BoyUAMZqWFnvmneUAerVdsezwrtZkA9",
"Amount" -> Quantity[5000000, "DArktoshis"], "VendorField" -> "",
"MessageHash" -> "d988d478ad9af5d993fa1073a504ad2f902416c8bd585f7f70c3189d173fc50d"]];BlockchainTransactionSign[tx, "AAAAAA"]相关指南
历史
2019年引入 (12.0)
文本
Wolfram Research (2019),BlockchainTransactionSign,Wolfram 语言函数,https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-ARK.html.
CMS
Wolfram 语言. 2019. "BlockchainTransactionSign." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-ARK.html.
APA
Wolfram 语言. (2019). BlockchainTransactionSign. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-ARK.html 年
BibTeX
@misc{reference.wolfram_2026_blockchaintransactionsign, author="Wolfram Research", title="{BlockchainTransactionSign}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-ARK.html}", note=[Accessed: 16-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_blockchaintransactionsign, organization={Wolfram Research}, title={BlockchainTransactionSign}, year={2019}, url={https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-ARK.html}, note=[Accessed: 16-August-2026]}