user136938: I don't understand that, why does bitcoin need to use different types of addresses for making the different types of transactions? Is'nt it possible to generate different transactions having a transaction type configuration while using one address?

user26873: It helps prevent confusion and loss of funds.
Different version bytes are reserved for different uses and result in different address types. For example version bytes 0x00 (mainnet address starts with 1), version bytes 0x6F (testnet address starts with m or n).
Imagine if both mainnet and testnet had the same version bytes. It would be very confusing.
See this answer for more reasons why we have different version bytes: https://bitcoin.stackexchange.com/a/552/26873
As for whether it can be done with a single address type Legacy P2SH (addresses that start with a 3) was probably the closest to a single address type that handled multiple spend cases. It could behave like a P2WPKH via a P2SH script (P2SH-P2WPKH) as well as ability to do multisig, and even other non-standard scripts. But it was a temporary work around until native segwit addresses became the standard which have slight variations as well to distinguish output types.

user13866: 
why does bitcoin need to use different types of addresses for making the different types of transactions?

I think a fundamental reason is that the recipient (payee) has to be involved in specifying how they want to be paid, they have to be involved in the choice of transaction type. The address is really nothing other than the way in which the payee communicates their needs to the payer. It has to contain a specification that is sufficient for the payer to construct a locking script that the payee has the means to unlock. The address is not used in the Bitcoin network at all.

Is'nt it possible to generate different transactions having a transaction type configuration while using one address?

It is, but the address would be insufficient for a payee to be paid properly when the payer might choose a new transaction type that the payee's software did not yet support. As a payee you'd have to specify not just an address but a list of acceptable payment types too. The address is a concept that was supposed to do the whole of that job.
Again, it is worth remembering that addresses don't exist anywhere in the Bitcoin network protocols and don't exist in the blockchain.

136938: <p>I don't understand that, why does bitcoin need to use different types of addresses for making the different types of transactions? Is'nt it possible to generate different transactions having a transaction type configuration while using one address?</p>
 26873: <p>It helps prevent confusion and loss of funds.</p>
<p>Different <a href="https://en.bitcoin.it/wiki/List_of_address_prefixes" rel="nofollow noreferrer">version bytes are reserved for different uses</a> and result in different address types. For example version bytes 0x00 (mainnet address starts with 1), version bytes 0x6F (testnet address starts with m or n).</p>
<p>Imagine if both mainnet and testnet had the same version bytes. It would be very confusing.</p>
<p>See this answer for more reasons why we have different version bytes: <a href="https://bitcoin.stackexchange.com/a/552/26873">https://bitcoin.stackexchange.com/a/552/26873</a></p>
<p>As for whether it can be done with a single address type Legacy P2SH (addresses that start with a 3) was probably the closest to a single address type that handled multiple spend cases. It could behave like a P2WPKH via a P2SH script (P2SH-P2WPKH) as well as ability to do multisig, and even other non-standard scripts. But it was a temporary work around until native segwit addresses became the standard which have slight variations as well to distinguish output types.</p>
 13866: <blockquote>
<p>why does bitcoin need to use different types of addresses for making the different types of transactions?</p>
</blockquote>
<p>I think a fundamental reason is that the recipient (payee) has to be involved in specifying how they want to be paid, they have to be involved in the choice of transaction type. The address is really nothing other than the way in which the payee communicates their needs to the payer. It has to contain a specification that is sufficient for the payer to construct a locking script that the payee has the means to unlock. The address is not used in the Bitcoin network at all.</p>
<blockquote>
<p>Is'nt it possible to generate different transactions having a transaction type configuration while using one address?</p>
</blockquote>
<p>It is, but the address would be insufficient for a payee to be paid properly when the payer might choose a new transaction type that the payee's software did not yet support. As a payee you'd have to specify not just an address but a list of acceptable payment types too. The address is a concept that was supposed to do the whole of that job.</p>
<p>Again, it is worth remembering that addresses don't exist anywhere in the Bitcoin network protocols and don't exist in the blockchain.</p>
