2021年618京享红包 - 618大促主会场
九阳 Joyoung电磁炉 电陶炉 2200W大功率 家用火锅套装 旋转控温 红外光波加热 H22-x3 赠烤盘
凯迪仕电子锁618狂欢购
有健康 更热爱
美丽雅品牌会员周

区块链之以太网初学2

杜冷丁 1年前   阅读数 82 0

社区上一些文章的内容提要:

WEB 3.0(非技术版)
原文链接:https://ethfans.org/wikis/WEB-3.0(非技术版)
后斯诺登时代的网络有四个组成部分:静态内容发布、动态消息、无需信任的交易和一个完整的用户界面。
有两个系统已经实现了大部分的必须功能:Freenet和BitTorrent
具体来说:
1、拥有去中心化的加密信息发布系统
2、是一个基于身份的、匿名的底层消息系统。它被用于通信,无论是两个人之间的私人通信,还是一个人对多个人的“广播”。
3、共识引擎。共识引擎是就某些交互规则达成一致意见的手段,未来的交互将自动和准确无误地按照事先的约定执行。它是一个高效的无所不包的社会合约,从共识的网络效应中获得力量。
4、将以上三个部分组成一体的技术–“浏览器”和用户界面。非常有趣的是,它看起来非常类似于我们已经熟悉和喜爱的浏览器界面。它将会有一个地址栏(URI bar)、后退按键,当然大部分的界面空间将被用于展示DApp(分布式应用)。

了解区块链基本原理,Part-1:拜占庭容错
原文链接:https://ethfans.org/posts/understanding-blockchain-fundamentals-part-1-byzantine-fault-tolerance

每当一笔新交易在网络中广播出来,节点有权选择将该交易纳入其持有的账本副本之中,或者将其忽略。当网络中的大部分参与者选定某一状态之时,就能达成共识。
分布式计算和多智能体系统的一个基本问题是如何在一些错误流程存在的情况下实现总体系统的可靠性。这通常需要各个流程就计算中所需的某些数据值达成一致意见。
这些过程被称为共识。

两军问题(Two Generals’ Problem):无数次重传ACK(acknowledge),永远无法达成共识,两位将军永远不可能在100%的信任下达成共识。这个问题是无解的。

拜占庭将军问题: 指挥官-副官。达成共识的算法依据的是由副官观察到的大多数成员决定的值。原理:取任意值m,如果将军人数为3m以上,叛徒的人数不超过m,算法OM(m)则达成共识。
–> 拜占庭容错

区块链基础:散列法 (Hashing)
原文链接:https://ethfans.org/posts/Blockchain-Underpinnings-Hashing
区块链上的地址,是由散列法运算公钥而得到的:一个以太坊的账户地址,是以Keccak-256(开发者应该阅读下它与SHA3-256的关键区别)散列法运算一个公钥而得出的;而一个比特币地址,则是通过SHA2–256RIPEMD160来散列法运算一个公钥而得出的。

签名也是区块链的基本组成部分。类似于签署一张支票,加密签名决定哪些交易是有效的。签名是由私钥和需要被签名的数据散列而生成的。

交易散列在区块链中是非常明显的。比方说描述一笔交易:“Alice在D日T时,向Bob发送了X单位的货币”,那么交易就会被提交为他们的散列,例如5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 是以太坊区块链中的一笔交易。交易散列也是更为直接可用的,例如“在1337个区块中的第1024笔交易”这样的描述,你只需要复制这个散列,并粘贴到一个区块链浏览器中,然后就可以查看这笔交易的细节。

形而上学地讲,区块链中的区块是由它们的散列来确定的,其充当了鉴别和完整验证的双重角色。一个识别字符串还会提供它自有的完整性,被称为自认证标识符。

对于使用挖矿机制的区块链来说,工作量证明(Proof-of-Work)就是一个数字,我们称它为随机数(nonce),当它和其他散列过的数据进行合并时,会产生一个比规定目标值更小的值。挖矿使得散列法成为一种快速运算、单向不可逆的算法。找到一个有效的随机数需要时间,因为(矿工)没有可用的线索来帮助它们找到一个足够小的散列,而唯一找到一个小于目标值的方法,就是计算很多的散列:在比特币中,目前存在了超过10^25(10 septillion)数量级的散列。当一个(nonce)随机数被找到时,验证它的时间就需要1秒,然后这个新区块会在网络中广播,形成最新的共识和区块链。

在区块链上的存储数据是永久性的,但把大量的数据存储在区块链上则是不明智的,一般是将固定大小的数据代表 (数据的散列)放在区块链上。

实际的应用——时间戳服务。假设你想要证明一张当前存在的图片,保证在未来时它不是编造出来的。你可以将图片的散列存储在区块链上,一年以后,当法官问起这张图片是否在一年前真实存在时,你可以提供这个图片,然后法官就可以散列运算这张图片,并与你存储在区块链上的散列进行对比。
以后再看 梅克尔树(Merkle tree)
在区块链中,散列是作为区块、交易和地址的标识符。
安全与隐私。展示在区块链上的仅仅是散列本身而已。具体的细节只有相关的人员才可以看到。 比如:车辆登记处可以将汽车数据散列(照片,VIN, 车牌)存储在区块链上,只有车辆所有者,保险公司以及政府会知道这个车辆的实际细节。

关于 UTXO 的思考(这篇还是直接看原文比较好,原文讲得很细,有很多对于可行性和未来发展的思考)
原文地址:https://ethfans.org/posts/thoughts-on-utxo

以下是涉及到的一些加密算法,特地摘了出来,可以另外了解一下:
在本文作者看来,如果隐私是被强烈偏好的,那么由 UTXO 提供的资金分离对于这个任务来说是远远不够的;这将需要更复杂的建构如环签名(Ring Signatures),额外的同态加密(Homomorphic Value Encryption)以及 ZK-SNARKs。

什么是加密经济学? 初学者终极指南
原文链接:https://ethfans.org/posts/what-is-cryptoeconomics-beginners-guide
区块链技术是运行在加密经济学(Cryptoeconomics)理论基础之上的。
区块链并非是首个使用“去中心化的点对点系统”的技术,洪流网站(torrent sites)在文件共享上对此技术的使用由来已久。然而,从某种意义上来说,这是一次失败的应用。,因为缺少经济激励机制,还让用户本身有所损失(占空间)。
比特币的属性:
1、它是基于区块链技术而产生的货币。其中,每个区块都包含前一个区块的哈希值,从而形成一条连续链。
2、每个区块都包含多笔交易。
3、 新产生的交易会使所有区块的特定状态得以更新。例如,如果A有50个比特币,且想把其中的20个比特币发送给B,那么在新的状态下就会显示:A只剩下30个比特币,而B拥有20个新的比特币。
4、区块链必须是不可变的。只可能新增区块,而不可篡改旧的区块。
5、仅允许有效交易。
6、区块链应当是可下载的,任何人在任何地点都可以轻松接入并查询某笔特定的交易。
7、如果支付了足够高的交易费用,则交易可以被快速添加至区块链上。
密码学知识:

  • 哈希算法
  • 签名
  • 工作量证明
  • 零知识证明

哈希算法的应用:加密哈希函数、数据结构(链表和哈希指针、梅克尔树-查询方便)、挖矿
Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。
这里有个博客可以参考一下,学习 Merkle Tree , 觉得写得好好:https://blog.csdn.net/wo541075754/article/details/54632929
下一篇 《Merkle Patricia Tree 详解》也可以作为参考 https://ethfans.org/posts/merkle-patricia-tree-in-detail

加密货币的应用:现在,假设Alan正在发送一笔交易“m”给Tyrone。首先,他要用哈希函数对该交易进行哈希,然后使用私钥对其加密。Tyrone知道他正在收到一笔交易“m”,因此他能用Alan的公钥对其解密,并将解密后得到的哈希结果与他已有的交易“m”的哈希结果进行比对。由于哈希函数具有确定性,并且对于同样的输入总是给出相同的输出,那Tyrone可以直接确定,Alan确实发送了同一笔交易,且其中没有任何作恶。

更简单地来说:
Alan有一笔交易“m”,并且Tyrone知道他正在接收该笔交易。
Alan对m进行哈希运算,得到h(m)。
Alan用自己的私钥对哈希结果进行加密,得到Ka-(h(m))。
Alan将加密数据发送给Tyrone。
Tyrone使用Alan的公钥来解密,Ka+(Ka-(h(m))),并得到原来的哈希结果h(m)。
Tyrone用已知的“m”进行哈希运算,可以得到h(m)。
哈希函数的确定性特征决定了如果h(m)=h(m),就意味着这笔交易是真实有效的。

零知识证明(Zero Knowledge Proof, ZKP)ZKP意味着A可以向B证明,他知道特定的信息,而不必告诉对方自己具体知道些什么。

完整性:如果陈述属实,那么诚实的验证者能被诚实的证明者说服。
可靠性:如果证明者不诚实,他们无法通过说谎来说服验证者相信陈述是可靠的。
零知识:如果陈述属实,那么验证者无法得知陈述的内容是什么。

Zk-Snarks是“零知识简洁无交互知识认证”的简称,是一种在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。可用来生成一个证明,通过对每笔交易创建一个简单的快照来验证其有效性。这足以向信息接收方证明交易的有效性,而无需泄露交易的实质内容。

实现了交易的完整性和隐私性,实现了系统的抽象性

博弈论:本质上是对战略决策的研究。其核心是做对自己最有利的决策,并记住对手的决策。博弈论中一个最基本的概念是:“纳什均衡”。


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: