1. 以太坊与智能合约

    2013年年末,Vitalik Buterin针对比特币系统非图灵完备性(一切可计算的问题都能计算,这样的虚拟机或者编程语言称具备图灵完备性)、效率低等缺点,首次提出了以太坊概念,并且发布了《以太坊:下一代智能合约和去中心化应用平台》白皮书。2018年5月,以太币成为市值第二高的加密货币,仅次于比特币。(19年3月16日以太币的价格是960.4人民币/ETH)。

    2019/03/16 区块链

  2. IPSec and IKE

    在usenix 2018顶会上,第一作者Dennis Felsch发表了论文The Dangers of Key Reuse: Practical Attacks on IPsec IKE。论文主要描述在IKE的不同版本和模式之间,重用密码对导致跨协议认证绕过,从而使攻击者可以模仿受害主机或者网络。下面是对该论文中的知识背景与细节进行讨论。

    2018/11/07 网络

  3. Dijkstra algorithm

    Dijkstra’s algorithm is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks.

    2018/08/15 ALGO

  4. Knuth-Morris-Pratt algorithm

    In computer science, the Knuth–Morris–Pratt string-searching algorithm (or KMP algorithm) searches for occurrences of a “word” W within a main “text string” S by employing the observation that when a mismatch occurs, the word itself embodies sufficient information to determine where the next match could begin, thus bypassing re-examination of previously matched characters.

    2018/08/14 ALGO

  5. Bellman–Ford algorithm

    The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph. It is slower than Dijkstra’s algorithm for the same problem, but more versatile, as it is capable of handling graphs in which some of the edge weights are negative numbers.

    2018/08/13 ALGO

  6. Minimum Spanning Trees

    A minimum spanning tree (MST) or minimum weight spanning tree is a subset of the edges of a connected, edge-weighted (un)directed graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight. That is, it is a spanning tree whose sum of edge weights is as small as possible. More generally, any edge-weighted undirected graph (not necessarily connected) has a minimum spanning forest, which is a union of the minimum spanning trees for its connected components.

    2018/08/10 ALGO

  7. Fenwick tree

    A Fenwick tree or binary indexed tree is a data structure that can efficiently update elements and calculate prefix sums in a table of numbers. This structure was proposed by Peter Fenwick in 1994 to improve the efficiency of arithmetic coding compression algorithms.

    2018/08/09 ALGO

  8. Floyd-Warshall algorithm

    In computer science, the Floyd–Warshall algorithm is an algorithm for finding shortest paths in a weighted graph with positive or negative edge weights (but with no negative cycles). A single execution of the algorithm will find the lengths (summed weights) of shortest paths between all pairs of vertices. Although it does not return details of the paths themselves, it is possible to reconstruct the paths with simple modifications to the algorithm.

    2018/08/08 ALGO