加載中 ...

深入研究Grin交易文件的內容

2019-07-01 19:03 編輯:幣牛牛 來源:幣源

與其他加密貨幣不同,Grin不使用地址。要發送或接收Grin,發件人和收件人必須在彼此之間來回發送信息。



方法是通過文件共享。此文件可以在幾秒,幾天,幾年或其他任何時間段內共享。



讓我們深入探究一下這個Grin事務文件的內容。



探索GRIN事務文件



假設你想給Bob發送10.25個GRIN,你們兩個想通過一個文件交換這個交易的必要信息。運行:



grin wallet send -m file -d my_grin_transaction.tx 10.25



這會生成一個名為my_grin_transaction.tx的文件,您需要將該文件發送給Bob,以便他可以向您提供其響應文件。



讓我們打開這個my_grin_transaction.tx文件。



{
"num_participants": 2,
"id": "56709cfe-8584-4a02-b94e-bb7e79cfae66",
"tx": {
"offset": [62, 48, 100, 178, ...],
"body": {
"inputs": [{
"features": "Plain",
"commit": [8, 95, 99, 251, ...]
}],
"outputs": [{
"features": "Plain",
"commit": [8, 216, 52, 10, ...],
"proof": [13, 107, 82, 188, ...]
}],
"kernels": [{
"features": "HeightLocked",
"fee": 8000000,
"lock_height": 22023,
"excess": [0, 0, 0, 0, ...],
"excess_sig": [0, 0, 0, 0, ...]
}]
}
},
"amount": 10250000000,
"fee": 8000000,
"height": 22023,
"lock_height": 22023,
"participant_data": [{
"id": 0,
"public_blind_excess": [2, 66, ...],
"public_nonce": [2, 102, ...],
"part_sig": null,
"message": null,
"message_sig": null
}]
}



按照順序,我們有:



· num_participants:此交易涉及的人數。 Alice到Bob意味著2個參與者。 Alice到Bob和Charlie意味著有3個參與者。
· id:此事務的唯一標識符。這允許我們在從Bob接收文件時跟蹤事務。



接下來,我們有一個tx對象,簡稱事務。這包括:



1. 內核偏移量(此處命名為offset)。
2. 一個body對象,包含有此事務中使用的輸入,此事務的輸出(當前,只是我們的更改)和事務內核。



讓我們深入研究這些。



· offset:內核偏移量。這是一個隨機值,我們選擇從我們的盲目因子中減去,以使任何人更難以在區塊鏈上跟蹤此交易。



此tx對象中的下一個是輸入對象。此對象包含有關我們在此事務中花費的輸出的信息。



"inputs": [{
"features": "Plain",
"commit": [8, 95, 99, 251, ...]
}],



· feature:在此示例中,我們正在花費的輸出功能(此事務的輸入)設置為“Plain”。此功能變量可以是“Plain”或“Coinbase”。



CoinBase輸出是從挖掘獎勵中生成的輸出。一個普通的輸出僅僅意味著它不是一個coinbase輸出。



· commit:我們要花費的輸出。Grin的輸出是Pedersen承諾。要了解這些是如何工作的,您可以閱讀Grin wiki。



在tx對象中,我們繼續到輸出數組。



"outputs": [{
"features": "Plain",
"commit": [8, 216, 52, 10, ...],
"proof": [13, 107, 82, 188, ...]
}],



你會注意到這個輸出數組已經有了我們交易的輸出。如果我們花費10.25 Grin,我們在這個事務中只使用一個輸入,那么該輸入至少包含10.25 Grin。例如如果此輸入包含20 Grin,則此事務還需要輸出以將9.75 Grin發送回給我們!



Grin的獨特之處在于Bob需要參與任何輸出,但由于我們尚未將此文件發送給Bob,我們還沒有準備好創建交易的那部分。我們的更改輸出與Bob無關,這就是為什么我們已經能夠計算我們的更改輸出。



除了feature和commit,此輸出還包含一個證明。這是一個輸出的范圍證明,它證明了該輸出中的Grin量是非負的。范圍證明允許我們以加密方式證明輸出是非負的,而不會顯示實際輸出的內容。



此事務文件的下一部分是內核數組。



"kernels": [{
"features": "HeightLocked",
"fee": 8000000,
"lock_height": 22023,
"excess": [0, 0, 0, 0, ...],
"excess_sig": [0, 0, 0, 0, ...]
}]



事務內核也從features變量開始。這一部分可能有點令人困惑:正如我前面解釋的,您看到的任何輸出的features變量要么是“plain”,要么是“coinbase”。但在事務內核中,features變量可以是“plain”、“coinbase”或“heightlocked”。

事務內核中的三種不同“特性”:Coinbase,Plain和HeightLocked

關鍵詞:比特幣新聞 幣牛牛

轉載自比特幣新聞網(www.dcpnox.live),提供比特幣行情走勢分析與數字貨幣投資炒幣最新消息。

原文標題:深入研究Grin交易文件的內容

原文地址:http://www.dcpnox.live/news/btc/13229.html

本文來源:幣源編輯:幣牛牛

本文僅代表作者個人觀點,與本網站立場無關。

本網站轉載信息目的在于傳遞更多信息。請讀者僅作參考,投資有風險,入市須謹慎!

'); })();
千斤顶或更好10手返水