作者文章归档:wj

2023-3-1区块链与数字孪生怎么结合


DT+区块链+访问控制+数字证书的想法

大多数传统的访问控制机制都容易受到网络安全攻击。

然而,区块链消除了数据未经授权访问的篡改的风险。

基于区块链的访问控制以分布式方式管理所有DT信息,即DT的策略和规则,其中所有DTs都可以自主行动。

此外,基于区块链的访问控制通过位于每个 DT 上的安全套接字层证书增强安全性,其中证书数据在区块链上进行管理

另一方面,DT 通常通过基于物联网的技术协调与其物理对象的通信。 这种协调/通信数据容易受到安全威胁,可以通过区块链进行补偿。 (区块链+访问控制)

DT 安全数据共享

DT 生命周期中涉及的不同参与者可能会为 DT 提供信息或需要收集 DT 管

Read more

比特币原理及其代码实践3-本地存储


比特币如何存储数据

比特币使用 LevelDB来存储数据,这是一个本地存储的高效的key-value的数据库

Bitcoin Core 使用两个 “空间” 来存储数据:

  1. 其中一个 “空间”是 blocks,它存储了描述一条链中所有块的元数据(区块数据,最新的区块hash等)
  2. 另一个 “空间”是 chainstate,存储了一条链的状态,也就是当前所有的未花费的交易输出,和一些元数据

blocks 中,key -> value 为:

key value
b + 32 字节的 block hash block index record
f + 4 字节的 file

Read more

比特币原理及其代码实践4-交易(1)


交易(transaction)是比特币的核心所在。

在区块链中,交易一旦被创建,就没有任何人能够再去修改或是删除它。

比特币采用的是 UTXO 模型,并非账户模型,并不直接存在“余额”这个概念

余额需要通过遍历整个交易历史得来

比特币交易

Bitcoin - BTC Price, Live Chart, and News | Blockchain.com

我们可以在上面网站查看比特币的区块中的交易

那么大家可以想一想,在每一笔交易中,txin都会指向之前的某一比交易txout

在之前的交易中,txout的转账又来自txin

如此循环下去,是不是这比钱会有一个源头

这个源头就是coinbas

Read more

比特币原理及其代码实践2-工作量证明


工作量证明(proof-of-work)

哈希计算

获得指定数据的一个哈希值的过程,就叫做哈希计算。一个哈希,就是对所计算数据的一个唯一表示。对于一个哈希函数,输入任意大小的数据,它会输出一个固定大小的哈希值。下面是哈希的几个关键特性:

  1. 无法从一个哈希值恢复原始数据。也就是说,哈希并不是加密。
  2. 对于特定的数据,只能有一个哈希,并且这个哈希是唯一的。
  3. 即使是仅仅改变输入数据中的一个字节,也会导致输出一个完全不同的哈希。

Hashcash

比特币使用 Hashcash ,它可以被分解为以下步骤:

  1. 取一些公开的数据(在比特币中,它是区块头)
  2. 给这个公开数据添加一个计数器。计数器默认从 0 开始

Read more

比特币原理及其代码实践1-区块链数据结构


比特币原理及其代码实践1-区块链数据结构

Jeiwan/blockchain_go: A simplified blockchain implementation in Golang (github.com)

https://gitee.com/Oracion/go-blockchain-learning

引言:

区块链本质只是一个分布式数据库而已。

区块链具有去中心化(全节点保留所有区块)匿名(address(公私所生成的)和我本人没了联系)可追溯(UTXO)不可更改(merkleTree)的特点

那么这些特点是如何实现的呢??

如果从原理代码的角度,相信大家可以更好的理解这些特点。

Read more