Let me complement the whitepaper based answer with a bit more explicit technical arguments.
Confirming just one transaction would lead just to a linked list of transactions - in other words, a blockchain.
Confirming more than two transactions would (1) increase the work required to select valid tips and (2) increase the probability than an invalid tip is ...
In the whitepaper it's written
The edge set of the tangle is obtained in the following way:
when a new transaction arrives, it must approve two (1) previous transactions.
1: This is the simplest approach. One may also study similar systems where transactions must approve k other transactions for a general k ≥ 2, or have an entirely ...
Short answer it depends.
A little longer answer, the needed time for the proof of work depends on:
the device that calculates the hash.
the load of this device (with other stuff).
the minWeightMagnitude (here you can read more about it).
Furthermore the IOTA Foundation is planing/working on a external CPU called Jinn. Jinn is a ternary CPU so more ...
The IOTA Tangle more network-bound than hash-power-bound because in order to perform an attack, you need to meet three conditions:
X [any number] percentage of network hash rate (depending on Y 34% may not be enough)
You have to know how a big section of the network topology (know which nodes are neighbours of which nodes)
Y percentage of ...
A nonvalue transaction (sensors would most likely just pass data and not iota) is only a single transaction (attaching an address to tangle is also a nonzero transaction). My PC (with an i7 8th Gen) manages around 1,5 Transactions per second. If you want to send value, it takes at least 3 transactions through (this is called a bundle).
Update 12.08.2018: ...
GREAT question! This was actually JUST discussion in the Iota Foundations most recently published research paper! The idea is this: confirm more transaction then you are creating to reduce the number of tips ( tips are unconfirmed transactions ).
By making the required confirmations, 1 then the IOTA's ledger would not be called a tangle, it would be called ...
It should be impossible.
To successfully accomplish the POW, you must find a nonce (i.e. a random number) to append to the transaction data so that the hash of the whole data (transaction data + nonce) ends with at least N zero trits (the hash in trytes will end with '9' tryte) (N=14 on main net).
The hash function is designed in such a way that it is a ...
I'll try to answer.
1) The "M-bug" is effectively the normalized bundle-hash containing the character M.
More information about it here:
Why is the normalized hash considered insecure when containing the char 'M'
2) Proof-of-Work was implemented in VHDL between 26th April '18 and 26th Aug '18 and became the PiDiver: https://github.com/shufps/...
1) In mid 2017 the M-Bug was found and the work-around for it is (inoficially) called "Mini-PoW". It could happen that a Bundle-Hash contained "M" which exposed a private key (and all following keys) directly and weakened signatures significantly. The Workaround simply recreates bundle-hashs until no "M" is contained within the hash. This is a brute-force ...
The Crypto Core is a FPGA system which consists of Cortex M1 soft-cpu and specialized logic for accelerating algorithms like hashing (and also PoW) or type-conversions.
So, it's both - microcontroller in an FPGA and it can do PoW very fast :)
As the whole implementation uses ternary arithmetic, it uses ternary algorithms.
For hashing there are three ternary algorithms in use or planned to be used:
CURL-T (the original one) where weaknesses were found and therefore it is now only used for Proof of Work
KERL, which is basically a ternary wrapper around Keccak (SHA-3) and which is used for all ...
The iota.lib.js.powsrvio in your question is a NodeJS library: https://www.npmjs.com/package/iota.lib.js.powsrvio
How to use powsrv.io?
To use NodeJS libraries, you need to install NodeJS. That is something you can do on any Linux distribution, for example.
And what are prerequirements ?
The system must have enough RAM, program memory and computing ...
If the transaction hash is already in the local tangle, any new transaction with same hash will be ignored (immediately dropped by the IRI).
So, no : you can't transform the acyclic graph in a graph with this strategy. (or transform the "almost acyclic graph" -according cfb comment- into a graph)
Here is the relevant code
public boolean store(Tangle ...
A team working on a spamming tool tried to implement GPU transaction spammer but they ran into big issues with OpenCL as of 20/2/2018. The library is not ready as it always crashes, so it's whether to dig into the OpenCL or wait.
The average duration of the pow is determined by the minWeightMagnitude (i.e the difficulty of the puzzle to solve) and the computing power of the device.
On Bitcoin, the difficulty of the pow is adjusted is such a way that there is a new block every 10 minutes (on average). (basically it is driven by the total computing power of the network)
On the Tangle,...