User Controls

🍬🍬Candy~Land🍬🍬


  1. . . : : The Hacker's Manifesto : : . .

    Another one got caught today, it's all over the papers. "Teenager
    arrested in computer crime scandal", "Hacker arrested after bank
    tampering"...

    Damn Kids. They're all alike.

    But did you, in your three-piece psychology and 1950's technobrain ever
    take a look behind the eyes of a hacker? Did you ever wonder what made
    him tick, what forces shaped him, what may have molded him?

    I am a hacker, enter my world...

    Mine is a world that begins with school. I've listened to the teacher
    explain for the fifteenth time how to reduce a fraction. I understand
    it. "No, Mrs. Smith, I didn't show my work. I did it in my head..."

    Damn kid. Probably copied it. They're all alike.

    I made a discovery today. I found a computer. Wait a second, this is
    cool. It does what I want it to do. If it makes a mistake, it's because
    I screwed up. Not because it doesn't like me...

    or feels threatened by me...

    or thinks I'm a smart ass...

    or doesn't like teaching and shouldn't be here...

    Damn kid. All he does is play games. They're all alike.

    And then it happened... A door opened to a world... Rushing through the
    phone line like heroin through an addict's veins, an electronic pulse is
    sent out, a refuge from the day to day incompetencies is sought... A
    board is found.

    "This is it... This is where I belong..."

    I know everyone here... Even if I've never met them, never talked to
    them, may never hear from them again... I know you all...

    Damn kid. Tying up the phone line again. They're all alike...

    You bet your ass we're all alike... We've been spoon fed baby food at
    school when we hungered for steak... The bits of meat that you did let
    slip through were pre-chewed and tasteless. We've been dominated by
    sadists, or ignored by the apathetic. The few that had something to
    teach found us willing pupils, but those few are like drops of water in
    the desert.

    This is our world now... The world of the electron and the switch, the
    beauty of the baud. We make use of a service already existing without
    paying for what could be dirt cheap if it wasn't run by profiteering
    gluttons, and you call us criminals. We explore... And you call us
    criminals. We exist without skin color, without nationality, without
    religious bias... And you call us criminals. You build atomic bombs,
    you wage wars, you murder, you cheat, and lie to us and try to make us
    believe it's for our own good, yet we're the criminals.

    Yes, I am a criminal. My crime is that of curiosity. My crime is that
    of judging people by what they say and think, not what they look like.
    My crime is that of outsmarting you, something that you will never
    forgive me for.

    I am a hacker, and this is my manifesto. You may stop this individual,
    but you can't stop us all...

    After all, We're all alike.

    +++The Mentor+++
  2. CandyRein Black Hole
    Flying penis
  3. TOWARD EMBODIED VIRTUALITY
    We need first to understand that the human form-including human desire and all its
    external representations-may be changing radically, and thus must be re-visioned. We
    need to understand that five hundred years of humanism may be coming to an end as
    humanism transforms itself into something that we must helplessly call post-humanism.
    Ihab Hassan, "Prometheus as Perfonner: Towards a Posthumanist Culture?"
    This book began with a roboticist's dream that struck me as a nightmare. I
    was reading Hans Moravec's Mind Children: The Future of Robot and Human Intelligence, enjoying the ingenious variety of his robots, when I happened upon the passage where he argues it will soon be possible to
    download human consciousness into a computer. l To illustrate, he invents
    a fantasy scenario in which a robot surgeon purees the human brain in a
    kind of cranial liposuction, reading the information in each molecular layer
    as it is stripped away and transferring the information into a computer. At
    the end of the operation, the cranial cavity is empty, and the patient, now inhabiting the metallic body of the computer, wakens to find his consciousness exactly the same as it was before.
    How, I asked myself, was it possible for someone of Moravec's obvious
    intelligence to believe that mind could be separated from body? Even assuming such a separation was possible, how could anyone think that consciousness in an entirely different medium would remain unchanged, as if
    it had no connection with embodiment? Shocked into awareness, I began
    noticing he was far from alone. As early as the 1950s, Norbert Wiener proposed it was theoretically possible to telegraph a human being, a suggestion
    underlaid by the same assumptions informing Moravec's scenario.2 The
    producers of Star Trek operate from similar premises when they imagine
    that the body can be dematerialized into an informational pattern and rematerialized, without change, at a remote location. Nor is the idea confined
    to what Beth Loffreda has called "pulp science."3 Much of the discourse on
    molecular biology treats information as the essential code the body expresses, a practice that has certain affinities with Moravec's ideas.4 In fact,
    a defining characteristic of the present cultural moment is the belief that information can circulate unchanged among different material substrates. It
    2 I Chapter One
    is not for nothing that "Beam me up, Scotty," has become a cultural icon for
    the global informational society.
    Following this thread, I was led into a maze of developments that turned
    into a six-year odyssey of researching archives in the history of cybernetics,
    interviewing scientists in computational biology and artificial life, reading
    cultural and literary texts concerned with information technologies, visiting laboratories engaged in research on virtual reality, and grappling with
    technical articles in cybernetics, information theory, autopoiesis, computer simulation, and cognitive science. Slowly this unruly mass of material
    began taking shape as three interrelated stories. The first centers on how
    information lost its body, that is, how it came to be conceptualized as an entity separate from the materialforms in which it is thought to be embedded.
    The second story concerns how the cyborg was created as a technological
    artifact and cultural icon in the years follOwing World War II. The third,
    deeply implicated with the first two, is the unfolding story of how a historically specific construction called the human is giving way to a different construction called the posthuman.
    Interrelations between the three stories are extensive. Central to the
    construction of the cyborg are informational pathways connecting the organic body to its prosthetic extensions. This presumes a conception of information as a (disembodied) entity that can flow between carbon-based
    organic components and silicon-based electronic components to make
    protein and silicon operate as a Single system. When information loses its
    body, equating humans and computers is especially easy, for the materiality
    in which the thinking mind is instantiated appears incidental to its essential
    nature. Moreover, the idea of the feedback loop implies that the boundaries of the autonomous subject are up for grabs, since feedback loops can
    flow not only within the subject but also between the subject and the environment. From Norbert Wiener on, the flow of information through feedback loops has been associated with the deconstruction of the liberal
    humanist subject, the version of the "human" with which I will be concerned. Although the "posthuman" differs in its articulations, a common
    theme is the union of the human with the intelligent machine.
    What is the posthuman? Think of it as a point of view characterized by
    the follOwing assumptions. (I do not mean this list to be exclusive or definitive. Rather, it names elements found at a variety of sites. It is meant to be
    suggestive rather than prescriptive.)5 First, the posthuman view privileges
    informational pattern over material instantiation, so that embodiment in a
    biological substrate is seen as an accident of history rather than an inevitabilityoflife. Second, the posthuman view considers consciousness, re-
    Toward Embodied Virtuality I 3
    garded as the seat of human identity in the Western tradition long before
    Descartes thought he was a mind thinking, as an epiphenomenon, as an evolutionary upstart trying to claim that it is the whole show when in actuality
    it is only a minor sideshow. Third, the posthuman view thinks of the body as
    the original prosthesis we all learn to manipulate, so that extending or replacing the body with other prostheses becomes a continuation of a process
    that began before we were born. Fourth, and most important, by these and
    other means, the posthuman view configures human being so that it can be
    seamlessly articulated with intelligent machines. In the posthuman, there
    are no essential differences or absolute demarcations between bodily existence and computer simulation, cybernetic mechanism and biological organism, robot teleology and human goals.
    To elucidate the Significant shift in underlying assumptions about subjectivity signaled by the posthuman, we can recall one of the definitive texts
    characterizing the liberal humanist subject: C. B. Macpherson's analysis of
    possessive individualism. "Its possessive quality is found in its conception
    of the individual as essentially the proprietor of his own person or capacities, owing nothing to society for them . ... The human essence is freedom
    from the wills of others, and freedom is a function of possession."6 The italicized phrases mark convenient points of departure for measuring the distance between the human and the posthuman. "Owing nothing to society"
    comes from arguments Hobbes and Locke constructed about humans in a
    "state of nature" before market relations arose. Because ownership of oneself is thought to predate market relations and owe nothing to them, it
    forms a foundation upon which those relations can be built, as when one
    sells one's labor for wages. As Macpherson points out, however, this imagined "state of nature" is a retrospective creation of a market society. The liberal self is produced by market relations and does not in fact predate them.
    This paradox (as Macpherson calls it) is resolved in the posthuman by doing
    away with the "natural" self. The posthuman subject is an amalgam, a
    collection of heterogeneous components, a material-informational entity
    whose boundaries undergo continuous construction and reconstruction.
    Consider the six-million-dollar man, a paradigmatic citizen of the posthuman regime. As his name implies, the parts of the self are indeed owned,
    but they are owned precisely because they were purchased, not because
    ownership is a natural condition preexisting market relations. Similarly, the
    presumption that there is an agency, desire, or will belonging to the self and
    clearly distinguished from the "wills of others" is undercut in the posthuman, for the posthuman's collective heterogeneous quality implies a distributed cognition located in disparate parts that may be in only tenuous
    4 / Chapter One
    communication with one another. We have only to recall Robocop's memory flashes that interfere with his programmed directives to understand
    how the distributed cognition of the posthuman complicates individual
    agency. If "human essence is freedom from the wills of others," the posthuman is "post" not because it is necessarily unfree but because there is no a
    priori way to identify a self-will that can be clearly distingUished from an
    other-will. Although these examples foreground the cybernetic aspect of
    the posthuman, it is important to recognize that the construction of the
    posthuman does not require the subject to be a literal cyborg. Whether or
    not interventions have been made on the body, new models of subjectivity
    emerging from such fields as cognitive science and artificial life imply that
    even a biologically unaltered Homo sapiens counts as posthuman. The defining characteristics involve the construction of subjectivity, not the presence of nonbiological components.
    What to make of this shift from the human to the posthuman, which both
    evokes terror and excites pleasure? The liberal humanist subject has, of
    course, been cogently criticized from a number of perspectives. Feminist
    theorists have pointed out that it has historically been constructed as a
    white European male, presuming a universality that has worked to suppress and disenfranchise women's voices; postcolonial theorists have taken
    issue not only with the universality of the (white male) liberal subject but
    also with the very idea of a unified, consistent identity, fOCUSing instead on
    hybridity; and postmodern theorists such as Gilles Deleuze and Felix
    Guattari have linked it with capitalism, arguing for the liberatory potential
    of a dispersed subjectivity distributed among diverse desiring machines
    they call "body without organs."7 Although the deconstruction of the liberal humanist subject in cybernetiCS has some affinities with these perspectives, it proceeded primarily along lines that sought to understand human
    being as a set of informational processes. Because information had lost its
    body, this construction implied that embodiment is not essential to human
    being. Embodiment has been systematically downplayed or erased in the
    cybernetic construction of the posthuman in ways that have not occurred in
    other critiques of the liberal humanist subject, espeCially in feminist and
    postcolonial theories.
    Indeed, one could argue that the erasure of embodiment is a feature
    common to both the liberal humanist subject and the cybernetic posthuman. Identified with the rational mind, the liberal subject possessed a body
    but was not usually represented as being a body. Only because the body is
    not identified with the self is it possible to claim for the liberal subject its
    notorious universality, a claim that depends on erasing markers of bodily
    Toward Embodied Virtuality / 5
    difference, including sex, race, and ethnicity.8 Gillian Brown, in her influential study of the relation between humanism and anorexia, shows that the
    anoretic's struggle to "decrement" the body is possible precisely because
    the body is understood as an object for control and mastery rather than as
    an intrinsic part of the self. Quoting an anoretic's remark-"You make out
    of your body your very own kingdom where you are the tyrant, the absolute
    dictator" - Brown states, "Anorexia is thus a fight for self-control, a flight
    from the slavery food threatens; self-sustaining self-possession independent of bodily desires is the anoretic's crucial goal."g In taking the self-possession implied by liberal humanism to the extreme, the anoretic creates a
    physical image that, in its skeletal emaciation, serves as material testimony
    that the locus of the liberal humanist subject lies in the mind, not the body.
    Although in many ways the posthuman deconstructs the liberal humanist
    subject, it thus shares with its predecessor an emphaSiS on cognition rather
    than embodiment. William Gibson makes the point vividly in Neuromancer when the narrator characterizes the posthuman body as "data
    made flesh."lOTo the extent that the posthuman constructs embodiment as
    the instantiation of thought/information, it continues the liberal tradition
    rather than disrupts it.
    In tracing these continuities and discontinuities between a "natural" self
    and a cybernetic posthuman, I am not trying to recuperate the liberal subject. Although I think that serious consideration needs to be given to how
    certain characteristics associated with the liberal subject, especially agency
    and choice, can be articulated within a posthuman context, I do not mourn
    the passing of a concept so deeply entwined with projects of domination
    and oppression. Rather, I view the present moment as a critical juncture
    when interventions might be made to keep disembodiment from being
    rewritten, once again, into prevailing concepts of subjectivity. I see the deconstruction of the liberal humanist subject as an opportunity to put back
    into the picture the flesh that continues to be erased in contemporary discussions about cybernetic subjects. Hence my focus on how information
    lost its body, for this story is central to creating what Arthur Kroker has
    called the "flesh-eating 90s."11 If my nightmare is a culture inhabited by
    posthumans who regard their bodies as fashion accessories rather than the
    ground of being, my dream is a version of the posthuman that embraces the
    possibilities of information technologies without being seduced by fantasies of unlimited power and disembodied immortality, that recognizes
    and celebrates finitude as a condition of human being, and that understands human life is embedded in a material world of great complexity, one
    on which we depend for our continued survival.
    6 / Chapter One
    Perhaps it will now be clear that I mean my title, How We Became
    Posthuman, to connote multiple ironies, which do not prevent it from also
    being taken seriously. Taken straight, this title points to models of subjectivity sufficiently different from the liberal subject that if one assigns the
    term "human" to this subject, it makes sense to call the successor "posthuman." Some of the historical processes leading to this transformation are
    documented here, and in this sense the book makes good on its title. Yet my
    argument will repeatedly demonstrate that these changes were never complete transformations or sharp breaks; without exception, they reinscribed
    traditional ideas and assumptions even as they articulated something new.
    The changes announced by the title thus mean something more complex
    than "That was then, this is now." Rather, "human" and "posthuman" coexist in shifting configurations that vary with historically specific contexts.
    Given these complexities, the past tense in the title-"became" -is intended both to offer the reader the pleasurable shock of a double take and
    to reference ironically apocalyptic visions such as Moravec's prediction of a
    "postbiological" future for the human race.
    Amplifying the ambiguities of the past tense are the ambiguities of the
    plural. In one sense, "we" refers to the readers of this book-readers who,
    by becoming aware of these new models of subjectivity (if they are not already familiar with them), may begin thinking of their actions in ways that
    have more in common with the posthuman than the human. Speaking for
    myself, I now find myself saying things like, "Well, my sleep agent wants to
    rest, but my food agent says I should go to the store." Each person who
    thinks this way begins to envision herself or himself as a posthuman collectivity, an "I" transformed into the "we" of autonomous agents operating together to make a self. The infectious power of this way of thinking gives
    "we" a performative dimension. People become posthuman because they
    think they are posthuman. In another sense "we," like "became," is meant
    ironically, positioning itself in opposition to the techno-ecstasies found in
    various magazines, such as Mondo 2000, which customarily speak of the
    transformation into the posthuman as if it were a universal human condition when in fact it affects only a small fraction of the world's populationa pOint to which I will return.
    The larger trajectory of my narrative arcs from the initial moments when
    cybernetics was formulated as a discipline, through a period of reformulation known as "second-order cybernetics," to contemporary debates
    swirling around an emerging discipline known as "artificial life." Although
    the progression is chronolOgical, this book is not meant to be a history of cybernetics. Many figures not discussed here played important roles in that
    Toward Embodied Virtuality / 7
    history, and I have not attempted to detail their contributions. Rather, my
    selection of theories and researchers has been dictated by a desire to show
    the complex interplays between embodied forms of subjectivity and arguments for disembodiment throughout the cybernetic tradition. In broad
    outline, these interplays occurred in three distinct waves of development.
    The first, from 1945 to 1960, took homeostasis as a central concept; the second, going roughly from 1960 to 1980, revolved around reflexivity; and the
    third, stretching from 1980 to the present, highlights virtuality. Let me turn
    now to a brief sketch of these three periods.
    During the foundational era of cybernetics, Norbert Wiener, John
    von Neumann, Claude Shannon, Warren McCulloch, and dozens of other
    distinguished researchers met at annual conferences sponsored by the
    JOSiah Macy Foundation to formulate the central concepts that, in their high
    expectations, would coalesce into a theory of communication and control
    applying equally to animals, humans, and machines. Retrospectively called
    the Macy Conferences on Cybernetics, these meetings, held from 1943 to
    1954, were instrumental in forging a new paradigm. 12 To succeed, they
    needed a theory of information (Shannon's bailiwick), a model of neural
    functioning that showed how neurons worked as information-processing
    systems (McCulloch's lifework), computers that processed binary code and
    that could conceivably reproduce themselves, thus reinforcing the analogy
    with biolOgical systems (von Neumann's specialty), and a visionary who
    could articulate the larger implications of the cybernetic paradigm and
    make clear its cosmic significance (Wiener's contribution).
  4. The Chia Network Blockchain
    Bram Cohen1 and Krzysztof Pietrzak2
    1Chia Network bram@chia.net
    2
    IST Austria pietrzak@ist.ac.at
    July 9, 2019
    Abstract
    This document outlines the basic design principles of the consensus
    layer (the blockchain) of the Chia network. It is inspired by and similar
    to the Bitcoin blockchain, which achieves consensus when a majority of
    the computing power dedicated towards securing it is controlled by honest
    parties. In Chia the resource is not computing power, but disk space.
    To achieve this, the proofs of work used in Bitcoin are replaced by
    proofs of space. To get a mining dynamic like in the Bitcoin blockchain,
    Chia alternates proofs of space with verifiable delay functions.
    We provide an initial security analysis of the Chia backbone, showing
    that as long as at least ≈ 61.5% of the space is controlled by honest parties
    Chia satisfies basic blockchain security properties.
    Glossary
    We reserve the following letters throughout this writeup:
    w ∈ Z
    + a security parameter that we use for various things, such as the output
    of H below or the size of a challenge: w = 256 is sufficient for all cases.
    H : {0, 1}
    ∗ → {0, 1}
    w a cryptographic hash function, modelled as a random
    oracle for proofs.
    T ∈ Z
    +: Chia difficulty parameter (has a function similar to the difficulty
    parameter in Bitcoin).
    κ ∈ Z
    +: honest farmers work on the κ best paths (presumably κ = 3 in Chia).
    θi ∈ [0, 1]: speedup factor one gets by using κ = i compared to κ = 1 (illustrated in Figure 2).
    ιi = 1 −
    1
    1+e·θi
    ∈ [0, 1] fraction of space honest farmers must hold if they use
    κ = i (illustrated in Figure 2).
    1
    η ∈ R
    +: seconds required to compute one step (a squaring in a group of
    unknown order) of the verifiable delay function (VDF).
    ξ ∈ R
    +: max. fluctuation of T allowed in consecutive epochs (in Bitcoin the
    corresponding parameter is 4, and this will be adapted in Chia).
    Contents
    0 Outline 3
    1 Introduction 4
    1.1 Bitcoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
    1.2 Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
    1.3 Replacing PoW with PoSpace . . . . . . . . . . . . . . . . . . . . 5
    1.4 Digging attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
    1.4.1 Splitting the chain . . . . . . . . . . . . . . . . . . . . . . 6
    1.4.2 Unique primitives . . . . . . . . . . . . . . . . . . . . . . 7
    1.4.3 Careful with difficulty resets . . . . . . . . . . . . . . . . . 7
    1.5 Double dipping attacks . . . . . . . . . . . . . . . . . . . . . . . . 8
    1.5.1 Punishment is not a solution . . . . . . . . . . . . . . . . 8
    1.5.2 Smoothing out grinding advantage . . . . . . . . . . . . . 8
    1.5.3 How Chia adresses double dipping . . . . . . . . . . . . . 8
    1.6 Chain Quality of Chia. . . . . . . . . . . . . . . . . . . . . . . . . 9
    1.6.1 Chain quality . . . . . . . . . . . . . . . . . . . . . . . . . 9
    1.6.2 The underlying probabilistic experiment . . . . . . . . . . 10
    1.7 Long range attacks . . . . . . . . . . . . . . . . . . . . . . . . . . 13
    1.7.1 Long range attacks on PoStake using old money . . . . . 14
    1.7.2 Long range attack on PoSpace using resource variation . . 14
    1.7.3 Solving long range attacks using VDFs . . . . . . . . . . . 14
    2 Building Blocks: PoSpace, VDFs and Signatures 15
    2.1 (Unique) Digital Signatures . . . . . . . . . . . . . . . . . . . . . 15
    2.2 (Unique) Proofs Of Space . . . . . . . . . . . . . . . . . . . . . . 15
    2.2.1 Algorithms for PoSpace . . . . . . . . . . . . . . . . . . . 15
    2.2.2 Security of PoSpace . . . . . . . . . . . . . . . . . . . . . 16
    2.2.3 Unique PoSpace . . . . . . . . . . . . . . . . . . . . . . . 17
    2.2.4 The [AAC+17] PoSpace . . . . . . . . . . . . . . . . . . . 17
    2.3 Verifiable Delay Functions . . . . . . . . . . . . . . . . . . . . . . 18
    2.3.1 The [Wes18, Pie18] VDFs . . . . . . . . . . . . . . . . . . 19
    3 The Blockchain 19
    3.1 Trunk and Foliage . . . . . . . . . . . . . . . . . . . . . . . . . . 19
    3.2 Block Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
    2
    4 Algorithms for Farmers and Time Lords 21
    4.1 Chain Management . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    4.2 Space Farmer Algorithms . . . . . . . . . . . . . . . . . . . . . . 23
    4.3 Time Lord Algorithms . . . . . . . . . . . . . . . . . . . . . . . . 25
    5 Difficulty Adjustment 27
    5.1 Difficulty adjustment in Bitcoin . . . . . . . . . . . . . . . . . . . 28
    5.2 A grinding attack using difficulty resets . . . . . . . . . . . . . . 29
    5.3 Difficulty adjustment in Chia . . . . . . . . . . . . . . . . . . . . 30
    5.4 On the importance of 4 . . . . . . . . . . . . . . . . . . . . . . . 31
    5.4.1 An attack if ξ < e . . . . . . . . . . . . . . . . . . . . . . 32
    5.4.2 Optimality of the attack . . . . . . . . . . . . . . . . . . . 34
    6 Chain Growth and κ 34
    6.1 Our idealized setting . . . . . . . . . . . . . . . . . . . . . . . . . 35
    6.2 The random variable C
    `
    κ,h modelling chain growth . . . . . . . . 35
    6.3 Analytical bounds on C
    `
    κ,h . . . . . . . . . . . . . . . . . . . . . . 36
    6.4 ιi and θi
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
    6.5 The Chia Backbone . . . . . . . . . . . . . . . . . . . . . . . . . . 39
    A Missing Proofs for Chain Quality 42
    0 Outline
    In Section §1 we discuss the main challenges one encounters when designing a
    blockchain without relying of proofs of work, and how they are solved in Chia.
    In §2 we introduce the main building blocks of Chia. Apart from standard
    primitives like unique signatures and cryptographic hash functions, these include
    new proof systems which have been developed more recently, namely, proofs of
    space (PoSpace) and verifiable delay functions (VDF).
    In §3 we specify the blockchain format of Chia which differs in some crucial points from the Bitcoin blockchain. Instead of using proofs of work, Chia
    alternates proofs of space with verifiable delay functions. This results in a chain
    than in many aspects is similar to Bitcoin, in particular, as in Bitcoin no synchronisation is needed and we can prove rigorous security guarantees assuming
    a sufficient fraction of the resource (space in Chia, computation in Bitcoin) is
    controlled by honest parties.
    To prevent grinding attacks (as discussed in §1) the Chia chain is split into
    two chains, one “ungrindable” chain called the trunk, which only contains the
    PoSpace and VDF outputs, and another chain called foliage, which contains
    everything else.
    Section §4 contains the (pseudo)code for the algorithms used by the farmers, who compute the proofs of space, and the time lords who compute the VDF
    outputs.
    3
    In §5 we discuss the difficulty adjustment in Chia. It differs from the
    way difficulty adjustment work in Bitcoin as a subtle grinding attack would be
    possible if one would na¨ıvely adapt it.
    We also make an observation which seems not be generally known, but
    Nakamoto – the anonymous Bitcoin designer(s) – might have been aware of
    as it explains why the factor by which the difficulty can vary in consecutive
    epochs (an epoch refers to a sequence of blocks using the same difficulty parameter, in Bitcoin that’s 2016 blocks) is set to the rather large value of 4. We
    show an attack that is possible if that factor was less than e ≈ 2.718.
    In §6 we provide an initial security analysis for Chia. We discuss this
    in more detail below in §1.1, but in a nutshell, for the most basic design we
    prove security as long as the honest farmers control at least ≈ 73.1% of the
    total space. This can be improved by having the honest farmers extending not
    just the first, but the first κ > 1 chains for every depth. Which value of κ to
    use is a “social convention” rather than a protocol parameter. By using κ = 3
    the honest farmers just need to control ≈ 61.5% of the space.
    1 Introduction
    1.1 Bitcoin
    We assume the reader has some familiarity with Bitcoin, and just mention the
    aspects and results that are relevant for discussing Chia. Recall that in the
    Bitcoin blockchain, to extend a block β, the miner must provide a proof of work
    for a challenge c = H(β, data) derived by hashing the block β to be extended
    and the payload data (transactions and a timestamp) of the block to be added.
    The proof is a nonce ν such that1
    0.H(c, ν) < 1/D
    where D is the difficulty parameter and H is a cryptographic hash function
    (SHA256). If H is modelled as a random function, in expectation D invocations
    of H are necessary and required to find such a proof.
    Bitcoin specifies that miners should always work towards extending the
    longest chain they are aware of.2 A malicious miner controlling more than
    half of the hashing power has full control over the chain. He can ignore blocks
    contributed by other parties so only his blocks appear in the chain, and thus
    get all the rewards and censor transactions. Even worse, such a 51% adversary
    can double spend.
    Presumably it was assumed by Nakamoto that a malicious miner who controls less than half of the total hashing power can’t gain anything by deviating
    from the honest mining strategy. This intuition was shown to be wrong due
    to subtle selfish mining attacks [ES14]: a miner controlling α < 1 times the
    1Here, for X ∈ {0, 1}
    w we denote with 0.X a binary value, thus 0.X =
    Pw
    i=1 2−X ∈ [0, 1).
    2Technically, it is the chain that accumulates proofs of work of highest total difficulty,
    typically (but not necessarily) that will be the chain with the largest number of blocks.
    4
    hashing power of the honest miners (i.e., less than half of the total) can add an
    α fraction of the blocks to the chain (compared to the α
    1+α
    fraction they would
    get by following the rules). On the positive side, [GKL15] show that there is
    no better attack. They define the chain quality as the fraction of blocks an
    adversarial miner can push into the chain, and show that for an adversary as
    above, this fraction is at most α
    1+α
    .
    1.2 Attacks
    Grinding attacks. Unfortunately, the simple analysis of the Bitcoin backbone from [GKL15] does not extend to blockchains that use proof systems other
    than proofs of work, like proofs of stake (PoStake) or proofs of space (PoSpace).
    The reason is that in a PoW-based blockchain one can use the mining resource
    (the hardware and electricity required for doing the computation) only towards
    extending one particular block for one particular challenge. On the other hand,
    proof systems like proofs of space (or stake) are very cheap to compute, so a
    malicious miner can potentially launch a grinding attack by deviating from the
    honest mining rules and computing many more proofs than specified by the
    protocol (in the context of proofs of stake these attacks are called “nothing at
    stake” problems). We distinguish two types of grinding attacks.
    digging refers to grinding attacks where the adversary tries to extend one particular block in many different ways.3
    double dipping refers to grinding attacks where the adversary tries to extend
    many different blocks, not just the one(s) specified by the protocol.
    We discuss digging and double dipping, and how they are handled in Chia, in
    more detail in §1.4 and §1.5 below.
    Short and long-range attacks. Grinding attacks are not the only security
    problems that come up once we replace proofs of work with proofs of space (or
    stake) in a Bitcoin like blockchain. Another issue is long-range attacks, which
    refer to attacks where an adversary tries to generate a chain that forked from
    the chain the honest farmers saw a long time ago. We will discuss long range
    attacks and how Chia avoids these using verifiable delay functions (on top of
    PoSpace) in §1.7.
    1.3 Replacing PoW with PoSpace
    In this section we discuss what it means to replace PoW with PoSpace4
    in a
    blockchain, which (even ignoring security issues) is not obvious as PoW and
    3
    In Bitcoin the honest mining strategy is basically digging: miners hash different nonces
    until a lucky miner finds a nonce whose hash is below the difficulty. In Chia a farmer should
    just get a single shot at extending a block, thus one can think of digging as “illegal mining”.
    4or proofs of stake, or any other proof system where proofs can be efficiently computed
    and where the proof systems is a one round public-coin challenge response protocol.
    5
    PoSpace are syntactically different: In Bitcoin the miners race to find a PoW,
    the miner who finds it announces a new block to the network, the block gets
    attached, the miner gets its reward, and the miners switch to extending this
    new block. Using a proof system like PoSpace, every miner can immediately
    compute a PoSpace, so we somehow need to specify who “wins” and when to
    continue with the next block.
    The PoSpace-based Spacemint [PPK+15] blockchain assigns a quality to
    each PoSpace (this quality is simply the hash of the proof), and the protocol
    specifies that the PoSpace of best quality announced should be considered as
    the extension of the chain. In Chia this basic idea is developed further. We also
    assign a quality to each PoSpace, but to finalize the block one must augment this
    PoSpace with the output of a verifiable delay function. The time parameter for
    the VDF – which specifies how many sequential computational steps are required
    to compute the output – is linear in the quality of the PoSpace, which means
    the PoSpace with best quality (best meaning lowest value) can be finalized
    first. Alternating PoSpace with VDFs like this gives the Chia blockchain a
    farming dynamic similar to mining in Bitcoin. In particular, we don’t need any
    synchronisation like Spacemint or PoStake-based blockchains like Ourborors.
    1.4 Digging attacks
    As already outlined, when a Bitcoin miner wants to extend a block β, they
    prepare the payload data and must then find a PoW for challenge c = H(β, data)
    and difficulty D, i.e., a nonce ν such that 0.H(c, ν) < 1/D. As the miner
    chooses data, they can actually compute many different challenges c1, c2, . . .
    (e.g. by taking various subsets of the available transactions or slightly changing
    the timestamp). In principle, a Bitcoin miner could now choose to search for
    a PoW for two (or more) challenges simultaneously, but that would require
    splitting the resource (hardware and electricity) amongst those challenges, and
    thus they gain no advantage by doing so.
    In sharp contrast to this, if we na¨ıvely used a proof system like PoSpace in a
    Bitcoin-like design, a malicious miner could generate proofs for many different
    challenges c1, c2, . . ., and then cherry pick the one that is most promising (say,
    the best one as outlined above). By trying out X challenges, the miner would
    increase his chances of winning (as compared to honest mining) by a factor of
    X. Thus in some sense we’re back to a PoW-based scheme as rational miners
    would not follow the honest mining rule, but race to compute as many PoSpace
    as possible. We refer to such grinding attacks – where an adversary tries to
    extend a block in many different ways – as digging.
    In §1.4.1 to §1.4.3 we outline how digging attacks are prevented in Chia.
    1.4.1 Splitting the chain
    To prevent digging by grinding through different values for data as outlined
    above, Chia adapts an idea from Spacemint. The chain is composed of two
    chains as illustrated in Figure 1; one chain is called the trunk and contains just
    6
    σi−1 τi−1
    βi−1
    σi τi
    βi
    σi+1 τi+1 βi+1 αi−1 αi αi+1 Trunk Foliage signature
    time
    parameter challenge signature challenge
    Figure 1: Illustration of the Chia blockchain that will be explained in §3. A block
    β = (σ, τ ) in the (ungrindable) trunk chain contains a proof of space σ followed
    by a VDF output τ . A block α in the foliage contains the payload (transactions,
    timestamp), a signature of the previous block in foliage (to chain these blocks),
    and a signature of the proof of space (to bind the foliage to the trunk). This
    figure just illustrates the three deepest blocks of a chain, Figure 5 on page 20
    illustrates a “richer” view that contains forks and non-finalized blocks.
    the proofs (PoSpace and VDF outputs), the other chain is called the foliage
    and contains the payload data (and some signatures to bind the foliage to the
    trunk). All the challenges (for PoSpace and VDF) come from previous values
    in the trunk, and thus are not susceptible to grinding attacks where one tries
    out various values of data in the foliage (if we take difficulty resets into account,
    that’s not quite true, as we’ll discuss in §1.4.3).
    1.4.2 Unique primitives
    To prevent digging it is also crucial that the cryptographic primitives used in
    the trunk are unique. In particular, Chia uses a unique signature scheme, where
    uniqueness means that for every public-key/message pair there exits exactly one
    valid signature. The PoSpace we use are unique and a verifiable delay function
    is unique by definition.5
    1.4.3 Careful with difficulty resets
    Even after outsourcing the payload data to the foliage and make sure all primitives in the trunk are unique, it turns out that there is still a possible digging
    attack if the difficulty reset mechanism is directly adapted from Bitcoin. We
    discuss this in §5, but in a nutshell, the attack is possible because the difficulty
    parameter depends on the timestamps, which are (as part of data) in the foliage
    and thus can be ground. As a VDF output depends on the difficulty parameter,
    the VDF outputs can be indirectly ground via this connection. For this attack to
    work, the difficulty reset must apply to blocks immediately following the block
    whose timestamp was used to recompute the difficulty parameter (as is the case
    5The definition of a VDF basically matches the definition of a unique proof of sequential
    work; the reason we cannot use simple proofs of sequential work like [CP18] in Chia is precisely
    because they’re not uinque.
    7
    in Bitcoin). This can be easily prevented by specifying that the difficulty reset
    only applies after sufficiently many blocks have passed.
    1.5 Double dipping attacks
    In the previous section we outlined how Chia prevents digging attacks. We now
    discuss the other type of grinding attacks called double dipping. Recall that
    digging refers to attacks where an adversary tries to extend a particular block
    in many different ways, whereas double dipping refers to attacks where they try
    to extend different blocks, not just the one(s) specified by the protocol.
    1.5.1 Punishment is not a solution
    Penalties were suggested6 as a means to disincentivize double dipping in 2014.
    Spacemint [PPK+15] also specified a form of penalties7
    . Unfortunately, penalties don’t really solve the issue. In particular, penalties can only be a deterrent
    against attacks where the potential gain is less than the potential penalty, so
    they might disincentivize things like selfish mining, but not double spending.
    Penalties are also no deterrent against long range attacks (discussed in §1.7)
    where an adversary tries to generate a long chain in private, simply because
    then there is no one around to trigger the penalty.
  5. BBS Network Whitepaper v1.1
    bbsnetwork.io
    Abstract
    The BBS Netw ork is a public network of interconnected message boards
    (nostalgically called BBS, for the Bulletin Board Systems of the early Internet). Each and
    every post is stored within a public database, and the BBS Network Token can be used to lease
    its associated ad real-estate (e.g. banners on posts). BBS tokens can also be staked to govern
    the network standards and direct the product development. 50% of the BBS token supply will be
    distributed to the boards (BBSes) based on the level of their registered user activity. In a sense,
    BBS can be likened to a “Public Reddit”, distributed across multiple domains with no centralized
    censorship, while maintaining a network-effect and openness for anyone to build upon.
    BBS owners are given autonomy of their boards, including their content policies and revenue
    distribution. Owners may Partner top contributing and high reputation members to allow them to
    earn ad revenue from their published posts and comments, rewarding the end-users for their
    contributions. The Engagement Mining program subsidizes the ad revenue for approved boards,
    incentivising the creation of quality boards and the migration of influencers from existing
    platforms to the BBS Network. Revenues are distributed automatically and transparently utilizing
    the Royalty Engine - encouraging healthy community-wide alignment of interests between all
    stakeholders.
    A pilot version of the first BBS is currently active on bbs.market, as well as other domains.
    Key Differentiators
    BBS Network is similar in many ways to the widely popular message boards offered by the
    currently dominant platforms such as Reddit and Facebook Groups, however, it is different in
    that BBS is a public online service, meaning that it utilizes a distributed architecture, distributed
    revenue model, and distributed infrastructure - rather than a centralized backend and unilateral
    control of the product, service and revenue.
    The Internet is a distributed network, and the initial batch of online services were distributed as
    well, including email, newsgroups, IRC and many others. They could be offered by any number
    of service providers, avoiding a single point of failure, and a single point of control. However, it
    was unrealistic to scale public online services without being able to utilize a public database
    (such as Blockchain, developed much later), which is why we’ve seen proprietary solutions take
    over almost every online service category.
    BBS Network architecture presents a solution that uses public databases efficiently to create a
    network of message-boards that is fully distributed, while still benefiting from the combined
    network effect of all users and boards in the network (by being interoperable on aspects such as
    user authentication, content discoverability and the execution of ad campaigns). This allows for
    a win-win-win stakeholder design that was simply not possible before blockchain added public
    database capabilities to the Internet.
    Distributed Architecture
    Today’s message board services are each operated by a single corporate entity while BBS
    Network is an ecosystem of contributing entities and participants. Each BBS can be owned and
    operated by a different entity, which
    may host different boards and set
    different terms of use, while all
    boards remain tightly integrated
    through leveraging a public DB
    architecture.
    Modern blockchain technology
    makes it possible to store BBS
    network data such as user accounts,
    channels, posts, replies and
    reactions on a shared public ledger.
    This architecture opens up read and write access to BBS network data for all ecosystem
    participants - very much unlike today’s dominating platforms where only the central entity
    ultimately controls access to the data (and thus to the profits it generates).
    Distributed Revenue Generation Empowers Content Curation
    Message boards today typically sell their ad inventory to advertisers, while using an entirely
    separate mechanism for content curation, which typically relies on user reactions
    (clicks/likes/upvotes/etc.) that are not difficult to manipulate.
    BBS Network leverages a PredictionModel which enables community members to promote
    posts with the reputation they receive for engaging with the BBS and accurately predicting post
    visits.
    When promoting a post, users must stake their earned reputation to predict how many visits the
    post will receive.
    Accurate predictions
    are rewarded with
    higher reputation,
    while inaccurate
    predictions will lose
    reputation.
    When a post is
    promoted, the
    prediction must be at
    least 30% higher
    than the previous prediction or the post’s visits. On a new promotion, the previous promoter will
    have their staked reputation with up to a 10% bonus. While a post is promoted, each visit will
    generate 1 reputation point for the promoter and publisher.
    The post’s prediction is then used to determine the potential popularity within the community,
    providing a unique and manipulation-resistant method of content curation.
    Distributed Ecosystem
    The network is made up of potentially infinite boards
    where every board in the network is a full Reddit-like
    service, with any number of subreddits (“channels”),
    users, comments and community features. All boards
    are interlinked and interoperable because their data
    resides on a public blockchain which any developer or
    user can interact with. The ecosystem consists of the
    following stakeholders:
    ● Developers can build new UX, product
    components, and features for any operator to
    choose to host.
    ○ deWeb LTD is the first developer
    building the core software for the BBS
    Network.
    ● Operators host developers’ BBS software to
    serve any number of boards.
    ○ Currently, several operators offer BBS
    cloud hosting globally.
    ● Board Owners use the operators’ services to launch their own board under a shared or
    their own domain.
    ○ The first board was launched in March 2021 by the owner of a Star Wars fans
    YouTube channel with 3m subscribers: starwarstheory.com.
    ○ BBS.market was launched in Aug 2021, enabling anyone to easily create a
    board.
    The BBS network uses a distributed identity and authentication model, similar in nature to
    the model used by the global email network, where the members’ home domain is associated
    with their unique ID (i.e. member@bbs.domain.com). However, board members have full control
    over their accounts through their digital signatures and can change their home board at any
    time.
    Reputation & Revenue Distribution
    Each board issues its own reputation that is given as bonuses to members for engaging and
    promoting the board, and can be used to promote posts on that board. As noted, post
    promotions are used mainly for curation. The board owner maintains control over their board’s
    revenue and can invite members to become a Partner of their board which grants the ability to
    earn a share of the board’s ad revenue from published posts and comments. Board owners are
    incentivized to partner top contributors to encourage activity and further contribution.
    Revenue Backing and Cashier
    ● In order to enable cashing-out from a board, each board’s generated revenue is
    distributed to the board’s “Cashier”, minus a 10% operator & network fee, which provides
    liquidity when cashing out to BBS tokens.
    ● Revenue is always received in BBS tokens.
    ● Members with cashable balance wishing to cash-out can do so according to the following
    policy:
    ○ If the cashier’s BBS token balance is sufficient (higher than the amount being
    cashed-out), then cash-outs can be processed instantly.
    ○ If the cashier’s balance is insufficient (lower than the amount being cashed-out)
    then cash-outs can be processed as soon as sufficient new revenue has been
    accumulated by the cashier.
    ○ In cases where there are multiple cash-out requests, they are handled in the
    order in which they are received (“Cashier’s line”).
    The BBS Token
    The BBS Network is an ERC-20 token. It is used as the native currency of the BBS network,
    flowing between boards, operators and developers. BBS tokens also enable the holder to
    participate in the BBS DAO governance via staking and voting.
    ● Advertisers use BBS tokens to purchase ad space on every board in the network and
    benefit from engagement mining subsidies (detailed below).
    ● Royalties from ad revenues are distributed to the BBS DAO, BBS operators and board
    owners in BBS tokens.
    ● To participate in the BBS DAO governance and participate in the staking rewards, BBS
    holders need to stake their tokens.
    ● Staking period is user-defined and is at minimum until the end of the current quarter, and
    up to 12 additional quarters (three years).
    ● BBS DAO revenues, staking rewards and liquidity fees are distributed to BBS token
    stakers
    ● For each additional quarter locked (up to 12), the staker will benefit from:
    ○ 25% DAO Voting power boost (up to 300%)
    ○ 25% Earning boost from staking rewards, liquidity fees and BBS DAO royalties
    ● BBS token holders can vote on governance proposals such as:
    ○ Smart contract upgrades
    ○ Liquidity management
    ○ Cross-BBS interoperability standards
    BBS Token Distribution
    The BBS tokens are distributed as follows:
    ● 50% - Engagement Mining (Explained Below)
    ● 20% - Liquidity & Staking Rewards
    ● 10% - Initial Capital Providers
    ● 10% - Long Term Development and Operations Budget (Reserve)
    ● 10% - Founding Team
    Engagement Mining
    In order to bootstrap the BBS network, 50% of the BBS tokens will be distributed over multiple
    years to the BBS network boards, as ad revenues, based on the user-engagement they
    generate relative to the rest of the network on each day.
    On boards where active ad campaigns are running, engagement mining would subsidize the
    advertisers. This is done to bootstrap the utility of the BBS token for running ad campaigns
    across the network.
    Social Capital
    Members of the BBS system are encouraged to publicly link their BBS account to their existing
    social accounts from YouTube, Facebook, Twitter, Reddit, and other popular platforms. Daily
    bonus amounts are based on the member accounts’ Social Capital (representing the members’
    followers, friends, karma, etc. in the different networks) in order to attract high-profile members
    as well as to prevent fraud.
    Measuring Engagement
    The engagement is measured using post impressions by registered members. The primary
    reason is to prevent fraud, as registered members are authenticated and their social capital can
    be monitored to detect anomalies.
    Distribution Distribution Logic
    The DAO may set a different CPM for any specific board category, language or other
    parameters. The CPM is the BBS token amount paid for 1,000 registered members' post
    impressions. The CPM rates would increase or decrease in order to hit the BBS token daily
    engagement-mining distribution targets.
    Engagement Mining Fraud Prevention
    A BBS Blacklist is used by the DAO (BBS Network Governance) to deter any attempts to
    fraudulently gain BBS tokens from the initial distribution by faking user activity.
    BBS tokens can be earned through engagement mining as soon as the BBS Network is
    launched. For a board to participate in engagement mining
    ● The board has to hit a minimum number of unique posters, for a set period (e.g. a week).
    This ensures that only active boards would require a review.
    ● Boards must be consistently generating meaningful discussion & engagement to bring
    positive value to the network, as determined by the DAO
    ● An additional period (e.g. another week) has passed since the board has reached the
    previous threshold - so that the community would be given a chance to review the new
    board before it becomes an official engagement-mining beneficiary.
    The specific periods and thresholds are set via the DAO voting process to make sure that
    eligible boards can be realistically reviewed by the community prior to collecting their mined
    BBS tokens.
    Through the governance system, boards can be added to or removed from the blacklist.
    Blacklisted boards are simply ignored in the daily token allocation process.
    This mechanic incentivizes existing board owners to review, detect and report any fraudulent
    activity sooner rather than later, for each day it continues is a day they are directly harmed,
    despite the fraudster ultimately being stripped of their earnings.
    Lastly, the BBS DAO uses the BBS tokens to purchase ad space from the boards, at a
    price-per-impression set by the DAO. The data collected through those campaigns (CTR,
    conversion rate, etc) would enable transparent monitoring of the actual volume and nature of
    the participating board’s user traffic.
    Existing Technology
    deWeb LTD has been building the BBS software, which is currently in its pilot phase. deWeb
    has successfully implemented the following components:
    ● deWeb framework:
    ○ Distributed Sign-in (using email/google/facebook/twitter/github)
    ■ Recoverable passwords - essential and non-trivial technology for
    consumer applications on blockchain
    ○ User wallets, deposits, withdrawals, transfers, and swaps of CTs, BBS and other
    tokens, across multiple blockchains.
    ○ Royalty Distribution Engine - allowing for seamless, instant, trustless and
    transparent collaboration and settlement between ecosystem stakeholders
    (developers, operators and board owners).
    ○ Dapplets - Enabling developers to build services that can easily be integrated to
    the BBS user experience by the BBS domain owner.
    ● BBS software
    ○ User-generated message-boards (similar in nature to “subreddits”)
    ○ Global feed of all sub message-boards
    ○ Integrated editor for post publishers
    ○ Video upload
    ○ Polls
    ○ Comments and replies with user reactions and mentions
    ○ In-app notifications & messages
    ○ BBS wide chat
    ○ Post promotion
    ○ Member profile & wallet
    ○ Automatic Bonuses (For joining, linking accounts and daily activity)
    ○ TX history and cashier queue management
    ○ Multi-moderator support
    ○ Internal Ad Server
    ○ Cross-domain interoperability
    ○ Search for posts, boards, comments, etc
    ● 3rd-party application support - seamless and streamlined to allow for the developer
    ecosystem to quickly mature and create/receive value.
    Key Advantages of the BBS Network Model
    ● BBS is a fully decentralized Reddit. Anyone can be a developer, an operator, a board
    owner or user.
    ● Unlike today's popular platforms, a board owner has a direct relationship with their
    audience, meaning they have access to their contact information, and have ultimate
    control over the audience UX, through rich admin configurations, choice of operators and
    autonomy in terms of service (e.g. one board owner may allow profanity while another
    prohibits and removes it, more on this below).
    ● The generated revenue is shared between the ecosystem participants in a fully
    automatic, transparent, and market-driven manner. Growth is constantly incentivized as
    a win-win for users, creators, advertisers and curators.
    ● Decentralized content policies - While most users would prefer that some types of
    content be banned, allowing this power to a single, central entity proves to be highly
    problematic. In the BBS model, each owner is responsible for the removal policy of their
    own board, and users can switch to a new home board if they are not happy with their
    current board content and moderation policies.
    ● The prediction-based discovery process provides a more robust solution for content
    curation. Today’s leading services rely on user reactions (Upvotes/Downvotes, likes, etc)
    that are easy to manipulate covertly using botnets. However, it is prohibitively more
    challenging to provide accurate post predictions, which provides the curation mechanism
    with manipulation resistance in a transparent environment, with reputation points stored
    in accounts that are publicly linked to users’ social credentials with an immutable record
    of all their curation activity.
    ● It is very easy for developers to build new modules that seamlessly integrate to any
    board (e.g. a module enabling IPFS-based video hosting). These modules can be
    hosted on their own custom servers and can be added to any board at the owner’s
    discretion through simple configurations and market driven revenue sharing.
    DAO Launch
    ● The BBS Network DAO will be launched by BBS Switzerland AG - A fully owned
    subsidiary of deWeb LTD.
    ● deWeb has signed a license agreement with BBS Switzerland for the product’s source
    code which may be assigned to 3rd parties through a BBS DAO governance resolution.
    Homage to an Emergent Space: Our Internet
    From Wikipedia:
    A bulletin board
    system or BBS (also
    called Computer
    Bulletin Board Service,
    CBBS) is a computer
    server running
    software ... Once
    logged in, the user can
    perform functions such
    as .. reading news and
    bulletins, and
    exchanging messages
    with other users
    through public
    message boards and sometimes via direct chatting. In the early 1980s, message networks such as
    FidoNet sprang up to provide services such as NetMail, which is similar to email.
  6. Enigma Tuskegee Airman
    Originally posted by the man who put it in my hood DigiByte
    Community
    Infopaper
    V1.0
    Introduction & History
    DigiByte is a truly decentralized UTXO blockchain that was fairly launched on
    January 10, 2014. DigiByte is also truly permissionless, since there is no central
    controlling authority. Accordingly, this Community Infopaper is written without
    requiring authorization from any single individual.
    The DigiByte blockchain is an immutable ledger, a chain of blocks all with
    verifiable digital signatures since its creation in 2014 and backed by billions of
    dollars of cryptographic computation. Its blockchain is also fully open-source,
    released under the MIT license, and completely verifiable by any individual or
    entity. DigiByte embraces the Bitcoin core ethos of “Do not trust, verify”, in that
    no entity should ever need be “trusted” in order to send/receive DigiByte (DGB)
    or to store/retrieve data from the DigiByte blockchain.
    DigiByte originally utilized the Litecoin code-base, with a completely independent
    blockchain and a unique Genesis Block. It has undergone several
    non-contentious soft-forks and hard-forks, none of which culminated in a
    chain-split, but rather a complete consensus resulting in seamless upgrades of
    the entire DigiByte network.
    DigiByte never held an ICO, but was fairly launched in an open and transparently
    planned manner. DigiByte does not take a percentage of block-rewards for a
    founders fee. The minimal 0.5% pre-mine was given away in its entirety to
    community members in the first month of its existence in order to incentivize
    early client downloads, ensure the survival of the blockchain, and to develop the
    original Android/iOS applications.
    1
    DigiByte focuses on speed, security, and scalability. It prides itself with being
    “faster, more secure, forward thinking”. With significantly faster block timings
    than any other UTXO blockchain to date (15 seconds), DigiByte has encountered
    and overcome a number of issues that many other blockchains such as Bitcoin
    will not face until the advent of the next century. It is due to this forward thinking
    nature that DigiByte adopted the SegWit protocol through a soft-fork consensus
    in 2017, being the first major blockchain to do so, well before Litecoin or Bitcoin
    adopted the upgrade.
    DigiByte believes in on-chain scalability as a core tenet of its blockchain, with
    “second layer” protocols never expected to be the primary “solution” for
    increased throughput or transaction capacity. This on-chain scaling coupled
    with OP_codes and SegWit allows for a large number of usage scenarios, such
    as distributed applications (DApps), document notarization/validation, token
    issuance, and asset digitization.
    DigiByte has a maximum supply of 21 billion DigiByte, to be fully mined by the
    year 2035. While other blockchains only utilize a single mining algorithm to mine
    new blocks and introduce new assets into circulation, DigiByte has employed
    five unique and independent algorithms in a “MultiAlgo” solution since block
    145,000 in September 2014. DigiByte holds the dominant hash-power in 3 of its
    5 algorithms globally, by an order of magnitude more than any other competing
    blockchain. This provides greater security to the network while helping prevent
    any “rented hash power” from attacking the blockchain.
    DigiByte continues to pioneer in the areas of security based on the “forward
    thinking” of its foundation by creating the Odocrypt algorithm. Odocrypt is a
    mining algorithm which rewrites and morphs itself every 10 days in order to
    prevent ASIC dominance, focusing on utilizing FPGA mining. Future algorithms
    will also likely be replaced as necessary on an on-going basis to ensure
    maximum security of the DigiByte network, while simultaneously expanding
    upon the decentralization/distribution of the DigiByte blockchain.
    DigiByte has been leading innovation with the industry-renowned DigiShield, a
    real-time difficulty adjustment mechanism which ensures the stability of block
    generation timing, despite exponential increases/decreases in mining hash
    power. DigiShield is utilized in a respectable number of other major
    cryptocurrency/blockchain projects, such as Dogecoin, ZCash and dozens more.
    DigiShield was originally created for a single mining algorithm, and shortly after
    DigiByte changed to MultiAlgo, it was ported and upgraded to become
    MultiShield. This allows for regular block timings across multiple mining
    algorithms, as well as an even block mining distribution between algorithms,
    while also preventing mining dominance in the event of a sudden inflow/outflow
    of substantial mining hash power.
    2
    DigiByte Key Specifications
    Launch Date January 10th, 2014
    Genesis Block Hash "USA Today: 10/Jan/2014, Target: Data stolen
    from up to 110M customers"
    Blockchain Type Public, Decentralized, UTXO, Proof of Work,
    Multi-Algorithm
    Ticker Symbol DGB
    Maximum supply 21,000,000,000
    Block Reward Reduction 1% reduction monthly
    Block emission schedule Fully mined by 2035
    Mining Algorithms SHA256, Scrypt, Odocrypt, Skein & Qubit
    Algorithm Block Share 20% per-algo, contested each block
    Difficulty Retarget Every block, 5 separate difficulties (Per-algo)
    Block Timing 15 seconds per-block (75 per-algo approx)
    Segregated Witness Support Yes (First major blockchain to activate)
    3
    Key Aspects of DigiByte
    Decentralization
    DigiByte is the most decentralized Proof-of-Work-mined blockchain in the world.
    Decentralization means there is no central controlling entity that is able to
    dictate direction, terms, use of the network, changes, charges and fees, locking
    of funds, or undoing transactions. Although the world predominantly
    understands centralized control, the mind-shift to decentralization is an
    incredibly important progression in today’s global society. Where many other
    cryptocurrencies concede significant compromises in one or more aspects of
    decentralization (if not all), DigiByte remains unwavering in its dedication to
    decentralization as a key aspect of being a globally distributed blockchain
    solution.
    DigiByte maintains this decentralization through a combination of methods,
    namely:
    1) Multiple algorithms;
    2) GPU/FPGA mining;
    3) On-chain scaling;
    4) Educating the importance of running a full-node;
    5) Embracing code contributions that uphold the ethos of DigiByte.
    This decentralized nature is of vital importance not only for the survival of the
    DigiByte blockchain, but also to prevent any tampering from malicious actors,
    governments or corporations. Due to the lack of any “head” or controlling party,
    there is no entity to manipulate, blackmail, or “lean on”. In a world growing ever
    divided, there is solace in the consensus of the DigiByte network, that it can be
    relied upon as accurate and truthful without reservation.
    4
    Pure Consensus
    This consensus is the core foundation of the DigiByte blockchain. Since its
    inception in January 2014, DigiByte has had its consensus mechanism reliant on
    the belief in on-chain scaling, speed, security, and forward-thinking progression
    of the DigiByte blockchain.
    This consensus is obtained through a vastly distributed network of nodes
    running the Core DigiByte wallet, which holds a complete and continuously
    updated copy of the DigiByte blockchain, as well as block creation via the
    “Proof-of-Work” (POW) mining method. Other blockchains have shown that
    Staking, Distributed Proof-of-Stake, and other such poor attempts at alternative
    consensus methods are far too susceptible to centralization, manipulation, and
    tampering by various malicious individuals or organizations. Similarly, trusting a
    3rd-party for consensus defeats the purpose of being a distributed and
    decentralized blockchain in the first place, with users genuinely being better off
    with a centralized database.
    Permissionless Network
    DigiByte is a completely permissionless blockchain. Since there is no centrally
    controlling entity to dictate the network, there is no need to seek “permission”
    from anyone. As such, permission is implied no matter what “use case” you
    would like to implement or accomplish with DigiByte. Examples include
    advertising the acceptance of DigiByte as a payment method, listing DigiByte on
    an exchange, using DigiByte with your platform/service, or when
    spending/sending/receiving DigiByte. In addition, anyone is free to speak on
    behalf of DigiByte, to promote DigiByte, or to even author a community Infopaper
    such as this.
    5
    Proof-of-Work is the only proven and reliable method of obtaining a distributed
    and decentralized consensus (A solution to the Byzantine Generals Problem),
    which is why DigiByte proudly remains true to POW. Proponents of alternatives
    usually cite delays in block creation and propagation; however, thanks to
    DigiSpeed, the DigiByte blockchain overcomes this. Which is why the most
    battle-hardened POW consensus method is still being utilized today for DigiByte.
    There has never been any rational argument against the ability of POW to arrive
    at a sound consensus.
    DigiByte’s permissionless nature is both a by-product of decentralization, as well
    as an intentional aspect that the community deeply values and celebrates. This
    is what also prevents influence, changes, or take-overs by malicious parties,
    because the permissionless nature requires consensus from the majority of the
    network. It is a key characteristic of DigiByte which has held up against any
    would-be attempts from malicious actors for the past six years and counting.
    On-Chain Scaling
    DigiByte is a network that believes on-chain scaling should be the primary
    method for future growth in transaction volume and frequency. A true
    transaction only happens when it occurs on-chain and has been incorporated
    into the blockchain. Compare this to second-layer methods where transacting
    can occur without ever being presented to the network, thus defeating one of the
    primary reasons blockchain as a technology was created, immutability.
    Broad support & network participation
    DigiByte aspires to be broadly supported across a variety of platforms, to
    encourage participation from as many entities as possible. Part of pushing the
    boundaries regarding block timings / sizes means that not all will be able to
    participate with a full Core Node (for example, drivespace / data transfer /
    memory requirements), however broad support is available across Windows,
    Linux & OSX.
    DigiByte development has also intentionally added backwards compatibility for
    older versions of Android that are prominent in developing & impoverished
    nations. This allows for greater participation, despite aging hardware devices.
    Broad network participation is also why the Android / iOS applications have
    been translated to 50+ native languages.
    6
    The very essence of the DigiByte blockchain is predicated upon the fact that all
    blocks since the very first Genesis Block are able to be replayed and
    cryptographically validated, with all transactions being visible. There are no
    anonymous/shielded transactions employed, as DigiByte believes a key defense
    for anonymity is the significant growth of on-chain transactions and the
    pseudo-anonymous nature of the UTXO’s architecture. In keeping with that
    philosophy, the DigiByte blockchain will scale in future through block-size
    increases, with proposals for the size to double every 2 years.
    Protocol Upgrades
    DigiByte at Launch
    DigiByte was the brainchild of Jared Tate, who wanted to create a blockchain
    that addressed many of the perceived shortcomings of Bitcoin. DigiByte
    originally started out as a Scrypt-only mined blockchain, with 60 second block
    times and a two hour difficulty retargeting frequency. Compared to every other
    Proof-of-Work UTXO blockchain that existed during its 2014 launch, this was
    considered incredibly revolutionary, and still is to this day. Although the
    block-timing has changed with network upgrades, the maximum supply of
    DigiByte will always remain fixed at 21 billion and the last DigiByte to be mined
    is scheduled to occur prior to the year 2035. DigiByte was created to be
    “forward-thinking”, with two primary objectives: cybersecurity and on-chain
    scalability. This is why the news article headline “USA Today: 10/Jan/2014,
    Target: Data stolen from up to 110M customers” was hashed into the Genesis
    Block. These guiding principles have remained in effect over the past five years,
    and will continue to guide the future of DigiByte.
    DigiShield
    During the launch of DigiByte back in 2014, most blockchains utilized either
    SHA256 or Scrypt algorithms. Mining pools that would automatically
    profit-switch known as “Multipools” would regularly switch back and forth
    between cryptocurrencies that they mined, depending on the mining difficulty
    and the block-rewards. Miners utilizing these Multipools would have their
    hashing power changed between a variety of blockchains - such as from
    DigiByte to Dogecoin to Litecoin.
    These fluctuations would cause blockchains to sometimes experience
    exponential increases in mining hash-power of up to 10 times the normal level,
    which would rapidly speed up block production until the next difficulty retarget.
    Once the difficulty retarget for the blockchain had occurred, making mining
    more difficult and less profitable, the hash-power would then be taken to
    another more profitable blockchain. This led to many blockchains seeing a rush
    of block production, followed by a complete stalling when the hash-power fell
    off. Some blockchains could go for days without a block being found as a result
    of the major difficulty adjustment. This unsustainable volatility led to the
    development of DigiShield. DigiShield was created as a mechanism for real-time
    adjustment of block-difficulty, which allows for the effective handling of sudden
    influxes of mining hash-power or the equally significant outflux.
    7
    This prevented “chain-freeze” and also helped smooth out block creation times.
    DigiShield was implemented on the DigiByte network as the first protocol
    upgrade on February 28, 2018 at block height 67,200.
    The DigiByte core developers then directly assisted the Dogecoin development
    team to implement DigiShield, another of many blockchains that had been
    suffering as a result of erratic Multipool hash-power swings. DigiShield has
    since been implemented in dozens of other blockchains such as Zcash, Ubiq,
    and Monacoin.
    MultiAlgo
    DigiByte upgraded its network yet again on September 1, 2014 at block height
    145,000 with the implementation of multiple mining algorithms. While some
    blockchains had initially launched with multiple mining algorithms, DigiByte was
    the first blockchain to upgrade from single to multiple algorithms.
    The change to five algorithms (SHA256, Scrypt, Qubit, Myr-gr and Skein) was
    initiated in order to improve the security of the blockchain, while allowing for
    equitably distributed mining, decentralization, and increased protection from
    51% attacks. By having some of the algorithms remaining “GPU friendly”, it
    allowed for people to mine DigiByte from home, contributing to the security of
    the DigiByte network from their desktop PC.
    It was also at this point where the block timing was adjusted from 60 seconds to
    30 seconds, which was approximately 150 seconds in between each mining
    algorithm finding a block. This further affirmed DigiByte as a leader in the UTXO
    blockchain space and was also the second seamless and non-contentious
    network upgrade that DigiByte successfully executed.
    8
    MultiShield
    Since DigiShield was originally created only for single mining-algorithm
    blockchains, this necessitated the launch of the MultiShield network upgrade
    which occurred on December 10, 2014 at block height 400,000. The MultiShield
    upgrade allowed for the real-time mining difficulty adjustment of DigiByte spread
    across all 5x algorithms, which further ensured that block timings would remain
    steady. MultiShield also allows for a sudden influx and exit of hash-power on
    one or more mining algorithms, all in real-time, further protecting the DigiByte
    network.
    MultiShield works by increasing the difficulty for an algorithm every time it finds
    a block, while simultaneously decreasing the difficulty of the other algorithms,
    which protects against a single-algorithm takeover. Should a manufacturer of an
    ASIC ever be found to intentionally or inadvertently placing a back-door into their
    miners that would allow them to redirect the hash rate elsewhere, MultiShield
    would prevent that malicious hashrate from affecting the production of blocks
    and a double-spend occurring. Where other single-algorithm blockchains would
    fall victim to such an attack, or to pool collusion from 2-3 operators, MultiShield
    would render such an attack futile.
    Even if an attacker was able to secure 90% of the hash rate on their primary
    attack algorithm, and 35% on the remaining 4 algorithms, they would still not
    have the majority of hash power and be unable to successfully attack the
    DigiByte network.
    Rented attacks are the most common types of attacks on single-algorithm
    blockchains, however despite there being several SHA256 pools which have over
    50% of the hash-power of the entire DigiByte network, that is still insufficient to
    attack against MultiShield. Should an attacker somehow gain control of all the
    remaining SHA256 hashpower being used by BTC in the whole world (61,000
    PH/s at the time of writing), they would have 2^10 SHA256 hashpower
    compared to DigiBytes 40PH/s. Attempting to attack DigiByte with that hash
    power would double the difficulty every 5x blocks, meaning that after approx 50
    blocks (12.5 minutes) the honest miners would have outpaced such a
    doublespend attempt. By contrast, that same hashpower could be used to
    attack any other SHA256-only blockchain such as BTC, BCH, BSV repeatedly and
    continuously. It is for this reason that many exchanges require a mere 40 block
    confirmation (10 minutes) for most deposits.
    9
    MultiShield also renders DigiByte impervious to the plague of single-algorithm
    51% attacks that rented hash power made so common during 2018, along
    with the timestamp vulnerability attacks that affected other multi-algorithm
    blockchains.
    Since 2018, DigiByte has constantly remained the dominant global hash-power
    for Qubit, Myr-Gr, and Skein by an order of magnitude, and now also with the
    Odocrypt algorithm.
    MultiShield was the third seamless and non-contentious network upgrade that
    DigiByte successfully executed.
    DigiSpeed
    The DigiSpeed upgrade also implemented a block-size doubling every two years
    in order to consistently increase the transaction processing capacity twofold
    until the year 2035. This was done in order for DigiByte to remain true to its
    ethos of always being forward-thinking, in order to prepare the network for
    growth and avoid being limited by an insufficient block size. However, the
    block-size doubling aspect was grandfathered as part of the SegWit upgrade,
    due to it’s 4X weighted capacity increase, with expectations of further
    refinement and reimplementation in the future.
  7. CandyRein Black Hole
    Flying penis
  8. SEASON ZERO
    The Dark Begining

    The A.T.F. wasn't always the based John McAfee super fan club that you see today. Originally, the A.T.F. stood for "Anti Troll Federation" or "Anti Troll Force". This was way back when it was founded by it's original UNATCO creators. UNATCO, being a top secret globo-**mo organization that couldn't let the public know of it's existence, used Google corp. or "G.O.O.G.L.E." as a shell company to do the dirty work on its behalf. Under the direction of Google, the Anti Troll Force worked relentlessly to silence and attack innocent trolls and sigmas in steam city and abroad.

    Up until that point trolls, chads, and sigma males reigned steam city with impunity, with no real opposition to stop them. They were organized into multiple different groups and gangs that occasionally fought against each other, but as a whole were a force to be reckoned with. This is why it came as such a shock when the Anti Troll Force came in delivering crushing victory after victory, banning and reporting over SIX MILLION innocent steam city citizens! Their victories could all be attributed to the evil genius of the the A.T.F.'s diabolical and deranged leader: Jaxx!
    Jaxx and Jacks
    UNATCO needed a brutal and cunning warlord to be the head of the Anti Troll Force, because they figured out that the only way to destroy a sigma... is with an even STRONGER sigma😎😎. They decided the best way for this to happen was to use the cloning technique that they had used to create the famous JC and Paul Denton. They essentially just wanted to recreate that whole clone brothers idea with the Denton brothers, but with the express purpose of them leading the Anti Troll Force. The twins brothers were to be named: Jaxx and Jacks.

    It had to be perfect. They used DNA from some of the most famous sigmas that had ever lived. UNATCO spared no expense and somehow acquired the DNA of:

    • Peter Gibbons
    • The Postal Guy
    • Bane
    • Lord Humungus
    • Trevor Philips
    • JC Denton
    • Dagoth Ur
    • Joshua Graham
    • [REDACTED]

    Of course doing this would only create the biggest threat that UNATCO had ever seen, should the cloned brothers decide to go rouge. So during the cloning process, they used evil brainwash technology to convert their usual thoughts of [REDACTED] women, expelling the [REDACTED], and being based to that of evil globo-**mo propaganda. But when UNATCO's master plan of cloning and brainwashing had been completed, they soon found out that only Jaxx's brainwashing had been successful. Through DIVINE INTERVENTION, Jacks came out unfazed by their pathetic attempts to turn his thoughts over to their evil machinations. The specific details of UNATCO's realization of this and Jack's miraculous escape are currently CLASSIFIED.
    Jaxx's Reign of TERROR
    Even though Jacks BTFO'D UNTACO and escaped stealing billions of dollars of UNATCO resources in his miraculous escape, they still had his brother Jaxx.

    The years of Jaxx's A.T.F. were years of despair and anguish for most of the innocent citizens of Steam City. Brave sigmas were able to capture and document the A.T.F.'s autistic onslaught on Steam City. The following contains graphic images, viewer discretion is advised.
    Jaxx's Defeat and Exile from Steam City
    After many months of Jaxx's brutal tyranny, a hero emerged to save steam city when they needed him most....

    Jacks, assuming his "76561198274043223" alias, arrived into the fold seemingly out of nowhere. It had been rumored that he had been spending his time serving as an apprentice to the legendary John McAfee, but this rumor has never been confirmed....

    He challenged his evil twin to a fight to the death. The winner assumes control of the A.T.F. forever.
    (Their legendary battle involved tanks, cyborg-h****rs, A.T.F. footsoldiers, Tal***n toyota truck artillery, a giant C.I.A. space lazer, Cuban mercenaries, along with a giant list of other wacky stuff I'm too lazy too think of/write down.)

    After Jaxx's defeat at the hands of his brother, he begged Jacks to spare his life. Jacks pitied the poor au**st, and granted him his request to spare his life, but on the sole condition that he leaves Steam City forever, never to return. Jaxx begrudgingly accepted these terms and slithered away from steam city, leaving this as his final message:
    SEASON 1
    The New A.T.F.
    Not everyone understood what was happening at the time of the A.T.F.'s transfer of power. Many Steam City brainlets (Zokh, Greasy Gus, Sal, others) confused Jacks with Jaxx, and referred to him as such despite no clear similarities other than the similar name pronunciations.😒🤦‍♂️😒🤦‍♂️😒



    Under Jack's leadership, the A.T.F. transitioned from the Anti Troll Force, into the Alcohol Tobacco and Firearms. No longer would the A.T.F. devote resources to silencing and reporting trolls and sigmas on steam. In fact, one of the few rules of the A.T.F. is that no member shall report or doxx ANYONE in steam city for any reason ever! Instead, the A.T.F. follows the teachings of Saint McAfee, and devotes it's time to sm**gl*ng firearms, Cuban cigars, se* sl***s, and cheap liqu*r in and out of steam city. The A.T.F. also engages in numerous cyber dealings (crypto-cr**e, ip-bo***ng, trolling, etc.) and conducts 100% of it's business via bitcoin.



    Currently, A.T.F. controls ONE HUNDRED PERCENT of the tobacco market in steam city, as we have an exclusivity deal with our gracious Cuban supplier. Our second biggest money maker is our crypto department, where we enjoy a comfy 90% monopoly. After that, our weapons, alcohol and se* sl***s market is currently where we are facing our biggest struggle, due to fierce competition from Lei Fang Ind., Toxic Coffee Corp., "The Crack Den", and a few others.
    Our Financial Competitors
    As previously stated, we have a 100% monopoly on tobacco due to our bountiful friendship with Cuba (rest in peace Fidel), and a 90% monopoly on our various crypto and digital services, mostly thanks to the highly sought after secrets that Saint MacAfee passed down to us (God bless🙏, R.I.P.). Unfortunately, our biggest competitors don't give us much breathing room in the alcohol, se* sl***s, and firearms markets. Below is a quick lore summary of our financial competitors and how they impede us.

    Toxic Coffee Corporation & Constructions
    They are our biggest competitor by far in the arms market, and our suspected competition in the the crypto/digital services market (with crypto you can never really tell whose who). Their massive lead in arms can be summarized with just 2 reasons. Firstly, the vast majority of their arms sales are conducted legally which gives them a massive advantage over us for obvious reasons. Secondly, and more importantly, they are not limited to producing small/medium firearms and handheld gear as we are. They allegedly have contracts with the Chinese, Serbc**ks, Armenians, and a few others to sell them attack helicopters, gunships, and various other large scale warfare equipment. This would, under normal circumstances, have them classified as a severe level threat, if it wasn't for their Achilles heel: their leader(Toxic Coffee) suffers from severe derangement and schizophrenia, which essentially downsizes their threat level to zero. This will be explained in further detail later on.

    ℂℝ𝔸ℂ𝕂 𝔻𝔼ℕ ~҉҉!҉҉~
    They have a massive 87% edge over us in co****e, but that's pretty much it. This is mainly because the A.T.F. doesn't prioritize or specialize in co****e, we only do it as a side thing. Being a d**g den of depravity, they also deal in all of the other d***s. The A.T.F. staying true to the ways of Saint McAfee would never get involved in such degeneracy. Regardless, our sales would skyrocket if they were taken out of the picture. Their leader, "Dior", is mostly unknown to us, but judging by his profile appears to be very based. Which is very different from the rest of the 53%'s profiles, as most of theirs look cringe and a****tic.

    gang aIcohol
    They're tied with us 50/50 on alcohol sales. Our inventory and selection is far greater, but they have insanely low prices. The A.T.F. is content with coexisting with them, as they are first and foremost booze enjoyers, which the A.T.F. greatly respects. Their aesthetic is also just a blatant ripoff of ours, so we eventually might have to do something about them...







    Lei Fang Industries
    There isn't much information available about them, with the reasoning behind this previously being that they had taken measures to wipe their lore out of existence. But with recent events that have unfolded, it is now known that Lei Feng Industries is merely a paper tiger. We had previously believed that they had direct control or influence over almost every other group and faction within Steam City. While this is still true to a certain extent, it has become painfully evident that L.F.I. does not have nearly as much power and sway as they have been known to claim. I wanted to be sure of this fact, so being the fearless American badass that I am, I challenged Lei Feng to a fight to the death with him picking the rules of engagement. Not only did Mr. Feng decline, he cried and ran away! 🤦‍♂️🤦‍♂️🤦‍♂️For now, the negative financial impact that L.F.I. can have on us is minimal, and that's being generous.
    Our Allied & Rival Factions
    We have more to worry about than the factions who only oppose us financially. Of course without our business operations we would never be where we are today, but the more pressing matters come from our day to day interactions with the main hostile and friendly factions that oppose and support us.

    (Pictured: Quercus and I meeting to discuss some routine business dealings. We are accompanied by our respective crew members.)

    ENEMIES:
    Our list of enemies is so long because when you're on top, everyone below you starts to seethe and attack you just for being based. To this day, the A.T.F. has remained UNDEFEATED! This fact has caused some of our enemies to froth at the mouth and go full schizo, so they created autistic delusions of destroying us in a bunch of whacky nonsense ways that are completely devoid of any meaning. Like it or not cucks, the A.T.F. is here to stay.😎😎😎

    Our Main Enemy Factions (no particular order):

    -The Steam Moderation Team
    -Stoner Touhou Fans
    -ZOG
    -Cuckserbia
    -The 53%
    -Anyone that looks different than us
    -UNATCO
    -Omastar's Fan Club
    -bjarne kristof diary / friends
    -Nocoiners
    -(C)ukraine
    -EpicThangosCrappians
    -Femboys and Weebs
    -Women
    -Neetstreet Boys
    -All of the Putt Putt Groups
    -Derek Chauvin Memoriam #BLM
    -Initech
    -Greasy Gus Fan Club (NSFW)
    -Chechen Mafia
    -The White Legs

    ALLIES & PARTNERS
    But where would we be without our friends😄😄😄!!! As one of the most powerful groups on steam, the A.T.F.'s highly sought after friendship is not given lightly! All of our partners and allies are serious hard hitters, and we can count on their loyalty to a T.

    Partners and Allied Factions (no particular order):

    -The Republic of Cuba
    -Saving Rivellon
    -Albania & Kosovo
    -America First Patriots
    -The Big Locker Bullies
    -Nidal Nijm Games
    -The IRA
    -The Taliban
    -AidsWaffen Division
    -✟ Templar Order ✟
    -SsethTzeentach Merchant Guild
    -F.E.A.R. First Encounter Assault Recon

    A.T.F. MERCH
    I am proud to announce the unveiling of our OFFICIAL A.T.F. MERCH!!!
    Designs are subject to change, feedback is welcome.
    (yes this is a real thing that will actually be happening)

    (A.T.F. Trucker Hat. Comes in reverse colors. Adjustable size.)



    (A.T.F. T-Shirt. Comes in reverse colors. Sizes: XS, S, M, L, XL. A size XXXXXXXL Has been custom made for Arisen.)
    A.T.F. Chain Of Command

    nb4 pyramid scheme
    The Future of the A.T.F.
    Thus concludes the previous history of the A.T.F.. There is obviously much more to be included (Our members, current war with the 53%, our future plans, etc..) but this has taken too long and I wanna go back to playing DS3 so ♥♥♥♥ you see u later ill finish the rest eventually

    (not gunna airbrush xedra outta this one. his lore accurate persona will forever be a fat mexican guy with a sniper rifle. ♥♥♥♥ you xedra)
  9. *Richard Burnish enters thread*
  10. 1
    The Petroaguinaldo: A massive covert money laundering operation?
    Last Wednesday the 18th, a large number of people received the announced
    petroaguinaldo. 72 hours later, 7 million Venezuelans were waiting for the result of the
    auction of the half petro, receiving a text message from the number 67373 in response
    pointing out: “CREDIT in the amount of 0.50000000 PTR for Refund Exchange
    PTR/VES”, that is, that its 1/2 petro had been returned to the Patria1 system
    .Immediately,
    the protests and complaints about a scam in progress, hidden in the “gift”
    government went viral on social networks.
    What had happened, with the expected exchange of the half petro for BsS. 1,357,760?
    The expected bolivars did not appear, on the computer screen only
    The following image appeared, of the message sent and the response received.2
    On December 21, the arrival of the long-awaited spirit of Christmas and the royals of the
    petro, a tsunami swept away the hopes of millions of Venezuelans with the petroaguinaldo
    announced and there was no shortage of explanations:
    Simple! NO ONE in the world bought your 1/2 petro and the regime returned it to you
    Homeland account. Let us remember that the value of cryptocurrencies is based on trust
    that its users give it, and despite the fact that the petro (according to Maduro) is backed
    for the oil and mineral wealth of Venezuela, the truth is that NO ONE in the
    planet believes in that false cryptocurrency. Therefore, the quote that many
    Venezuelans made on December 18, it expired the next day (yesterday) without
    that NO ONE will buy it, and as long as there is no buyer NO ONE WILL DEPOSIT YOU THE
    EQUIVALENT OF 1/2 PETRO IN BOLÍVARES TO YOUR WALLET IN ORDER TO TRANSFER IT TO YOUR
    BANK ACCOUNT3
    .
    Let's try to explain this immense fraud and scam "live and direct", just as
    It happens this long weekend that will go down in history, like the massive operation of
    largest money laundering known.

    1
    Taking from NOTIPUCHE | AGUINALDO DE 1/2 PETRO IS A SCAM, received through social networks
    2
    Since its announcement by the government in December 2017, we denounce the ongoing scam that today
    It is intended to be carried out on a massive level, using 7 million Venezuelans as accomplices. See
    https://www.academia.edu/36314352/EL_PETRO_1 It was never known about the sale of a single Petro of that
    original transmission
    3
    Ditto, NOTIPUCHE.
    2
    According to government officials, Medio Petro was transferred to about 7 million
    Venezuelans, between pensioners and public employees4
    . If our mathematics is not
    wrong, BsS. 1,357,760, value of half Petros multiplied by 7 million
    beneficiaries, means that the government tries to put into circulation some 9.50 billion
    Bsf. Let's see what it means to inject a quarter of the liquidity in one weekend.
    currency in the power of the public existing on December 13, according to the Bank
    Central Venezuela.
    MONETARY LIQUIDITY IN THE POWER OF THE PUBLIC
    (Balances in Millions of Bolívares)
    Money Week Monetary liquidity
    12/13/2019 36,999,612 37,108,430
    06/12/2019 33,522,210 33,620,801
    11/29/2019 32,720,194 32,815,699
    11/22/2019 27,498,827 27,585,855
    11/15/2019 24,894,995 24,962,866
    11/08/2019 24,519,961 24,593,839
    11/01/2019 23,623,092 23,695,227
    10/25/2019 20,209,970 20,283,510
    Fte: http://www.bcv.org.ve/estadisticas/liquidez-monetaria.
    Note how between last November 22 and December 13 the government put
    in circulation a mass of money similar to that intended to be injected into monetary liquidity
    in just 48 hours. Introduce this mass of money to an economy with the highest inflation in
    entire world history in the last century, is in addition to a crime against humanity, a
    calculated risk operation for the criminals who carry it out.5
    Let's analyze this
    huge criminal attempt
    We can observe the first warning when analyzing the previous table, injecting that
    amount of money in circulation, triggered the already gigantic hyperinflation to levels
    interplanetary. Therefore, it was not in the government's plans to transform it into money
    the guy petroaguinaldo. For them, those “benefited by the poisoned bonus” do not
    They were able to make it effective. Furthermore, there is another elementary reason, that mass of money does not exist,
    It is totally virtual. The Petro is an attempt by the criminal gang that controls the government
    Venezuelan, through a ghost of virtual currency without any real backing,6
    carry
    carry out a gigantic money laundering operation, regardless of any
    legality and using 7 million Venezuelans as mules. All virtual currencies that
    exist in the world, they are creations and supported by the Anglo-Saxon financial system, and it is
    that “backup” which allows them to be exchanged for legal tender currencies.7

    In this situation, all “potential participating accomplices”8
    of this scam
    Piram

  11. @@ -0,0 +1,1153 @@
    from .Constants import _DBFILE

    from Crypto.Random import get_random_bytes
    from Crypto.Hash import SHA256
    import numpy as np

    import sqlite3
    import json
    from time import time as unix_timestamp

    class GameBase:
    def __init__(self):
    return None


    # Creates the salted & hashed proof for a given game_secret
    # game_secret is the deterministic status of the game; e.g. in a coin flip game, game_secret would be either "heads" or "tails"
    # returns a dictionary object with keys "proof", "salt", and "unhashed"
    def create_proof(self, game_secret):
    if type(game_secret) != str:
    raise ValueError("game_secret needs to be a string or unicode object.")

    salt = SHA256.new(get_random_bytes(64)).hexdigest()[0:12]

    unhashed = (game_secret+":"+salt).encode("utf-8")
    #hashed = SHA256.new(unhashed).hexdigest()
    hashed = SHA256.new(unhashed).hexdigest()[0:32]

    return {"proof":hashed,"salt":salt,"unhashed":unhashed}

    # debit
    # user: "User" object (from GamblingBot.Telegram)
    # value: float, the amount to deduct from their account balance
    #
    # Debits a user's account
    def debit(self, user, value, note=""):

    # allow optional sending just the UID instead of full User object
    if type(user) == int:
    uid = user
    else:
    uid = user.user_id

    value = (-1.*value) if value>0 else value

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    cur.execute("insert into payments values (?,?,?,?)",(str(unix_timestamp()),value,uid,note))
    db.commit()

    # credit
    # user: "User" object (from GamblingBot.Telegram)
    # value: float, the amount to deduct from their account balance
    #
    # Credits a user's account
    def credit(self, user, value, note=""):

    # allow optional sending just the UID instead of full User object
    if type(user) == int:
    uid = user
    else:
    uid = user.user_id

    if value > 0:
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    cur.execute("insert into payments values (?,?,?,?)",(str(unix_timestamp()),value,uid,note))
    db.commit()

    # get_balance
    # user: "User" object (from GamblingBot.Telegram)
    #
    # Returns the user's current balance as a floating point number, rounded to 8 digits accuracy
    def get_balance(self, user):
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()

    # allow optional sending just the UID instead of full User object
    if type(user) == int:
    uid = user
    else:
    uid = user.user_id

    res = cur.execute("select sum(balance_change) from payments where user_id=?",(uid,)).fetchone()
    if res == None:
    return 0.0
    else:
    if res[0] == None:
    return 0.0
    else:
    return round(res[0],8)

    class PoolBase(GameBase):
    def __init__(self):
    GameBase.__init__(self)

    self.default_pool_data = json.dumps({})

    self.pool_interval = 1000000000. # Interval (in seconds) which pool updates
    self.pool_name = "PoolBase" # Pool name, should be overwritten in child functions
    return None

    # pool_exists
    # pool_name: string, the name of a pool
    #
    # Return value: boolean indicating if pool exists or not
    def pool_exists(self, pool_name):
    if type(pool_name) != str:
    print(type(pool_name))
    return False
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    return bool(cur.execute("select count(*) from pools where name=?",(pool_name,)).fetchone()[0])

    # join_pool
    # user: "User" object (from GamblingBot.Telegram)
    # pool_name: string, the name of the pool to join
    # wager: float, the amount to deduct from their account balance
    #
    # Return value: tuple
    # tuple[0]: boolean indicating if pool was joined successfully or not
    # tuple[1]: status message
    def join_pool(self, user, pool_name, wager, bet_option):
    try:
    wager = float(wager)
    assert wager > 0
    except:
    return False, "Invalid bet value."

    try:
    assert type(pool_name) == str
    assert self.pool_exists(pool_name) == True
    except:
    return False, "Invalid pool."

    try:
    uid = user.user_id
    balance = self.get_balance(user)
    assert balance >= wager
    except:
    return False, "You do not have enough money to make this bet."

    try:
    assert bet_option in self.get_options(pool_name)
    except Exception as e:
    return False, "Invalid bet option."

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()

    pool_data = json.loads(cur.execute("select pool_data from pools where name=? limit 1",(pool_name,)).fetchone()[0])
    if uid in pool_data.keys():
    pool_data[bet_option][uid] += wager
    else:
    pool_data[bet_option][uid] = wager

    self.debit(user, wager, "put "+str(wager)+" LTC into pool '"+pool_name+"'")
    cur.execute("update pools set pool_data=? where name=? limit 1",(json.dumps(pool_data),pool_name))
    db.commit()

    return True, "Pool joined successfully."

    # rewrite_times
    # Takes no arguments. Just updates the DB based on self.pool_name and self.pool_interval
    def rewrite_times(self):
    now = unix_timestamp()
    next_update = now+self.pool_interval

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    cur.execute("update pools set last_update=?,next_update=? where name=? limit 1",(now,next_update,self.pool_name))
    db.commit()

    # get_pools
    # Takes no arguments.
    #
    # Return value: list. each item in the list is a dict, with keys 'name', 'description', 'last_update', and 'next_update'
    # The next_update and last_updates are expressed as number of seconds between current time and the expressed time.
    def get_pools(self):
    returnval = []
    now = unix_timestamp()

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    res = cur.execute("select name,description,last_update,next_update from pools order by name")
    for pname, pdesc, plast, pnext in res:
    returnval.append({
    "name":pname,
    "description":pdesc,
    "last_update":int(now-plast),
    "next_update":int(pnext-now)
    })

    return returnval

    # get_pool_data
    # Returns a list of current betters in a given pool
    # pool_name: string, the name of a pool
    #
    # Return value: list of dicts. each dict has the key username, option, and value.
    def get_pool_data(self, pool_name):
    if not self.pool_exists(pool_name):
    return []

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    res = cur.execute("select pool_data from pools where name=? limit 1",(pool_name,)).fetchone()[0]
    try:
    pool_data = json.loads(res)
    except Exception as e:
    print("[get_options] ERROR: "+str(e))
    return []

    returnvalue = []
    bet_options = self.get_options(pool_name)
    for bet_option in bet_options:
    for k,v in pool_data[bet_option].items():
    username = str(cur.execute("select telegram_name from tgusers where user_id=? limit 1",(int(k),)).fetchone()[0])
    returnvalue.append({
    "username":username,
    "option":bet_option,
    "value":v
    })
    return returnvalue

    # get_options
    # pool_name: string, the name of a pool
    #
    # Return value: python list object of valid bet strings
    def get_options(self, pool_name):
    if not self.pool_exists(pool_name):
    return []

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    res = cur.execute("select bet_options from pools where name=? limit 1",(pool_name,)).fetchone()[0]
    try:
    return json.loads(res)
    except Exception as e:
    print("[get_options] ERROR: "+str(e))
    return []

    # update
    # Placeholder function. Must return a string in child classes.
    # This function should also rewrite the
    def update(self):
    return "[DEBUG] This is a placeholder function. Child classes should overwrite this function."

    class FlipPool(PoolBase):
    def __init__(self):
    PoolBase.__init__(self)

    self.default_pool_data = {"heads":{},"tails":{}}

    self.pool_interval = 60. # Interval (in seconds) which pool updates
    self.pool_name = "flip" # Pool name, should be overwritten in child functions

    if not self.pool_exists(self.pool_name):
    now = unix_timestamp()
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    params = [
    self.pool_name,
    "Coin flip betting pool",
    json.dumps(["heads","tails"]),
    json.dumps(self.default_pool_data),
    now,
    now+self.pool_interval
    ]
    cur.execute("insert into pools values (?,?,?,?,?,?)",params)
    db.commit()

    return None

    def update(self):
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()

    now = unix_timestamp()
    next_update_due,pool_data = cur.execute("select next_update,pool_data from pools where name=? limit 1",(self.pool_name,)).fetchone()

    if now >= next_update_due:
    self.rewrite_times()
    cur.execute("update pools set pool_data=? where name=? limit 1",(json.dumps(self.default_pool_data),self.pool_name))
    db.commit()

    opt = (float(ord(get_random_bytes(1)))/255.)
    choice = "heads" if opt>=0.5 else "tails"

    # read pool data
    pool_data = json.loads(pool_data)

    # if there are no players, just return None
    heads_players = pool_data["heads"]
    tails_players = pool_data["tails"]

    if len(heads_players) == 0 and len(tails_players) == 0:
    return None

    # if there are players in only 1 side of the coin, refund that player and send a notice indicating it
    if len(heads_players) == 0 and len(tails_players) > 0:
    for k,v in tails_players.items():
    self.credit(int(k),v,"flip pool refund - everyone chose tails")
    return str(len(tails_players))+" players bet on tails, but nobody bet on heads. All players have been refunded.\n\n[debug] pool_data="+json.dumps(pool_data)
    elif len(heads_players) > 0 and len(tails_players) == 0:
    for k,v in heads_players.items():
    self.credit(int(k),v,"flip pool refund - everyone chose heads")
    return str(len(heads_players))+" players bet on heads, but nobody bet on tails. All players have been refunded.\n\n[debug] pool_data="+json.dumps(pool_data)

    # if the betting is set to go forward, with enough players on each team
    # calculate the total
    tails_total = 0.0
    heads_total = 0.0
    for k,v in tails_players.items():
    tails_total += v
    for k,v in heads_players.items():
    heads_total += v

    # apply house fee
    # determine proportionate payout values
    #
    # example: 2 LTC on heads, 1 LTC on tails
    # heads wins
    # total value is 3 LTC
    # 3/2 = 1.5x multiplier (heads / tails)

    if choice == "heads":
    multiplier = ((heads_total+tails_total)/heads_total)*0.99
    winner_dict = heads_players
    else:
    multiplier = ((heads_total+tails_total)/tails_total)*0.99
    winner_dict = tails_players

    # apply the credits
    response_string = choice+" won! The pool total was "+str(round(tails_total+heads_total,8))+" LTC, and "+choice+" players got a "+str(round(multiplier,5))+"x multiplier on their bets. Here are the winners.\n\n<code>"
    for k,v in winner_dict.items():
    payout = round(v*multiplier,8)
    username = str(cur.execute("select telegram_name from tgusers where user_id=? limit 1",(int(k),)).fetchone()[0])
    response_string += "@"+username+" - bet "+str(round(v,8))+" LTC, got "+str(payout)+" LTC\n"

    self.credit(int(k), payout, "flip pool - "+choice+" won")

    response_string += "</code>"

    return response_string

    class PricePoolBTC(PoolBase):
    def __init__(self):
    PoolBase.__init__(self)

    self.default_pool_data = {"rise":{},"fall":{}}

    self.pool_interval = 60.*30. # Interval (in seconds) which pool updates
    self.pool_name = "btcprice" # Pool name, should be overwritten in child functions

    if not self.pool_exists(self.pool_name):
    now = unix_timestamp()
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    params = [
    self.pool_name,
    "BTC price gambling pool. Will the prise rise or fall?",
    json.dumps(["rise","fall"]),
    json.dumps(self.default_pool_data),
    now,
    now+self.pool_interval
    ]
    cur.execute("insert into pools values (?,?,?,?,?,?)",params)
    db.commit()

    return None

    def update(self):
    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()

    now = unix_timestamp()
    next_update_due,pool_data = cur.execute("select next_update,pool_data from pools where name=? limit 1",(self.pool_name,)).fetchone()

    if now >= next_update_due:
    self.rewrite_times()
    cur.execute("update pools set pool_data=? where name=? limit 1",(json.dumps(self.default_pool_data),self.pool_name))
    db.commit()

    opt = (float(ord(get_random_bytes(1)))/255.)
    choice = "heads" if opt>=0.5 else "tails"

    # read pool data
    pool_data = json.loads(pool_data)

    # if there are no players, just return None
    rise_players = pool_data["rise"]
    fall_players = pool_data["fall"]

    if len(rise_players) == 0 and len(fall_players) == 0:
    return None

    # if there are players in only 1 side of the coin, refund that player and send a notice indicating it
    if len(rise_players) == 0 and len(fall_players) > 0:
    for k,v in fall_players.items():
    self.credit(int(k),v,"btc price pool refund - everyone chose fall")
    return str(len(fall_players))+" players bet on fall, but nobody bet on rise. All players have been refunded."
    elif len(rise_players) > 0 and len(fall_players) == 0:
    for k,v in rise_players.items():
    self.credit(int(k),v,"btc price pool refund - everyone chose rise")
    return str(len(rise_players))+" players bet on rise, but nobody bet on fall. All players have been refunded."

    # if the betting is set to go forward, with enough players on each team
    # calculate the total
    fall_total = 0.0
    rise_total = 0.0
    for k,v in fall_players.items():
    fall_total += v
    for k,v in rise_players.items():
    rise_total += v

    # apply house fee
    # determine proportionate payout values
    #
    # example: 2 LTC on rise, 1 LTC on fall
    # rise wins
    # total value is 3 LTC
    # 3/2 = 1.5x multiplier (rise / fall)

    if choice == "rise":
    multiplier = ((rise_total+fall_total)/rise_total)*0.99
    winner_dict = rise_players
    else:
    multiplier = ((rise_total+fall_total)/fall_total)*0.99
    winner_dict = fall_players

    # apply the credits
    response_string = "The price of BTC has "+choice+"en! The pool total was "+str(round(fall_total+rise_total,8))+" LTC, and '"+choice+"' players got a "+str(round(multiplier,5))+"x multiplier on their bets. Here are the winners.\n\n<code>"
    for k,v in winner_dict.items():
    payout = round(v*multiplier,8)
    username = str(cur.execute("select telegram_name from tgusers where user_id=? limit 1",(int(k),)).fetchone()[0])
    response_string += "@"+username+" - bet "+str(round(v,8))+" LTC, got "+str(payout)+" LTC\n"

    self.credit(int(k), payout, "flip pool - "+choice+" won")

    response_string += "</code>"

    return response_string

    class Minesweeper(GameBase):
    def __init__(self):
    GameBase.__init__(self)

    # kind of a stupid way to do this, but it works
    def random_secret(self):
    return_value = ""
    for i in range(5):
    random_value = 3
    while random_value == 3:
    random_value = int(np.floor(((float(ord(get_random_bytes(1)))/255.)*2.9999999999999999)))
    return_value += ["L","C","R"][random_value]

    return return_value

    def create_game(self, update, wager):
    # choose the winning value and create a proof hash
    winning_choice = self.random_secret()
    proofdata = self.create_proof(winning_choice)

    # write this game's data into the database
    params = (
    proofdata["proof"],
    winning_choice,
    proofdata["salt"],

    update.from_id,
    update.data["chat"]["id"],
    update.data["message_id"],

    "minesweeper",
    '{"level": 0}',
    wager,
    0
    )

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()
    cur.execute("insert into gamedata values (?,?,?, ?,?,?, ?,?,?,?)", params)
    db.commit()

    # send it out to the chat!
    keyboard_markup = {"inline_keyboard":[
    [
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    }
    ],
    [
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    }
    ],
    [
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    }
    ],
    [
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    }
    ],
    [
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    },
    {
    "text":"\ud83d\udd12",
    "callback_data":"donothing"
    }
    ],

    [
    {
    "text":"Left",
    "callback_data":"mL-"+proofdata["proof"]
    },
    {
    "text":"Center",
    "callback_data":"mC-"+proofdata["proof"]
    },
    {
    "text":"Right",
    "callback_data":"mR-"+proofdata["proof"]
    }
    ],

    [
    {
    "text":"Cash out early",
    "callback_data":"mF-"+proofdata["proof"]
    }
    ]
    ]}
    response_text = "Your wager of "+str(wager)+" LTC is ready. Choose Left, Center, or Right and see if you hit a mine.\n\nYour proof hash is "+proofdata["proof"]+". The input that creates this proof will be revealed after your game is finished.\n"
    return response_text, keyboard_markup

    # Updates the state when a callback message is received from the button press
    def update_state(self, update):
    '''
    proof text primary key,
    secret text,
    salt text,

    user_id int,
    chat_id int,
    message_id int,

    game_type text,
    state text,
    wager real,
    finished int
    '''
    chunks = update.callback.split("-")
    game_choice = chunks[0]
    game_proof = chunks[1]

    db = sqlite3.connect(_DBFILE)
    cur = db.cursor()

    gamedata = cur.execute("select secret,salt,wager,state from gamedata where finished=0 and user_id=? and chat_id=? and proof=? limit 1",(update.from_id, update.data["message"]["chat"]["id"], game_proof)).fetchone()
    if gamedata == None:
    return False,0.0,None,None

    game_secret, game_salt, wager, game_state = gamedata
    game_state = json.loads(game_state)

    # process when users press the button to cash out early
    if game_choice.startswith("mF") or game_state["level"]==5:
    cur.execute("update gamedata set finished=1 where proof=? limit 1",(game_proof,))
    db.commit()

    multiplier = round((1./((2./3.)**game_state["level"]))*0.95, 5)
    potential_payout = round(multiplier * wager, 8)

    response_text = "You cashed out on level "+str(game_state["level"])+" and won a multiplier of "+str(multiplier)+"x on your initial bet of "+str(wager)+" LTC. Your reward is <b><u>"+str(potential_payout)+" LTC!!!</u></b>

  12. ĐØ₦₳₮łVØ₴ (₱₮Ɽ)
    Donativos (PTR) pHbnU9dyRGWtEwKrdho4gi6iunv5vuDNq3
    Creación del Master Nodo: 5.OOO PTR
    Entorno de Trabajo: Linux Based DebíanĐØ₦₳₮łVØ₴ (₱₮Ɽ)
    (゚◥益◤゚) ͉͗̒̾͊ ͊̍ ̗̮͚̥̰͆ͭ ̦͕▓ͧͫ̚▓͓̜̋̒̌▓̝̪͎ͯ̐͒▓̭͙̍͒̐̚▓̪̮ͫ͆▓͎͓͈͙̜͐̾
    ̥͚̙̞͊ͮ̓ͣ ̞͚̭̹̿͛ͧ̌̊ ̰̺ ͤ͊̍̋ ̃̋͛ ̥̪̯ ̣̞̙̤̣ ̗̭̮̙̪ ̪̰͙ͪ͆ͨͧͦͅ ̭̄ ͖̘͋ ͈̐ ̌ ͉̌̂̿̒̎▓̙̗̯̰̒͗̑̽̾▓̠ͭ̄╭̖̱̓ͅ─̔͋̍͗─̹̬͚─̣͉̝͙̂ͭ̈́╮̳▓̜͎̠̟̠ͥͤ̀̂ͭ
    ̩͎ ̾ͦ ̮̮͓̉ͯͬ̈́ ̮ ̝ ̹ͦ̍̀ͣ ̦̘͂̊̑̔̚ ͣ͊͑ ͕͓͇̓͐̑ͯͨ ̮̜͖̯̊ ̬͚̩̝̩̀̈́ͬ͐ͤ ̗̤̅͐ͣͭͅ ͫ́̍ ͎̪̤͖̤̔▓̠̉̄ ̯̬│̺̃̓̚ ̳̰̜͓ͥ͑ͤ ͗͗̄͂ ̲̮͉͈͙ͧ̄͋│̗̻͖̉̇▓̞͎͋͑̏
    ̭̝̣͔͇͛̂̄̿ ͈̺̯̩͎̊ ͉̃ ̯ ̼̄ͅ ̺̹̂͛͛ͅ ̊ͦ̀ ̺̰̣̱ͧ̊̚ ̝̞͕̼͛̃̈ͫ ͐̒̆ͅͅ ̳̱̿̃̄ͫͅ ̱͚̘̬̑ ͍͕̣̱̝͗ͧ̈́̅ ͫ̓ͬ̚▓̘͆̇ͣ͊ ͔̝̼͙̞│̯̭͈͇̚ ̩̩̣̭͊ͬ ͓̩̦̂ ͙͑ͫ̀│̺̅▓̠͐ͭͫ͑̈́
    ̭̲̮̖͊̓ͥ͗ ̼͉ ̓ͮ ̺͕̪ ͍̟̘̞̣ͮͬ͗ ͇̙̮̮̩̅̅ͣ ̣̣̝͖͑̃̇ͯ ͓̜̠̑̌ ͙̜̱̼̀̾̒ͧͭ ̈ ̼͆ͦ ̙̥̦͚ͣͥͩ ̣̘̅̑̈ͅ ̘̥̟̩ͨ̄̐▓̬͓̩ͧ̎̒ͩ̒▓̰̙̗̲̋╰͖̈́̃̔─̰͙̼ͬ──̈́͑̇╯̝̭▓̩ͪ̔̚
    ͊̍͊ ̫ ̬̜̲ ̭̬ͣͫ̀̽ͧ ͮ̽ ̦͔ͧ̉̓ ̦ͨ̎ ̣̞̲͎̻̌ͫ̎̃̽ ̦ͧ ̗̼͓̇̓ͫͦ̓ ͓ͧ ͖̣̭̘͒̆̎ͮ ̄̾̈́ͭ ̩̣͕̲▓̳▓͉̭͎͙ͣ̌ͬ▓̰̦̭̃̍ͫ̌̾▓ͦ͂ͪ▓͖͇▓͈̟͙̤̈́ (ʘ言ʘ╬)
    ▒▒▒▒▒▒▒▒
    ▒▒▒▒ ▒▒▒▒▒
    ▒▒ ▒▒
    ░░▒▒▒▒▒▒░░░░▒▒ ▒▒▒▒░░▒▒▒▒▒▒░░▒▒
    ▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒
    ▒▒ ▒▒ ▒▒▒▒▒▒ ▒▒ ▒▒
    ▒▒ ▒▒▒▒ ▒▒▒▒▒▒ ▒▒░░
    ▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒ ▒▒
    ▒▒▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒▒▒
    ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒
    ░░▒▒ ▒▒▒▒ ░░▒▒▒▒▒▒ ▒▒▒▒▒▒ ░░▒▒
    ▒▒ ▒▒▒▒ ░░ ▒▒▒▒ ▒▒
    ▒▒ ▒▒░░▒▒░░ ░░▒▒░░▒▒ ▒▒
    ▒▒▒▒ ▒▒ ▒▒▒▒▒▒ ▒▒ ▒▒
    ▒▒ ▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
    ▒▒▒▒░░▒▒▒▒▒ ▒▒ ▒▒ ▒▒▒▒
    ▒▒ ▒▒
    _____ ░░░░ ░░░░
    _|[]_|_ ▒▒▒ ▒▒▒
    _/_/=|_\_\_ ▒▒▒▒▒▒▒▒
    _/_ /==| _\ _\_
    _/__ /===|_ _\ __\_

  13. 134K 02-23-2000

    +-+ 8 W A Y ----- S L O T S +-+
    | |
    | Slot Machine Door Game. |
    | |
    | Played on a 3 by 3 Grid of token |
    | wheels, this door pays out on |
    | vertical, horizontal and diagonal |
    | lines. Multiple lines are also |
    | payed out. |
    | Each win adds 1 more play. |
    | Player Make Up Days * NEW * |
    | Resets at end of month. |
    | InterBBS Capable |
    | |
    +-------- FREE-WARE RELEASE ----------+

    BCHECK20.ZIP 150K 12-20-2000

    ++++ BCHECKERS ++++
    A checkers door that supports most BBS
    drop files, BCheckers provides a number
    of sysop functions, Hoyle rules, full
    data input error checking, multiple
    personality status line, and multi-
    node operation. Can make comments to
    your opponent and generates bulletins.
    INTERNODE PLAY, AND PLAY THE COMPUTER!
    No FOSSIL required -- supports non-
    standard comm ports. Registration
    ONLY $5!

    01B_TRIT.ZIP 90K 10-05-1997

    Tri-Towers Version .01Beta
    Door Card Game. This
    is one of the most
    addicting card games
    ever created! You
    must reach the top of
    all three towers! Fast
    action, bonus rounds,
    high scores! Great for
    contests and user inter-
    action on your BBS!
    Get this door today!
    Shareware-} but 1 in 4
    games in Unregistered
    version get registered
    features!

    1001V102.ZIP 162K 01-02-1995

    An excellent multi-node game. Includes
    DESQview awareness and COM 1-4 support. Best
    if used underneath DESQview because of con-
    current processing. Comes with 165 rooms and
    28 different monsters, but can easily be
    adapated by the sysop for their system.
    Includes ability for unlimited monsters.

    105APTCH.ZIP 318K 03-04-1997

    * ROK v1.05a Patch *

    Fixes reported problems
    in Version 1.05. Mainly
    a copy over upgrade.

    10CD107.ZIP 87K 01-15-1995

    *** VIP*10C Game Door - Version 1.07 ***
    VIP*10C is an exciting and extremely
    challenging BBS game door of 10 Colors
    and 10 Chances. The object of VIP*10C is
    for the Challenger to correctly match
    randomly selected colors from a master
    list of 10 Colors. There are 10 Chances
    in each round. Color clues are provided
    to assist the Challenger following each
    turn. Very easy setup on either single or
    multi-node BBS. Requires ANSI graphics.
    Enhanced DOOR.SYS BBS interface support.
    Original VIP*Software - Revised: 01-15-95


    11SAD.ZIP 66K 02-12-1995

    Search and Destroy v1.1 - New action packed
    door game similar to the familiar game of
    Battleship, but much better. Features
    include multinode compatibility, ANSI
    animation, excellent ANSI music, supreme
    play control, scan ocean surface or use
    periscope to search for enemy ships, fire
    missiles and torpedoes, drop bombs, crack
    codes, send messages & more! Your callers
    will love it, and since this incredibly
    detailed game is only five bucks to
    register, so will you! Try SAD today!

    144BBS10.ZIP 151K 05-08-1995

    144BBS List Door v1.00 by T&J Software:
    This is a free door to view and search the
    national 144BBS List. The door supports
    various BBS/Com Port configurations and is
    very easily installed. Latest version may
    be file requested as 144BBS from 1:268/400
    and may be freely distributed. Another
    quality door from:
    -- T&J Software --
    -- (717)325-9481 3 Nodes - 28.8k --

    15PUZZLE.ZIP 86K 02-14-1994

    }}}}}}}}}}}}}} 15 PUZZLE v3.0 {{{{{{{{{{{{{{
    The object of the game is to move the blocks
    into numerical order on a 16 grid board with
    only one empty space available to move the
    blocks. Fully functional, supports multiple
    BBS formats, file sharing for multiple nodes,
    bauds up to 115200, INT 14h fossil drivers,
    COM 1-4, IRQ 1-15, and is DESQview aware.
    For this and other great door programs call
    The Pegasus BBS at (502)684-9896 USR DS.

    1ARM_23.ZIP 83K 08-19-1995

    ##### ONE-ARM! v2.3 #####
    ##LIKE NOTHING YOU'VE SEEN BEFORE!##
    WOW! Tilt the slot machine, flirt
    with casino workers, MORE! THIS WORKS
    WITH PCBOARD 15.2 ***OR*** 15.22!!!!
    New GET LAID, "Clean Mode," Even
    MORE Sysop config options! GET IT!!!
    ** Another Jim Coleman $5 Game! **
    ** MLPNet Support Conference! **

    1CHECKER.ZIP 85K 02-14-1994

    }}}}}}}}}}}}}} 1 CHECKER v3.5 {{{{{{{{{{{{{{
    The object of the game is to remove as many
    'pegs' as possible by jumping each 'peg'
    with another. Fully functional, supports
    multiple BBS formats, file sharing for
    multiple nodes, bauds up to 115200, INT 14h
    fossil drivers, COM 1-4, IRQ 1-15, and is
    DESQview aware.
    For this and other great door programs call
    The Pegasus BBS at (502)684-9896 USR DS.

    1TXDS130.ZIP 693K 05-18-1996

    ------------- TXDS v1.30wb -------------
    * THE ENIGMA OF ASHRELLA RPG DOOR 1.30 *
    } several bug fixes : mud mode fixed {
    } enter the medieval world of ashrella {
    } fly on a dragon : get drunk : joust {
    } long, ongoing story : spells : items {
    } NOW MULTINODE : ONLINE FIGHTS : CHAT {
    }{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{
    =COMES w/TXDS--MAKE YOUR OWN DOOR GAMES=
    =or add-ons for your bbs! So easy that =
    =ANYONE CAN DO IT! TXDS by Allen Ussher=
    =NOW WORKS WITH FOSSIL DRIVER! LOTS OF=
    =bugs fixed! still $10 -- see documents=

    1TXDXTRA.ZIP 162K 05-07-1998

    Expansion Pack for TXDS (Ashrella)
    ==================================
    Simple Drop-in Adds 2 NEW Races
    to the Enigma of Ashrella (TXDS)!
    Including 6 NEW Spells and Dozens
    of New Weapons, Armour, and Items.
    Two New Locations as well as
    Enhanced Class Distinction.
    ==================================
    FREEWARE from Midnight's Realm
    ==================================

    1WST1.ZIP 128K 01-01-1994

    Who Said That? Trivia. Rip Support. Not
    Crippled/Most BBS's
    Test your knowledge of famous and not so famous
    sayings! Do
    you know who said "I like a woman with a head
    on her shoulders.
    I hate necks" ? -- (evetS nitraM) you'll have
    to look at it
    backwards to find out the answer!

    A WiggleWare 1st release!

    2002D309.ZIP 1407K 11-13-1998

    This is a special, DPMI version for use under
    a Windows type environment or DOS extender.
    Trade Wars 2002 is one of the most popular BBS
    board games of all times! The new version 3.09

    brings multiplayer combat and interaction to

    the DOS or Windows based BBS! This version has
    a completely new file access system to prevent
    multiplayer problems and increase the speed of
    the game. Version 3.09 now costs twenty five
    dollars to register and is a FREE upgrade to
    any sysop that registered TW2002 in the past.
    This archive contains version 3.09 and was
    released on November 13th, 1998.

    2002V309.ZIP 1321K 11-13-1998

    Trade Wars 2002 is one of the most popular BBS
    board games of all times! The new version 3.09

    brings multiplayer combat and interaction to

    the DOS or Windows based BBS! This version has
    a completely new file access system to prevent
    multiplayer problems and increase the speed of
    the game. Version 3.09 now costs twenty five
    dollars to register and is a FREE upgrade to
    any sysop that registered TW2002 in the past.
    This archive contains version 3.09 and was
    released on November 13th, 1998.

    2100A104.ZIP 225K 04-20-1995

    RPG-2100*THE AWAKENING v1.04 [door 4/20/95]
    Single-Multiline DView-WIN-OS/2 aware door
    supports FOSSIL and non-standard settings...
    57 years after preventing the awakening of
    Khalal its evil wraith has finally recovered
    the body and has the evil semi-god, semi-
    dragon awaken. You have been summoned to the
    land once more by the sacred fire to kill
    Khalal once and for all. A fully interactive
    game, the best adaptation of a role-play
    game (RPG) for BBSs ever!

    2100W202.ZIP 191K 04-20-1995

    RPG-2100*THE WRAITH OF KHALAL v2.02 [4/20/95]
    Maintenance release. Corrects time-slicings
    under OS/2, Windows, DV; RIP bug; and others.
    As a fighter, rogue, or wizard, get clues,
    blessings, money, and hints from the old
    men of the land. Will you escape the Land
    Of Eternal Confusion? See the king for
    commissions, hunt other human players, and
    ultimately, prevent the awakening of Khalal
    --SUPPORTS MULTILINE BBSs, HIGHLY ADDICTIVE--

    212XSDL.ZIP 782K 03-02-1997

    Stardock Loco BBS Door Game 2.12 "The Core"
    with over 70 new ANSI screens! IGM support
    tripled! Visit the Colony, 'Roid, Stardock!
    Very popular door game brings a fresh new RPG
    to your BBS!

    2TF_V101.ZIP 285K 11-19-1995

    The Forest ][ V1.01
    First Public Release
    THE ULTIMATE BBS DOOR!
    Released Nov 13/95
    *** JUST GET IT! ***

    316TO317.ZIP 319K 10-28-1998

    Exitilus v3.16 to v3.17 Updater This program is
    to be used to Update Exitilus v3.16 files to v3
    17 files.

    3STOGE15.ZIP 179K 11-08-1996

    The 3 Stooges! Trivia v1.05 - BBS Door about
    the age old comedy team. The ONLY Door of
    it's kind! all questions about the life &
    times of "The 3 Stooges". MULTI-NODE, RIP
    Supported, many BBS types too. Registration
    only $12.00. Also check our Special Multi-Door
    Package Pricing too.

    4CARD.ZIP 85K 02-14-1994

    }}}}}}}}}}} 4 CARD SOLITARE v2.5 {{{{{{{{{{{
    Try to get rid of all 52 cards in this
    version of a solitare card game. Fully
    functional, supports multiple BBS formats,
    file sharing for multiple nodes, bauds up to
    115200, INT 14h fossil drivers, COM 1-4,
    IRQ 1-15, and is DESQview aware.
    For this and other great door programs call
    The Pegasus BBS at (502)684-9896 USR DS.

    4CAST2BB.ZIP 253K 08-15-1994

    Weather Forcats door - users can request
    forcasts for most cities.

    4CORN14.ZIP 387K 12-14-1996

    +----- FOUR CORNER CHECKERS v1.4 -----+
    | BBS DOOR GAME |
    | Four Corner Checkers is a Multi- |
    | node playable game based on Chinese |
    | Checkers. The play is the same, but |
    | the board layout is different. |
    | Fully multi-node capable to provide |
    | excellent real-time play. |
    | Mace Software, Inc. $10.00 |
    +-------------------------------------+

    4CYT2_03.ZIP 471K 08-18-1995

    4CYTE! v2.03 - Word making game door.
    4CYTE is a word making game from ParrotSoft.
    This game is
    configurable by registered sysop for number of
    games and
    difficulty level for playing. A player tries to
    make as many
    words as he can on a 6x6 grid using the
    generated letters
    (or wildcards) supplied. Play back/ahead days,
    and last months
    high scorer. Door is compatable with most major
    BBS systems.
    Door supports Non-Standard com port IRQ's and
    Multi-Nodes.
    Door uses same PS dictionary as Boggle and
    Perplexity and
    can share the same directory. NO Dictionary
    Files In this zip.

    4DRPLAY.ZIP 46K 03-11-1995

    FOUR DOLLAR DOORPLAY 1.2 by Jim Barkdull This
    utility came about when I started testing
    doors for a friend of mine who writes doors.
    The idea was to find out how often the door
    was played. Then it was who played, then when.
    So $4 doorplay was born. It's simple to use
    and versatle. It worked very nice to see how
    the NEW door was used. And I soon had it
    installed into every door batch file. I had
    tried a program that would write to the BBS
    log to tell the sysop when a door was used but
    it lacked the ability to see who and when and
    to get a total of times played it still
    required counting the

    4LEAF15.ZIP 148K 06-11-1996

    FourLeaf Clover v1.5 On-Line Door Game
    Test your users skills with this simple but
    yet strategic card game. Game play is ANSI,
    with cursor control movements. Your given 16
    cards face up, in four rows of four each. You
    have to now discard cards in batches of 13
    points. Kings, Queens and Jacks in the same
    suit can be discarded.
    FOURLEAF ONLINE DOOR GAME SOLITAIRE
    Worldwide Programming (209) 325-0278

    4SQ25.ZIP 95K 04-25-1995

    4Square v2.5 BBS game door. Logic
    puzzle game. Try to group the four colors
    together in their respective corners of
    the Square. Supports almost any BBS
    software, multi-node, COM 0 - 15, up to
    115K Baud, and non-standard IRQ's. Now
    supports multi-port boards using FOSSIL
    drivers including PCBoard/M!. Runs in
    local mode with /local.

    4US_TRV3.ZIP 144K 02-14-1994

    }}}}}}}}}} MUSIC TRIVIA III v2.5 {{{{{{{{{{{
    Trivia game with questions testing your
    knowledge of music. Fully functional,
    supports multiple BBS formats, file sharing
    for multiple nodes, bauds up to 115200,
    INT 14h fossil drivers, COM 1-4, IRQ 1-15,
    and is DESQview aware.
    For this and other great door programs call
    The Pegasus BBS at (502)684-9896 USR DS.

    500BBS21.ZIP 254K 11-01-1995

    REMOTE ACCESS FIVE HUNDRED card game.
    ver 2.1.1
    This program plays the popular
    card game of 500 across a BBS, with
    another player on a modem, or on a
    Network. You play a 4 handed game with
    other humans able to join or leave
    the game at will. The computer
    automatically plays for missing
    players. You can choose your style
    of play, as well as customise for
    local rules and MISERE options. It
    has card animation. Speed and
    colours can be customised.

    5CS100.ZIP 134K 02-19-1995

    +-----------------------------------------+
    | 5 Card Stud ver. 1.00 |
    +-----------------------------------------+
    |Play 5 card stud against the computer and|
    |match your ability against others. Keeps|
    |daily winners as well as a total winner |
    |for that month. Uses DOOFRAME library |
    |for Non-Standard Comport and IRQ's. |
    |Programmer: William Rountree |
    |Release Date: 02\20\95 |
    +-----------------------------------------+

    5CS141.ZIP 140K 01-03-1997

    5 Card Stud (Door Game) ver. 1.41
    Play 5 card stud against the computer and
    match your ability against others. Keeps
    daily winners as well as a total winner
    for that month. Uses DOOFRAME library
    for Non-Standard Comport and IRQ's.
    Now able to to be played without a BBS!
    Supports PCB, WC3.x/4.x and many others.
    Release Date: 1\1\97

    5DHANG10.ZIP 81K 12-26-1993

    Simple HaNGMaN word game door. No EXP, FREE No
    REG.

    5DWS193.ZIP 157K 05-28-1997

    5D Word Search, v1.93
    Word Search is a word game very much like the
    hidden word games
    you see in newspapers and magazines. A list
    (theme) of ten words
    is selected, then mixed into the playing area,
    to be found by the
    caller using the door. Words can be found
    horizontally, vertically,
    diagonally, in forward or backward spelling.
    Scoring is based on
    the time it takes to find the word in the
    puzzle.

    7S201.ZIP 40K 04-29-1998

    THE SEVEN SAGES Version 2.01
    ---------------------------------
    A world for the Sage engine.

    7S201SRC.ZIP 36K 04-28-1998

    THE SEVEN SAGES v2.01 - FLC SOURCE CODE
    ---------------------------------------
    These are the FLC script files used
    to create "The Seven Sages"

    8BALLA.ZIP 137K 08-04-1997

    MAGUS 8 BALL FOR ANSI
    ANSI door for all BBS Systems.
    Remember those magic 8 balls
    in the toy store you played
    with as a kid? Well, now
    you can provide your callers
    their very own magus 8 ball.
    FREEWARE
    Copyright (C) 1997, Robert C. Robinson

    8BALL11.ZIP 51K 01-23-2000

    #-------------------------------------------#
    | 689 Studios / Infinity Software Presents: |
    | *** ASK THE MAGIC 8-BALL *** |
    | Version 1.1 |
    | This door is a simulation of those nifty |
    |agic 8-balls that we all know and love! Jus|
    |ask the magic 8-ball a question about your |
    |future and it'll answer! Neato! Perfect for|
    | that SysOp that's looking to add a little |
    | variety to their BBS! Supports all major |
    |dropfiles, easy setup, colorful and easy to|
    | use! Compatible with any BBS software. |
    | Your users will love it...trust us! |
    | (c) 2000 689 Studios / Infinity Software |
    #-------------------------------------------#

    8LINEV13.ZIP 132K 04-07-1996

    8 line slots

    8WAY132.ZIP 133K 02-25-2000

    +-+ 8 W A Y S L O T S v1.3.2 +-+
    | |
    | Slot Machine Door Game. |
    | |
    | Played on a 3 by 3 Grid of token |
    | wheels, this door pays out on |
    | vertical, horizontal and diagonal |
    | lines. Multiple lines are also |
    | payed out. |
    | Each win adds 1 more play. |
    | Player Make Up Days |
    | Resets at end of month. |
    | InterBBS Capable |
    | |
    +-------- FREE-WARE RELEASE ----------+

    99V13.ZIP 83K 07-16-1993

    99 Year Conquest:A Galactic Conquest Door
    Game

    A!SRE2B.ZIP 6K 05-04-1995

    A!SRE2B .ARJ Animaniacs SRE ver 2b. BUG FIXER,
    psionic/nuclear/
    chem attacks renamed accordingly.
    SRE Sysops, DL
    this NOW!

    AA_V100.ZIP 43K 06-17-1997

    -Avalon Archives v1.00!-
    An EGO For Avalon v0.77 - WB4!
    ----------------------------------
    Talk the Hooded Figure and learn
    the rankings of enemy characters
    in ten different categories that
    aren't found in Avalon itself!

    Blazing Fire Software
    http://www.sasknet.com/~bfs
    ----------------------------------

    AB100B2.ZIP 54K 03-26-1995

    +---------- AutoBiography v1.00B2. ---------+
    | |
    | AutoBiography is an advanced User BIO |
    | System for all DOOR.SYS compatible |
    | Bulletin Board Systems. |
    | 99.9% Sysop Configurable! |
    | |
    +---- Copyright 1994-95 by Doug Kalman. ----+

    AB1V140.ZIP 384K 07-12-1999

    }}---} ARROWBRIDGE I {---{{
    Quest for the Orb
    (v1.40)
    Arrowbridge Online Game is an Ultima
    style door. It has active combat
    routines, over 240000 locations and
    supports multinode systems. Players
    must earn experience, explore the
    land, raid burial chambers, build
    armies, gather magic weapons,
    complete special missions and much
    much more! The game can operate
    on an Inter-BBS basis with features
    including Inter-BBS assassins,
    destructors and a top 100 player
    list. Arrowbridge can be equally
    enjoyed by playing it on a stand-
    alone basis. Insist on the original!
    FREEWARE

    AB2MP114.ZIP 563K 10-04-1997

    }-} ARROWBRIDGE II Map Editor {-{
    Arrowbridge II Map Editor is a
    Windows application to allow users
    to customize their Arrowbridge II
    games. The editor permits editing
    of dungeons, lairs, hints and
    special missions. This is a very
    powerful utility for those that
    are serious about Arrowbridge II.
    Arrowbridge II - bringing the
    users back!

  14. Narc Naturally Camouflaged [connect my yokel-like scolytidae]
    Originally posted by ⠀⠀⠀⠀⠀⠀ *Richard Burnish enters thread*

    Does he still do the bible basher phone in?


    .
  15. Originally posted by Narc Does he still do the bible basher phone in?


    .

    When the feeling hits, yes.
  16. 𓂀 𓁷 𓂙 𓂐 𓂕
    𓃔 𓃕 𓄸 𓆉 𓆚 𓇶 𓈈
    𓇵 𓉑 𓉢 𓊎 𓊰 𓊮 𓍪
    𓎹 𓐑 ␆ ⛃ ⛀ ⚯ ㍟ ㍗
    ㍕ ㍅ ퟛ ᛪ 🀢 🀐 🀤 🁢
    🆐 🖷 🖺 🗟 🗠 ន



    🂠 🂡 🂢 🂣
    🂤 🂥 🂦 🂧 🂨 🂩 🂪 🂫 🂬 🂭 🂮
    🂱 🂲 🂳 🂴 🂵 🂶 🂷 🂸 🂹 🂺 🂻 🂼 🂽 🂾 🂿
    🃁 🃂 🃃 🃄 🃅 🃆 🃇 🃈 🃉 🃊 🃋 🃌 🃍 🃎 🃏

    The BBS Corner TELNET BBS GUIDE - UNOFFICIAL DAILY LIST
    -----------------------------------------------
    Copyright by The BBS Corner & The Telnet BBS Guide
    A service of the Diamond Mine Online
    Fredericksburg, VA USA

    Web: http://www.telnetbbsguide.com
    Telnet: bbs.dmine.net:24
    E-mail: info at telnetbbsguide dot com

    THIS IS A DAILY LIST
    This is is an unofficial list which reflects additions and deletions over the course
    of the month. This list is NOT intended to be distributed to other websites
    or BBS systems, only for personal use.

    ===========================================================================
    WHERE TO FIND THE BBS CORNER'S TELNET BBS GUIDE:

    WEB: http://www.telnetbbsguide.com

    BBS: Diamond Mine Online BBS

    Web: http://www.dmine.com
    Telnet: bbs.dmine.net:24

    EMAIL:

    E-mail inquiries: info (at) telnetbbsguide (dot) com

    DISTRIBUTION LIST:

    If you want a copy of this list sent to you automatically once a
    month, subscribe to our distribution list. For details go to:
    https://groups.io/g/telnetbbsguide/

    NOTE:

    All Telnet BBS system listed are checked and verified
    every 60-90 days. If a BBS is down for more than 30 days,
    it will be removed from the list.

    If you find a BBS no longer in operation, please send an E-mail
    to the address listed above.

    This file can be downloaded from our website or
    your favorite BBS. File name for this month is IBBS0223.ZIP
    ============================================================================

    * = NEW listing since last edition

    ============================================================================

    13th Floor BBS 13th.hoyvision.com:6400
    13th Leader BBS 13leader.net:8023
    20 For Beers BBS 20forbeers.com:1337
    28 Gorilla BBS 54.196.252.209
    2K System 2k.synchronetbbs.org
    300 F-ing Baud BBS 300baud.dynu.net:2525
    32-Bit BBS x-bit.org:2323
    4FGS BBS 4fgs.com:2323
    64 Vintage BBS 64vintageremixbbs.dyndns.org:6400
    79 Columns oddnetwork.org
    8-Bit Archive bbs.8-bitarchive.com:2223
    8-Bit Boyz BBS bbs.8bitboyz.com:6502
    8-Bit Playground 8bit.hoyvision.com:6400
    8Bit Saturday Night bbs.8bitsaturdaynight.com:8888
    8BitGeek BBS 8bitgeek.net
    Abacus BBS 65.102.14.166:2323
    Absinthe BBS absinthebbs.net:1940
    Abyss BBS bbs.abyssnode.net
    Ace of Spades BBS chaotix.ddns.net:2323
    Acid Underworld (Mystic) blackflag.acid.org:31337
    Acid Underworld (Searchlight) blackflag.acid.org:24
    Adam BBS adambbs.servebbs.org:6400
    Addicts Corner 202.137.242.82
    Adept Online Entertainment (WG) adeptbbs.com
    Aerodrome theaerodrome.ddns.net:6502
    After – After Hours BBS webmail.bcgonsite.com:24
    Agency BBS agency.bbs.nz
    AKIRA 81.59.4.180:4000
    Al's Geek Lab BBS bbs.alsgeeklab.com:2323
    AlcaBBS bbs.alcatrash.org
    Alcatraz BBS alcatrazbbs.ddns.net:9000
    Alcoholiday (Renegade) alcoholidaybbs.com:95
    Alcoholiday BBS (Mystic) alcoholidaybbs.com
    Aleco Experience BBS bbs.alecoexp.cz
    Alien Mindbenders BBS the.alienmindbenders.net
    Aliens' Alcove! aliens.ph
    Alltsk fido.alltsk.ru
    beta Centauri BBS acentauribbs.no-ip.org:2002
    beta Complex betacomplex.us:2323
    betachron BBS 193.22.2.193
    AlSayr 199.66.67.64
    Altair IV BBS altairiv.ddns.net:2323
    Altar of Wares altarofwaresbbs.hopto.org:6464
    Amiga CBM BBS amiganer.amms-bbs.de
    Amiga City amigacity.xyz
    Amiga Retro Brisbane BBS www.amigaretro.com
    Amiga Underground amigaunderground.com:2300
    * Amiga Underground TWGS amigaunderground.com:2002
    Amis XE amis86.ddns.net:9000
    AMSTRAD BBS amstrad.simulant.uk:464
    An's BBS 138.68.91.26:8888
    Analog Waffle waffle.c4bmore.com:2001
    Anarchy Underground 65.27.8.81:2300
    Anatoly's BBS 207.180.218.222
    Android City androidcity.retro-os.live
    Anima Ex Machina animaexmachina.sytes.net:6023
    Animation Game Station (Animeyo) bbs.animeyo.com
    Another Droid BBS andr01d.zapto.org:9999
    Another Wildcat BBS 104.190.144.121:6400
    ANSITex alterant.bbs.dege.au
    ANSUN 160.2.35.100:1024
    Antidote antidote.triad.se:64128
    AoK BBS 98.60.156.191:2323
    Arcadia BBS telnet.arcadiabbs.com
    Archaic Binary bbs.archaicbinary.net
    Archeology of Hacking 45.79.105.21:8888
    ArcticZone Online Entertainment bbs.arcticzonebbs.net
    Area 52 area52.tk:5200
    Ariana Interface ariana.synchro.net
    Armoury BBS 50.77.103.51
    ARTNET 50.116.51.149
    ASCII Attic 65.51.108.174
    AT2K Design BBS bbs.at2k.org
    Atavachron BBS bbs.atavachronbbs.net
    Athelstan BBS athelstan.org
    Atlantic Data Images adibbs.sytes.net:6800
    Atlantis BBS atl.ddns.net:6401
    Atmosphere BBS (NTU) bbs.as.ntu.edu.tw
    Auntie Bodies BBS auntiebodies.dyndns.org:2324
    Avalon Isle BBS atl.ddns.net:6400
    Avl-Sys paladium.servebbs.com
    Ayashii Channel BBS quipna.com:376
    BabzWorld babzworld.synchronetbbs.org
    Back to the Future bttfbbs.com
    Backwood Realm BBS bwrbbs.ddns.net
    Bad Poetry Blues BBS centralontarioremote.com:2300
    Baffa BBS baffa.zapto.org:2323
    Bahamut BBS bbs.gamer.com.tw
    Baltimore Compuserv baltimore.bbs.compuserv.org:2300
    Banana Bender BBS bbs.retrohack.se:8484
    Bart Stop BBS thebartstop.com:513
    Basement BBS (1) basementbbs.ddns.net:9000
    Basement BBS (2) basement.isurf.ca
    Basement Theory basement.synchro.net
    Bat Cave 107.173.87.32:8023
    Batboard BBS 173.24.78.13
    Battlestar Atlantis atlantisbbs.dyndns.org:2600
    Battlestar BBS battlestarbbs.dyndns.org
    Battlestar Pegasus pegasusbbs.dyndns.org:28
    Baud BBS bbs.baud.games:6502
    Bayou BBS jayctheriot.com:6401
    BBS Development bbsdev.net
    BBS GameTime web.bbsgametime.com
    BBS Is Cool bbsiscool.emailisstupid.com:513
    BBS KYPCTECH bbs.kypctech.com
    BBS Retroacademy bbs.retroacademy.it:6510
    BBS Tournament Wordle bbswordle.com
    BBS.00stack.in bbs.00stack.in
    BBS.Telearena.us bbs.telearena.us
    BBS.Telnet.Games 45.79.110.29
    BBShantico 93.51.13.93:8788
    BCG-Box bbbs.net
    BCR Games Server bcrgames.com:31337
    Bear's Den bbs.bearfather.net
    Bedrock BBS bbs.kristyandrick.com
    BEER-ISAC BBS 31.220.63.185:2323
    Beggar's Canyon beggarscyn.com
    Beiyou Forum bbs.byr.cn
    Bento Box BBS bentoboxbbs.com
    BeOS & Haiku City beos.retro-os.live
    Bermuda Triangle bermudatrianglebbs.com
    Big Rabbit BBS bunnybbs.tw
    Big Red BBS 210.54.37.190
    Big Time BBS bigtime.magnum.uk.net:2323
    Bikerbob's Clubhouse bbsclubhouse.ddns.net:1040
    Bitbrain BBS bitbrain.life
    Bits & Bytes BBS bbs.bnbbbs.net:2023
    Bitwoods RBBS-PC bitwoods.duckdns.org
    Black House BBS blackhouse.synchronetbbs.org
    Black Rifle BBS blackriflebbs.synchronetbbs.org
    Blackboard BBS blackboardbbs.net
    Blackfair's Manor (Synchronet) blackf.synchro.net
    Blackfair's Manor (TWGS) blackf.synchro.net:2002
    Blackhole's BBS 205.240.66.19:2323
    BlackICE blackice.bbsindex.de
    Blacklight Underground acentauribbs.no-ip.org:2424
    Blood Stone wwiv.bsbbs.com:2323
    BlueWave BBS telnet.bluewavebbs.com
    Boar's Head Tavern byob.hopto.org:64128
    BodaX BBS bbs.beardy.se
    Bologna BBS 192.210.175.20
    BoobTube bbs.wz5bbs.com
    Book Land bookland.synchronetbbs.org
    Boot Factory 2K bfbbs.no-ip.com:8888
    Borderline BBS borderlinebbs.dyndns.org:6400
    Bottomless Abyss BBS bbs.bottomlessabyss.net:2023
    BoycoT BBS boycot.synchronetbbs.org
    Brain Storm BBS bsbbs.com.br
    Brainsuxx.Inc brainsuxxinc.ddns.net
    BrainToys BBS braintoys.org
    BRAZI.NET bbs.brazi.net
    Brazilian Doomers 150.230.64.191
    Brett Bender BBS 207.90.251.241:2323
    Brewery BBS thebrewery.servebeer.com:6400
    Brian's Blog TWGS tw2002.briancmoses.com
    Brokedown Palace BBS palace.brokedownpalace.online:2323
    Broken Bubble BBS bbs.thebrokenbubble.com
    Buces bbs.buces.org:3131
    Bucko's Den BBS bdn.wrgnbr.com:6401
    Butterfly BBS 211.68.71.66
    ByteBarn BBS bbs.bytebarn.de:2300
    ByteXchange BBS (BBBS) 163.123.181.114:6023
    * C1gar BBS c1gar.synchronetbbs.org
    Candlelight BBS 23.235.221.185
    Cannerduh bbs.canerduh.com:23905
    Capital Station BBS csbbs.dyndns.org
    Capitol City Online BBS capitolcityonline.net
    Capitol Shrill BBS capitolshrill.com
    Captain's Quarters BBS & AE Line cqbbs.ddns.net:6502
    Captain's Quarters II cqbbs.ddns.net:6800
    Carnifexian Utopia TWGS sbbs.sytes.net:2002
    Castle BBS 47.40.151.140
    Castle Rock BBS (2) cedarvalleybbs.com:2424
    Castle Rock BBS (3) bbs.castlerockbbs.com
    Catch 22 BBS (Daydream) catch22.zapto.org:26
    Catch 22 BBS (Impulse) catch22.zapto.org:28
    Catch 22 BBS (Iniquity) catch22.zapto.org:30
    Catch 22 BBS (Renegade) catch22.zapto.org:24
    Catpit BBS bbs.cis92.net
    Cavan Rural Community Wireless Network crcwn.online
    Cave BBS cavebbs.homeip.net
    CB2 Micro BBS cb2.qrp.gr:2323
    Cbaxyz TWGS 73.153.21.215:2002
    CBBS/NV cbbs.mitsaltair.com:8800
    CCUW BBS rtc.to
    CDH BBS cdhbbs.clouddatahosting.net
    CedarValley BBS cedarvalleybbs.com:2525
    CedarValley's Arcade cedvalar.synchro.net
    Centermass Solutions 71.236.233.196
    Ceph BBS ceph.synchronetbbs.org
    Chaotic Bliss cbliss.synchro.net
    Chelny bbs.chelny.online
    Chingon BBS chingon.araknet.xyz:31337
    Choice Core BBS (1st) 1stchoicecore.co.nz
    Choice Core BBS (2nd) 2ndchoicecore.ddns.net:1024
    Choice Core BBS (6th) 6thchoicecore.talismanbbs.com:1028
    Chookfest BBS bbs.chookfest.net:6800
    Christian Fellowship cfbbs.no-ip.com:26
    Chromophobia BBS 35.174.137.56:2600
    Church of the Fossil littlebobbytables.org
    CIA Amiga BBS ciaamigabbs.dynu.net:6400
    Citadel 64 BBS citadel64.thejlab.com:6400
    Cittadella BBS bbs.cittadellabbs.it:4001
    City on the Edge of Forever interzone.annexia.xyz:2002
    CJ's Place cjsplace.thruhere.net
    ClassicMUD bbs.classicmud.com:2323
    Clawfest BBS 173.20.233.78
    Clube da Insonia BBS bbs.conf.eti.br
    Clutch BBS bbs.clutchbbs.com
    Code Red BBS coderedmud.servegame.com:2323
    Cold Fusion BBS cfbbs.net
    Colorado Springs Network (TWGS) cscnet1.net:2002
    Colorado Springs Network (Wildcat) cscnet1.net
    Colossus BBS bbs.qzwx.com
    Commodore Image cib.dyndns.org:6400
    Commodore Image 2 cib.dyndns.org:6401
    Commodore Image 3 cib.dyndns.org:6402
    Comms Nuts BBS workstation.ddmcomputers.com.au:2323
    Compufuck BBS compufuck.xyz
    Computer Express (1) cebbs.costakis.org
    Computer Express (2) cebbs.synchronetbbs.org
    Computer God 75.169.160.42
    ConstructiveChaos BBS conchaos.synchro.net
    ConstructiveChaos TWGS conchaos.synchro.net:2002
    Convolution BBS convolution.us
    Cool Blue BBS coolbluebbs.com
    Cool David bbs.cooldavid.org
    Cooper Heavy Industries TWGS gaulven.com:2002
    Cottonwood BBS cottonwoodbbs.dyndns.org:6502
    Crack In Time BBS crackintimebbs.ddns.net:2323
    Crazy Eric's BBS bbs.crazyerics.com
    Crazy Paradise cpbbs.de:2323
    Cruncher`s TWGS crunchers-twgs.com:2002
    Cryptic Castle 81.175.146.217:8888
    Crystal Palace cptalker.com:9900
    Cult of James BBS bbs.cultofjames.org:9023
    Cult of the Shaky Shell 35.198.6.23:8888
    CyberDawg BBS 159.69.178.157:1337
    Cyberia BBS sysgod.org:23000
    D0P3 BBS bbs.intersrv.net
    Dancing with South wolf.tfcis.org
    Danger Bay BBS dangerbaybbs.dyndns.org:1337
    Dank Domain: The Return of Hack & Slash play.ddgame.us
    Dark Endless darkendlessbbs.hopto.org:6510
    Dark Realms bbs.darkrealms.ca
    Dark Systems BBS bbs.dsbbs.ca
    Darkages BBS 107.175.91.100
    DarkForce! BBS, The darkforce-bbs.dyndns.org:1040
    Darklevel darklevel.hopto.org:64128
    Darkscience BBS 45.33.108.140
    Darkside BBS darksidebbs.com
    Darkwood BBS darkwood.ddns.net
    DASAN Databank 10.dasan.no
    Datanet BBS datanetbbs.net
    Dave's BBS davesbbs.com
    Dawn of Demise (1) tdod.org
    Dawn of Demise (2) tdod.org:3000
    Dawn of Demise (3) tdod.org:5000
    * DBBS dbbs.synchro.net
    Dead Zone BBS dzbbs.hopto.org:64128
    Deadline BBS deadline.aegis-corp.org:1337
    Death Gate BBS sbbs.sytes.net
    Death Row BBS deathrow.servebbs.org:1001
    Decker's Heaven deckersheaven.com
    Delta City BBS deltacity.se
    Demigoth BBS bbs.demigoth.com
    Demonsnet BBS demonsnet.com
    Den Of Iniquity denofiniquity.caltrops.com
    Dept. 47 BBS dept47.bbses.info:2323
    Desert Rats Sanctuary (Synchronet) bbs.kn6q.org
  17. Charles Ex Machina African Astronaut
    Originally posted by CandyRein Flying penis



    ..... not even the mastery of kites .......

  18. CandyRein Black Hole
    You went through a lot of spam just to quote me …so thirsty lol
Jump to Top