Hot answers tagged

13

When you perform PoW, you specify "Min Weight Magnitude" (not Weight Magnitude). That means that the PoW will modify your transaction hash until it ends (in ternary) with at least 14 zeroes. As the hashing is random, it can happen that your hash ends with more zeroes (without you doing extra work), thus resulting in a transaction with Weight Magnitude of 16 ...


13

Of course not all IoT devices can do proof of work. First of all, all IoT devices is a huge variation of devices. For that generalization this question can simply be answered with a no. Especially regarding IoT sensors which usually only comprise of a sensor part and a transmitting part and no processing part worth mentioning at all. Those devices simply ...


11

PoW can be quite heavy on the resources of IoT devices, But I believe that we can expect dedicated cheap IC's (chips) in the future to counter that. If you run multiple small devices a "hub" for those devices can be an option as well to do the PoW for those small devices while that hub communicates with the IoT devices over another protocol or Flash channel. ...


7

JINN is planned to be a $1 (or otherwise extremely affordable) chip designed for taking care of PoW -- keeping in mind that PoW doesn't become more difficult over time, JINN should theoretically be all that is needed for PoW. If a sensor is so small that it somehow has a radio transmitter or internet connection but not a JINN processor, it would be capable ...


6

The POW in IOTA protocol isn't better or worse than the POW in Bitcoin. It is different in it's purpose. If you re-read the docs carefully you will see that the docs don't claims that the POW in IOTA is better than the POW in Bitcoin. It just says that the POW in Bitcoin is very expensive, while the POW in IOTA is relatively cheap. From the doc : IOTA ...


4

Proof of work does not increase over time automatically. It may be that the IOTA foundation or the majority of nodes will decide later that more PoW (or less) is needed, so they can adjust the MWM value in the protocol. Apart from that, you will have to find 14 zero trytes for every transaction hash, regardless how many nodes or transactions or other users ...


4

The difficulty of the POW is also called the minimal weight magnitude. It's up to you to choose this threshold (it's possible in wallet UI). High minimal weight magnitude means longer computation time, but you must be aware of few things when selecting the minimal weight magnitude : today, on the main net : nodes running the default IRI implementation will ...


4

The idea behind PoW is that it is easy to compute a hash of a transaction, but hard to find a transaction where the hash has certain properties. IOTA uses Curl hash function for this, and the Proof of Work requires that the hash ends with a certain number of zero trits (or when written as trytes, a certain number of nines). This number of zeros (also known ...


4

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 bundle. For all transactions that have a negative value, i. e. they spend IOTA, a signature of the bundle hash is added to the transaction, too. Then, starting ...


4

At first there are two different ways of running a fullnode. You can run it on your Desktop computer next to your wallet. You can run it on a Server and connect your wallet via API (which is the most common) So I am talking about the second way: In this case, there are 2 different ways of doing the POW, not just one. on your fullnode via API (delegated ...


4

The paper referenced in the question try to demonstrate that the tangle cannot resist to a 51% attack. Nothing really new here. The position of the Iota Foundation is to favorise a stable organic growth of honest transactions (as founders said multiple times on discord, reddit, ...) Some members of the community suggested to include a spammer on IRI nodes ...


4

The attack you describe may overload your direct neighbors with useless transactions. This may impact the network locally, but to impact the network globally, you should have a huge amount of direct neighbors. Internal queues in the IRI have a limited size to prevent this kind of attack (and "OutOfMemory" crash). As soon as the queues of your direct ...


4

If the POW last for a long time, your transaction will be attached to relatively old transactions when it will be broadcasted to the network. It will looks like a "lazy tip". "Lazy tip" have less chance to be selected by the random walk, so yes a fast CPU/GPU increase your chance to see your transaction confirmed.


3

The intention behind PoW is to provide spam resistance - prevent a bad actor from flooding the network with useless transactions that cause work for the other nodes. So, when you are running a full node that you are using for your own transactions (or your own devices) you trust, you can enable PoW so that the node will do it for you instead of the device ...


3

My paper states that any tip selection that uses the weight of sites to select tips are subject to double-spending attack if the amount of hashing power used by nodes to generates honest sites is smaller than the hashing power of an adversary. This is not very surprising as ben75 said this is just the non-resistance to 51% attack. About the implication "all ...


3

You use getTransactionsToApprove to get the two transactions/tips that you need to use in your PoW. Then you must craft your transaction trytes, the Javascript libraries help with this. Then you include the two transactions, your trytes, and few other parameters as input for the cCurl program. This program can be run on the command line (C# program) or via ...


3

IOTA's Proof of Work is directly comparable to Hashcash, as it serves a similar purpose to prevent spam, and in our case, also to prevent sybil-attacks. -Official IOTA FAQ More about the Hashcash can be found on its wikipedia page.


2

The outsourcing of POW for light clients is already default. The attachToTangle command on the IRI does the POW and all public nodes (e.g. http://iota.bitfinex.com:80) manually deactivated it because they don't want to do the POW for all the light wallets. Security The signing can be done independently of the POW so there is no security issue at all (...


2

Iota currently uses Curl hashing algorithm for proof of work. It was developed internally by IOTA team as a ternary (uses base 3 numbers, like all Iota, instead of binary) cryptographically secure algorithm, but was ultimately shown insecure for cryptographic applications (I don't know how it affects its performance as PoW, maybe some ultra-ASICBoost is ...


2

No matter what happens, there will be both, devices that run POW by themselves and devices, which can't do it. Even if cheap processors are available, it may not be worth to compute the POW directly on the device. Energy consumption on small sensors is a valid concern for POW to be not worth it. Adding on to this, sensors may not be able to validate if ...


2

It is correct that tip selection generally favours newer transactions. So it is of benefit to finish your PoW quicker. But unless your computer takes a couple minutes, this should not have a huge impact in practice.


2

As this CLI wallet uses iota.lib.js and not also curl.lib.js, and attachToTangle is nowhere overwritten (monkey-patched), PoW will be executed on the full node you connect to. In case the node does not allow so, transactions/transfers will fail.


2

A low min value can only be given as an averaged value, since finding the nonce (pow) is a statistical process. Energy consumption for this pow process depends on how effective your cpu is working (electricity cost per hash) and in practical terms on how well tangle-upload is working. Remember if you are required to re-attach often this will add to your ...


2

When can a transaction be considered irreversable ? (without COO) Strictly speaking: never. In any really decentralized DLT any transaction have a probability to be valid... and this probability is always < 1 (except in the infinite future). Is this true, that a double spend attack can happen at any time in the future? In theory : yes (...because ...


2

On the Desktop GUI wallet, as far as I know there is no way to set PoW to be done on the fullnode. But the Cli Wallet and the Android Wallet the default PoW is done on the fullnode.


2

PearlDiver computes 64 hashes at once. Those hardcoded values make the hashes be distinct by initializing the fragment not affected by the incrementing routine to values which are distinct. An example for 3 hashes: First we have: A00000 B00000 C00000 After the first increment we get: A00100 B00100 C00100 After the second increment we get: A00200 B00200 ...


2

Yes Pow must have been done... but not locally. To perform the POW locally, you need to setup an iotaClient with a object able to perform the pow locally. You do this in the @Setup for your test with this line of code : iotaClient = new IotaAPI.Builder().localPoW(new PearlDiverLocalPoW()).build(); This will create a client able to perform the pow locally ...


2

You cannot get parts of the private key using reattachments. To understand why, let's see how signing works. First of all, there is an unsigned bundle consisting out of several transactins. To sign it, we first need to calculate the bundle hash. Only the address, value, obsolete tag, timestamp, current index and last index are used. Note, nonce, trunk/...


2

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 ...


2

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/...


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