user41513: Can we compare Bitcoin script and Ethereum smart contract ? 
And if yes, 
What are differences/similarities of Bitcoin script and Ethereum smart contract in sense of functionality, architecture and how to interact with blockchain? 
Does Bitcoin script run on-chain (similar to Ethereum smart contracts) or they run off-chain? 

user60443: As they say, Ethereum is Turing complete, Bitcoin script is intentionally not Turing complete. 
Ethereum has a virtual machine with a set of opcodes. Bitcoin script is defined by different opcodes, defined in src/script/script.h. There are good descriptions of the opcodes at https://en.bitcoin.it/wiki/Script.
Differences include: 

Ethereum charges for each operation: https://github.com/djrtwo/evm-opcode-gas-costs to account for differences in computation difficulty.  
Bitcoin scripts are limited to a certain complexity (e.g. num of sigops) to prevent DoS attacks.

Similarities include: 

Contracts live on the blockchain. In an Ethereum-specific binary format (EVM bytecode), and in Bitcoin as Bitcoin Script.


Does Bitcoin script run on-chain (similar to Ethereum smart contracts)
  or they run off-chain?

Yes. Script can be stored in 3 places in a transaction: witness, scriptSig and scriptPubkey. These transactions are stored in blocks on the blockchain, and are run by nodes validating them.

41513: <p>Can we compare <code>Bitcoin script</code> and <code>Ethereum smart contract</code> ? </p>

<p>And if yes, </p>

<p>What are <strong>differences/similarities</strong> of Bitcoin script and Ethereum smart contract in sense of functionality, architecture and how to interact with blockchain? </p>

<p>Does Bitcoin script run <strong>on-chain</strong> (similar to Ethereum smart contracts) or they run <strong>off-chain</strong>? </p>
 60443: <p>As they say, Ethereum is Turing complete, Bitcoin script is intentionally not Turing complete. </p>

<p>Ethereum has a <a href="http://ethdocs.org/en/latest/introduction/what-is-ethereum.html#ethereum-virtual-machine" rel="nofollow noreferrer">virtual machine</a> with a set of opcodes. Bitcoin script is defined by different opcodes, defined in <a href="https://github.com/bitcoin/bitcoin/blob/master/src/script/script.h#L48" rel="nofollow noreferrer"><code>src/script/script.h</code></a>. There are good descriptions of the opcodes at <a href="https://en.bitcoin.it/wiki/Script" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Script</a>.</p>

<p><strong>Differences include:</strong>  </p>

<ul>
<li>Ethereum charges for each operation: <a href="https://github.com/djrtwo/evm-opcode-gas-costs" rel="nofollow noreferrer">https://github.com/djrtwo/evm-opcode-gas-costs</a> to account for differences in computation difficulty.  </li>
<li>Bitcoin scripts are limited to a certain complexity (e.g. num of sigops) to prevent DoS attacks.</li>
</ul>

<p><strong>Similarities include:</strong>  </p>

<ul>
<li>Contracts live on the blockchain. In an Ethereum-specific binary format (EVM bytecode), and in Bitcoin as Bitcoin Script.</li>
</ul>

<blockquote>
  <p>Does Bitcoin script run on-chain (similar to Ethereum smart contracts)
  or they run off-chain?</p>
</blockquote>

<p>Yes. Script can be stored in 3 places in a transaction: <code>witness</code>, <code>scriptSig</code> and <code>scriptPubkey</code>. These transactions are stored in blocks on the blockchain, and are run by nodes validating them.</p>
