Skip to main content
20 votes
Accepted

What is an IOTA "bundle"?

Transferring IOTAs from one address to another requires several different transactions: An output transaction that increments the recipient's balance by the desired amount. (usually) 1-3 inputs that ...
todofixthis's user avatar
  • 1,320
11 votes

What is an IOTA "bundle"?

This cheat sheet present a bundle with : 2 outputs: 100 iotas to address B and 202 iotas to address C. the remainder : 49 iotas The inputs are comming from 3 addresses: A1, A2 and A3. In the ...
ben75's user avatar
  • 5,344
10 votes
Accepted

What is an input transaction, and what does its "address" field represent?

It's important to understand that IOTA use UTXO scheme (like bitcoin and probably many other cryptocurrencies). UTXO means Unspent Transaction Output. To understand from where the UTXO concept ...
ben75's user avatar
  • 5,344
9 votes
Accepted

Why is the normalized hash considered insecure when containing the char 'M'

There was a bug in the wallet software related to absence of https://github.com/Come-from-Beyond/ISS/commit/de1a279450558848a81858fd57b023719eb9a0d3. "M" should be avoided to prevent leakage of the ...
Come-from-Beyond's user avatar
8 votes
Accepted

What does the "block number" in the iota wallet represent?

The two numbers are the the latest solid subtangle milestone index The "latest solidsubtangle milstone" is used for sending transactions. For a milestone to become solid your local node (or whatever ...
Zauz's user avatar
  • 4,454
7 votes

Why is the bundle hash normalized?

When you apply naïve Winternitz signature scheme on a (non-normalized) hash, the amount of private key data you leak is not uniform - a hash of e. g. 999⋯9 would result in all (or none, depending on ...
mihi's user avatar
  • 7,324
7 votes

What is an IOTA "bundle"?

A user will usually broadcast a collection of multiple transactions (also called a bundle) when interacting with the network. One bundle could consist of Withdrawal transaction (acquire funds to be ...
Phil-ZXX's user avatar
  • 1,663
6 votes
Accepted

Are bundles one tip or four?

A bundle can also have only 1 transaction (zero value tx), 3 transactions (if there is no remainder, therefore no change address) or more transactions (if there is a remainder and/or there are ...
mihi's user avatar
  • 7,324
6 votes
Accepted

How is ensured that a message sent in a transaction is immutable?

Short answer: it is not. Long answer: Signatures are not supposed to protect anything else than the iota values and (obsolete)tag fields. Therefore, as long as your transaction is not confirmed, ...
mihi's user avatar
  • 7,324
5 votes

How to send data payload and funds in a secure/immutable way?

The current transaction structure is not the final variant. Later extraDataDigest field will be added, that field will be a part of the bundle essence (signed part). Setting the field value to the ...
Come-from-Beyond's user avatar
5 votes
Accepted

Which parts of a bundle have to be signed?

A signature may even need more than two transactions, e. g. if it is a multisig signature. Yes, the reason is that Winternitz signatures are large (for every tryte you are signing and each key that ...
mihi's user avatar
  • 7,324
4 votes
Accepted

What is a transactions obsoleteTag used for?

obsoleteTag will be removed soon. The preliminary final design of the bundle essence fragment is: extraDataDigest [243 trits] address [243 trits] value [81 trits] issuanceTimestamp [...
Come-from-Beyond's user avatar
4 votes

Do transactions within the same bundle need to reference specific branch and trunk hashes?

A bundle consisting of N transactions can reference 2*N completely different transactions (almost half of them will belong to the bundle). The chain of trunkTransaction references must form the ...
Come-from-Beyond's user avatar
4 votes

Why is the bundle hash normalized?

Winternitz signature scheme requires to have the checksum for the signature to be secure. Bundle normalization is an alternative way of keeping the signature secure while reducing its "strength" a ...
Come-from-Beyond's user avatar
4 votes
Accepted

How does the POW change with the number transactions in a bundle?

The bundle hash is calculated from the "essence" parts (address, (obsolete)tag, timestamp, value, bundle index) of all transactions. Then the bundle hash is inserted into all transactions of the ...
mihi's user avatar
  • 7,324
3 votes
Accepted

Why does IRI accept „broken“ bundles?

iri accepts and broadcasts single transactions, not whole bundles. Therefore when iri receives the first transaction of a bundle, it not necessarily can see already that this transaction is part of a ...
mihi's user avatar
  • 7,324
3 votes

How is ensured that a message sent in a transaction is immutable?

It's not included in the bundle hash, but it is included in the transaction hash. If you look into how MAM does it, the message fragment contains the message, signature, and sibling hashes( for merkle ...
Paul's user avatar
  • 316
3 votes

Do transactions within the same bundle need to reference specific branch and trunk hashes?

They do, and this schema shows how TX(currentIndex, lastIndex): Taken from this nice article.
Akkumulator's user avatar
  • 1,468
3 votes

Do transactions within the same bundle need to reference specific branch and trunk hashes?

I found the cheat sheet to be somewhat misleading as it assumes, that one tip to be confirmed is the latest solid milestone. You'll find a precise answer here. I had the exact same conceptual question....
ralf's user avatar
  • 1,063
3 votes
Accepted

Why is "getTransactionsToApprove" returning identical trunk & branch hashes

Strictly speaking : branch and trunk transaction can be the same. Let's think about transaction validating the genesis: there was only only one transaction on the tangle... so impossible to pick 2 ...
ben75's user avatar
  • 5,344
2 votes

Doesn't reattaching transactions allow double-spend transactions?

You have a balance not in an account, but on an address. Due to the fact that IOTA uses one-time signatures, you are advised to create transactions that empty an address fully. So, if you have 10 Mi ...
mihi's user avatar
  • 7,324
2 votes
Accepted

Where is the message in the transaction bundle?

The message is stored in the space where the signature normally would be. In the signatureMessageFragment of the first transaction in the bundle, there is GACDZCTCEAADTCGDGDPCVCTCGA and a whole lot of ...
Laurence's user avatar
  • 1,358
2 votes
Accepted

Why do transactions in a bundle need to be chained via trunkTransaction?

I checked the code (in the Java library) and here is how it creates a bundle. Let's say that tip0 and tip1 are the 2 tips to approve. The last transaction in the bundle (transaction with highest ...
ben75's user avatar
  • 5,344
2 votes
Accepted

Does Broadcasting a Bundle on Both MainNet and TestNet Facilitate Brute Forcing the Seed?

Your seed is never compromised by address reuse. The only thing that is compromised is the private key of one of your addresses. That's why the wallet moves remaining funds to a different/new address ...
mihi's user avatar
  • 7,324
1 vote
Accepted

Finalizing bundle fails

The Java library is quite picky about length of fields you set. In particular, the address has to be 81 trytes and both tag and obsoleteTag need to have 27 trytes. If the lengths are different (or ...
mihi's user avatar
  • 7,324
1 vote
Accepted

Can a bundle be 3 transactions for security level 1?

Yes, you are right. In case of security = 1 and you are spending all the funds on one address (with no change needed), you can even get away with only 2 transactions (one with the input and sig, and ...
mihi's user avatar
  • 7,324
1 vote
Accepted

How is the correct way to retrieve the two transactions that had been confirmed in order to create a transaction

As I'm new to Iota development I can not tell, if this is really the correct way to do it but I found the following works for me and the result looks correct and like what I expected it to look like: ...
Eric Xyz's user avatar
  • 131
1 vote

specific reason tip-choice for trunk and branch?

Although the construction seems a bit odd, now I understand this specific setup was just temporary. In a new release (current v1.4.2.1) the new bundle structure will adhere to the "each tx confirms 2 ...
GJEEE's user avatar
  • 713
1 vote

How does the POW change with the number transactions in a bundle?

Nonces are being added to transactions, not to bundles. So for each transaction in the bundle the user have to do a small Proof-of-Work: to find such nonce that will result in the hash of the ...
alexpods's user avatar
  • 498
1 vote

How to validate bundle hash

The Java port is up to date - it is used in the Android wallet. Also, obviously the JavaScript port is up to date - it is used in the official desktop wallet. The C# port is not up to date as it (...
mihi's user avatar
  • 7,324

Only top scored, non community-wiki answers of a minimum length are eligible