diff --git a/cli/README.md b/cli/README.md new file mode 100644 index 00000000..8ffdd313 --- /dev/null +++ b/cli/README.md @@ -0,0 +1,32 @@ +# Day 2 Assignment (By Cli) + +#### 区块链: +区块链是一个公开的数据列表,是一连串的交易记录,其中的每一份记录被称作一个区块。这些区块像链条一样连成一串,越来越长。每一个区块之间通过哈希算法连接起来。区块的生成是有时间顺序的,在每一个新区块的数据结构中,有一个固定的位置用来存放上一个区块的哈希值。而这个新区块也要整体求一个哈希值,存入下一个区块。区块链本质上是一个分布式的共享账本。它是一个多方参与、共同维护、不可篡改的数据库系统。 + +#### 区块头: +区块头包含前一个区块的哈希值,本区块的哈希值,本区快的nonce,本区块一系列交易形成的Merkle root, 还有时间戳。 + +#### 哈希算法: +哈希算法是一种密码学算法,哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息经过哈希运算转化为固定长度的输出值,并且是不可逆的。 + +#### 哈希值: +原始数据经过哈希算法加工以后得到的数据是哈希值。哈希值在消息传输过程中提供了一种错误检测能力,改变消息中任何一个比特都会使哈希值发生改变。 + +#### nonce值: +Nonce是一个没有任何实际含义的数字,不过它在工作量证明和挖矿中非常重要,nonce是工作量证明的核心。区块链工作量证明的任务是不断改变nonce值,直到碰巧遇到一个nonce,让整个区块的哈希值具有特定格式,一旦找到合格的nonce,这个nonce的把这个候选区块广播到全网,交由其他节点审核,如果一切都合格,这个节点就会对候选区块表示支持。支持的方式是将这个区块的哈希值放入下一代候选区块中。 + +#### 区块体: +包含整个区块的一些列交易,通过Merkle Tree运算得到Merkle root来进行记录。 + +#### Merkle root: +Merkle Trees 是使用哈希指针的二叉树。它的结构中所有的数据块被两两分组,每两个数据块的哈希指针被存入这两个数据块的父节点中,两个父节点的哈希指针又被存入他们的父节点中。以此类推,一直到Merkle tree的根节点。 + +##### 去中心化: +区块链本质是一份公开的流水账,记载着每个节点过往的交易历史,公开程度堪比居委会的“公开栏”。它存在每个节点里。如果某个用户想进行一笔交易,他必须把交易的细节公布出来,这个公布的过程叫广播。收到广播的每个节点都要对交易申请进行审核投票,然后根据投票结果修改公共账本。 + +#### 不可篡改性 +如果想篡改一个区块,它的哈希值也会变化,这就意味着它的下一个区块也需要修改,否则就对不上号。以此类推,后面所有新生成的区块都要修改。工作量非常大,基本上不太可能。 + +#### 可追溯性 +在分布式账本中,每一笔交易都会被记录下来,所以具有绝对的可追溯性。 + diff --git a/index.html b/index.html index 27a1740d..cd0d4bf8 100755 --- a/index.html +++ b/index.html @@ -76,6 +76,7 @@

读者来稿

+

尝试改一下2025年10月20日

第一次PR,2022.09.27

第一次PR,留作纪念2022.9.20

有这种实践的机会还是非常适合我这种小白的。2022.9.18 16:26.