user77103: As far as I know, LN requires the user to watch the blockchain in order to perform penalty in time. However, running full node is probably a heavy burden to some users, especially to mobile phones. I once heard that improved protocol for lightweight wallet (like Neutrino) can solve this problem, but I also heard that such lightweight wallet protocol still implies trusting the full node or server which provides service. Especially, a malicious full node can hide transactions from its clients, which seems to be a potential threat to lightweight LN wallets.

user3697: There is no substitute in terms of security and trust for running a full node.
There are different "lightweight client" concepts. Some of them are...
BIP37 (bloom filter):

[minus] With current used false-positive rates, peers may learn all wallet addresses
[minus] Usually done over an unencrypted channel (p2p 8333), ISPs, etc. learn also all your addresses
[plus] client can validate if the transaction(s) were in a block (merkleblock)
[plus] clients keep a blockchain with headers only can at least check PoW
[plus] uses only little bandwidth
[minus] Hiding back transactions are possible
[plus]"Impossible" to fake a transaction

Neutrino (Compact Block Filters BIP158):

[plus] fewer privacy implications then BIP37 since filtering happens locally
[minus] needs more resources (basic filters from the genesis block up to block 560000 require ~3.5GB space/bandwidth)
[minus] more bandwidth consumption because full blocks must be downloaded (rather then Merkle-"blocks" in BIP37)
[minus] Hiding back transactions are still possible (though more complicated) because the block filters are not committed to the blocks (would require a soft-fork). Not committed means, peers can fake filters and make you miss relevant transactions (can be [partially] mitigated by comparing filters from different peers)
[minus] No solution for mempool filtering (can't show "incoming transactions" reliable)
[plus] "Impossible" to fake a transaction

Centralized Validation (Bitpay, Samourai, etc.)

[minus] Full trust in the company/server (they know all your addresses)
[minus] Can hide back transactions
[minus] Can artificially create transactions
[plus] Minimal bandwidth consumption


Some application mix different approaches (like Electrum does Merkle-tree checks and keeps a headers-only-chain to mitigate the "can artificially create transactions" problem).
Conclusion
If you want to watch the blockchain without trusted third parties, you must run a full node (could be pruned though <10GB space requirement, but lightning implementations are not fully compatible yet).
If (and only if) BIP158 block filters get committed (though a soft fork, hash in blocks coinbase of similar), hiding transactions through peers, providing filters, would no longer be possible.
Recommended practical approach

Buy a tiny computer (Raspberry, Odroid, Pine64)
Buy a >500GB SSD (USB3 SSD, ~100USD in 2019)


NO,.. don't use your old HDD (your sync time will be 20 times slower).

Install Bitcoin Core (there are pre-build ARM64 binaries)
Run with a large -dbcache (if you have 2GB+ RAM)
Sync the chain
zzzZZZ (takes maybe a week)
enjoy being a real Bitcoiner (by avoiding all trusted third parties)


77103: <p>As far as I know, LN requires the user to watch the blockchain in order to perform penalty in time. However, running full node is probably a heavy burden to some users, especially to mobile phones. I once heard that improved protocol for lightweight wallet (like Neutrino) can solve this problem, but I also heard that such lightweight wallet protocol still implies trusting the full node or server which provides service. Especially, a malicious full node can hide transactions from its clients, which seems to be a potential threat to lightweight LN wallets.</p>
 3697: <p>There is <strong>no substitute</strong> in terms of security and trust for running a full node.</p>

<p>There are different "lightweight client" concepts. Some of them are...</p>

<h2>BIP37 (bloom filter):</h2>

<ul>
<li>[minus] With current used false-positive rates, peers may learn all wallet addresses</li>
<li>[minus] Usually done over an unencrypted channel (p2p 8333), ISPs, etc. learn also all your addresses</li>
<li>[plus] client can validate if the transaction(s) were in a block (merkleblock)</li>
<li>[plus] clients keep a blockchain with headers only can at least check PoW</li>
<li>[plus] uses only little bandwidth</li>
<li>[minus] Hiding back transactions are possible</li>
<li>[plus]"Impossible" to fake a transaction</li>
</ul>

<h2>Neutrino (Compact Block Filters BIP158):</h2>

<ul>
<li>[plus] fewer privacy implications then BIP37 since filtering happens locally</li>
<li>[minus] needs more resources (basic filters from the genesis block up to block 560000 require ~3.5GB space/bandwidth)</li>
<li>[minus] more bandwidth consumption because full blocks must be downloaded (rather then Merkle-"blocks" in BIP37)</li>
<li>[minus] Hiding back transactions are still possible (though more complicated) because the block filters are not committed to the blocks (would require a soft-fork). Not committed means, peers can fake filters and make you miss relevant transactions (can be [partially] mitigated by comparing filters from different peers)</li>
<li>[minus] No solution for mempool filtering (can't show "incoming transactions" reliable)</li>
<li>[plus] "Impossible" to fake a transaction</li>
</ul>

<h2>Centralized Validation (Bitpay, Samourai, etc.)</h2>

<ul>
<li>[minus] Full trust in the company/server (they know all your addresses)</li>
<li>[minus] Can hide back transactions</li>
<li>[minus] <strong>Can artificially create transactions</strong></li>
<li>[plus] Minimal bandwidth consumption</li>
</ul>

<hr>

<p><strong>Some application</strong> mix different approaches (like Electrum does Merkle-tree checks and keeps a headers-only-chain to mitigate the "<strong>can artificially create transactions</strong>" problem).</p>

<h1>Conclusion</h1>

<p>If you want to watch the blockchain without trusted third parties, you <strong>must run a full node</strong> (could be pruned though &lt;10GB space requirement, but lightning implementations are not fully compatible yet).</p>

<p>If (and only if) <strong>BIP158</strong> block filters get <strong>committed</strong> (though a soft fork, hash in blocks coinbase of similar), hiding transactions through peers, providing filters, would no longer be possible.</p>

<h1>Recommended practical approach</h1>

<ul>
<li>Buy a tiny computer (Raspberry, Odroid, Pine64)</li>
<li>Buy a >500GB SSD (<strong>USB3</strong> SSD, ~100USD in 2019)

<ul>
<li>NO,.. don't use your old HDD (your sync time will be 20 times slower).</li>
</ul></li>
<li>Install Bitcoin Core (there are pre-build ARM64 binaries)</li>
<li>Run with a large <code>-dbcache</code> (if you have 2GB+ RAM)</li>
<li>Sync the chain</li>
<li>zzzZZZ (takes maybe a week)</li>
<li><strong>enjoy being a real Bitcoiner (by avoiding all trusted third parties)</strong></li>
</ul>
