在比特币中交易和区块加密如何实现?

比特币区块不以任何方式加密:每个区块是公共的。 防止修改和保护数据完整性是一个称为区块哈希的值。 使用特殊的散列函数处理区块内容—在比特币中,是 SHA256—且结果值包含在区块链中。

解释为什么区块链需要代币来运转。

货币/代币用于实现状态间的变化。当有人进行交易时,是状态的变化,货币从一个地址转移到另一个地址。 除此之外,交易可以包含额外的数据,且状态的变化用于改变数据—在定义的不可变区块链上执行此操作的唯一方式。 从技术上来说,区块链对于其基本操作不需要货币,但没有它们的话,则需要引入其它方式来管理链状态和验证交易。

在 P2P 网络中节点发现是如何工作的?

当一个新节点启动时,它不知道关于网络的任何信息,因为没有中心服务器。 通常开发者提供一个直接写入代码的可信任的节点列表,用于初始化节点发现。

验证程序如何检查区块是否有效?

网络上的每个全(完整)节点进行区块验证。 当一个新区块被通告时,接收它的每个节点都会进行一系列的检查。 两个最重要的检查是工作量证明(区块是否提供足以包含进区块链的工作量)和全部交易的有效性(每笔交易都必须有效)。

什么是脚本公钥(scriptPubKey)?解释如何使用 P2SH 地址。

脚本公钥(scriptPubKey)是所谓的“锁定脚本”。 可在交易输出中找到它,是用于花费输出必须满足的条件。

P2SH 是特殊类型的地址,其中复杂的锁定脚本被其哈希值替换。 当稍后呈现尝试花费输出的交易时,除了解锁脚本,还必须包含匹配哈希值的脚本。

使用脚本,写一个赎回脚本,允许用户只有当其知道魔数 1234567 时花费输出。

OP_EQUALVERIFY
scriptPubKey: 1234567 OP_EQUALVERIFY
scriptSig: 1234567

使用脚本,写一个赎回脚本,允许任何人在其至少 30 天后花费输出。

scriptPubKey: "30d" OP_CHECKSEQUENCEVERIFY OP_VERIFY
scriptSig: empty

什么是陷门函数,为什么在区块链开发中需要它?

陷门(又称后门)函数是一种在一个方向上容易计算但在相反方向上难以计算的函数,除非你有特殊信息(陷门)。 陷门函数对于公钥加密是至关重要的—这就是为什么它们通常用于区块链开发来展现地址和私钥的思想。

什么是挖矿?

挖矿是在区块链网络中达成共识的过程。挖矿有两个目的。 首先,它在生成的区块中产生新货币。 其次,它通过向网络提供工作量证明来包含交易到分布式账本中; 也就是说,证明生成的区块是有效的。

什么是链分叉?

分类账本中的区块以一种方式包含在构建的最长的链上,即具有最大累积难度的链。 分叉是这样一种情况,有两个候选区块竞争形成最长的区块链,且两个矿工在短时间内发现工作量证明问题的解决方案。 然后划分网络,因为一些节点从矿工 #1 获得区块,另一些从矿工 #2 获得。

分叉通常在一个区块中被解决,因为这种情况再次发生的可能性随着下一个区块的出现变得非常低, 所以很快就会有一个最新最长的链被当作主链。

(注意:这种类型的分叉与硬分叉不同,硬分叉是一些开发者决定对区块链协议创建向后不兼容的更改,导致两个永远不同的区块链。)

参考链接