剑英的区块链学习手记(一)

开篇布拉拉

因为参与了小蚁的c#智能合约编译器的开发,让我第一次近距离接触到区块链技术。

以前我对区块链技术的了解,只知道有一种叫做比特币的玩意儿,以前有同事在几百块一个比特币的时候屯了一批,后来价格炒高了,一下子成了人生赢家。

 

完全外行的了解,但是这个例子让我有了一个原始的理解,这玩意儿和钱有关系。

后来有幸获得小蚁核心开发者张铮文的面授,讲了些啥没记住,就记住了他掏出钱包的帅气身姿。

 

 

 

这给我留下了更深的印象,区块链技术,谈的就是钱。

 

铮文对区块链的定义是状态机,去中心化的分布式的状态机。

虽然做过很多年coding工作,还是表示一脸懵逼

 

默念三遍

去中心化的分布式的状态机

去中心化的分布式的状态机

去中心化的分布式的状态机

。。。

然后我去查了些资料,做了些功课。

 

。。。。。。

求说人话,你们真的不是合伙弄出一些高端大气的词儿来打击小白的智商的么。

 

小白解释区块链

首先经过我仔细的研究与论证,得出一个100%正确的定义,区块链是数据库

无论从功能还是结果,用高大上的方法解释,还是用直觉化的表达,所有的资料都显示

结论1.区块链,就是数据库。

 

然后进入说文解字环节

区块链,就是区块的链

 

你们打我我也要说,区块链,就是区块的链

结论2.区块链是按区块存储,只能往后加,串成一个链的数据库

 

当然仅仅一个数据库是没办法创造比特币这样神奇的东西的。

区块链还有两个重要的特点,一个是去中心化,一个是分布式

 

铮文说:去中心化的分布式的状态机

 

别打了,好像又绕回去专业解释了。放心,我还会用我小白的视角来解释。

去中心化这个太专业了,让我们换个词,叛逆。传统的货币通常都是由国家信用背书,各种金融机构管理。转个帐啥的不都得去银行么?

比特币是一场革命,他就是要反抗国家对货币的管制,你看现在那么多国家对比特币的态度那么抵触,就懂了。革命了,人家还不镇压你呀。

中心化,办啥业务找政府找银行,去中心化,咱们建个p2p网络,互相就把你国家政府的业务办了。首先就偷税漏税了呀,哦不,降低了成本。

对叛逆精神强烈的极客一族,去中心化,叛逆是关键。

对白送一个鸡蛋咱们就要星期天一大早去超市排队的小市民,去中心化,偷税是关键,哦不,实惠是关键。

当然这也造就了比特币目前大量被用于洗黑钱。话说回来,过去中立的瑞士银行也是洗钱的好地方呀。所以被用于洗黑钱的关键因素是中立,而不是因为去中心化。

假如马云爸爸要是让支付宝中立,不接受任何公安机关的审查,支付宝也能洗黑钱呀,当然马云爸爸是坚决拥护政府的。我也坚决拥护政府。

结论3,区块链技术的一大特点是中立。

 

区块链技术还有一个特点是分布式,咱不是叛逆么,不喜欢一个大政府。无政府主义,那失去了中心服务器,就必须p2p了呀。如果只是这样,就不用谈什么分布式了。

因为这个数据库上记录的是一笔笔交易,数据安全非常重要,那都是钱啊。于是结合分布式设计出来一个只要好人比坏人多,数据就没法作假的机制。拿小蚁当例子,铮文说黑客想做假,至少得攻下1/3 的 小蚁记账节点。

1/3 是一个非常坚强的数字,比特币系统能稳定运转到现在,多少人盯着比特币呢,也没给他整崩溃了,侧面证明了这套机制非常坚强。

结论4,区块链技术的另一大特点是坚强。

 

总结

小白认为区块链是一种数据库,只能增加,中立坚强,难以篡改,难以攻破。

至于有哪些必要的技术特征,那就让高手去解释吧。 

下次就开始动手用小蚁客户端做点什么吧。 

附小蚁客户端下载地址

https://github.com/AntShares/AntSharesCore/releases

原文地址:http://www.cnblogs.com/crazylights/p/6819136.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++比较两个字符串是否完全相同

在写程序的过程中&#xff0c;经常会遇到要比较两个字符串是否相等的情况。如果要比较的对象是char字符串&#xff0c;则利用 int strcmp(const char s1,const char* s2) 当s1 < s2时&#xff0c;返回为负数&#xff1b; 当s1 s2时&#xff0c;返回值 0&#xff1b; 当s1 &…

跟我学 Java 8 新特性之 Stream 流(五)映射

转载自 跟我学 Java 8 新特性之 Stream 流&#xff08;五&#xff09;映射 经过了前面四篇文章的学习&#xff0c;相信大家对Stream流已经是相当的熟悉了&#xff0c;同时也掌握了一些高级功能了&#xff0c;如果你之前有阅读过集合框架的基石 Collection 接口&#xff0c;是…

JS中DOM节点的CRUD

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">window.onload function(){//获取body标签//var body document.getElementsByTagName("body")[…

深入.net框架

一、.net框架&#xff1a; 1.基础框架 2.运行环境 3.强大的类库 二、.net的两个重要组件 1.CLR&#xff1a;公共语言运行时 2.框架类库 三、CLR里面包含&#xff1a; 1.CLS&#xff1a;公共语言规范&#xff0c;包括了几种面向对象的编程语言的通用功能 2.CTS&#xff1a;通用系…

.NET Core 2.0体验

.NET Core 2.0预览版及.NET Standard 2.0 Preview 这个月也就要发布了。具体相关信息可以查看之前的文章.NET Core 2.0及.NET Standard 2.0。 今天来实际体验.NET Core 2.0&#xff0c;正式版发布还需要一段时间。 .NET Core 2.0 本文使用的是 nightly .NET Core 2.0 runtim…

跟我学 Java 8 新特性之 Stream 流(四)并行流

转载自 跟我学 Java 8 新特性之 Stream 流&#xff08;四&#xff09;并行流 随着对流API认识的慢慢深入&#xff0c;本章我们要讨论的知识点是流API里面的并行流了。 在开始讨论并行流之前&#xff0c;我先引发一下大家的思考&#xff0c;就你看到这篇文章的时间&#xff…

运算和统计

一、变量&#xff1a; 1.是一种内容不固定的项&#xff0c;数据内容会因程序的运行而改变。 2.将变量存在计算机内存中&#xff0c;便于程序调用 3.变量有变量类型、变量名和值。 二、变量的类型&#xff1a; 1.字符串类型&#xff1a;存储姓名&#xff0c;性别&#xff0c;一句…

JS浏览器加载一个页面的过程

加载过程->从上向下逐行进行加载 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">/** 浏览器在加载一个页面时&#xff0c;是按照自上向下的顺序加载的&…

MyBatis第四天(多表查询)

地址&#xff1a;引用MyBatis第四天&#xff08;多表查询&#xff09;

统一的.NET文档体验发布

Microsoft发布了新的.NET API阅读器。该阅读器可以查找所有相关的.NET文档。第一版中包括了.NET Framework、.NET Core、.NET Standard、Xamarin和Azure NuGet软件包的参考文档&#xff0c;并可根据用户反馈添加其它领域的文档。 该阅读器提供了在同一处搜索、展示、发现和浏览…

深入C#数据类型

一、类&#xff1a; 一组相同属性和方法的对象的集合 二、对象&#xff1a; 用来描述客观事物的实体 三、类和对象的关系&#xff1a; 抽象和具体的关系 四、封装&#xff1a; 隐藏内部细节&#xff0c;对外提供公共的接口&#xff0c;又称为信息隐藏。 五、封装的好处&#xf…

跟我学 Java 8 新特性之 Stream 流(三)缩减操作

转载自 跟我学 Java 8 新特性之 Stream 流&#xff08;三&#xff09;缩减操作 和前面两篇文章一起服用&#xff0c;效果会更佳。通过对流API的基础体验Demo和关键知识点的讲解&#xff0c;相信大家对流API都有一定的认识了&#xff0c;但是流API强大的功能&#xff0c;可不…

JS中字符串的常用方法

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">//创建一个字符串var str "Hello Atguigu";/** 在底层字符串是以字符数组的形式保存的* ["…

使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用

最近我为我自己的应用开发框架Apworks设计了一套案例应用程序&#xff0c;并以Apache 2.0开源&#xff0c;开源地址是&#xff1a;https://github.com/daxnet/apworks-examples&#xff0c;目的是为了让大家更为方便地学习和使用.NET Core、最新的前端开发框架Angular&#xff…

C#使用集合组织相关数据

一、为什么使用集合&#xff1f; 数组的长度是固定的&#xff0c;对数组中的元素进行动态添加和删除的时候很麻烦。集合可以更好的进行对元素添加和删除 二、ArrayList集合&#xff1a; 1.类似于数组&#xff0c;但是可以直观的动态维护。 2.位于System.Collections命名空间里面…

IntelliJ IDEA 最常用配置详细图解,新手入门必看

转载自 IntelliJ IDEA 最常用配置详细图解&#xff0c;新手入门必看 刚刚使用IntelliJ IDEA 编辑器的时候&#xff0c;会有很多设置&#xff0c;会方便以后的开发&#xff0c;磨刀不误砍柴工。 比如&#xff1a;设置文件字体大小&#xff0c;代码自动完成提示&#xff0c;版…

MyBatis(延迟加载 缓存)

mybatis目录 一对一延迟加载 1.在SqlMapConfig.xml中配置setting标签 2.在IAccoutDao.xml中配置association标签 3.测试类 4.成功运行 一对多延迟加载 2.在IUserDao.xml中配置collection标签 缓存 一级缓存 二级缓存 1.SqlMaoConfig.xml中 2.在需要使用二级缓存的实体类的mapp…

JS函数中的arguments

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">/** 在调用函数时&#xff0c;浏览器每次都会传递进两个隐含的参数&#xff1a;* 1.函数的上下文对象 this…

剑英的区块链学习手记(二)

孙子说&#xff0c;知己知彼&#xff0c;百战不殆。 咱是通过小蚁学习区块链技术的。 开工之前&#xff0c;先了解一下小蚁的资料家族。 小蚁网站 https://www.antshares.org/ 小蚁源码 https://github.com/AntShares 小蚁SDK源码 https://github.com/ANTSHARESSdk 比较集…

PhotoShop基础知识

一、PhotoShop&#xff1a; 1.是由Adobe Systems开发和发行的专门用于图形图像处理的软件 2.优点&#xff1a;绘制或者处理后的图像&#xff0c;颜色鲜明、形象生动&#xff0c;能够给观者很好的视觉效果。 二、PhotoShop软件应用领域&#xff1a; 1.在平面设计中的应用 2.在插…