以太坊为什么会有 gas 系统?
根据官方文档: Gas One important aspect of the way the EVM works is that every single operation that is executed inside the EVM is actually simultaneously executed by every full node. This is a necessary component of the Ethereum 1.0 consensus model, and has the benefit that any contract on the EVM can call any other contract at almost zero cost, but also has the drawback that computational steps on the EVM are very expensive. Roughly, a good heuristic to use is that you will not be able to do anyth...
《以太坊到底是如何工作》读书笔记
《以太坊到底是如何工作》 以太坊的简单定义 transactional singleton machine with shared-state 事务性状态共享的单例机器 实际上就是逻辑上唯一,但物理上由多个节点维护的共识中的 world computer。这台机器的状态是由事务变迁驱动的: 幽灵协议 “GHOST” = “Greedy Heaviest Observed Subtree” 简而言之,就是只在拥有最大计算量的路径上进行计算(这个协议是从比特币那里来的吗?)。 账户与事务 外部账户由私钥控制,内部账户由代码控制。 外部账户可以主动发起事务,内部账户只有收到事务以后才能发起内部事务。 账户的状态构成 一个账户的状态总是由四个组件构成: nonce:如果这是个外部账户,则这个数字代表了这个账户地址发出的事务数。如果这是个合约账户,则这个数字代表了这个账户创造的合约数量。这两种情况下,nonce 都不是随机数。 balance:这个地址拥有的 Wei 数量。一个以太币有个 1e+18 Wei。 storageRoot:默认为空。Merkle Patricia 树的根。...
IOTA
IOTA 简介 IOTA 是下一代(第三代)加密货币,只做货币,不做其他用途的链(?)。专注于解决机器与机器(M2M)之间的交易问题。通过实现机器与机器间无交易费的支付来构建未来机器经济(machine economy)的蓝图,即物联网 + 数字货币的经济生态。物联网天然就有分布式特性,很适合搞区块链。 德国团队创立,由德国政府资助的一个中心化的研究去中心化下一代加密货币的项目。团队成员的上一个作品是第一代 POS 货币未来币(NXT)。 IOTA 的发行量极大,IOTA总供应量为(3 ^ 33-1)/ 2 或2,779,530,283,277,761个。所有IOTA都是在初始块创建的,总数不变,也不用开采。IOTA初上市的时候只募集到五十万美金,所以早期投资者的投资回报极高。有意思的是,因为 IOTA 基金会是非盈利组织,他们甚至没有锁定货币,所以他们持有的百分之五的 IOTA 代币,还是其他投资者捐献给基金会用以维持基金会运行的。 IOTA 的优势是,免手续费且使用平行验证而提高了性能,胜过了手续费高而清算速度缓慢的比特币。但因为它的安全模型弱于比特币,所以没有在普通交易场景...
闪电网络、侧链、隔离见证与大区块扩容问题
闪电网络 闪电网络的原理 闪电网络就是在链外专门设置一个通道(channel),所有的交易都在链上进行,只有最终结算在链上进行。这就好像我们的计算机体系结构里面加入的一个工作内存和主内存的 hiarachy。 过程描述如下: 假设我和你,咱俩人经常交易,于是就在闪电网络上开个通道,容量是2BTC; 通道里面AB在总量不超过2BTC的情况下随便相互收发,所有操作送到一个具有AB多重签名的地址,每次操作签名就好; 通道里面的操作没有手续费,因为真实的BTC在链上其实没动过,通道里面的操作本质上是只是对俩人那两个BTC份额所有权的交易; 等啥时候AB不想交易了,把隧道关闭,去真实的比特币主链上兑换一下自己在那两个BTC里的份额就好; 高手续费只发生在打开,或是关闭一个通道的时候。 为什么闪电网络会不安全 这种侧链的出现,必然会导致庞大的中间人出现: 网络上会演化出一些大的中间人节点,这些节点有足够多的BTC,足够的流动性,和足够多的通道数量,所以你再也不用担心高额的手续费,自己去找中间人等等一系列麻烦。 然而这些节点,和矿工不一样,他们并不和你直接交易BTC,他们更像是一种“第...
EOS 相关问题
石墨烯(graphene,读作gurafin,没有尾音 i)技术本身是由 cryptonomex 开发的一个库,目前已经有国内的开发者开始使用它来开发公有链相关的基础设施。BM-丹尼尔•拉里默(Dan Larimer)是 cryptonomex 的创始人。 EOS 声称自己具有以下几个优点: 不易分叉 高 TPS 可以平滑升级 EOS 的365天众筹模式可以让 EOS 团队负成本的操盘。EOS 总量是无限的,(据说)增发的部分只是给矿工创造价值。
推荐算法笔记
分类的话: 用户画像算法 用户画像算法、聚类算法 分类算法: gbtd、随机森林 识别完了看哪个变量更重要。要有可解释性。 价格相关数据:体现在什么方面?一定要跟收入密切相关的。要对数据和业务的理解很重要。 分类项目:部分已知,有一部分训练集,用未知的和已知的做一个比较。打标签。寻找标签里最重要的因素。 gbtd(底层是很多决策树)。svm。dnn。可能解释性那么强。 决策树。xgbox。 输出是:分类的概率。 聚类项目:完全未知,从数据本身来发现特征。k-means。层次聚类。 输出是:不同类别的特征。 要理解商业逻辑。
跨域与同源策略问题
什么是同源策略 同源策略(SOP same origin policy)指的是,两个网页的协议、域名和端口都相同。 但 Windows RT IE 是例外的,对它而言,端口号并不是同源策略的组成部分之一。 同源策略的变化 同源策略最初的要求是,同源的网页才能打开同源网页下的 cookie。cookie 实际上是一种对浏览器用户总是可见,但对 javascript 代码不总可见的内容。 同源策略大多数关于读,而且同源总能用沙箱解释 但现代的同源策略起了轻微的变化: 为了网络安全,浏览器为每一个“源”(Origin)都创建了一个独立的、互不干扰的沙箱环境。您可以把每个沙箱想象成一个独立的“安全屋”,里面存放着属于这个源的所有资源:它的 DOM 结构、数据存储(localStorage 等)以及运行的脚本。 同源策略就是这个沙箱模型的核心规则:一个沙箱里的脚本,不能随意访问另一个沙箱里的任何资源。 限制存储和当前页面的资源 DOM 访问限制 当一个页面(如a.com)通过<iframe>嵌入另一个不同源的页面(如 b.com)时,浏览器实际上是创建了两个独立的沙箱。 a....
Echart 词汇表
emphasis n 强调 roam 漫游 scatterplot 散点图 effectscatter 特效散点
以太坊为什么不适合拿来做联盟链?
联盟链必然要求多个账户系统存在,联盟中的每个节点都必须独立保存自己的私钥,则在当前的 gas 系统限制下,每个账户必须有自己的ether存款。 是不是允许多头出块?如果允许多头出块,则各个账户可以预先prefund或者在网络启动的时候充钱,不必考虑货币流通性问题。但多头出块的缺点是,不可抵挡分叉。而且,实际上极有可能还是存在货币流通性问题。 不允许多头出块,则必须由我们自己的中心账户来出块,我们自己来出块的话,其他账户发起合约请求需要的货币需要定期从我们的中心账户提取出来。 如果可以用强一致性的协议来预先持久化所有的写消息,也许可以靠监控把错误恢复过来,当然这也对业务产生了强依赖,业务的写操作必须是可以通过类似反幂等的方式恢复过来的。这就是把Raft分布式强一致性协议当做一个分布式的WAL来用了。ES 不适合拿来当这个 WAL,因为它不是强实时写的。
以太坊与随机数问题
值得注意的几篇文章: 这个 reddit 上的帖子里提到了 RANDAO 其实是不够安全的,但下面 RANDAO 的作者又出来说这个东西被它改进过了。 这个话题下面还有人引了 Vitalik 的一篇博客。 randao的实现。基本上就是用一个dao 的方式(Decentralized autonomous organization)来运行一个匿名先知组织。这个设计思路和 Vitalik 谈到的用先知而不是全上链的版本来运行智能合约的对比基本一致。 vdice 自己的博客里也提到了用未来的块hash来生成随机数是不安全的,他们直接使用了oraclize。改天要分析下它们所谓的“200行的安全的codebase”。















