user2402: In Cardano's Alonzo CDDL (Concise Data Definition Language) specification, it seems that the value of an asset could be negative. Is it correct?
If the above assumption is correct, I am wondering how will the ledger work in the following scenario:
Alice has a native asset named "X" with negative quantity of -1000. Then, she send this asset X=-1000 to Bob, who has the same asset but a positive quantity of 2000. If this transaction is valid and successfully included in the blockchain, does it mean Bob will end up having only 1000 token X (2000-1000=1000) left?
It sounds weird that Alice could burn anybody's token by simply sending a negative quantity of tokens. If I have to guess an explanation for this scenario, it could be that Alice is granted with the power of "burning" by the token issuer, therefore she could burn anybody's token by sending negative values to their addresses. Therefore, token issuers should be extremely cautious about minting and issuing negative quantity tokens to any third party.
Update:
After taking a careful look at the ledger spec, the quantity of an asset can only be uint, specified as multiasset<uint> in this line. Only the minting amount could be negative, specified as multiasset in this line. This also verified Andy's answer below.

user4023: Official documentation unambiguously says about it:

The minting parameter is now called with a negative value, therefore destroying one token.

cardano-cli transaction build --mainnet --alonzo-era 
                              --tx-in $txhash#$txix 
                              --tx-out $address+$burnoutput 
                              --mint="-1 $policyid.$tokenname" 
                              --minting-script-file $script 
                              --change-address $address 
                              --invalid-hereafter $slot 
                              --witness-override 2 
                              --out-file burning.raw

One obvious thing about burning tokens is: an owner can't burn any token if there's nothing to burn.
cardano-cli transaction build-raw \
                        --fee $burnfee \
                        --tx-in $txhash#$txix \
                        --tx-out $address+$burnoutput+"9999998 $policyid.$tokenname1 + 9995000 $policyid.$tokenname2"  \
                        --mint="-5000 $policyid.$tokenname2" \
                        --minting-script-file policy/policy.script \
                        --out-file burning.raw


For more details, read this post please.

2402: <p>In Cardano's Alonzo <a href="https://github.com/input-output-hk/cardano-ledger/blob/master/eras/alonzo/test-suite/cddl-files/alonzo.cddl#L371-L378" rel="nofollow noreferrer">CDDL</a> (Concise Data Definition Language) specification, it seems that the value of an asset could be negative. Is it correct?</p>
<p>If the above assumption is correct, I am wondering how will the ledger work in the following scenario:</p>
<p>Alice has a native asset named &quot;X&quot; with negative quantity of -1000. Then, she send this asset <code>X=-1000</code> to Bob, who has the same asset but a positive quantity of 2000. If this transaction is valid and successfully included in the blockchain, does it mean Bob will end up having only 1000 token X (2000-1000=1000) left?</p>
<p>It sounds weird that Alice could burn anybody's token by simply sending a negative quantity of tokens. If I have to guess an explanation for this scenario, it could be that Alice is granted with the power of &quot;burning&quot; by the token issuer, therefore she could burn anybody's token by sending negative values to their addresses. Therefore, token issuers should be extremely cautious about minting and issuing negative quantity tokens to any third party.</p>
<p>Update:</p>
<p>After taking a careful look at the ledger spec, the quantity of an asset can only be uint, specified as <code>multiasset&lt;uint&gt;</code> in <a href="https://github.com/input-output-hk/cardano-ledger/blob/master/eras/alonzo/test-suite/cddl-files/alonzo.cddl#L375" rel="nofollow noreferrer">this line</a>. Only the minting amount could be negative, specified as multiasset in <a href="https://github.com/input-output-hk/cardano-ledger/blob/master/eras/alonzo/test-suite/cddl-files/alonzo.cddl#L376" rel="nofollow noreferrer">this line</a>. This also verified Andy's answer below.</p>
 4023: <p>Official documentation unambiguously <a href="https://developers.cardano.org/docs/native-tokens/minting-nfts/" rel="nofollow noreferrer"><em><strong>says</strong></em></a> about it:</p>
<blockquote>
<p>The minting parameter is now called with a <strong>negative value</strong>, therefore destroying one token.</p>
</blockquote>
<pre><code>cardano-cli transaction build --mainnet --alonzo-era 
                              --tx-in $txhash#$txix 
                              --tx-out $address+$burnoutput 
                              --mint=&quot;-1 $policyid.$tokenname&quot; 
                              --minting-script-file $script 
                              --change-address $address 
                              --invalid-hereafter $slot 
                              --witness-override 2 
                              --out-file burning.raw
</code></pre>
<p>One obvious thing about burning tokens is: an owner can't burn any token if there's nothing to burn.</p>
<pre><code>cardano-cli transaction build-raw \
                        --fee $burnfee \
                        --tx-in $txhash#$txix \
                        --tx-out $address+$burnoutput+&quot;9999998 $policyid.$tokenname1 + 9995000 $policyid.$tokenname2&quot;  \
                        --mint=&quot;-5000 $policyid.$tokenname2&quot; \
                        --minting-script-file policy/policy.script \
                        --out-file burning.raw
</code></pre>
<p><br></p>
<p>For more details, read <a href="https://developers.cardano.org/docs/native-tokens/minting/" rel="nofollow noreferrer">this post</a> please.</p>
