How bitcoin transaction fromat design can be explained? Can someone clarify?


Why is there bitcoin address in the transaction, when the bitcoin script already contains the pubkey hash?
Why isn't the amount a part of the script?
Why does bitcoin script allow to sign only parts of the transaction?
Why is there bitcoin address in the transaction, when the bitcoin script already contains the pubkey hash?


Contrary to popular belief, this is not true. Addresses are not part of transactions at all, nor are they part of the protocol. The address is only used to encode the pubkey hash or script hash which is then used to create the output script.


  Why isn't the amount a part of the script?


It does not need to be. The script is a program, it does not care about the amount.


  Why does bitcoin script allow to sign only parts of the transaction?


To allow for special transactions where only part of the transaction needs to be signed. This allows people to do things like anyone-can-pay transactions or for people to sign only for specific outputs created by the transaction.